Asking the right questions during a technical interview allows you to tell good candidates from mediocre ones effectively. The answers to your questions should provide you with just enough information to make a sound hiring decision.
The questions also tell the candidate about the kind of technical leadership you have in your organization, because an experienced tech leader will ask relevant and well-crafted questions to probe the skills of the candidate.
What questions to avoid?
You can find many technical interview questions on the internet. Not all are suitable for your use. In particular avoid the following:
- Very common questions, it is highly likely the candidate is well-prepared for these.
- Long questions, take a long time to explain.
- Irrelevant questions.
- Vague questions.
- Brain teasers. A brain teaser is fine for behavorial interview, but terrible for technical interview.
The following types of questions are fine, but they should not form the bulk of your list:
- Open-ended questions, test the candidate of his critical thinking skill.
- Creativity questions, require the candidate to think out of the box.
- Questions that require deep domain knowledge.
Given the time limit of an interview, you can only ask a limited number of questions. If the questions asked are too basic, you can’t check the depth of the candidate’s knowledge. If too specific, you can’t tell the breadth of the candidate’s knowledge.
Asking overly specialized questions also has a drawback: if the candidate fails to answer some, it does not rule him out as a qualified candidate. Because even a subject-matter expert may not memorize every fact about his subject.
I suggest using a special type of questions called progressive questions for technical assessment. This type of questions balances the needs to test for basic and advanced understanding of a technical subject.
A progressive question is a series of small questions with incremental difficulty.
Daniel Miessler, an information security professional from San Francisco Bay Area also recommended this method for setting technical interview questions. He called it the onion model. In the guide below we will use progressive test questions.
Preparing technical interview questions
Assuming you are a hiring manager / interviewer preparing for a technical interview for an opening. You must have some idea what kind of skill-sets and level of experience you are looking for from the candidate. Usually these are given in the job description.
Step 1: find questions relevant to the job opening
This article is not about setting coding test questions. We will explore coding test questions in another article.
Here we discuss about the questions the interviewer asks during a panel interview or a phone screening. There are two types of these questions:
- general questions: for assessment of soft skills, e.g. can the candidate communicate technical concepts well?
- skill-related questions: for assessment of technical skills, e.g. does the candidate know a specific technique in a programming language?
The second type of questions are further categorized by the type of opening. Here are my handpicked technical interview questions for each tech role:
- Frontend Developer
- Backend Developer
- DevOps Engineer
- Mobile App Developer
- Data Scientist
- CTO, VP of Engineering
- Full-stack Developer (use a mix of 1/3 Frontend + 1/3 Backend + 1/3 DevOps questions, please check the respective lists above)
If you are not a technical person, you should involve a senior member of your technical team in preparing the list of questions and some sample answers. Most of these questions are available online on GitHub, GitHubGist, Glassdoor and Stackoverflow, some were crafted by me exclusively for my companies.
After selecting the questions, group them by skill area, sort them by ascending difficulty. Have you covered all the skills the position require?
Step 2: walk through the questions
Wear the shoes of the interviewee. See if each question is well-phrased, relevant to the job opening. Answer the questions yourself.
How would the interviewee answer it? Does he require more information? What does it mean if the interviewee can answer / cannot answer it / can answer it only with some help from the interviewer?
How would an inexperienced /experienced / highly experienced candidate answer the question? Can your own tech team members answer the question?
What does it imply if the interviewee makes no attempt to ask for more information when answering it? Will the questions potentially lead to an interesting, revealing discussion?
By going through these questions at least once before using them in a technical interview, you will know how to lead the conversation during the interview and interpret the responses from the candidate.
Step 3: save them in a list and share it with all interviewers
It is advisable to keep the questions in an online document, so that all interviewers will have access to them.
I have experienced the long hiring flow of a big tech company where the interviewers in different phases asked me the same interview questions twice. That gave the candidates subtle hints how the coordination in the company looks like.
Finally, do update the questions in the list from time to time, if
- some questions do not work well for you, or
- there is a change in the tech stack or a change in the job scope, or
- the existing questions are outdated or leaked.
To learn how to conduct an actual technical interview, sign up for the email course. I will show you how to select the screening methods most suitable to your company to form the funnel of the recruitment pipeline.