Saturday, January 31, 2015

Developers - The neverending story

A year ago I vaguely new something about Scala. Today I'm not an expert, but I'm reasonably proficient in Scala, with some experience in Lift, Slick, and some incursions in akka. I knew almost nothing about devops, and now I use almost everyday AWS, ansible and docker.

I'm far from an expert in any of those technologies. But I work with all of them. 

Not bad for a year. 

However, as a developer the amount of effort you need to keep reasonably up-to-date is huge. These days I find myself trying to keep learning the mentioned technologies, but also get a grip of others. 
  • Akka is nice, but about Spark and Hadoop (as a way to, broadly speaking, distribute load. Yes, I know they are completely different beasts). 
  • Lift is an interesting concept, but what about going the other end with Futures-based Twitter-sponsored lightning fast Finatra
  • Jquery is OK, but now I'm reading about Google sponsored AngularJS and Facebook's React. Bootstrap is great, but did you know about foundation?. 
  • Granted gradle is great (much better than SBT in my inexperienced opinion, even though after Pivotal shuting down their Groovy development, the future is a bit uncertain), But did you know anything about bower (again different beasts, bower is only for front-end technologies).

Argh.



Monday, January 19, 2015

Technical tests

In March 2014 I was made redundant (business unit closing).

I needed to get a job and I participated in loads of selection processes. Sometimes I received feedback, sometimes not. But I remember two specific processes because I received completely different feedback from "technical tests" in a matter of days


  • Process A. Thanks for taking the time to complete our online testing. Unfortunately, your score did not meet the requirements of this role.
  • Process B. Thanks for taking the time to take the test. I'm delighted to say that your solutions were all excellent


They were ver similar positions in two different companies. And the kind of tests were very different indeed.


  • Process A is what I name as "certification test". You don't need to know how to develop. You just need the proper answers to the specific questions. You study, you pass, no matter your experience.
  • Process B, was a typical codility test, but without the limitation in time. Codility tests are programming tasks around algorithms. I aced it, because I had been doing some courses and tests on algorithms not long before, to prepare for interviews. Besides, I remember getting stuck in one of the subtests, but with no time limitation, it was a matter of be calm and find a way.


Codility is a step forward from those text-based-pretend-you-can-develop-because-you-know-some-tricky-question tests. If you are recruiting for a developer, at least let her develop. However, I think it is too focused on algorithms. But knowing how to implement an algorithm doesn't make you a good developer and/or a good fit for the company.

Problem is technical knowledge or competence is not he best indicator of fitting in the company.

Sure. You need some kind of test, to assess if she really knows how to program. But it doesn't have to be too fancy. Fizzbuzz would do. Because most of us are paid to solve users' problems.

However, I keep feeling there is no easy process to hire people. At all.






Sunday, January 11, 2015

New Spanish eGovernment law

