Tracy Phillips

Tracy Phillips

CodeSubmit Team

Interviewing Developers: The Complete Guide

RecruitingHiring

Want a step-by-step process for interviewing developers?

After all, your interview process is key to hiring the best candidates.

Today, you’ll learn exactly how to interview developers, along with 10 incredibly actionable expert tips for technical hiring.

Ready to get started? Read on.

Chapter 1: An overview of your hiring process
Chapter 2: Identify the right candidates (Step 1)
Chapter 3: Hold a phone screen interview (Step 2)
Chapter 4: Assess your candidates’ skills (Step 3)
Chapter 5: Subsequent interviews (Steps 4-5)
Chapter 6: Create an optimized interview process

Chapter 1: An overview of your developer hiring process

Why is it so important to have a process in place for interviewing developers?

Here’s the thing:

If you don’t have a system and structure for your interview process, you risk losing out on great technical talent.

Not only that. Your hiring process will become more expensive and employees are unlikely to stick around for a long time. For example:

  • A report by Roberth Half shows that 86% of technology leaders say it’s challenging to find IT talent.
  • The cost of a bad hire can be up to 30% of that person’s first-year salary, according to the US Department of Labor.
  • Nearly three in four employers have made a bad hire, according to a CareerBuilder survey from 2017. Companies also lost an average of $14,900 on every bad hire.
  • Organizations that don’t have a standardized interview process are five times more likely to make a bad hire than those that do, according to a 2015 Brandon Hall Group study.

Those are just a few examples. So buckle down, because this guide will show you how to fix your developer interview process mistakes.

The 5-step inbound developer interview process

Here’s what your interview process might look like:

Step 1. A candidate submits their CV and supporting material which are reviewed by an HR representative, an engineering team lead, or the CTO. (This depends on the size of your team.)

Step 2. Promising candidates are invited to an introductory phone interview (30 minutes).

Step 3. If that phone interview goes well, the candidate is invited to complete a skill assessment.

Step 4. Those candidates who did well on the assessment may move to a final phone interview with another senior member of their future team.

Step 5. Candidates are invited for a final onsite interview to discover cultural fit and to meet their future team.

5-step developer interview process
Your interview process can be short and sweet! (Efficient!)

This process can vary depending on your company.

For example, Stack Overflow holds three separate interviews after assessing a developer’s skills (an algorithm interview, an architecture interview, and a project manager interview).

After that, candidates are invited to a final manager interview. At this point, candidates might even go through a second skill assessment test.

Google, on the other hand, has one phone interview and up to four different interviews with different members of the team. The process includes skill assessment tests.

Codementor uses a 3-phase approach. As Joyce Lee, Product Manager, explains it:

“For the actual interview process, we break it down into three main sections. These are:

1) Phase 1: The introduction phase where we ask questions about previous employment and projects.

2) Phase 2: The technical stage of the interview. If the interviewer isn't a technical person, you can include a developer or project manager who is familiar with development to join the interview and evaluate the developer's skills.

3) Phase 3: The final part of the interview. Now, the developer gets to ask questions and clarify issues that might have come up during the interview.”
joyce lee codementor

Remember that your interview process should fit YOUR company and team. If you’re a smaller team, you shouldn’t create hiring processes like Google.

Setting up your own hiring process is key.

As Aviv Ben-Yosef, Tech Executive Consultant, shares:

“Your hiring strategy comprises the different tactics you can then use in your interviews. Start by crafting a hiring strategy that’s tailored to your company and its advantages. You want to create an experience that would intrigue the person who would be the best fit for your team.

For example, a B2C company looking for a product-driven engineer should touch on the market itself, client testimonials, and so on.

A B2B SaaS should aim for someone that’s got an active GitHub account with many small projects of their own. Don’t invest all your time in the interview to find out if they’re the right match. Set your process up to attract the right ones for you (and detract the others).”
aviv ben yosef

Setting goals for your interview

The goal of your interview process is obviously to find great developers (no surprise there).

