This blog entry was a good write-up of many of the hiring practices I believe in too, and that I summarized in my previous post on people; and how they do make a massive difference in the outcomes of a technology company – no matter how good (or bad) the underlying technology.
A couple of points worth making:
I find it incredibly valuable to ask candidates who pass the phone screen to write a complete working code solution to a simple question: this may be a super-simple REST API implementation, or a utility tool of some sort.
The main attributes I look for in their responses are:
- code clarity – reading their code, can I figure out what algorithm are they using and are they the “hack it now, solve it later” type?
- consistent styling – there are many style guides out there (we prefer Sun’s for Java, and Google for pretty much everything else), but no matter what they use (hey, I’ll even take Microsoft’s C++ style, if I really have to) the key point is: are the artifacts laid down in a consistent and easy-to-follow manner?
- algorithmic ability – in other words, is the solution efficient and displays a good understanding of the underlying problem? (a good choice of appropriate data structures matters here, too)
- familiarity with third-party libraries – whilst not as important a pre-requisite, someone who demonstrates they know (and know how to use) existing, widely-used, third-party libraries, shows us that they are indeed at a higher level of expertise than someone who tries (probably, clumsily) to re-implement everything.
The advantage of asking candidates to complete the assignment in the comfort of their home, using their own laptop and choice of IDE and programming language, is that it most closely reflects “normal” working conditions and allows us to see what their work would be like.
Also, we only want to work with people who really want to be part of the team: not just someone looking for a job – if they can’t scrounge together a couple of hours (or, even less) in order to make a good impression, then why should we invest four hours or more of our time meeting them in person?
No jerks, sure – but no passengers, either.
Obviously, no one wants to work with jerks – so the first point is kinda redundant.
However, in a startup, it’s equally important (if a bit less so) not to hire “passengers” either.
What do I mean by a “passenger”?
Well, exactly that: someone who never takes a lead, lacks enthusiasm and just sits there and waits to see where the others will take him, what the journey looks like and, occasionally, will just complain that she doesn’t like the scenery – but will never advance an opinion or make a positive contribution to changing it.
These are the kind of guys that can never get their job done because “the API is not quite right;” or “the backend guys haven’t finished feature X yet;” or “Joe was supposed to tell me how the Scheduler works” – and are forever in meetings, scrums, design reviews sitting there quietly and never advancing a suggestion, an idea, a proposal to do something new or different – no matter how dumb or outlandish; but, something, really, please?
And this one is a really tough one to spot in an interview setting: being a borderline introvert myself, I am extremely wary of respecting the “quiet types,” in making sure that people can relax and feel comfortable until they can “open up” and the true exchange of ideas can happen; figuring out an introvert person who feels overwhelmed in an interview setting from someone who really has nothing to offer intellectually, that one is the greatest challenge.
Luckily – jerks are much easier to spot!
 No point in beating a dead horse: if the person can’t even get past a 30 min general chat about their current role and general interest in technology, then it’s probably best to end it there and then
 Obvious it may be, and yet I never cease to be amazed by how many “brilliant jerks” get hired, mostly by more senior, less technically-savvy executives, who either fail to spot the jerkiness or, more likely, don’t much care as they know they won’t be the ones to deal with the jerks.
 At the risk of sounding a pompous windbag myself, I have found that sometimes people are intimidated by the “VP title” – that one does add another hurdle towards making feel introverted people at ease during the interview process.