Companies are struggling to find developers. It's one of these things you are not sure if people are saying this to brag or they are genuinely having a problem. I ask because on the other side, developers are also having a hard time getting hired. Junior developers say no one wants to hire juniors because all jobs require many years of experience. Experienced developers say they can't get jobs quick enough because companies don't want to pay a lot for experienced programmers.
I wanted to write a long post and explain why it is so hard to find good developers. To explain my own experience with the broken hiring system. Why all the candidates I interviewed where usually the worst. And how myself I struggle to get jobs even though I'm privileged enough to write 10 years experience with such and such technology on my resumé. However the problem can be summed up in one simple word: Filters.
Before we explain what the filters are, let's see who is currently applying for programming jobs.
Coding is the new hot thing. From Obama to Bloomberg, they are all saying that we should all be coding. Coding is now considered a fundamental skill like reading and writing. Classrooms and Boot camps are filled with cool programming classes where you can drag and drop emojis to turn into actions right on your screen. To be fair, traditional text based programming is also being taught. But this has created an influx of programmers and it's hard to tell people who can or can't actually program.
Another group is computer science students who just tossed their hats in the ring after graduation and are ready to start paying for their expensive student loan. In the past decade there's been a spike of student who went into the CS field and now they are looking for jobs in mass.
There is a group that was created by the cultural change in the work space. No one expects a programmer to work for just one company in his career. Every few years employees are encouraged to find a different job. Not because the boss makes them feel unwanted, but because getting a decent raise is a rarity. Not only the employee wants to leave, but most often than not, the employer expects them to leave. They get to hire new less experienced programmers at a lower rate, and the employee gets a new job where they get paid a higher rate.
The last group is one that I often found myself in. The self taught developer that often applies to a broader spectrum of jobs. I often apply to jobs where I am not too familiar with the environment only because I am willing to learn quick enough.
Now all these groups go to a company's career page and apply for the same job. We fill up forms, send emails, and fill up their inbox. Now, the part that the job candidate doesn't consider is that the person that creates the job post is not necessarily the person looking to add a new person to their team. Instead, those emails go straight to Human Resources (HR).
And before you know it, you have two or three candidates that managed to get through the filters because they have great Resumé SEO, but not necessarily the skills for the job.
HR gets quickly overwhelmed with the massive amount of email that comes in, so they apply a filter in between. The filter can be many things. It can be simple spam filtering like those often used in our emails, it could be an intern sifting through the resumé manually, it could be an AI that discriminate against certain candidates, either way the goal of the filter is to reduce the number of candidates to a number HR can sift through.
The problem is that HR is not necessarily versed in understanding who is the best candidate for the job. So they apply their own personal filtering and remove candidates from an already shortened list.
If you are in a startup or a small company, you may not be having this problem. Your size and limited resources force you to personally review resumés. On the other hand, larger companies abstracts the job away to HR or external recruiters. So by the time you read a resumé, it has been filtered multiple times already.
One of the most valuable asset a company can have is its employees. The least we can do is make time for hiring them. If a manager or lead needs to hire a new coworker, they need to be able to see all the candidates that apply. They should take the time to sit down and sift through resumés until they find the right candidate. The only filter that should be applied here is a spam filter, all the rest should be seen.
The reason why companies struggle to hire is not that there are no candidates. Many times I'll get in touch with an employee and they'd ask me to send my resumé through their job or career email, but they'd never see my application. They'd have to personally go to HR and manually extract it out of the rubble. The problem is that their first filter will block a huge amount of candidates. Then HR will look through the rest and block another chunk. And before you know it, you have two or three candidates that managed to get through the filters because they have great Resumé SEO, but not necessarily the skills for the job.
Automation is not always the best option. In fact, it can be the worst option in some cases. There is no reason why you shouldn't look through the resumés of the people you are planning to hire. Don't abstract the job away to a department that doesn't necessarily understand all your needs.