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!