Technical Interviews 2.0

Saturday, November 16th, 2013

It's no secret that technical interviews are tough to get right. They're draining on the candidate and are a notoriously difficult way to assess a person's technical qualifications. Over the last 8 years I've been heavily involved in the interviewing processes at a number of different companies. I've given over 250 interviews, served on several hiring committees, and screened countless resumes.

After a while I started to realize that many great candidates were incorrectly discarded by the process, while many less than stellar candidates were managing to get through. If technical interviews are a key discriminator for the hiring process, they do not appear to be very effective.

Let's Try Something New

The following process is far from perfect, but I believe it has merit. I've written this post to solicit feedback from readers, so let me know what you think — particularly if you feel this is way off base or have encountered some of this in other interview processes.

I believe this process is more accurate, effective, and comprehensive than several current methods, and I have used this process a few times and received positive feedback (both from hiring committees and candidates).





Let's assume that you've already identified a promising candidate and have invited them on-site to interview.





Session One — Behavioral Assessment

The interview day begins with a one hour behavioral session with a relevant team member. The goal of this session is to gauge the candidate's past behavior and use it as an indicator of potential future behavior.

The candidate should be asked probing questions about past challenges, situations, and decisions. The interviewer should request specifics about the candidate's role in the situation, what the candidate did, how they affected the outcome, and what they learned. Pay close attention to any inconsistencies and ask for clarification.

During this type of session it is common for interviewers to jot down notes on a laptop or tablet. This can have a distancing effect, so opt for pen and paper instead. After the session is complete, the interviewer will produce a summary mail that covers the contents of the session along with distilled thoughts about the candidate's behavioral fit.





Session Two — Technical Assessment

The second session focuses on assessing the coding abilities of the candidate. Candidates are requested to supply source code, from one large project, a week before the interview date.

Several restrictions apply:

If a candidate lacks a suitable project for this session, then a project may be provided for them to study. While passionate engineers tend to work on side projects, not all engineers have the time to do so. It should not be viewed as a red flag if a candidate lacks a suitable project for this session.

During this session the candidate is asked probing questions about select portions of the code. Questions may involve design, functionality, optimization opportunities, data structures, coding style, architecture, and algorithmic analysis. The candidate should be able to speak competently about every line of code, and withstand even detailed questioning by the interviewer. A whiteboard is likely necessary during this session.

Depending upon the amount of time left in the hour, the candidate may also be asked to write alternative solutions to problems presented in the example project.

Once session is complete, the interviewer will produce a summary mail that covers the contents of the session along with distilled thoughts about the candidate's technical abilities.





Session Three — Social & Cultural Fit

The final one hour interview in this group is a lunch interview. This may be 1:1 or many:1. The goal of this section is to assess the personality fit. In similar fashion to previous sessions, the interviewer is responsible for producing a summary mail that covers the contents of the session along with thoughts about the candidate's social and cultural fit.





Session Four — Day Project

After lunch the candidate is directed to a conference room and given a 3 hour project to work on. This project must be written, compiled, and tested within the time limit. The candidate is given a clean laptop with all the necessary tools on it. The candidate is not provided Internet access, and the problem should be structured such that an online reference is unnecessary.

The candidate is advised to spend at least 30 minutes designing the solution, and to leave at least 30 minutes after completion for testing and debugging. A proctor is available during the first two hours of this session to answer questions.

This session tests the candidate's execution abilities. The assigned project should be difficult enough to flex the candidate and stress multiple areas of understanding. Top candidates should be able to complete the project (plus optimizations), but should require the full three hours to do so.





Session Five — Communication Assessment

Once the three hours are over, the candidate is asked to present their solution and results to a small group of engineers. The presentation will last 20 minutes, followed by 20 minutes of questions from the audience. If the candidate did not arrive at a complete solution, they will simply present their progress.

The candidate should cover the initial problem, their solution, any problems encountered, and any other interesting items (such as novel optimizations). If the candidate completed a working solution, then the audience should be invited up to manually test the software.

This session further tests the candidate's communication skills. A crucial part of working in teams is having the ability to understand colleagues as well as convey technical information accurately.

After the session is complete, the audience members will each produce a summary mail that covers the contents of the session along with distilled thoughts about the candidate's execution, technical, communication and social abilities.





Session Six — Wrap Up

The final session is a quick wrap up between the hiring manager and the candidate. This session is dedicated to covering any questions the candidate might have about the day or the company. It is very important that candidates leave with a positive impression of the company, regardless of how they feel they performed. This session enables the interviewer to set expectations for a followup and close out the interivew day.





Hiring Committee

After each phase of the on-site interview, interviewers are expected to write up their results and deliver them to a hiring committee. This committee consists of employees who were not part of the on-site interview, and do not know the candidate personally. The hiring committee also receives all relevant information about the candidate, including letters of recommendation, the resume, and recommendation letters from existing employees at the company who know the candidate. It is then the role of the hiring committee to reach a hiring decision about the candidate.


Conclusion

The goal of a hiring process is to properly filter out inferior candidates, while selecting and hiring the most qualified ones. Unfortunately, this is a very difficult process due to a variety of factors. Some candidates simply have bad days, while others get lucky and manage to hide troubling technical or personality problems.

While the process outlined in this article undoubtedly has its flaws, I have found promise in its ability to uncover qualities or issues in a candidate that would have otherwise gone completely unnoticed with other interview processes.

Thanks for reading! Please remember that I am interested in feedback on this, so if you feel that I'm completely wrong, or spot on, please feel free to drop me a note!