Why is hiring developers so hard?

If it were easy, there’d be no recruiters. But there are recruiters, much to the chagrin of many hiring managers (Not the ones we work with, obviously). 

It’s true, though. Almost 4 in 5 companies have said they have difficulty finding developers.

21% of companies hiring these roles believe back-end developers will be the role they struggle most to recruit for. It’s almost as high for AI and machine learning specialists at 19%, and full-stack developers at 15%.

Despite the challenges, companies are still scrambling to hire developers. 30% of respondents in one survey said they were looking to recruit over 50 developers in 2024.

It’s hard, but it must be doable. Developers still need jobs. Yet they're finding it just as difficult. Almost three-quarters say they’re struggling to find suitable employment.

So there’s got to be a disconnect somewhere.

That’s what this article’s about.

It’ll break down the most common hiring challenges and provide actionable solutions to help companies attract and retain the best developers.

Table of Contents

  • The Growing Challenge of Hiring Developers
  • Why Some Companies Struggle to Hire Developers
  • How to Fix Your Developer Hiring Process
  • Conclusion 

The Growing Challenge of Hiring Developers

We’ve established that hiring programmers is tricky. 

But why is it so hard to hire good developers?

Let’s look at the obstacles:

High demand, low supply

As we learned in the intro, lots of companies are looking for software engineers.

But almost a third of companies say that they can’t find people who are qualified.

Whether this is due to weak sourcing practices or overly specific skills requirements, companies struggle because there is a limited number of developers with the characteristics they want, and plenty of places for them to go (or, in fact, to stay).

Why are there so many places available to them? 

That brings us to our next point…

Remote work has changed the game

Back in the day, if you had an office in XYZ-town, you at least had a local pool of candidates you, and maybe only a handful of competitors, could fish from.

But now, with remote working, there’s nothing to stop your local XYZ-town developers from working for a company in ABC-ville (which is hundreds of miles away, if you don’t know your geography). Their options have expanded globally.

But wait, doesn’t that mean you now have just as much of a chance of hiring developers from ABC-ville, where you didn’t before?

Well, absolutely. But do you really think your company is attractive enough out of the thousands of others out there that they’d choose you? 

Which brings us to our next point…


The competition for top talent is fierce

Even when you do find qualified candidates, there’s no guarantee they’ll want to join you – almost three-quarters of employers say that competition for developers is a huge challenge.

As opposed to competing against maybe a few dozen local firms, you’re now up against virtually every other company that happens to be hiring developers. Which, as we’ve established, there are a lot of.

Why Some Companies Struggle to Hire Developers

Despite the challenges inherent in hiring developers across the board, some companies don’t make much effort to overcome them. 

In some cases, they don’t make it any easier for themselves. In others, they’re making it worse.

Naturally, it’s not on purpose. But either directly or indirectly, the recruitment processes at many organisations actually dissuade developers who might otherwise apply.

Let’s look at how:

1. Unclear job descriptions and expectations

As a rule, most job postings that are supposed to attract candidates are actually job descriptions, not job adverts

Adverts sell the opportunity to encourage applicants, whereas descriptions are more of a wishlist for the company. 

That alone is enough to deter many developers, because unless they're actively looking for a new job, why should they care what YOU want? They really only care about themselves and what they’re interested in. That’s not selfish – it’s human nature.

But even among the job descriptions that get put out there, many companies create vague or unrealistic ones. It only takes a trip to LinkedIn to see how off-putting these are to candidates. 

This is anecdotal, but I’ve just seen someone complaining that a job description they’ve come across looked like 3 jobs in 1: they wanted React and Node experience (fine), but then also CI/CD background plus some design in Figma. And this was a midweight dev role.

There’s a lot that can go wrong in job descriptions, but being too broad or too narrow in your requirements is a big one. What are the essential requirements, without which someone couldn't be expected to do the job? What are the nice-to-haves, the skills that are time savers if they have them, but that you can train if they don’t?

And generally speaking, leave out soft skills. They’re absolutely important, but should be assessed later. Candidates are unlikely to rule themselves out because they think they don’t “work well as part of a team”.

Not being clear about what the role entails is another error. Ambiguity can cause confusion, and opacity breeds mistrust. You should be able to be honest about what the successful applicant will do on a day-to-day basis.