But with an interview process, you have a much better chance of identifying great developers from outside your network.

Let me explain:

70% of positions are filled without a job ad having ever been posted. But as studies show, diversity is great for profitability.

If you only hire from within your employees’ network, you get a very narrow pool of candidates.

That’s why you should rely more on your inbound interview process. This way, you get candidates with completely different backgrounds and skill sets than you normally would.

But how do you ensure that you pick the RIGHT candidate?

That’s what we’ll look at in the next chapter:

Chapter 2: Identify the right candidates for your interview (Step 1)

The first step in your process is to answer this question: What are you looking for in a candidate?

Yes, you probably want to hire a great developer.

But you also want to define what language(s) the candidate should be strong in, seniority level, and other assessment criteria.

Characteristics of a successful candidate

But apart from that, what are the characteristics you want this person to have?

For example, here’s how Pinterest defines its hiring criteria:

“Our team is made up of people who are excited about the product, technical challenges, and the values important for living well-rounded lives. Ultimately we’re looking for people who will stay and be happy at Pinterest.”

Additional requirements might be to hire for diversity. For example, if your team is made up of a very homogenous talent pool, you might focus on diverse candidates. Read more about how to achieve workplace diversity here.

Josh Michielsen, Senior Software Engineer at Snyk, says:

"Firstly, you must ensure you create an interview process that is fair and equitable to a diverse set of candidates.

Amazing candidates can come from all sorts of different backgrounds and diverse groups, and it's important that you develop a process that doesn't bias towards a particular set of candidates.

Secondly, it's incredibly important that you get a good understanding of how the candidate thinks and approaches a problem.

Don't look for candidates that can solve your obscure algorithm program on a whiteboard, or solve a take home challenge perfectly. Take the time to understand why the candidate made certain decisions, and you might be surprised with what you learn!"
Josh Michielsen, Snyk

Joanna Rindell, Country Manager at Wunderdog, explains how the company selects candidates:

“When choosing software developer candidates, it’s important to consider what your business needs are as well as the cultural fit. Wunderdog is a software development consulting company and therefore, we look for developers who are interested in working with and learning different technologies.

For us, it’s also important that our team members like to engage with customers, as many of our projects involve supporting clients in finding the best technical solutions for their business problems. We also invest a lot in having a great and inclusive culture. Finding the right people who fit our team is therefore very important.”
joanna rindell wunderdog

The point is to be clear on what your requirements are before you start your process.

How to invite candidates to your interview

The next step is to invite people to your interview.

You can use this email script to send out to candidates:

“Hi [Name],

Thank you for your interest in working at [company].

We received your application for the job [job title]. We would like to invite you to a short phone interview to learn more about you and discuss the job requirements.

You will be meeting with [interviewer’s name and position]. The interview will last approximately 30 minutes, and we’re going to focus on understanding more about why you’re interested in this role, your past experience, and how we can help you achieve your career goals.

Feel free to ask any questions about our hiring process, the role, or our company by replying to this email.

Which of these options would work best for you?

[Include a few different alternative dates and times]

If these options don’t work for you, let us know your availability for next week.

We are looking forward to discussing this position with you!

Best,

[Your name]”

This is important:

Your email should always include information about what the interview process will look like. For example, mention the interviewer’s name and any other relevant information.

The reason?

Not everyone performs well under pressure. Explain the process beforehand and let candidates prep in advance. These first interviews shouldn’t be a stress test, but rather an opportunity to learn about the candidate while they learn about your company (and why they should be excited to work there!)

Chapter 3: Hold an initial phone screen interview (Step 2)

The next step is your phone screen interview.

Your phone screen interview shouldn’t last more than 30 minutes. Remember: It’s just about identifying the best candidates for the next steps.

Phone screen interview questions

These early interview questions should be introductory. They’re about establishing what the candidate wants and how that matches with your requirements. Questions you can ask include:

1. “Could you tell me a bit about yourself?”

2. “Why did you decide to apply for this position?”