I was a Spanish Civil Servant from 2006 to 2012 (technically I'm still a Spanish Civil Servant on leave). I've worked for different branches of the Spanish Government from September 2000 to November 2012. Civil Service in Spain is reputed to be lazy among Spaniards. But having worked for all kind of employers (startups, multinationals, NGO and Government Agencies), I can say I've found lazy people there but I've also found engaged workers. In fact the laziest people weren't in Government. And many of the most committed were.

That's a pretty long disclaimer.

When I came to London, I knew I had to register at the Spanish Embassy. But apparently the only way to do it is physically or sending your official ID/passport using special delivery mail.

There was a similar issue with changing vehicles documentation (my car). No way to do it online.

Fortunately (I thought), there is a Spanish law that says (s6.1) you have the right to be able to apply for anything using electronic procedures (as in web, digital signature...). There is a grace period (3rd ending disposition, ss2), that ended in 2009. I know the law because I worked on those issues (in particular digital signature, but in general electronic government) from 2008 to 2012.

So I decided to formulate a complaint through Spanish Ombudsman. Initial response was highly satisfactory. They were going to ask for information to the relevant authorities.

Public Administration Department confirmed that all central government procedures (not naming any in particular) should be fully adapted to initiate online and that maybe it was a temporary issue.

Foreign Affairs Ministry replied that forms where on the web page, you can download and that was enough (no pointer to be able to use general registry that would have been at least partial adaptation). I replied that the law is clear. I must be able to do it online (specially when I can do it offline by traditional mail).

Vehicles related agency initially didn't want to reply. And finally replied that it was related to taxes and they couldn't check the proper address and they depended upon municipalities. They expressed that this is a common issue with people living in Spain (as in "hey, we are not law abiding agency, but it is nothing related to people living abroad").

But what I found more disappointing (yes, even more than not enforcing the law) was the reply from the Spanish Ombudsman. After more than year asking information, they decided to close the complain because you can download the forms (again that's not what the law says).

I'm pretty sure all the authorities implicated know what the law says. I'm pretty sure people on the Public Administration Department have tried to change their car address. They all know there should have been the required processes in place for 2010, but now they're ashamed of it and they don't have money to a full adaptation. What I don't really understand is Spanish Ombudsman position, but it doesn't really matter.

These days there is some buzz in Spain around a new law for eGovernment.

We already have a law from 2007 that is violated by the own Public Service.

Tuesday, January 6, 2015

What recruiters taught me about looking for a job

There are good recruiters. And there are bad recruiters. The good ones help you to find a job. The bad ones teach you how to look for a job.

If you are looking for a job, be sure to do just the opposite of what the bad ones do.

Almost every other day I receive an email offering me a position.

"Good for you". 

No, bad for me.

Most of the emails come from people I haven't spoken to. They don't know if I'm looking for a new job. They got my email and an old version of my CV somewhere. They match keywords on the profile with my CV and if there is something in common they send the email. They send the same message to dozens, (or hundreds) of recipients. They mix profiles in London with other roles in Manchester (or even Australia). They mix graduates/junior roles with senior. The profile include the typical keywords "competitive salary" "agile" "cutting edge"

I try to reply to them, sometimes with a canned response.

But 95% of those contacts are not relevant. It's time reading and time replying (even a canned response). They are OK when in search mode (last March I was going to be made redundant and I wanted maximum exposure). But when not in active search, my skills are in demand, and I won't usually consider those contacts even with pretty high salaries.

So for me what are the really tempting contacts? The ones that try to establish a relationship, that try to understand who am I, what can I provide, why I'm interesting. Sometimes they invite for coffee to understand what I'm looking for. Sometimes you see accesses to the LinkedIn profile and then a carefully crafted email. Sometimes they connect through my Stackoverflow profile and then a contact explaining what they like. And the better response rate is when it's a friend the one who try to convince you to go to her company.

So what does teach me about looking for a job/applying?

Now, when I really want a job, I put myself on the recipient's role. What if it receives dozens of emails? How is she going to know that I'm the perfect fit?

Some obvious tips:


  1. You can contact a company with a cold email (as in without role/offer), but with nothing else you won't get any reply. Even if you send to thousands recipients, you probably won't get any response. The typical "I've sent dozens of CVs" is bogus.
  2. Either when cold email OR when replying to a specific role, research the company and try to understand what you can provide to that company, what is the company's culture, and carefully craft either the letter or the CV (or both)
  3. Try to understand profiles, not if you match some/all of the requirements. Once you've understood the profile, apply with a cover letter matching your profile to the requirements.
  4. If in search mode, the previous apply when contacting final companies. When contacting recruiters, put in your CV as much keywords/technologies as you've used (even if obvious to your profile or if the contact with that technology was minimal).
  5. The better jobs are the ones your friends look for you. LinkedIn connections are not friends.

Yeah, it's lots of work. But I think it really pays off.


Friday, January 2, 2015

Developers are from Mars, users from Venus

From 2008 to 2012, I was the project manager of a project with very special users. The kind of project was in the field of digital signature for the Spanish Government. I was in charge not only of acting as a Product Owner (determine features and priorities), but also provided telephone support (second point of contact, that in fact used to be first). The main group of users where well-educated, high-ranked with lots of responsibility in their own field, but non-technical. There were also personal assistants for the previous group, but it wasn't a different group in terms of behavior towards technology.
I remember that apparently trivial questions could pose a challenge. Many people didn't know what a browser is, let alone there were different ones. 
I remember that digital signature at that time was a challenge (install Java, install a certificate, provide appropriate permissions for an applet). Something would fail, and you didn't know what. You would have to debug the process. The other problem for the users would be speed. 
However, as developers it was difficult not to focus in a different set of features, and not try to improve the existing issues.
At that time I started to perceive the radically different world-views between developers and users. I started to understand when my mom would get angry of me for keeping 10 open tabs while navigating, or to perceive that the AND/OR boolean logic can be quite tricky for non-techies. But I also became aware that maybe when in 2006 I was acting as part of the client team for an outsourced project, it was not a bad provider what time after time would deliver a different thing from what we (technical guys) where expecting.
Nowadays, I think communication between users and developers is of great importance. The "I'll tell you want I want when I see it" is not something to be dismissed. 
The agile approach is not a "quick and dirty hack" but a "let's understand what the user is looking for". Apart from helping managing risk.