Interviewing Software Engineers

February 19, 2009

In the course of my work, I do a lot of interviews for software engineers (over 100 over the past couple of years).  My experience interviewing candidates and talking with the other interviewers while we are trying to make a decision has given me some insight into some common interviewing problems, and how to make the process run more smoothly for all parties involved.

I think it’s most important to interview for fundamentals. If someone understands what’s going on when they pass by reference vs value in C++, or why to different types of strings in Java, and why some algorithms are fundamentally better at solving problems than others, then they are well positioned to tackle any type of engineering problem that comes their way with competence (I’m speaking to writing the code, not designing systems).

The main problem I’ve seen with interviewers is asking a domain specific question. Unless you are hiring an engineer for a very specific job, like a contract or something similar, you very well may end up with an engineer that can recite the internals of Tomcat servlets, but uses O(n^2) algorithms without batting an eye.  This person may be able to do the job that you’ve hired them for, but they probably won’t do it well if the job description deviates at all from what it was originally.

As far as interviewing techniques that I use?  I have a set of questions that I ask all my candidates (with some differences for C++ and Java based candidates).  This allows me to accurately gauge the responses I get between candidates.  I also don’t use any ‘trick’ questions, or try to sabotage the candidates interview process in any way.  I want to get as clear a picture of what the candidate is capable of, not how well they react under stress or during a confrontation (I’ve unfortunately seen this happen).

I won’t go into details about what questions I ask, but I will say that I try to start off easy and put the canididate at ease before we start on the whiteboard portion of the interview.  I also ask a couple of easy whiteboard questions to make sure the candidate ready for the harder questions.


Follow

Get every new post delivered to your Inbox.