3. “What are you looking for in your next job?”

4. “Describe what you do in your current/most recent role.”

5. “What was it about our company that made you decide to apply for the position?”

6. “What type of work environment do you enjoy the most?”

7. “Would you rather finish something late and perfectly, or on-time and imperfectly?”

8. “Why do you want to make a career change?”

9. “What are your salary requirements?”

10. “Do you have any questions for me?”

Best practices for the phone screen interview

Your phone interview should be short and to-the-point. By creating a great process and educating your interviewers, you empower them to create a great experience for candidates. And a good experience makes it much easier to retain the best candidates in your subsequent interview steps.

Go through your process and assess it to see what you can improve.

The interviewer should:

  • Adopt a positive tone and energy
  • Present themselves using their name and the company’s name
  • Prepare for the interview and have a good understanding of the candidates’ background
  • Communicate the company’s values and culture clearly

Lucija Zeljko, People Operations Generalist at Determ, explains how you should approach this phase:

“If there's one thing that working as a tech recruiter taught me, it's the importance of establishing trust with a prospect/candidate - and the first step in this process is simple: be honest in your interest in what they know, and what they (can) do.

You don't have to understand the intricacies of the technology someone is working with to be able to appreciate the kind of impact it can have on the world. One of the ways to show you care about their work is to be prepared for the interview. Be it a short screening call or a final interview with three other people, if you're asking a candidate if they are familiar with ".NET Java,” there's really not much reason for them to listen to what you have to say. One of the things candidates are always mentioning is recruiters asking for eg. 3+ years of experience in a framework that has existed for less time - and if you're not going to take your research seriously, why would a candidate?”
lucija zelijko mediatoolkit

That last part is crucial to crafting a positive candidate experience: Research! If the interviewer is not going to take their research seriously, then don't expect the candidate to. Interviewing is a reciprocal process!

Now that you’ve done your research and had a great initial interview, the next step is to uncover the candidate’s technical skills.

Interview tests help you to gain an understanding of what the candidate’s expectations and strengths are and determine how those work with your own expectations and needs.

Chapter 4: Assess your candidates’ skills with a coding challenge and technical interview (Step 3)

The next step is to assess your candidate’s technical skills.

This is the phase where you get a good understanding of candidates’ technical abilities. While there are a few ways to test technical skills, we recommend a take-home coding challenge.

Assessment processes to avoid

Many major tech companies use whiteboarding assignments to test their candidates.

In a whiteboard test, candidates are asked to solve a coding challenge on a whiteboard in front of the interviewers. Usually, these challenges have a set time limit, like 30 or 45 minutes.

whiteboarding challenge

But according to a recent study by North Carolina State University and Microsoft, these technical interviews aren’t great at assessing developers’ skills.

In fact, study participants who were asked to do a whiteboarding test performed half as well as those who interviewed in private!

As a result, a lot of great developers are being excluded simply because they haven’t optimized to perform in these types of high-pressure situations. (And really, why should they? How many developers are whiteboarding their code on the day-to-day? Especially in front of senior colleagues?)

And that’s not all.

The study showed that all of the women who whiteboarded with another person in the room failed, while all of those women who whiteboarded privately passed.

The study was limited, but it goes to show that public technical interviews can quickly exclude qualified candidates who simply experienced performance anxiety.

Now, a lot of major tech companies, like Facebook and Google, use whiteboarding and similar tests in their interview process.

These companies have the champagne problem of too many qualified candidates.

But most companies aren’t part of Big Tech, with multi-billion dollar revenues and the prestige, perks, and benefits that draw those qualified candidates in swarms.

In fact, most companies don’t get enough applications from top developers. They are left fighting over the remaining talent.

So if you’re not from one of the Big Tech companies, then you will need to adopt a different, strategic type of technical interviewing process to bring in the best candidates and convince them to work for you.

That’s what we’ll look at next.

About take-home coding challenges

Take-home coding challenges are coding challenges that your candidates complete at home and at their own pace.