2. Lengthy, complicated hiring processes

How many stages are in your interview process?

If you have too many, it increases the chances that candidates will get snapped up by speedier competition. 68% of candidates report this having happened to them.

But even the thought of facing too many interviews can be off-putting for many. Two out of three candidates immediately feel less enthused about an opportunity when they learn there’s a lengthy recruitment process. Almost as many (64%) say it makes the company seem disorganised, and almost half (43%) have withdrawn from the process because it took too long.

Then there’s the problem with drawn-out technical assessments. Developers simply can’t commit all their resources to time-consuming tests, particularly if your competitors are offering shorter, more targeted assessments.

3. Poor candidate experience

Developers, like all candidates, need to be treated with respect during their application.

They hate being ghosted. They hate being ignored. They hate being misled.

Yet these things happen all the time during job applications. If you do any of them, even inadvertently, you’re damaging your employer brand.

Things like “If you haven’t heard back in X weeks, assume you were unsuccessful” feel unfair. Devs have put the effort into applying. Why aren’t you?

Lack of communication and slow response times for feedback are also major frustrations.

Another red flag is setting false expectations about timelines, responsibilities, or just otherwise not following through on your promises.

4. Rigid technical assessments that don’t reflect real work

We touched on technical assessments taking too long in the lengthy hiring process section.

There’s also the issue of the form of the assessments themselves. 

One common misstep in take-home assignments is giving candidates “oversized projects that drain goodwill”. Many developers refuse take-home tasks because they feel like hours of unpaid work, especially when the scope is unclear or the deliverables are poorly defined. 

 

When tasks are too large or require building complete apps or lengthy UI/UX deliverables, candidates feel the process doesn’t respect their time.

Another big issue is with algorithm-heavy whiteboard interviews. They can force candidates to operate under artificial pressure – thinking aloud, typing on the spot, and solving contrived puzzles – rather than showing how they plan, test, and refine code in real working environments. 

It filters for speed and showmanship, and you miss attributes like collaboration, endurance on real codebases, design thinking, and problem-solving under ambiguity. 

As a result, strong engineers who excel in realistic development environments may be unfairly disadvantaged and may prefer not to apply.

5. Uncompetitive salaries and benefits

You’re unlikely to find a developer you can underpay.

Not that we’re suggesting you’re some devious, moustache-twiddling, turn-of-the-century factory owner. Even salaries that are unintentionally below market rate will see significantly reduced application rates. 

Developers, largely, know their worth. They see so many vacancies each day that it’s easy for them to gauge the going rates for their skills. If they enco

unter a vacancy paying less than that, they won’t bother. 

Similarly, an advertised  “competitive” salary is just as dubious, plus it suggests a lack of transparency (which we’ve already covered as a problem). It’s why many developers reject job offers, if they even apply in the first place.

But it’s not just the money. Perks and work-life balance matter as much as salary. Things like remote and flexible working are increasingly essential, especially among younger developers.

6. Company reputation and employer brand issues

“A dreadful and declining company … Pay is chronically bad, with no hope of improvement. Any attempts at raising the issue are shut down, sometimes quite sternly. Management are incompetent and blame developers for their poor management decisions. Mass churn of developers as people don’t like being treated badly for poor pay.”

Naming no names, that’s a Glassdoor review from a software engineer about a particular company.

Now, I don’t know if any of those things are true or not. But I do know one thing: I’m not sure I’d want to apply for a job there.

Your company's reputation can have a major impact on how attractive it is to apply to work for you. Developers talk. Word spreads about negative hiring and employment experiences.

7. Failure to attract passive candidates

Ask yourself this:

Does the developer you want already have a job?

When you consider most developers are probably working right now, you’d be excluding a lot of people if the answer were no.

The idea is there’s: 

  • Active candidates (those who are either out of work or who are keen to change jobs)
  • Passive candidates (those who aren’t looking, but could be persuaded if the right opportunity came along).

The stats are nebulous, but most estimates put passive candidates in the majority.

So, if the most appealing thing about your opportunity is that it exists, you’re only likely to gain the attention of the desperate.

