How to hire the best: Engineers

Lewis Moore

7

min read

|

25 Feb 2023

We've compiled a series of established best practices for assessing Software Engineers to help accelerate your team's ability to make data-driven, consistent hiring decisions.

——

Interview Stages

  • Initial Screen

    • Find out more about the candidate, sell the company, and see if there's a mutual fit.

  • Coding Interview

    • Pair on a simplified version of a real domain-specific problem with the candidate.

  • System Design

    • Work with the candidate to design a domain-relevant system based on your requirements.

  • Behavioural Interview

    • Behavioural questions with a non-technical leader, often based around company values.

Stage 1 - Initial Screen

Talent Team | 30mins

Overview

  • Warm introduction to see if there's a mutual fit

  • Find out more about the candidate's experience, salary expectations, notice period, etc.

  • Sell your company and the role to the candidate - they're evaluating you too!

  • Ask some quick filter questions - this isn't a thorough assessment

Popular questions at this stage

  • How do you ensure quality when you're building software? (Quality Focused)

  • Tell me about a time when you've effectively collaborated with the product team or a stakeholder to achieve a goal. (Collaboration)

  • Tell me about a time you've changed how you or your team work to become more effective. (Continuous Improvement)

Evidenced Tip

Write a really compelling overview of the company and role, then add it to the Interview Template to ensure every candidate gets the same great sales pitch from all your interviewers.

Stage 2 - Coding Interview

Senior Engineer | 75mins

Overview

  • Design a problem based on an interesting challenge your engineering team have solved for your business, giving the candidate insight into what they might expect on the job

  • Ask the candidate to treat you as the product owner and engineering peers, asking questions as they would at work, giving you insight into how they collaborate

  • Gather evidence that the candidate is capable of meeting the bar for the level they’re applying to, or if they may be suitable for a different level or role

Questions to ask yourself

  • Do they read through the problem properly and ask questions before they start coding?

  • Do they explore the boundaries of the problem and capture additional requirements?

  • Do they write or think about tests? Error cases?

Evidenced Tip

Ask the candidate to share their screen, use their own environment, and work in any language they're comfortable in. Interviews are hard enough without having to learn a new coding tool!

Stage 3 - System Design

Hiring Manager | 60mins

Overview

  • Again, design an interesting problem based on one your team has solved - after the candidate's solution, you can discuss how the business solved it and how that compares

  • Adjust the level of detail based on the role, adding more requirements for senior roles

    • Junior: I need a database, a server and a place to store web assets

    • Senior: I need a partitioned database with read replicas, a load balancer with traffic rules, and a CDN with cache busting for deployments

  • System Design interviews are a great way to distinguish an engineer's level - coding challenges are often a good filter but not always the best leveller

Elements to consider

  • Security

  • Scaling

  • Networking

  • Performance

  • Persistence

  • Product & UX

Evidenced Tip

Instead of running a Panel Interview, which can be costly and difficult to schedule, add interviewers in Evidenced after the interview is complete to get their feedback async.

Stage 4 - Behavioural Interview

Leadership Team | 60 mins

Overview

  • Gather evidence of how the candidate behaves, and whether it aligns with your expectations & company values

  • This is an important stage - poor behaviours can do more damage than poor skill competency for many roles, and has a network impact

  • Have a non-technical leader run this stage to get a different perspective, increase diversity and culture-add, and the candidate can meet someone outside the team

Popular questions at this stage

  • Tell me about a time you were given vague requirements for a feature you had to deliver. How did you approach it? (Dealing with Ambiguity)

  • Tell me about a time you disagreed with a manager or business leader. What did you do to persuade them to see things your way? (Collaboration)

Evidenced Tip

Run two separate Behavioural Interviews focused on different competencies or values - one with the Hiring Manager, and one with a non-technical leader. Alternatively to save time, have the Hiring Manager review and add their decision in Evidenced asynchronously.

Take-home Tests

Important things to consider when comparing Take-home Tests with live Coding Interviews:

  • Candidates for Junior roles may favour a take home test, as it allows them to take their time solving the problem, but may mask struggles with the problem.

  • Candidates for Senior roles are more likely to have families and other personal circumstances that are less conducive to spending personal time doing "work"

  • Great candidates often expect companies to commit as much time and effort to the hiring process as they are - a take-home test can significantly skew that

Live coding Interviews can uncover strong signals from observing how a candidate approaches a problem. These can sometimes be enough to make a positive hiring decision, even if they don't actually completely solve the problem, e.g:

  • Exploring the problem domain/boundaries

  • Clarifying ambiguous requirements

  • Weighing up and making product/design/algorithmic/data structure choices

Evidenced Tip

Don't do both. Pick either a take-home test or a Coding Interview. If you choose a take home test your interview stage should be a code review and discussion with the candidate. Have them talk through their solution and evaluate their communication and collaboration skills.

Don't just take our word for it.

Hiring teams who use a great process that puts the candidate first see an increase in sourced-to-hired rate, candidate experience and fairness. Interviewers gather the evidence they need to say yes more, and candidates have the experience they need to say yes more.

Evidenced can help you to implement a consistent process, maintain high standards, reduce bias and improve the ability of every interviewer in your team to make the right hiring decision.

If you're struggling to hire the best Engineers, get in touch!