How to Interview Candidates for Software Jobs

Everyone has been to Interviews. You can expect to be grilled on various topics – thats a given.
Most interviews I’ve seen tend to send you through 4-6 different people – 1 by 1, as a panel, or paired up. There’s the Technical interview, the Culture fit, and some Q&A time at the end (sometimes the beginning).

However, have you ever thought how effective your interview team actually was at determining good fit for the job? How many times have you answered the same question? Does the team actually have a plan or do they just do their own “mini interviews”? If you are interviewing a candidate for a Software related position, heres some things that you really need to consider:

First, the most important thing you have to determine is:  How well the candidate can actually write code.

The best way to do that is to make them WRITE code. Give them a simple question that any Software Engineer can solve quickly. Ask them to write the code on paper. It doesn’t need to be perfect. You aren’t looking for syntax – thats why IDEs exist.  For example:

  • Count the number of a ‘*’ characters in a string
  • Reverse a string
  • Find the max value in an array

If they can’t write simple code, move onto the next candidate. That simple.

The second thing you need to determine is: Do you want to work with this person, everyday?

  • This is the culture fit most people encounter and is the hardest part of your job. Everyone does this differently, whether its taking them out to lunch or discussing interests outside of the job
  • Software engineers encounter new APIs or Products every single day. Its your job to determine how a candidate deals with learning new technology. Ask them how they learned something on their resume.

The last thing you want is a candidate who can’t do their own research or needs constant guidance.

Third, Do not ask brain teasers or pointless questions. Why? Because they really are useless & wastes time.

  • Anything that involves knowing a formula or some weird piece of information to solve the problem is not going to get you any useful information.
  • Brain teasers can be answered if you’ve seen the question before, which reveals nothing about your candidate.

Lastly, you need a way to separate the GOOD candidates from the BEST.

  • For experienced Software Engineers, I like to present the candidate with a small code snippet and have them walk me through it. I’m looking to hear how the code works, what the output is, and the execution order on the code.

Being able to explain OTHER people’s code is a great indicator of a good Software Engineer.

I would love to hear your thoughts on interview tactics – what works? what doesn’t?