Interview with the Programmer
It is hard to hire a good programmer. There are many interview approaches that help choose the best candidate. Here are three I find particularly interesting:
"Tell me about your project and I'll tell you who you are..."
In this simulated interview, Shawn McGrath discusses his custom antialiaser implementation with Casey Muratori. Casey assumes the role of a curious engineer, asking questions about Shawn's solution. This method unveils the depth of the candidate's thinking when confronted with complex problems. Unlike basic algorithmic challenges, this approach provides insight how programmer handles real-world projects.
"Found this bug. What could have caused it?"
Hussein Nasser discusses his favorite interview approach, which starts with outlining a general system (e.g., database, webserver, reverse proxy, load balancer, frontend app) and reporting a specific issue (e.g., UI freezing for about a minute after clicking a button). He then asks a candidate how he would debug the problem. This open-ended question encourages interviewee to discuss the parts of the system he is most interested in, naturally revealing his strengths and passions. Hussein notes that he has never received the same answer twice.
"Here's the source code. Add some feature..."
In this interview, the programmer is given the task of adding support for the atomic mult command to the Memcached system. This hands-on assignment is designed to identify pragmatic programmers who are comfortable working with unfamiliar source code and ready to tackle the task with a practical, sleeves-rolled-up approach.