On hiring software engineers
Tags: interview
Published: 2023-10-22 09:44:17

In the past few years, the tech industry has seen a significant shift in hiring practices, with many companies attempting to replicate the FAANG method without fully understanding the context or requirements. This has led to a complicated and inefficient hiring process that often wastes both the company's and the candidates' time.

This blog post will discuss how to create a healthy hiring process.

## Creating a customised hiring process
Each company has different requirements for their tech team. Don’t blindly follow what another big company does for their hiring strategy since the difference in culture and preparation could lead to many false-negatives.

### Establish a talent/engineering communication channel
Create a communication channel between the talent and engineering team to align on who your company is looking for. Especially at the start, review the CV together (if possible, remove any personal information about the candidate) and discuss keywords, technologies and experiences to structure what type of profile you’re looking for.
A shared document with ideas and suggestions is a great starting point.

### Create an interview plan
Ensure that the questions asked are part of a plan to get all the information needed to pick an ideal candidate. Each interview step should have a clear goal and a set of questions to get your desired answers. Not all candidates will respond well to a one size fit-all question; a more open-ended or direct approach could make a difference between a candidate feeling stressed and one that will behave like they are already part of the team.

### Align hiring with company values
Use company values to shape your hiring strategy, which questions to ask and which answers to give when questioned by the interviewee. Find examples where the company kept true to its word and where it lacked and use them to provide an honest overview of the company. The candidate will appreciate this, allowing them to know if they will fit right in without second thoughts.

## Focus on understanding 
Anyone who hasn’t conducted many hiring interviews, or is at their first company, won’t have an easy time interpreting answers and experiences from someone with another background. There are too many ways to solve the same problem to assume there is a preferred way across all contexts. Discuss the proposed engineering problem with the other engineers, inside and outside the company, to better understand which tradeoffs are the most common and which parts are not clear.

## Hiring needs training and preparation
Shadowing a more experienced interviewer is essential to learn how to improve how to ask and answer questions and align on who is the right fit for the company.

## What to do and avoid
1. Don’t ask to implement something the team hasn’t solved only because a book used it as an example. The problem needs to be well understood to recognise a different but valid solution.
2. Create domain-related problems that every interviewer is comfortable with and assess that they are almost doable within the interview allowed time.
3. If you plan to conduct a pair-programming session, don’t act like a silent observer, only there to pick up on mistakes, but work with the candidate. It’s ok not to come up with all the correct answers if the reasoning and questions are spot on.
4. Avoid the technical nit-picky questions that could be checked with a 2 minutes search. What you ask and chat about during the interview should help determine whether working with the candidate will be pleasant.

## How to make it efficient
When hiring for any position, define the role’s competencies and create a list of essential and nice to have. Each candidate will have a different mix of them. Ask them to dig deeper into a topic that they like by asking them to explain it in a simple way to judge both their knowledge and communication.

If there is a take-home tech test step in your review process, consider having two people review it, taking notes separately and comparing them afterwards. This will reduce bias towards specific implementations and methodologies.

To ensure review consistency across interviews, create a competency matrix for tech and people skills. Define what you would like to see, why you made this decision, and explain what to expect from each role junior, mid, senior, etc.

Unless you are hiring for a contractor’s role, particular importance has to be given to the ability and will to learn. The tech industry is a fast-moving one, and, albeit the core of what makes good software architecture doesn’t change often, the ways the same approach can be executed will.

## Feedback
Sharing feedback after each stage of the interview shows respect and the ability to elaborate on what has been discussed with the interviewee. Take particular care in writing thoughts and observations.

#### Use these notes to:
1. Provide helpful feedback that will allow the interviewee better understand their strengths and weaknesses.
2. Share and discuss how different people answer the same questions and see if anything can be improved.

The feedback should focus on explaining what you liked and didn’t like about the session. Focus on explaining what was hard to understand or not enough of and make sure there is a path for improvement. The interviewee should consider the process helpful and positive, no matter the outcome.

It will take time to hone down the irregularities in your hiring process, but regular catch-ups will quickly normalise it to be more fair and consistent.

## Conclusion
Hiring is crucial for every company. I hope this article helped shed some light on how to approach the hiring process efficiently and in a way that shares the company’s culture.

The goal is to hire the right people and leave a good impression regardless of the result.