Talented and well-trained software engineers are a scarce resource in today’s workplace. With less than 1% of engineers unemployed in the US, it’s clear that companies are snatching up every good engineer they can lay their hands on. There has been an unchecked increase in technology companies in the past few years, and that trend is set to continue.
Sourcing good software developers has become a supply-and-demand problem, and with more jobs than developers, it doesn’t have an easy fix.
In this piece, we examine many of the challenges that companies are now experiencing when recruiting software development engineers, as well as actionable solutions to those challenges and advice for establishing a bulletproof recruitment process going forward; one which ensures you bring none but the best into your business.
What makes a “world-class” software development engineer?
The common assumption is that technical know-how and years in the job are what distinguishes the ‘best’ from the ‘good enough’. While these are both crucial, world-class engineers have other attributes; that x-factor which sets them apart from everyone else.
These engineers possess innate curiosity, logical and lateral thinking, and a keen perception of the larger problem. In 2019, the best developers also tear down the stigma that IT professionals can’t socialise or communicate well with others. They are humble, supportive, driven, and totally aligned with their employer’s ethos.
Unfortunately, these engineers are hard to come by. In Europe and the US, there are more engineering jobs available than candidates to fill them. For hiring professionals, it’s getting harder and harder to find and recruit such well-rounded individuals.
So why is recruiting engineers so difficult?
A massive shortage of talent
In the US and Europe, there is immense pressure to discover and hire top engineers with commendable technical skills and the right attitude. At the same time, a survey conducted by SAPrevealed that 9 in 10 human resource managers in the US and UK believed that identifying qualified candidates is the most significant challenge in the entire recruitment process.
The problem is simply that universities are producing fewer graduates than there are jobs to be filled. At the other end of the spectrum, veteran engineers are retiring and there is not a strong enough pool of candidates to replace them.
So what do companies do? They settle. A survey conducted by McKinsey&Company found that a staggering 82% of the respondents, all business leaders, agreed they “don’t believe that they hire highly talented people”. Recruiting average engineers can hamper a company’s ability to grow and deliver acceptable results to clients. In the long-run, this could result in the loss of contracts and even a drop in profit.
An ever-growing wage bill
Hiring top talent means paying a premium price — and that goes double for software developers and triple in the US and Western Europe! When you consider all the add-ons which accompany recruitment (HR cost, benefits, bonuses, office space) it can become a frighteningly expensive business.
For many companies, the choice is between hiring average but affordable engineers, or enticing top engineers by extending the budget further than the finance team particularly enjoy. Of course what constitutes the ‘right’ engineer for one team is a complete mismatch for another; at the end of the day, however, recruiting software developers is not a light endeavour.
So what are your alternatives?
With local talent so scarce and expensive, let’s look at a few popular alternatives to the traditional recruitment approach.
Outsourcing is where, rather than completing a project or task in-house, it is offloaded onto a contractor or agency. There’s a fixed-term contract for that one project, and this is best suited for ‘quick fixes’ when teams are overworked or suffer a sudden drop in capacity.
The main attraction of outsourcing is the substantially low pricing it offers, sometimes as low as $10–20 per hour. So what’s the catch? These developers do not work for you. Their focus is split between multiple projects for various clients.
The result is software that’s often substandard due to a lack of commitment, skill, or communication on the contractor’s side. Sometimes no work is returned at all. Outsourcing is usually considered a temporary plug that isn’t sustainable over the long run, or for highly valuable projects.
By pushing for the lowest price possible, it’s too easy to end up compromising on the quality of the output.
Though often confused, offshoring is a very different model from outsourcing. Going offshore means building a dedicated software development centre abroad, for example in India. The goal is to gain access to a team of world-class software development engineers (of the same quality you’d find in the US or the UK) who can become value-driven extensions of your workforce.
There are numerous advantages to going offshore. Chief among them is the ability to access genuinely world-class talent at a lower cost than at home. India produces roughly 1.5 million engineers every year. This allows access to a significantly larger talent pool than is available in most western cities; companies who build offshore teams can virtually hand-pick their staff.
By engaging with an offshore development partner who can handle recruitment on your behalf, setting up a development team can be pretty straightforward.
Nearshoring is just offshoring — but closer to home. For example, a software company in the USA might build an offshore team in South America, since they share time zones and are geographically closer than India or Eastern Europe.
Nearshoring offers most of the same benefits of regular offshoring. The difference is that countries like India almost always come out on top when it comes to value for money: frequently lower prices, almost always better engineers.
How do you build a pipeline of the best candidates?
Start by looking in the right places. The most powerful options are job portals and social media. Roughly 94% of recruiters use social media websites like Facebook and LinkedIn (heavy emphasis on LinkedIn here!) to advertise their job openings and communicate with potential employees.
Another survey found that 59% of employees say that a company’s social media presence “was one of the primary reasons” why they chose their workplace. By leveraging sites like LinkedIn, you can promote your openings, share different aspects of your company, post updates about your brand, and positively engage with a potential hire.
But there’s a problem — traditional recruiting channels are now getting overcrowded. There’s only a finite number of great candidates you can reach on LinkedIn, and far too many companies and agencies vying for their attention.
Where else can you look?
- Blogs and technical postings — Developer blogs are goldmines just waiting to be explored. They act as a window into the technical knowledge, problem-solving ability, and writing skills of the developer — all important criteria when identifying cream-of-the-crop candidates.
- Open source code websites — Websites like GitHub and SourceForge are home to millions of developers. All you have to do is see and evaluate a developer’s sample code before deciding if you want to reach out to them.
- Quora — Quora is a website that provides answers to a plethora of questions, both technical and non-technical. If you are looking to source engineers, make sure that you follow a range of different technical topics. Most of the people answering the questions will be technically sound in their field of expertise — and you’ll be able to easily differentiate those who aren’t.
- Slack channels — Slack is probably the most popular internal messaging and collaboration tool on the market — so popular that it’s now being used by groups of strangers to discuss their shared interests! Developers often belong to several channels — some of them are open to the public, while some are private and require an invitation. Joining these groups is a novel (if optimistic) way to find fresh talent.
It goes without saying that the odds of finding your perfect candidate increase significantly when partnered with professional recruiters. However, for companies whose resources are more limited, scouring the areas we’ve highlighted should still reveal a healthy amount of good engineers.
After that, it’s time to interview them and see if they’re a good match!
Common problems when hiring new developers
Compromising on quality
Finding the right candidate is crucial. If companies don’t the best-fitting people, it usually doesn’t pan out. That makes it all the more important to consider the cost of a bad hire.
A CareerBuilder Survey from 2017 showed that on average, companies lose $15,000 on every bad hire. What’s worse is that nearly 3 in 4 employers know that they’ve hired the wrong person for a position.
The pressure is always on to make hires quickly. Despite best intentions, it’s easy to push candidates to the next interview despite a negative gut instinct, or even after spotting a potential red flag.
The result? Weeks or months later, that new hire just isn’t working out. Mis-hires can cost the business far more than just wages; delayed projects and additional training can drive up the cost quite handsomely. And as everyone knows, it’s not so easy to fire someone today as it was a few years ago.
Why does this happen?
The main reason a company would rush someone through is, once again, that balance of cost vs scarcity. If a company finds an affordable and competent developer, they’ll want them signing on the dotted line before someone else offers them a better deal.
Assigning too much value to technical knowledge
Sometimes, when hiring engineers, there is too much emphasis on the candidate’s technical skills — and not enough on their soft, personal skills. While those abilities are crucial, the best-fit for a modern development team goes far beyond the nuances of a specific programming language or technology.
Top software development engineers don’t waste time committing to memory language specifications and documentation. Learning a new language, technology, or design pattern is a relatively trivial exercise for a strong developer — one that wouldn’t take too long.
If you want to determine the true potential of a candidate, you have to look beyond the technical know-how. Pay more attention to the candidate’s ability to grasp complex concepts, creative thinking, communication, and personality.
Establishing a bullet-proof recruitment process
Step 1: Define your hiring needs
Nailing your recruitment process is quite simple, really. Start by defining what you actually need.
If you don’t know exactly what you need, you’re not going to find it. It’s not enough to know that you need developers of a certain level. You should know precisely what skills (both personal and technical) you require from an ideal candidate and set that as a benchmark.
The best way to do this is to make a list — tech stacks, experience, personal skills, and anything that you think is relevant. This list must be all-inclusive and thorough.
You can then create job descriptions for the positions by using that list as a reference. Include all the duties and responsibilities that the employee will have to undertake. This not only acts as the foundation of the entire recruitment process, but also makes your job of shortlisting value-adding candidates that much easier.
Step 2: Look beyond the performance report
The best way to analyse a software developer’s technical skill set is to look beyond what’s on paper and pose real-time programming challenges instead. Present candidates with a problem that is unconstrained by the coding language. The goal here is to evaluate the candidate’s broader technical knowledge, coding style, and their ability to problem solve.
The next step is to engage in non-technical conversations with a prospective candidate to understand their personality. The candidate might think this is just a precursor to the actual interview and will, therefore, be more likely to let their guard down.
This will help you discern a surprising amount about their personality, confidence, honesty, and professionalism.
Step 3: Engage the candidate
Throughout the screening process, aim to be as honest as possible about your company culture, compensation, hours, location, goals, and expectations. This conversation is a chance for both sides to evaluate whether they’re a good fit for one another.
Never misrepresent what your company is really like. Remember that interviews are a two-way street, and they’re trying to learn as much about you as you are about them. Be honest, patient, and try to answer any concerns that the candidate may have.
Step 3: Give someone the job!
The last thing left to do is make a decision. You’ve screened for exactly the right kind of candidates — whether that’s in your local area, or looking offshore — and evaluated them thoroughly during the interview process. There’s a lot of work involved in recruiting top-quality engineers for your business, but the effort is more than worth the reward.