Sunday, March 19, 2006


Interview Exercises

As I've risen up the ranks, more and more often I am called upon to participate in interviews. I hate this, because I am always ill-prepared. There is usually no warning—the boss pokes his head in my office and asks me if I have fifteen spare minutes, and if I do, he hands me a resumé, introduces me to the candidate, and then I'm supposed to figure out if the candidate is a good one.

I'll note that it is not just my current boss who does this to me. Of all the interviews I've participated in during the last fifteen years, there was only one that I knew about before it happened.

I've made two hiring decisions myself during my career. One of those decisions was a good one, the other was not. I'd like to get a better-than-50% good-hire rate.

I've always wanted to sit down and prepare a few good interview questions, so that I'll be more prepared in these situations. My boss has a couple of really good programming exercises he gives to each candidate. Here's what is good about them:

I like these exercises, but they do have a couple of weaknesses. First, they are specific to C++, so they can weed out people who would be good assets, but haven't had a lot of experience with that particular language. Second, they deal with low-level implementation issues, so they are good at determining whether the candidate understands how computers really work, but not very good at discovering how the candidate approaches higher-level architectural and design issues.

So, I now have a goal of creating some incisive exercises for evaluating a candidate's higher-level abilities. I want exercises where the candidate has to do real coding, and where there are ample opportunities to talk about how they think. Here are my initial ideas:

A problem with these ideas is that each one may take a lot of time. Another concern is that the candidates may not be able to use their preferred editors and programming environments, but I think any good programmer should be able to get by if offered Visual C++, Emacs, and Vi.

I don't want these exercises to be difficult. I want good candidates to breeze through them. They should be just difficult enough to catch the people who don't belong in our industry.

I remember your interview "exam" from October last year, which I attempted when I had an hour to kill at work one day. If you feel like marking the result, you can find a Makefile and C code at - it should compile under Linux (ia32) or AIX, from memory.

Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?