These coding challenges test actual skills, because developers get to solve the problem in a real-life setting. Plus, developers often enjoy these types of coding challenges when done correctly, and they provide the opportunity to create a great candidate experience.

Now, you do need to follow a few best practices to create a test that accurately reflects a person’s coding skills:

  • Limit the time candidates can spend on the test: 3-4 hours is a good rule of thumb. The reason? Candidates should use about the same amount of time on their tests as they would on the job, meaning it should be completable in one setting. This rule also creates a respectful and relatively fair threshold for all candidates.
  • Create a challenge that resembles real work: If you want to get a good understanding of someone’s skills, you should create a challenge that is similar to the work that candidates would perform as part of their jobs. This also helps candidates assess if they want to work on your tasks (and you avoid hiring unmotivated employees).
  • Know your goals: Before you set up your challenge, you should know what you’re looking for. Remove anything that doesn’t support these goals.

For your assignment, choose the language and/or framework that developers will use on the job.

Or, if you don’t have specific requirements, you can do what Pinterest does and let developers code in the language of their choice.

Want to know more about take-home challenges? You can read our full developer assessment guide here.

take-home coding challenge

And if you’re looking for the right tool, CodeSubmit makes it easy to set up your take-home coding challenges. Read more about it here.

Assessing candidate results

So you’ve created an assessment and you’ve invited candidates to complete it. But how do you review your candidates after they complete and submit the test?

A good rule of thumb is to give feedback to every candidate who completes your take-home challenge.

Why? Because candidates hate when you ghost them after they spent hours on your project. Feedback can make or break your candidate experience, and constructive feedback is a great way to leave candidates with a positive view of the company even if they aren’t hired.

Providing feedback is also a good opportunity to discover how candidates talk about their work.

In the previous step, you defined your goals and needs in a potential candidate. Now it’s time to see how the candidate matches up to those goals.

Let's take a look at an example. Here’s what Pinterest looks for in their candidates:

  • Clear communication: The candidate is able to discuss the challenge with the interviewer in a logical way and ask clarifying questions when needed.
  • Attention to detail: The candidate should be able to identify and discuss the finer details of a technical challenge.
  • Optimizing the solution: The candidate should be able to talk through the problem and show how they would optimize solutions.
  • Time management: The candidate needs to keep track of time and implement their solution. (If you’re using take-home challenges with a time-limit, you don’t have to assess this separately.)
  • Code quality: The candidate should be able to write good and clean code.
  • Assumptions: The candidate can make logical assumptions and explain them.
  • Testing code: The candidate should deliver a correct and bug-free solution rather than the quickest-to-implement solution.

Chapter 5: Subsequent interviews (Steps 4-5)

The next steps are flexible, depending on what you feel you need at your company.

You could hold another phone interview to ask follow-up questions with a different team member. Or, you can jump straight to the final on-site interview (in today’s uncertain times, maybe this looks more like a team zoom call!)

Either way, the purpose of these interviews is to find that one developer who will become your new team member. To achieve this, you will need to ask the right interview questions and create a great interview setting.

Your first phone screen interview will help you get a feel for your candidates. Your technical assessment process gives you an understanding of candidates’ technical skills. Now, it’s time to dig deeper.

How to choose the right candidates

During your next rounds of interviews, your goal is to select skilled candidates.

But additionally, your candidates should work well with your team. You also want to make sure that you retain them effectively and don’t end up having to hire new employees every twelve months.

Research shows that there are two things that make a great interview process:

1) Following a structured interview process: By asking each candidate the same questions in the same order, you create a much more objective interview process that makes it easier to evaluate candidates side-by-side.

2) Asking behavioral questions: Behavioral interviews focus on a candidate’s past accomplishments as an indicator of future success. (For example, questions like “Describe a situation where you did well on X.”)

face-to-face interview

Sarah Doughty, Director of Recruitment at TalentLab, explains how she identifies great developers by focusing on accomplishments:

