How do you interview and hire a developer?

I want to improve my process for hiring developers. I’m looking for any advice on the following:

  • Preferred places to find a developer (odesk, local, forums, etc.)
  • How you write your job ad
  • How you screen applicants
  • Your interview process, key questions to ask
  • Red flags to avoid

Thanks!

I wrote this article about interviews. Might help.
http://www.benfranklinlabs.com/how-to-interview-developers/

There are a gazillion how to hire developer articles out there so I’ll not rehash, but a few of my own favourites.

  • Where to find. If looking for remote dev’s then things like oDesk/forums/Stack Overflow etc fine. If you have office and want on premise then you may unfortunately have to use recruitment ‘consultants’ to get enough numbers (at least in UK)

  • Job Ad - do it different from what a big corp’s HR dept would do - be human. Thats your advantage so work with it. You (probably) can’t offer the same defined career path that a big corp can so emphasise what you can offer - interesting tech/flexible working/variety of roles/free of bullsh!t - think about all the reasons why you left big-corp-world.

  • Screen - After initial purge of CV’s organise a 10 minute phone call. No hard q’s just a chat. That will easily and quickly eliminate 3/4 of the shortlist (either they won’t be interested in you or you in them).

  • Interview - give them a coding test. Start with a 5 minute one something as simple as “Here’s a laptop with <tool of your choice> installed - can you write Fizz Buzz please?”. (And give them some peace do it - no one can type with someone looking over their shoulder!) You will be appalled at how many ‘experienced programmers’ fail utterly at this. I had one candidate with “Senior Development Lead” experience produce something that had 30+ lines (c#) was utterly unreadable and didn’t work. http://blog.codinghorror.com/why-cant-programmers-program/

Now you’re down to 1 candidate and they just accepted a job somewhere else so you can start all over again…

3 Likes

Being a developer myself what I’m looking for in other developers when hiring them is not only a knowledge on particular frameworks, APIs, etc. What I’m for is the understanding on how things work internally.

Usually great developers are interested in the internals, implementations, etc.

One of the questions I ask is how internet works - from the browser to the server, a good developer should know that there’s a lot of things involved like DNS, HTTP, TCP/IP, etc.

I assume from someone non technical it might be hard to asses this knowledge. But you can always ask someone to help you out?

A good indicator is also if a developer uses or builds tools to use for specific cases - good developers automate things. If someone repeats the same mundane task every time he’s not a good developer. Best developers are lazy :wink:

I totally agree you should ask them to code something on site - Fizz Buzz is a good test (maybe a bit too easy, don’t judge anyone only on it).

Start with your personal network. Do you know any developers you admire from previous jobs? Ask your friends/colleagues for their tips too. You’ll get much better candidates this way than by advertising and interviewing or going through recruitment agents.

This approach works well for your first couple of employees. It doesn’t scale though.

FizzBuzz - I agree its easy (though it will trip up a frightening number) but its a real quick one to start with - if they pass that warm up test then move on to something harder. If not you’ve saved you both time.

I think it depends a little on if you’re hiring full time or part time, you didn’t really say.

For me, I’m not big on tests and tricks in general, but especially for bootstrappers hiring their first full time dev (or a long term part time). There’s so much more to your first developer than pure coding skill. They’ll probably be asked to do a lot of things like be very active in support for instance with customers that have bugs, etc.

Hiring for fit is as important as the pure technical skill.

On the technical skill front, these days generally speaking I’d want to see a fair amount of open source work. I realize not all devs contribute to open source, but the thing is if you hire one that has you don’t need any tricky tests. You can just sit there and read their actual code of things they actually worked on. That’s something no test will give you really.

You also get to see how they work with people on issues or discussions in the community, etc. For a bigger company it may not be practical to make that a criteria, but for a bootstrapper hiring your first there’s enough people out there doing it that I think it’s a good strategy.

For those who may not be aware, we’ve done it 3 times now and it’s worked out really well. We have a great dev team.

4 Likes

Sure fit and wider skills are important (who hasn’t met a coding wizard who just wound up everyone around them?) but if you’re hiring a developer then surely their primary responsibility is to, ya know, code? The FizzBuzz thing is just a low bar to quickly strip out the numpties.

Forums etc - great point. Things like stackoverflow can be good for those with no OSS contributions.

“Test and tricks” - Don’t want anyone to think I would ask questions about moving mountains or the geometry of manhole covers! :wink:

All great tips guys, thanks!

I didn’t share specifics to my situation because I thought it would make for a better thread to keep it general (and I think it has).

One thing I always look for, in any position, but especially developers, is communication skills. They have to be able to explain what they’re coding. I’m not a complete non-coder, but I’m no database wizard either. They have to break it down in terms I can understand, and make decisions on.

One question I usually ask (and it’s amazing how many devs ignore this one) is:

Tell me about 1 recent project and describe what your role was, the problem/requirement, and how you solved it.

Then I ask the same thing during an interview call.

Curious to know if you guys have any other questions, or processes, like that…

1 Like

Looked at the FizzBuzz, I don’t get it :slight_smile: I’m not sure how that would help you hire someone for actual web development type tasks but hey, it’s not my thing.

In a big company where you have a very specific responsibility then tests that check someones abilities in that specific area make more sense to me. Our devs do all kinds of things from support, to UI, front end, back end, etc. I’d hate to miss a really great person because they failed a tricky looping thingy.

Brian, I don’t have standard questions really but I do look for them to be detail oriented. Did you send me a generic Word doc resume? Is this cover letter/email obviously generic? Did they take the time to research UserScape and integrate that into what they send me, etc. To me that’s my FizzBuzz test. If you can’t customize your cover letter, can’t be bothered with a proper resume or portfolio site, then you’re probably not going to be right for our small business environment.

1 Like

As a dev I didn’t find the FizzBuzz test described in coding horror’s article to be tricky. One can definitely come up with “gotcha” questions, but this is not one of them. To put in context it is only a tiny bit more complex than putting a light grey background on every other row of an HTML table. If your would-be web developer takes a long time to figure that out they are going to be a drag on your dev efforts, not a force.

Of course their open source contributions make a FizzBuzz test unnecessary.

2 Likes

Exactly, just look at what someone has actually done not try and guess through tests in no way related to their job. Seems like a big ego thing to me and not a practical way to see if someone is a good fit for your business.

Also, it ignores the idea that I’d much rather have someone really excited to be on the team and a very good programmer over someone who’s like meh, but a super all-start programmer. That’s not even close, especially in a small biz. Meh is deadly.

1 Like

I never heard of FizzBuzz before this thread :blush:

Ya the generic responses to developer job ads filters out about 95% of them off the top. I usually word my ad as “Send me 3 (only 3!) examples of recent projects” …yet they still come back with a list of 30 sites, with no description. Not helpful. Delete.

Great point on those who take the time to research me/my company and tailor their response accordingly. I’ll look for that.

FizzBuzz became a big deal a few years ago, when this meme started: Most programmers are idiots who couldn’t write a simple for loop.

Since then, it has become accepted wisdom, though I find it hard to believe. My guess is, it makes a certain category of programmers feel very smug. “Haha. I am better than them.”

@ian like the suggestion about looking for open source projects. I have only once hired a programmer, and I looked at the overall professionalism. People who showed attitude, gave me short terse replies, or dumped 300 irrelevant projects on me, were all rejected. At the end, only one person was left, and he turned out to be quite good.

Have you checked out https://weworkremotely.com? Attracting quite a lot of buzz in the developer community.

1 Like

Also http://www.authenticjobs.com gets well shared to the development community via twitter to give you some reach.

1 Like

We found someone (not a developer) via the 37sigs board there weworkremotely. Not bad.

I think it critically depends on what type of developer you are hiring. If you asked me to solve FizzBuzz, for instance, you’ve just indicated to me that you’re not what I’m looking for. If you just want someone to drive a keyboard then perhaps that’s ok.

This is the most important article I’ve ever read on hiring a developer:

The Number One Trait of a Great Developer
http://tammersaleh.com/posts/the-number-one-trait-of-a-great-developer/

1 Like

Thanks for sharing, this is a great pointer for someone considering hiring a developer. Totally agree that you want to look for a pragmatic programmer.