Interview with the Programmer
Hiring a good programmer is challenging. While there are many interview methods to identify the best candidates, here are a few of my favourites:
"Tell me about your project, and I'll tell you who you are..."
In this simulated interview, Shawn McGrath discusses his custom anti-aliasing implementation with Casey Muratori. Casey assumes the role of a curious engineer, asking questions about Shawn's solution. This method reveals the depth of the candidate's thinking when confronted with complex problems. Unlike basic algorithmic challenges, this approach provides insight into 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, web server, 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 they would debug the problem. This open-ended question encourages interviewee to discuss the parts of the system they are 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 asked to add a support for the atomic mult command to the Memcached library. 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.