“The challenge with identifying development skills is that many programming languages and tools can be used for a variety of purposes, and at differing complexity levels.

The key to identifying great talent is focusing your interview questions around what the individual developer has accomplished rather than focusing on the tools or programming languages he/she/they used in the task. Knowledge of a specific programming language doesn't guarantee a great developer.

Have the developer walk you through each step of a recent software development lifecycle, explaining their specific role in each phase. Did they participate in the research phase? If so, did they have an active role in defining requirements or which use cases were considered? Did the developer mainly work on new features or bug fixes? Was the developer involved in the testing or release phases? Post-deployment, were they responsible for maintaining code?

If you are able to focus your questions around the development workflow, you will be able to quickly recognize top development talent and ensure you are hiring the right developer for the right role.”
sarah doughty talentlab

What your process should look like

You can (should) ask both behavioral and technical questions.

The important thing is this: Make sure you have a structured process in place.

For example, you might start with a phone interview where you talk through the coding challenge. This interview will focus on technical skills.

You can then schedule one or two interviews to assess if a candidate would be a good fit for the team and determine if there’s a cultural match. This is where you dig into behavioral questions.

You should also have a structure in place for how you conduct your interviews.

If they’re face-to-face, create a checklist for what the interview environment should look like. For example:

  • Hold the interview in a quiet place.
  • Specify the time each interview phase should take.
  • Inform candidates about the time and place well in advance, and tell them how to reach you if they have questions.
  • Ask interviewers to greet the candidates with a smile.
  • Ask for permission to take notes or record the interview.
  • Outline the interview objectives.
  • Ask interviewers to stick to a list of predefined questions.
  • Set up a structure for wrapping up the interview.

The same goes for virtual interviews. Have a predefined process in place with the tools and systems you use for your interview. And make sure the candidate knows how to join the interview!

How to get engaged candidates

Remember to take the time to sell the role and organization to your applicant. After all, interviews are reciprocal: you’re both assessing each other.

A good way of doing this is to use part of your second or third interview to explain exactly why a candidate should want to work at your company.

But wait… Why shouldn’t you do it upfront, during your initial phone screen interview?

The reason is simple: If you focus on selling early on, you will easily become less objective and make worse hiring decisions.

Also, try to make the process fun.

Engage candidates and ask them if there’s anyone on your team they’d like to meet.

Tell candidates why you think they are a good fit, once you are more confident that a candidate would make a good addition to your team.

Your hiring team

You shouldn’t include a lot of people in your interview process.

But the three most important people are:

  • The candidate’s potential boss (for example, an engineering team lead)
  • The candidate’s boss’ boss (CTO or CEO).
  • A senior HR person or recruiter

Whatever your hiring team looks like, remember to include technical experts in the process.

As Tatyana Tyagun, HR Generalist at Chanty, explains it:

“If you want to successfully interview developers, make sure to always have an expert in the interview room. Even the best HR experts I know aren’t technically skilled enough to keep up with the latest development technologies.

Invite your CTO and a few senior developers for the interview so that they can listen and ask the right questions. The candidate can fool an HR person but not an experienced developer, even if they don’t know their specific tech stack.”
tatyana tyagun chanty

After the interview, ask everyone on the hiring team to write down their impressions. Then, discuss your findings.

It's also important to make sure that your hiring team knows how to interview candidates in a standardized way.

Train your hiring team on effective listening.

You see, interviewers should speak as little as possible.

They should also wait for candidates to finish talking before they move on to the next question and ask clarifying questions as needed.

Questions to ask (and avoid) when interviewing developers

Interviewing developers doesn’t have to be hard. Ahmad Awais, award-winning open-source engineer and developer advocate, shares:

"Asking relevant questions from their portfolio works best.

What I like to do is ask them how will they extend one of their own projects in a way I want which relates with the work I am hiring them for. Their answers help me understand if they actually did that project and what is their technical thinking process looks like."
Ahmad Awais, open source engineer and dev advocate

And as Lucija of Determ puts it:

