How to Build Your Interview Process
In this post, I will outline processes that I believe will enhance your interviewing procedures. This is based on 20 years of experience, 10 of which have been in leadership roles involving interviewing.
Keep it Short
Unless you are Google or Amazon, candidates may not be specifically eager to work for you, so let's not pretend this is a prestigious opportunity. They are likely interviewing at other places. If your process takes two months to complete, any good candidate will be picked up by someone else who isn't overly self-important.
If you're going beyond three rounds (for a non-leadership position), you're doing it wrong. Combine stages if necessary, but don't drag this out.
Keep it Real
Discuss real problems. If you have a coding task, make it as realistic as possible and keep it generic. If you work in a niche field, focusing too much on your specific problems or unnecessary algorithms may cause you to miss out on great candidates.
Determine what you're actually testing for:
-
Can they actually code? - You can test this with a relatively simple exercise. Live coding is fine, but keep it simple and, if possible, provide a brief ahead of time.
-
System design - Have they designed systems, and can they design systems? Tailor this to the level you're interviewing for. Asking candidates to draw something they have personally worked on or to design a system for the coding task can also work. Avoid expecting candidates to figure out a new domain and produce a design in less than an hour. If you want to see how they tackle your specific problems, provide a brief ahead of time and allow preparation.
-
Communication - Can they convey their ideas and explain what they are doing? Instead of expecting them to perform to your desired level, ask questions and explore what they are doing. Interviews are high-pressure environments, and people may not behave the same as they would in a work setting.
-
Ways of working - How do they work, and do they understand agile processes? This can be a separate interview, perhaps the last stage. It can be revealing, but remember that developers often have limited input into how things are run. This stage is good for determining alignment and delving into their communication skills by asking a set of defined questions.
Keep it Consistent
Conversations are great, but they are too open to interpretation. Someone can have an off day, including the interviewer. Have a defined process, a set of questions, and a task.
This allows your interviewers to improve the process and helps people learn what to look for and what might have been missed in previous candidates.
If your process is consistent and your ranking is as consistent as possible, it removes many variables and allows for more accurate comparisons.
Train Your Interviewers
Provide the best interview training you can. Take your interviewer pool through the process and explain what you're ideally looking for at each stage. Always have two people in every technical stage and strive for diversity.
When someone new joins the process, ensure they participate in interviews with someone experienced. If two interviewers appear unprepared, it reflects poorly on you. Remember, the interview process is two-way.
Developers are often introverted, and many may not feel comfortable on either side of the interview process. Ensure support is available for team members conducting interviews.
My Current Process
We currently employ a three or four-step process, with an additional step for more senior positions such as principal or senior engineering managers.
Round 1 - Screening
This is the screening call with the recruiter, internal or external. They have your criteria and what you're looking for. A good recruiter should filter out many ill-suited candidates at this stage.
Round 2 - Alignment (optional)
For more senior roles (e.g., principal engineer), a screening call with the hiring manager can be effective. Look for:
-
Technical alignment - Will they steer the team in a different direction?
-
Ways of working alignment - Can you align on processes?
-
Vibe check - For senior positions, ensure compatibility.
Round 2 - Technical Challenge
Technical test - We provide a basic coding exercise and a brief ahead of time so candidates aren't unprepared. Here, you're looking for:
-
Can they actually code?
-
Can they justify implementation details?
-
Do they understand how to write tests?
-
Can they explain what they're doing? - This is important in the age of AI.
-
For more senior roles, this could include whiteboarding. Expand the scope to infrastructure and hosting.
Round 4 - Ways of Working
Ways of working interview - How they approach their work. For a developer, you're looking for:
-
Are they self-sufficient, or do they need guidance?
-
What is their definition of done?
-
Experience with Infrastructure as Code (IaC)?
-
Familiarity with agile processes?
For a lead/engineering manager, additionally look for:
-
How do they collaborate with other leads?
-
Do they know how to work with a product manager?
-
How do they manage priorities and deadlines?
-
Conflict resolution skills?
If you haven't done whiteboarding earlier, this is a good time for a session. Either provide a well-structured problem statement or have them whiteboard something they've worked on.
-
Can they actually do it?
-
How well do they convey information?
-
Can they justify their choices?
-
Did they consider alternatives?
-
Have they handled failure states?