I’m writing this at the start of 2022 and it’s never been tougher to hire engineers. There is a very strong candidate market in software engineering at the moment.
There are roughly 1 million open software engineering roles in the USA and somewhere around 200,000 candidates. The rest of the world is having similar issues hiring engineers. Most people seem to think it will be this way for quite some time. There just aren’t enough engineers as software becomes more important to every industry.
When I started my career getting hired was skewed in favour of the hiring organisation. A candidate had to have a degree and there was no remote work so your choices for where to work were limited.
Now, in 2022 candidates with a couple of years of experience are in high demand and practises for hiring have changed significantly. You can work anywhere across a few time zones and university degrees thankfully aren’t necessary any more.
I’m mostly on the other side of interviews these days, so my are tips for other folks trying to hire engineers during these tricky times!
You’re competing with other organisations for the same talent and you should be aware of who this competition is. You have to make sure that your organisation isn’t falling behind when it comes to interesting work, benefits, salary and any other compensation that could force a candidate to choose another organisation over yours.
I’m not suggesting that you have to compete with silicon valley salaries or FAANG salaries. Some candidates might expect these kinds of salaries but they’re not realistic outside of those organisations.
Facebook or Google print money but most companies don’t. That means non-FAANG engineers don’t provide as much leverage to their businesses as an engineer at Google would. You might have to explain this to a candidate early in the process if you can’t compete but they’re also interviewing at a FAANG org.
So if you’re not competing against FAANG you should identify who you are competing against.
- Who are your competitors in business?
- Who are your competitors in tech stacks?
- Which are roughly the same size as you?
- Who are your own candidates leaving your org for?
Read their websites, articles and job ads to figure out what they’re offering.
Make sure you keep up to date with salary reports from the major recruitment agencies.
Engineering candidates these days do not come from third-level education engineering courses. People are retraining to tech from all kinds of roles and industries and they have hidden skills that will surprise you. Look outside the traditional tech skills for great candidates that have useful skills that will provide value from day one.
It might also surprise the candidate how valuable those other skills are! It’s important to tease any of these out during your chats with them.
I’ve hired people that are new to engineering but have been management consultants or have run their own businesses before. The skills learned while doing those other jobs add to our organisation and can help us in ways we don’t even know yet.
I’d much rather hire someone that has engineering AND some other professional expertise than someone with engineering only.
Ask candidates about their hobbies, interests, side-hustles and tell them about yours. If they show broad interest in the business you should ask them to pick any organisation and tell you what they might do if they had a chance to run it.
When you’re interviewing the candidate, spend at least 20-30 minutes selling them on your organisation and the role.
- Identifying what the candidate is looking for in an organisation and a role
- Describing to the candidate how your organisation provides that, but only if it genuinely does.
Authenticity is key here. The worst outcome is you gloss over the truth here and a candidate joins based on false pretences. They won’t be happy, you won’t be happy and everyone loses.
Describe the benefits that the candidate will get early in the process. Flexible working and structured learning are very important to many candidates but available in every organisation yet. Highlight these things early if you have them!
Make sure the candidate knows every step in the process from the start. It’s important that there are no surprises for them towards the end of the process. Make sure any requirements you have for visas or otherwise are clear from the start.
Make sure you follow up with the candidate quickly. The same day if possible. Long drawn-out recruitment processes will make you look bad compared to other organisations.
This is related to selling the role. Experienced candidates have a large number of great organisations to choose from and they will be focused on finding the things that make them happy in a role.
Expect some great questions around how your engineering organisation works.
The questions I always ask an interviewer are
- Why is the company hiring externally rather than promoting? - I want to know why they couldn’t grow someone to take on this role. Or why did no one want to step up and take it?!
- Describe how work gets to an engineer, how does an engineer know what to work on? - I want to know if engineers have agency or if the organisation is a top down, hierarchical product org
These questions are enlightening because if you can’t think of a response, or if your response doesn’t paint a good picture of your organisation, then it can result in great self-reflection.
There is a comprehensive list of reverse interview questions here
There are candidates now that have never experienced a world without the internet and ubiquitous computing.
Some candidates with little professional experience will just blow you away with their level of understanding of how computing, software, the internet and associated technologies work at a low level.
Newer candidates have the ability to learn abstractions on top of the fundamentals they already know very quickly if they have taken advantage of all the resources available to them in a self-driven way.
They will surprise you with how fast they advance in your organisation. Forget about the junior-intermediate-senior time-line you had when you were growing your IT career. Focus on the value people provide in comparison to their peers when evaluating their “level”.
Of course a candidate’s knowledge of computing and technology is still heavily dependent on their relationship to technology. Never assume that a person who has grown up with ubiquitous computing and has studied software engineering is an expert in some underlying fundamental technology.
You still have to test for tech skills that are important to your role!
Gone are the days of knowing Java or .Net being enough to build web products. Technology is moving so quickly right now that it’s better to look for behaviours and drive rather than specific skills. This will open your hiring process up to more candidates than if you were focused on a specific set of technologies.
For example, there are so many options for technology these days it’s unlikely a candidate will have used the specific matrix of tech your team has chosen. If the candidate can’t learn quickly they’re likely to have a bad time.
Aside from ability to learn some other meta skills to test for are
- Problem solving - Look for issues or bugs that they resolved, how they gather context and compare solutions
- Drive - Listen to their story of learning or plans for the future
- Empathy - Look for how they listen and negotiate, examples of working with others
- Impact - Look for work that they did themselves. Not as part of a team but their own specific accomplishments
You should understand the meta-skills that sync up with your company’s values.
The “Big 5 personality traits” are used as a way to describe the human personality. By using these traits you can look for candidates that add to your team’s diversity of personality. Looking for more of the same personalities you already have will limit the candidates you have available to hire.
Will working with this person make your team more homogeneous or more diverse?
In the “Big five personality traits” model, you have
- Openness to experience (inventive/curious vs. consistent/cautious)
- Conscientiousness (efficient/organized vs. extravagant/careless)
- Extraversion (outgoing/energetic vs. solitary/reserved)
- Agreeableness (friendly/compassionate vs. critical/rational)
- Neuroticism (sensitive/nervous vs. resilient/confident)
Note that these are not discrete buckets that every person conforms to. Each trait is a spectrum and each person will have unique combinations of each trait. These traits are also preferences and people will often move outside their preference when they have to.
There are some surprising results from studies of these traits. For example extraversion was negatively related to individual proficiency and agreeableness had a negative relation to individual proactivity. But it’s unlikely you would reject a candidate for being agreeable or extroverted. In fact they would probably perform very well in an interview situation.
So there is no real right or wrong “level” on the spectrum for any of these traits except maybe neuroticism where high neuroticism has been seen to generally result in poor performance. But unless you’re a psychologist you have to be very careful trying to observe and measure neuroticism in an interview. The candidate is in a stressful situation with an obvious imbalance of power and nervousness is situational.
Use this lightly as a tool to identify culture add for your team and open up the number of candidates you can recruit.