“I never really understood where the story behind 'interviewing developers is challenging' came from. Don't get caught up in asking too many specific questions, or better yet, asking the candidate to create entire mini-apps as an assignment - there's so much more great insight to be discovered in a simpler conversation designed to gauge a candidate's way of thinking about programming practices, paradigms, and methodology.

These conversations usually have the added benefit of exploring someone's cultural fit in the existing development team. Interviewing developers can be incredibly rewarding, once you realize how much in common you both have (the interviewee and the interviewer).

You are trying to figure out what makes someone tick, while the person across the table is always trying to understand what makes something tick. If you're an in-house recruiter, this whole process is even easier, since you have the opportunity to involve other developers in the selection process early, and who better to open up the important conversations then the people a candidate could soon be working with.”

Interview questions to avoid

What questions should you NOT ask?

The first group of interview questions you shouldn’t ask are brainteasers. These are “challenges” that companies like Google used to ask candidates to solve.

One example? Here you go:

“In a country in which people only want boys, every family continues to have children until they have a boy. If they have a girl, they have another child. If they have a boy, they stop. What is the proportion of boys to girls in the country?”

However, as Google admitted back in 2013, these types of questions are a complete waste of time. If Google doesn’t even believe in these anymore, then why should your company use them?

Other questions you should leave out are questions like “what are your weaknesses?” They don’t show how a candidate handles real situations, and they can easily be flipped and prepped for with generic and unsatisfying answers.

Also, while a cultural fit is important, it isn’t everything. People will adapt, but your job is to figure out if they will be comfortable working with your team.

The last group of questions to avoid are questions that could have legal implications. You can read more about legal issues in this article by SHRM.

Good interview questions to ask a software developer

There are two key characteristics that distinguish a good interview question:

#1: They’re open-ended
Ask open-ended questions (“What are some…” instead of “Do you like…”). That way, candidates get to reply to your interview questions in their own words.

#2: They don’t have a right or wrong answer
While it's important to have an idea of the type of answers you want to hear, you shouldn’t go into an interview with a pre-made list of acceptable answers.

Focus on the characteristics of a successful candidate rather than how close candidates come to your ideal answers.

What about specific questions to ask? These can be divided into technical and behavioral questions.

Technical questions

Jack Zmudzinski, Senior Associate at Future Processing, gives an example of what your technical interview questions could look like:

"The important thing when interviewing developers is to make sure that there is a structure to the interview, however informal your company may be. You also need to put together a structured set of open-ended questions designed to put the focus on (a) the candidate’s problem-solving skills and (b) his or her ability to correlate the developer position with the overall running and success of the brand. Some good scenario questions are:

A bug is causing havoc with the system and your manager asks for your input, where do you start? This is a very revealing question as a good developer will respond in terms of leading a solution.

You’ve completed and delivered a complex feature for a client and they say it’s not what they asked for. What’s your first step? A good developer will respond that they will begin by finding the point of disconnect and work with the client to put the issue right.

If the company is a machine, what part does the developer play? This is an interesting one as it speaks to whether the developer feels that he or she is part of a team or a standalone department.

Once you’ve finished the interviewing process, rate the shortlisted candidates between one and five points on: Skills, Experience, and Personality to help you to make a final decision."
jack zmudzinski future processing

And here’s what Anton “JD” Titov, CTO of Spiral Scout, looks for in a candidate:

“There are many things to look for when identifying the skill set of an engineer and how they will approach or critically think in order to solve a hard problem. Some of them are:

1) An engineer can describe the pros and cons and potential pitfalls for any tech tool listed in his CV. This is to help identify how deeply he understands what he has written on his resume.

2) An engineer who can express and be able to successfully speak about his understanding for both the business' goals and technical domains for a past project, which will show that he doesn't just think about one or the other and will be a great bridge between a non-technical and technical person. They will also be able to identify why the business had a specific need and be able to explain why he took a specific approach.

3) A developer can not only remember the tech he used in a past project but also the nuances for how and why it was used.