What’s more, depending on where you’re posting your job adverts, these passive candidates might never see them. They’re unlikely to be checking job boards, for instance.

How to Fix Your Developer Hiring Process

Now we know the challenges, how do we fix them?

Since finding qualified candidates is so tough, some employers relax their requirements. But this brings its own challenges. Even if applicants don’t have a matching skill set, almost 1 in 4 hiring companies struggle to identify “potential”.

So what are some useful methods of improving your ability to hire developers?

What’ll work best for you will depend on where your issues lie, but the following tips are general best practices that should improve every company’s chances.

Write better job ads

Your recruitment marketing should be every bit as well thought out as your actual marketing. Focus on the reader, not the company.

You should be identifying developer pain points – particularly for those who are currently in work – and explaining how working for you instead might solve them.

Make sure it’s clear what the role and responsibilities are, and be honest about what’s required. Don’t overload the ad with unnecessary skills – they could put off otherwise suitable candidates.


Simplify and shorten your hiring process

Take a holistic look at your recruitment practices. This involves examining your hiring funnel – where do most candidates drop out?

For each stage, do what you can to make the process quicker and easier for applicants. For example, are you asking for a cover letter? Don’t (or at least not straight away).

Do you have two or more interview stages? Ask yourself why. Could you reduce it by bringing key decision makers in earlier?


Improve the candidate experience

We talked about candidates feeling ghosted or ignored. Improving this is simple enough. Make sure every applicant is kept informed throughout the process, even those who are unsuccessful.

You usually needn’t do this by hand; most ATS have a system where you can set up automated rejection emails. Let applicants know when they should receive a response. If there’s any delay in feedback, let them know why. 


Offer competitive compensation

This one can be easier said than done because it depends on your budget, but ignorance should never be an excuse. Imagine you were the candidate you’re interested in.

Do a search where you look for the type of job you’re advertising. What sort of salaries are you seeing? Is yours more attractive? And beyond salary, how do your benefits compare?

You might not necessarily have the power to introduce new benefits, but you can highlight the ones you do offer when communicating with applicants. 


Fish in global pools

If you’re not already offering remote working, you really should start. While it’s not feasible for some companies, for most dev roles, it is. It’ll give you a vastly bigger talent pool to work with. 

Even if you’re already set up to offer remote working, it doesn’t mean you’ll automatically attract candidates from all over. If you need help with this, give Remote Crew a call – we have a database of thousands of pre-vetted remote developers who could be suitable for you.


Focus on long-term employer branding

What’s that old saying, “The best time to start working on your employer branding was decades ago; the second-best time is now.” Something like that.

Anyway, you can’t establish a positive employer brand between the time you realise you need a developer and the time you start hiring – it’s a long-term process. But if you start now, you can make it easier for yourself in future.

Talk to your current employees, find out what they enjoy about working there, what could be improved, and adjust accordingly. Once you’re confident everyone’s happy, market it.

Incentivise positive reviews on Glassdoor et al, post employee testimonials on your socials, and set up referral schemes if there aren’t any already.

Conclusion

Now, there’s some discrepancy between permanent developer hires and contractors. A contractor might not care so much about, say, benefits if they’re only going to be there a year. But if anything, they might care even more about it being a quick hiring process, because they’ll want to get started ASAP. If you’re concerned about the contract/perm discrepancies at your business specifically, reach out to Remote Crew’s contractor team

Still, the beauty of improving your hiring processes to attract more and better developers is that the tips can be applied across the board.

Developers want punchy job adverts, quick, informed application processes, and competitive salaries and benefits. But guess what: so do HR Managers, Salespeople, and cleaners.

Granted, there are some differences. Your cleaner may not be able to work as remotely as your developer, and may not have as many opportunities worldwide. But that’s a good thing – you should be tailoring your recruitment strategy based on the type of person you’re hiring.

And for developers, that means making sure what you’re offering is better than your competitors.

Do that, and hiring won’t be as much of a struggle.

Written by

white man smiling with gray tshirt

Miguel Marques

Founder @ Remote Crew

Tech hiring insights in your inbox

From engineers to engineers: helping founders and engineering leaders hire technical talent.

We will only ever send you relevant content. Unsubscribe anytime.

Read more