Two people working in an office environment and talking.
Graphic that shows three different types of interview questions you should be asking.

Use these questions to identify a candidate’s technical knowledge and abilities

Use these questions to determine how a candidate handled situations in the past

Use these questions to assess a candidate’s personal traits and cognitive skills

Why this matters:

Asking data structure-based questions like this can quickly tell you whether a candidate has the basic hard skills needed to do the job well. To get the most from this question, specify a programming language that the role relies heavily on, such as Java, then ask the candidate to briefly explain how they would go about finding repeated characters on a string in that language. 

What to listen for:

  • Look for concise yet detailed answers that demonstrate the candidate’s level of comfort with the material.
  • Great answers will reveal both their expertise and their enthusiasm for talking about programming.

Why this matters:

Great developers know that programming languages are just tools for them to wield—it’s the logic behind them that really matters. But it’s helpful to know which languages they’re fluent in, which they’re only familiar with, and what sort of projects they prefer to do in each, as this will help you assess how much training and onboarding they would need if hired.

What to listen for:

  • Candidates should reference a variety of programming languages, such as C++, PHP, Java, Swift, and React.
  • Junior programmers may focus more on their experience, while senior level engineers may go into more detail about why they love a particular framework.

Why this matters:

This question can help you determine the standards the candidate holds themselves to—and how forgiving they’ll be of coworkers’ mistakes. Mistakes are a natural part of the workflow for programmers, but it’s the quality—and sometimes quantity—of mistakes that matter. You need to know that they’ll take pains to avoid major errors and will learn from every minor one. 

What to listen for:

  • Candidates should give specific examples, such as submitting code without first testing it.
  • Look for signs that they recognize the difference between a reasonable error, like those stemming from a lack of familiarity, and the kind caused by sloppiness.

Why this matters:

This question can give you an insight into the candidate’s experience level and ambition, as well as their leadership and project management skills. In order to lead a software project through to completion, a programmer needs to think both granularly and big-picture, effectively mapping out the project and accounting for every detail. 

What to listen for:

  • A great answer will demonstrate the candidate’s ability to visualize the distinct stages of a project and prioritize effectively.
  • If they have never led a project before, look for an eagerness to do so in the future and a clear idea of which steps they would take.

 

Why this matters:

Programming isn’t always smooth sailing. You need to know that your candidate can persevere, even when the sky seems to be falling or the timeline feels impossibly tight. If they were able to navigate a crisis smoothly and effectively, regardless of who or what was to blame, they’re likely to steer all projects to success.

What to listen for:

  • Look for evidence that the candidate used their problem-solving and/or teamwork skills.
  • Strong candidates will reflect on what they can do differently next time to handle the situation better or avoid the same problems.

 

Why this matters:

Programmers often need to work as part of a team and cross-functionally to complete major projects, so ideal candidates will have experience doing both. Pay attention to the specific role they played on their team. Depending on the job requirements, you may need a candidate who’s a strong leader—or a great facilitator. 

 

What to listen for:

  • Top candidates will be comfortable working independently, but can also be team players when the role requires it.
  • Candidates who seem dismissive of others’ accomplishments may not be a good fit for a team-focused role.

Why this matters:

Programming requires deep focus, and many candidates have very particular productivity preferences that help them stay in the zone. These preferences may make it harder for them to work effectively in your specific work environment, so this question can help you screen for culture fit. For example, if they say they need total silence and privacy, an open plan office may not be compatible with their work style.

What to listen for:

  • Look for evidence that the candidate will thrive in your company’s work environment.
  • If their work style seems misaligned, let them know what their workspace would look like to mutually assess whether they could adjust (e.g. wearing headphones).

Why this matters:

In some roles, programmers may primarily interact with other programmers and technically minded staff. But if they regularly need to get buy-in from other leaders in the business or work with another team to develop a product, it’s important to ask a question like this that screens for communication skills.

What to listen for:

  • An ideal answer will show that the candidate is comfortable breaking down complex concepts to help a layman understand
  • Great candidates will demonstrate that they are patient and thoughtful teachers.

Why this matters:

This question tests a candidate’s ambition. While salary is important, candidates who find intrinsic motivation in programming and who have a real passion for the field may make for more engaged, satisfied employees. Passion and ambition may also have an impact on the new hire’s retention, so it’s worth figuring out what drives them. 

What to listen for:

  • Look for candidates who display a genuine interest in logic, math, and coding.
  • Great answers may discuss inspiring goals, like changing the world through their programming skills or helping the company develop a new product.