Interviewing for hiring is a big deal, for candidates and for employees. This repo has notes and links that help our team with interviews. This repo focuses on technical interviews for software developers, because this is what we do often.
- For the interviewer
- 3 types of questions
- Before the interview
- During the interview
- Interview advice by Microsoft's Developer Division
For the interviewer
Have a written job description listing the essential skills and experience.
Use the job description as a roadmap, and write your questions beforehand.
During the interview, be a good listener, and also take notes.
3 types of questions
Ask an open-end question, such as "Why was the project successful?" or "What would you do on a similar future project?"
Goal: the interviewer finds the top edges of the candiates capabilities.
Reason: These types of questions are complex and have a wide range of answers, so the interviewer can learn about the candidate's thought process. The interviewer may push back on some of the candidate's responses, to see how the candidate responds and position.
Ask a specific question that involves surprises and opinions, such as "What surprises you about …?" or "What is a perspective that you have, that is different from most people?"
Goal: the interviewer discovers what insights the candidate gained from previous positions.
Reason: The framing is meant to encourage insightful thought and discussion, and to get away from a candidate providing rehearsed answers. The purpose is to help the candidate think from a unique perspective.
Ask a project-oriented team-oriented question, such as "How do you work as a team on projects, to plan them and build them?" or "When you need to make an important decision, how do you do it?"
Goal: the interviewer learns how the candidate works on a team.
Reason: The framing is meant to encourage discussion of teamwork, planning, and long term work together.
Ask a follow-up question if you like:
Goal: the interview gains more in-depth answers.
- "Can you tell me more about X?"
- "Why did you choose X?"
- "What steps did you take to make X happen?"
- "What speciﬁc things did X accomplish?"
Before the interview
Before the interview, send the candidate a warm, friendly email message.
- Contact information for the interviewer liason and the company.
- The interview date, time, duration, place, and map directions.
- Prepartion instructions, such as what to prepare, expect, and know.
See our file interviewing-example-email.txt
During the interview
Welcome the candidate.
- Offer water, tea, coffee, etc.
- Invite them to use the restroom if they want.
- Show them to the interview room.
Get the candidate comfortable by by starting with pleasantries.
- Such as "Were our directions okay?" and "How's your morning going?".
- Describe the general plan for the interview process.
- Ask them if they need anything before starting.
Interview advice by Microsoft's Developer Division
Share the interview in advance
To start with, we let the candidate know a few days in advance what the interview day will look like and what problem we’ll be working on. We give them time to do their own research and to think about it. It’s not like going into work every day is a surprise, so why should an interview be?
Use a real problem
We run through a real problem the team is trying to solve — improving satisfaction, increasing retention, boosting usage of a service or feature. The fact that it’s a real problem that we’re working on helps foster a collaborative conversation.
Give access to data
We give the candidate access to the same information we’re working from, and during the interview they are free to search the internet or ask for more data. We often supply the candidate with our customer research, usage data, designs and mock-ups — most everything we have.
Make it interactive
We make the interviews interactive. We’re not asking you questions. We have a problem to solve together, so let’s work the way we’ll work when you’re here and we’re working on this particular problem.
Follow a single scenario
We follow a single scenario/problem throughout the day and take the candidate on a similar journey that PMs go through starting with the customer or business problem, understanding the customer’s job-to-be-done, designing the solution, bringing the solution into customer hands and ultimately getting them to use and love it. Each interview focuses on a different phase of the process.
We pair interviewers up. Rather than having one-to-one interviews, we bring two people from the team into each interview. Our original motive was to train more interviewers, but having two people in the room had other benefits. Not only was the conversation more dynamic with multiple collaborators, it also gave us an opportunity to hear multiple perspectives on the same conversation. Not everyone hears conversations the same way, so it gave us a way to place a check on unconscious bias in the same conversation.
Hold feedback until the end
We hold feedback between interviewers till the end of the day. We wanted each interviewer to judge the candidate based on the merits of their conversation alone — and not the opinion of interviewers who came before them. We tell interviewers not to signal to others whether they were leaning toward recommending we hire someone or not. They hand off the candidate to the next interviewer set and give a summary of what we’d learned in the previous session. At the end of the day everyone simultaneously makes their recommendation and explains a bit about what they saw/heard that led to that conclusion.
Give feedback on the process too
At the end of each interview loop, we not only discuss what we learned in our time with the candidate, but what worked or didn’t work in the process. We feed that back into the process so it gets better.
- How to interview candidates effectively
- The Right Way To Interview A Job Candidate
- Rethinking how we interview in Microsoft’s Developer Division