September 29, 2009

Software Developer Job Interviews

At my job I have the interesting job of interviewing potential software developers. First of all it's much better to be on the interviewer side of the equation, but even then I see some pretty interesting things.

Some candidates that I've seen just seem so far off the mark, that it isn't even funny. I know that software developers have some very strong (and generally accurate) stereotypes about them, but sometimes I just have to laugh. I assume that when people are interviewing, that they put their best face forward. So when I see someone that is severely lacking in communication skills or that can't seem to think through a basic story problem I get concerned.

For hiring software developers, I generally look for two main things. First is technical experience and knowledge. The candidates I hire need to have a respectable 4 year degree in Computer Science and/or years of on the job experience. Of course a lot of this depends on the level of candidate I'm looking for, but there has to be something. Much of this technical background can be gleaned from a resume, unlike the second thing I look for: communication skills.

Like I said before, I know that there are many well deserved stereotypes about software developers, and one of them is lack of communication skills. But even between developers there can be a huge difference in this area. Some people that I have interviewed (and sometimes worked with) can't even communicate well with other techies. They speak in a language that is all their own, that others can barely understand.

If someone passes the smoke test for both of these items after a brief phone interview, then I will generally consider a face-to-face interview. One thing that I like to use during an interview is word problems or Puzzles. These help me to get some insight into how people think, communicate, and even respond to pressure. And it's not all about getting the correct answer, although that helps.

Some other resources that I have found to be useful both as an interviewer and interviewee is Programming Interviews Exposed. It isn't a magic bullet, but it has helped me as an interviewer to get a different view on things. Some of the ideas they present are a little extreme, but still provide some insight.

1 comment:

Mike said...

One big thing that I've added to my interviewing bag of tricks is to make the interviewee actually write some simple code on paper. Am I looking for perfect syntax? Absolutely not. But this can expose problem solving skills and what kind of code I could expect to see.

Another related activity is code reading and debugging. "Here's what this code is supposed to do. Make sure that it does it and that you can maintain it easily afterwords." It is silly how many applicants this simple test can quickly weed out.

The other big component for me is "What do you do to keep yourself current?" If the answer is "uhhh" then that's a big red flag.