What makes a good Developer?

What makes a good Developer?

How do you know if a developer is good?

Answer: you have to watch them code. (Whiteboard or laptop is fine; your choice.) Decide as a team how much syntax matters, and remain consistent.

For coding questions, try to find those that have multiple correct answers with varying levels of optimisation. These questions help you get a feel for his problem solving and coding skills, as well as what it’s like to work with him, even if he doesn’t get the optimal solution.

  • Encourage your candidate to talk, ask questions and share his thought process.
  • Try testing your candidates in context by providing a real task.
  • Try having him/her code an open source commit. Even if he doesn’t get the job, he will likely feel good about producing a valuable piece of real work.
  • If your team pair program, the candidate should pair program during the interview process.
  • Ask him to fix some broken code to better understand his ability to check code and detect bugs.

Testing developers before the interview

A lot of companies ask their developer candidates to work on a task or small application prior to the interview. It can be a great way to see how they tackle a relevant problem and you can extend this code as part of the in-house interview.

Beware: giving candidates tasks that are too onerous or take too long to complete will mean that they simply don’t do it and drop out of your interview process. And as a rule of thumb, if the candidate has been directly sourced or is a referral that a team member has worked with directly, a test like this will only slow the process.

However, if the candidate applied directly and you’re unsure of quality, the test will give you a great read on their ability.

There are a number of software solutions that you may find useful – although they can be limited in their effectiveness.  For example Codility is a stand alone product that will generate a report on code quality and skill level – although in the past I have seen the hiring engineering teams dispute the results. Another option is Prehash which allows you to get a quick read of developer skill in response to a given problem. It’s lightweight and may produce better results.

Ultimately though, a software solution is no substitute for getting one of your team to  do a phone interview. If you have the time, have the candidate code with you in a free app like Collabedit – which benefits from automated markup based on the language used.

Additional resources:

Hacker Rank

Hackajob

Top Coder

Code Jam

Code Chef

Code Forces

Hacking a Google Interview: Mastering Programming Interview Questions

StackOverflow – algorithms questions