Sep 22, 2021 • 7 min read
In the December 2016 issue of Forbes, it was said that most companies are having a hard time with hiring senior and full-stack developers for their companies. In 2021, the recruiting picture will be even direr as demand for these profiles will skyrocket.
This has been largely attributed to the fact that there have been more and more startups sprouting up in recent years, leading to an increased demand for these kinds of profiles.
Is this the only reason why companies are continuously failing in finding the right profiles on the IT market? can we certainly state that the high demand is now letting businesses fail in hiring the much-required and desired senior full-stack web developers?
Hello everyone, I’m Michele Cimmino CEO @ Lasting Dynamics Group, among my many duties, I'm also working as full-stack and project manager in my company, and today I will try to answer these questions, disprove the extremely wrong theories used for recruitment and staffing and draft the right guidelines to find the best profiles for your own reality!
The first question should be, what is the difference between a junior developer, an intermediate developer, and a senior developer.
Of course, the answer to this question is quite easy - the seniority level is given by the years of experience spent in a certain field and/or tech stack.
It might be that the knowledge of a developer in Node.js is on a quiet entry-level, while the same developer acquired more than 5 years of experience in PHP or Python.
This doesn’t mean that the same developer would require 5 more years to understand Node.js and become proficient in it; actually, it’s quite common that once you start to work in a certain application domain, such as web development, in this case, you might require just a few initial years to understand that world, and later regardless the technology, you would be able to replicate the same learning methodology to quickly absorb basics of other languages and start to code using them pretty proficiently since the start.
A Senior profile can be required to be a mentor or team leader as well, thanks to the acquired experience and skills.
Then on top of this, in the IT field the developers can be also classified into 4 other categories:
Front-end developers take care of the UI integration using mockups provided by UX designers and then they also develop the async interactions in the classic client-server architecture ( the basic architecture of mobile and web applications )
They design and develop Databases, perform integrations with third-party API and libraries, develop native REST or Graph APIs that could be used in any kind of client-server app.
DevOps are profiles that work mainly on the infrastructure, they can also be well-educated back-end developers, but in big enterprises, they are dedicated profiles. This kind of engineer usually deals with the creation of docker images, Kubernetes clusters, or technologies for code-infrastructure creation such as Terraform and they might deal with providers such as AWS, Azure, or GCP.
A full-stack developer is an engineer that is able to develop on both the front-end and back-end, also some companies might eventually ask them to be software architects, due to the deep understanding on both ends and in a startup or small enterprise they could deal also with DevOps aspects.
At the end of this first paragraph, the reader might already start to understand why the title of this article is particularly controversial.
No one clearly said to HRs and recruiters around the world, that their research is destined to fail just because of the inappropriateness of the requirements:
Entrepreneurs do not know what they are looking for, recruiters do not want to disappoint the customer or employer request and the whole frustration is demanded to the last link of the chain, the worker, that in order to find a job might end up finding imaginative strategies on how to sell their skills and pass interviews.
Be sure that a true Senior profile would certainly skip the senior web developer job description or send a salary request that is 3 times what is offered by the Company.
The recurring post you might find on any job portal or freelancing platform looks like this:
“Company X, leader of the Y industry, is actively searching for a Senior Full Stack Engineer with at least 10 years of experience, to join one of the best teams across the globe!
The position is strictly on-site, but we offer a very competitive salary!
Mandatory Skills you would get to work with:
React.js, Redux, Webpack, SASS, PHP, Laravel, Lumen, Yii, Codeignitor, Docker, Kubernetes, Node.js, Elasticsearch, Redis & DynamoDB, Agile Methodologies, Git workflows.
The candidate should also have good communication skills in English.
If you could be interested in hearing more, please send over your latest CV and salary expectations to be considered!"
What we instead read among the randomly dropped sentences across the lines:
The best company in the world, with the best results in their own field, is looking for the top-notched, switched on, smartest, strongly motivated, best-experienced profile on the market that would accept to sacrifice their dreams to be slowly consumed by tons of daily requests within 20 different technology stacks and strictly relocate to get the job - but the salary is good!
You have to be a genius of web development, potential behave as SCRUM master in the team, be a DevOps guru, and know completely different tech stacks at the same time, then please be also a strong communicator to avoid pissing off other teammates accepted this madness we don’t want to lose for any other reason in the world.
This is definitely hyperbolic but well describes the absurdity of such job posts.
Companies are often failing in their recruitment process because they recruit candidates that are not a good fit for the job position:
The first mistake that they make is to advertise the position without properly defining the skill set required, as we could have learned from paragraph n 2. This is especially true for senior positions where this kind of profile can be more selective about job post applications since they trained and worked hard in a certain direction and do not want to re-start from scratch every time.
Second, it might be that these companies fail to advertise their company culture and working environment. It's important to let potential candidates know what it is like working at the company before they start interviewing with them.
Third, the most important, Companies do not know what they are looking for, or they totally rely on not very experienced third party agencies or junior recruiters that without also having an IT background can’t understand how important is to know a niche library vs a mainstream framework and how to slightly bypass some “mandatory” requirements that actually could be quickly later learned by the right candidates.
Fourth - some companies still think in 2021 that evaluating a senior web developer resume could be enough to find the right candidates…well this is just as crazy as describing it.
Furthermore, I do not totally agree with the idea that any kind of open job position should require a Senior profile, even if the employer is a start-up with a certain strict budget, most of the time junior profiles prove their skills very hard, deciding to work after the working shift to solve problems, find solutions, learn more and more, they are definitely thirsty of knowledge and these guys will later become the Senior mentors to keep scaling up the team and the business itself.
A good practice is to educate them, allocate 45-60 days of training with the most experienced profile you have in your company, or with yourself if you have an engineering background, or invest some part of the budget into an Academy that could appropriately prepare them to the most important aspects of the team collaboration AND the preferred tech stack.
This is what we do in Lasting Dynamics and this model nowadays closes the circle on how to hire developers all the times we need it. https://staging.lastingdynamics.com/academy
We also provide it as a service to all companies that might want to have a more educated and engineered approach to the recruiting process: https://staging.lastingdynamics.com/services/hire-developers/
This section will focus on non-absurd reasoning:
let’s imagine that you have in front of you the unicorn you were looking for, the same profile that knows all of the technologies that you don’t know, how do you figure out if he/she is genuinely applying for the position because could cover all of those technologies and is not missing any crucial of them?
Well, you would need another unicorn to interview them, in the way that you have an exact replica profile in your team, that could understand the whole stack and prepare the right interview questions for senior web developers - and why not benefit from it to seed and make grow a new team with more profiles that could diversificate the skills and the maintenance of your software?
Maybe you would rely on many professionals interviewing the same candidate, ok, but this also leads to the question “Since you are already doing it, why didn’t you break up the requirements in at least 2 different job posts also this time, so that you could keep following the strategy of hiring front-end / DevOps / back-end separately?”
How do you motivate this unicorn to stay with you other than the high salary expectation?
How do you avoid your company to verticalize too much knowledge on one person that tomorrow could accept another job offer and leave you in a disaster, or at least in the position in which you will learn diversification is a must?
All of these questions are not meant to scare the reader, but to let entrepreneurs, recruiters, and other IT professionals reason on the possibility that what they are looking for is probably not really what they need.
At the end of the day, a Full-Stack Senior developer was a talented junior profile that spent 5 years on front-end and 5 years on the back-end that kept themselves motivated and cutting-edge enough to not become obsolete and which has always followed the latest practices and new technologies and further releases/versions of the same technology year after year.
So let’s be intellectually honest and affirm with courage:
Why not start immediately building a team, of different people, that could cooperate, cover different areas of the code of the platform and make sure one day, they would all become Senior profiles?
Senior Full-Stack web developers described in this post do not exist, don’t waste your time chasing unicorns!
I can proudly state that in Lasting Dynamics, the 1st software house in Italy ( check the article here: https://staging.lastingdynamics.com/blog/clutch-ranks-lasting-dynamics-srl-1st-italian-software-company-for-web-and-mobile-development) has only a few, really few, full-stack developers in the team and keeps growing following the Academy model!
I believe in hard work and daily commitment as the only way to get results. I feel an inexplicable attraction for the quality and when it comes to the software this is the motivation that makes me and my team have a strong grip on Agile practices and continuous process evaluations. I have a strong competitive attitude to whatever I approach - in the way that I don't stop working, until I reach the TOP of it, and once I'm there, I start to work to keep the position.