4) An engineer who is honest about their performance on past projects and explains what type of mistakes he or his team made in the past, how he would do it differently now. This can tell you a lot about how they learn and can adapt.”
anton titov spiral scout

Finally, Don Tomlinson, EVP, Technology & Strategic Operations, at Talent Plus, shares why it’s important to seek out developers who can respond to difficult situations:

“For tech professionals, “response to negativity” is so important. The potential for something to go wrong can be very high, especially in a larger release. How tech professionals respond to those instances is critical. They must be able to stay calm, keep the team going, and create solutions.

For these individuals, my favorite question is “What does the perfect release look like?  Who is involved and what is your role?” This gives me an excellent perspective on what their thought process will be through a release. Good tech professionals will also talk about the process to get to the release and the process after the release.”
don tomlinson talent plus

Behavioral questions

What do behavioral questions look like?

Some good examples are the behavioral questions Facebook uses in its interview process:

  • What were some of the best things you've built?
  • What are you proud of?
  • What were some excellent collaborations you've had?
  • Tell me about a time when you advocated for and pushed your own ideas forward despite opposition?
  • How do you like to give and receive feedback?
  • What kinds of technologies are you most excited about?
  • Why Facebook?

Your questions could include any of these, along with specific questions related to your own company.

For example, Andrew Lindberg, Senior Software Development Mentor at Exelaration, explains how he approaches behavioral interviewing:

“One of easiest missteps when recruiting for a technical position like software developer is to become overly focused on ensuring the "minimum required skills" parameters of the position are met and losing sight of the fact that hiring is fundamentally about people, not skills. Skills will change over time (especially if you hire the well), but the people you hire will likely, hopefully, stay with your organization for some time.

"What's the coolest thing you've done in the last year?" - We ask this question to invite an applicant to show off something they're both comfortable with and (hopefully) excited about. The way they approach this can speak volumes about how they perceive themselves: look for enthusiasm, confidence, and empathy. Watch out for: ego, ambivalence. Some quality candidates, especially early in their careers don't respond well to this question due to impostor syndrome. If you foresee or encounter this, you can exchange or pivot to something more direct such as "What part of your work in the past year had the most impact? On whom?"

"Tell me about a skill you learned in the last year. What were the circumstances of that learning?" - This can lead to many places, and how a candidate responds can give clues about how they understand personal growth. You might hear about technical skill growth in a very focused way (a particular language/framework or platform), or a broader way (patterns, best practices, and principles), soft skills like writing, speaking, or process refinement.

It's important as an interviewer to also approach this as openly as possible and to try to leave behind preconceptions about linear growth patterns. Learning is quite non-linear in the real-world, and even if a candidate relays recently learning a skill that you consider foundational or otherwise "given" for a new team member, recall that you also once had to learn it and that their path was not yours. The goal here again is to understand more about the person as a whole, to gauge how they approach growth and learning and discover if they are a good match for your team.

"Let's imagine we hire you: it's six months from now and things have gone poorly. What happened?" - This tries to uncover a candidate's concerns as well as exercise empathy. The goal here is to try to understand what facets of the match between candidate and company lack alignment and might lead to friction. Uncovering this in the interview (instead of six months later) pays huge dividends for both parties. Look for honesty, candor, and consider thinking about longer-term career goals.

Overall, the goal of these questions is to put aside specific technical needs of the position and evaluate two vitally important culture fit aspects of the candidate. The first is their alignment with the position in terms of scope, trajectory, and passion. Ideal candidates are ready to grow from the position you're hiring them for, into the role you'll need them to play in 5 years, and to love what they do as they go. The second is communication. Honest, candid, and meaningful communication is the cornerstone of a creative professional's effectiveness, more so than any technical skill set they happen to possess at a given point in time. It may rank as the single most important differentiator of quality team members.”
andrew lindberg exelaration

Finally, be sure to include behavior questions which focus on the specific traits you’ve identified as important to succeed in the role. Some examples include:

Teamwork

