It might be due to lack of skill, but I'd wager it's more so one of the following.
Not a day goes by that we don't read an article about developer jobs going unfilled and the demand skyrocketing by the day. And despite what you might read or believe, the issue isn't that the supply is low. Because I can assure you, there are plenty of developers right now that are working hard daily to land those jobs and they can't seem to catch a break.
And not surprisingly, this isn't uncommon at all. I'd wager that pretty much everyone reading this article right now knows someone who is looking for a programming job with little to no luck. But from the looks of it, the demand is definitely steadily increasing throughout the years and will continue to do so. The following data from the US Bureau of Labor Statistics shows that we'll need a few hundred thousand more developers within the next decade.
So if the supply is ample and the demand is high, then what is causing alot of these developers to go unhired? Based on my personal corporate experience and my years of hiring developers for various companies, I think I can pinpoint a few of those reasons for you today.
And I'll start with the most common one that I personally see.
Skill level mismatch
Different companies have different needs when it comes to years of experience required for their employees. I've worked for large organizations that hired mainly in the junior to mid range and only rarely looked for senior developers. Most of that was based on the cost benefit analysis performed for each project.
Sometimes hiring 2 junior developers is a better deal than hiring 1 senior developer, particularly if the project they'll be working on is already fully functional and just needs maintenance.
And often times that's how many new developers get started in the corporate world, either through paid internships or through standard maintenance gigs catered towards junior devs.
But alot of that depends on the size of the company and their particular projects and budgets, because I've also worked at web development firms where the teams were small and the projects were very complicated. Typically hires were brought in twice per year at best and there wasn't much room for junior to mid-level. But that didn't stop developers at all stages from applying.
And in the end, that meant that alot of these applications were ignored.
I've personally met many developers who spent way too much applying to
jobs that they were not at all suited for only to be disappointed time
and time again.
And this is where the advice that many recruiters dish out that the more
the merrier may work against you. Because it takes time and energy each
and every time you submit an application for a job. And if that energy
is going towards jobs that you have little chance of landing, then
you're missing out on the jobs that match your skills more adequately.
It's in your best interest, in terms of time and energy, to apply to only those jobs that you, for a fact, can do and do well.
Specialized skills
During a recent hiring event, me and my company put out an ad for a software development job that clearly outlined what we were looking for in a developer. And to summarize, it looked something like the following:
- Node.js
- React or other JS based framework
- PostgreSQL (or other relational database system)
- ExpressJS (again, or equivalent)
- Web development experience
Overall, it was a pretty standard list of required skills. At least I personally felt that it was. The number of total applicants in the end was relatively high. But, after review, the skills list that we received looked something like the following:
- Java
- MongoDB
- Python
- C++
- XCode
- Etc...
Most of these applications were ignored in the end, just like with the example above. In this case the issue isn't that there aren't developers with years of experience under their belt, but more so that those years of experience are little to no use for certain companies.
Spending 8 years working on a Python application doesn't transfer over well to working on a React website. You might encounter loops and conditionals that are similar, but you might be completely blind to components and state management. And that's typically a risk that most companies aren't going to take.
I personally would always go with a candidate that has 2 years of React experience versus one with 8 years of Python. In the end, it's just a matter of "can this person do the job today?".
Having said that, the largest tech companies don't seem to have an issue with specialized skills as they usually list every known language in their "required skills" list. And more than likely these companies have enough projects, departments, verticals, etc where a strong developer can find their place relatively easily.
And this is where it's important to be mindful of where you are applying and if your skills will actually be used there.
Recruitment process
If you're working with a good recruiter, then you have the benefit of having someone who's out there doing the sale's pitches for you. They will try and match your resume (and your specific needs) with their list of clients and usually they can get pretty close in terms of your skill set.
I've worked with great recruiters in the past who have landed me near perfect jobs that match both my years of experience and my skills down to a T.
But I've also worked with not so great recruiters and that was a challenge to say the least, because their matchmaking skills are almost non-existent. I randomly was sent to various companies looking for senior developers in languages that I had never heard of. And mind you, I had 0 actual years of actual corporate work under my belt.
After about a month of driving up and down my city to various interviews only to get rejected time and time again, I decided to stop working with this particular recruiter and to do the work myself. In the end this worked out much better and I was able to land a job within a month.
In recruitment, you're typically dealing with getting high numbers since many of those jobs are commission based and the more people you send out into the world, the higher the chance of something (anything) closing. This isn't true for every recruitment job, of course, but I've met enough recruiters working under this model to know that it is common.
Outdated skills
I've known alot of developers with 20+ years of experience under their belt. And while they were amazing at their particular niche, they usually didn't work too hard in order to keep up with the latest advancements in technology.
And that can be a huge risk in the end to their career because if that particular technology that they know so well begins to lose popularity, then these developers won't have the skills to land their next role.
I remember one particular developer that I worked with for several months who specialized in C# development solely. He didn't know any other language and he didn't want to know any other language.
At this job I was tasked with working on a new project for the company, essentially a complicated web application with tons of client-side interactions using JavaScript. And this C# developer was assigned to help me out in order to reach the deadline. And they could not have hated the process more. They disliked every keyword, nuance and configuration that JavaScript required. Until about 2 weeks into the project, where the narrative completely changed and this developer was staying overtime in order to work on his JavaScript.
In the end, this developer added a new language to their arsenal. But there are plenty of developers who never give themselves that opportunity and they stick to what they know best and that's it.
And you can't fully predict when your particular preferred programming language will fall in popularity. There were certainly many Cobol developers back in the day who assumed that they would have a stable job until the end of their careers.
Location
Location is still an important parameter in current work culture, even with the rise of remote opportunities. Some cities just have way more demand than others, and if you don't live in one of those towns, then you are at a huge disadvantage.
For me personally, living in Los Angeles, it has never been a problem to find open developer positions. Not only do the largest tech companies have satellite offices in LA, but there are also a large number of military contract, aerospace and other government tech jobs available year round.
But not everyone is so lucky. And there are still large numbers of new developers out there today that can't seem to find more than a handful of jobs in their current cities and towns. And I personally have met many of them and usually advice them to look at the demand and to consider migrating to a more tech-savvy town.
There are indeed plenty of open-tech jobs out there right now looking to be filled. But if good developers are either too far away, applying to irrelevant jobs or relying on unskilled recruiters to match them, then they will continue to go unfilled.