1. “What’s some feedback that you’ve received that you thought was difficult to hear, but ultimately has proven really valuable?”

2. “Tell me about a time when you had to work closely with someone whose personality was very different from yours.”

3. “Give me an example of a time when you worked under extremely loose supervision. How did you handle that?”

Time management

4. “Give me an example of a time when you were under a lot of pressure. What was the situation and how did you get through it?”

Project management

5. “Give me an example of a long-term project you managed. How did you meet your deadlines?”

Communication

6. “Tell me about a time when you were able to successfully persuade someone to see things your way at work.”

7. “Tell me about a time when you had to explain a technical issue to a non-technical co-worker.”

Success and failure

8. “Tell me about a time you failed. How did you deal with the situation?”

9. “Give me an example of a time when you set a goal for yourself. What steps did you take to ensure that you would achieve your goal?”

10. “Give me an example of a time when you were creative with your work. What was fun or difficult about it?”

Probing questions

Finally, create a structure for probing questions that help a candidate to elaborate. This is a great tactic for when interviewers feel they need to clarify answers. Interviewers should be prepared with specific questions to fall back on. For example:

  • “You mentioned… Could you tell me a bit more about that?”
  • “Can you give me an example of…?”
  • “I’m not sure I understood. Could you tell me about…?”


And that's it for this section. Now you’ve set up a great interview process! But how do you optimize the process to be as efficient-yet-effective as possible? Read on!

Chapter 6: Create an optimized software developer interview process

Now you have an interview process in place.

You also know how to interview developers.

But you’re not done just yet.

Dive into the details of your candidate pipeline

You probably still have room in your interview process to optimize for better results.

Let me explain:

By continuously assessing your own hiring process, you will find things to fix. Ultimately, this means better hiring decisions.

Go back a few months from now and look to see what the people you didn’t hire are doing now.

What are they doing? Did Google swoop them up? Are they still looking for work?

In hindsight, would they have been a good hire?

If the answer is yes, you know that your hiring process needs some tweaking.

Also, look at where you’re losing people in the process. By doing this, you know what phase to optimize first. Are candidates falling out at the technical interview? Then you should start there and figure out how to build a better candidate experience in that phase.

And finally, look at diversity factors. Are women and minorities falling off at specific stages of your hiring process? Think critically and objectively about why they may not be progressing to further stages. Is it a process problem or a people problem?

Try to use whatever data is at your disposal to improve your processes.

Send feedback to candidates, and ask them for feedback too

You want great developers to apply for roles at your company, right?

Right. So you’ll have to create a great candidate experience.

Why?

According to IBM, applicants who are satisfied with their candidate experience are more than twice as likely to recommend the company to others compared with those who aren’t.

Over 60% talk about their experiences with friends and family. They are also twice as likely to become customers of the hiring organization.

One way to stand out from the crowd is to give feedback to candidates.

This especially applies to the technical interview.

Does it take more time?

Yes. But the impact it can have on your employer brand is worth the effort.

It doesn’t even have to be that complicated. You can create a template email or phone call script with room to include personalized feedback.

Here’s a template you can use:

“Hi [Name],

Thank you very much for applying for the job [job title] at [company].

We would like to let you know that we have chosen to move forward with a different candidate for this position.

We were impressed with your [include feedback]. However, for this position, we are looking for [include feedback].

Now that we have gotten to know you better and learned about your excellent qualifications, we would like to keep your resume on file for future openings.

Please feel free to apply for a different position at any time.

Thank you again for your interest in joining us at [company].

We wish you all the best in your job search!

Best,

[Your name]”

Finally, providing feedback is also a great time opportunity ask for feedback about your hiring process. If you're really wondering how to improve, it never hurts to ask!


Over to you! There you have it. Now you know how to interview developers and choose the best candidates.

Interviewing developers doesn’t have to be hard, but you do need a proven process. As you can see from this guide and the extremely insightful expert tips, you CAN set up that process for yourself. To get started today, sign up for a free CodeSubmit trial.