Hiring people is both a science and an art. Hiring software engineers, in particular, sometimes feels like alchemy, but it doesn’t have to be that way. There are common mistakes teams make when hiring (and retaining) developers, but there are also common solutions to avoid falling into that trap. We’ll look into issues you might be facing in how:
- You present your company to potential candidates;
- The recruitment process might make them turn away;
- The skills and characteristics you’re searching for might not be the most relevant;
- New dev hires can struggle to adapt to the team and the product;
- No matter what you do, you can’t seem to scale properly;
- You’re losing ’em faster than you hire ’em.
And then we’ll look into ways of solving all of that. Let’s go!
Contents
1. You Don’t Have a Candidate Marketing Strategy
You have an amazing marketing team! They’ve zoomed in on potential users of your product, their needs, hopes, ambitions, quirks, ailments… but what about your candidates?
Your marketing people know where all those potential clients are, how to reach out to them, and how to speak their language… but are you speaking dev talk? And are you going to the right places to find them?
The product or service you offer is your baby. I get it, and I respect that. Here, though, we’re talking about the parent (your company), not the baby.
You want the proverbial village to raise that child. While engineers will be very interested in what your company has to offer to the world (and what problems it will fix), they’re even more interested in getting to know you, your team, how you function, and the glue that ties it all together.
That’s your company’s narrative. It’s you telling the world, “Look, here we are, here’s what defines us as a collective of people, here’s how we see building up this team”.
As far as hiring is concerned, your company is the product; the candidate is the client.
There are different ways and places to show it, but as far as recruitment is concerned, it all starts in your careers page. In it, you should share:
- Your company values
- What you’re all working on
- How does your team interact internally?
- What benefits do you offer?
- What does career progression look like?
- a list of open roles (duh)
- an FAQ to preemptively answer any questions that your candidates (or mere lurkers that will later become candidates) might have.
Here, check ours – it might inspire you!
Is it enough to simply state, “Our innovative product will disrupt so and so industry and you will love it!”? Is that making clients rush through the digital door, waving cash and shouting, “Take my money!!!”?
No, right?
With candidates, it’s the same thing. The mere fact that your company has a role that might be a good fit, in terms of stack and years of experience required, is not enough to make someone go from seeing it to acting upon it. You know this in terms of product marketing – all you have to do is apply the same mindset to candidate marketing.
If nowhere else, it’s at the company’s careers page that potential candidates will look for this information, but then, like a good virus, it’ll spread elsewhere. They’re checking the rest of your website to know more about your product/service, and there’s a section about your tech stack, or there are case studies that show how elegantly your team untied a Gordian Knot in the past. They’re checking your company’s Glassdoor reviews which show how those values are real. They’re checking LinkedIn for an unrelated matter and a post mentioning your company pops up and solidifies their trust in your narrative.
All of this takes time and effort – but so does product marketing. Clients don’t appear out of thin air, nor do candidates, yet every step counts.
2. Candidates are Dropping out of the Recruitment Process
If we’re talking about great engineers, we’re talking about a buyer’s market. It doesn’t matter how much the tide might seem to have turned and how many LinkedIn users you see with the #opentowork profile image; amazing candidates will be sought after, will be in multiple recruitment processes and will be snatched up by a competitor of yours if they’re faster, more efficient, and more transparent. Here’s what you need to do to be that competitor and avoid “dropping the sale”:
Make it All Super Clear in the Job Post
Remember, transparency is key. You want prospects to become excited about going through the recruitment process and become candidates. You want candidates to feel like they’re not entering a dark room filled with uncertainty. Be transparent about what the role is about, what they will be doing, what they have to bring, what the recruitment process looks like, how long it’ll last and what the salary range is. I cannot stress this enough – you. must. tell. the. customer. how. much. does. the. product. cost. This is a surefire way for the candidate to feel “ok, these folks respect me as a worker and as a candidate, let me apply”.
Make it All Super Clear to Your Team
Everyone involved must be aligned in terms of what, when, and how.
- What – to look for, to ask, to promise. What do we need to see in the candidate? What do we need to ask them to be sure they have it? What do we need to promise them?
- When – have every interviewer block time for interviews, have the challenge reviewer (if applicable) set time to review challenges asap, and define SLAs for everything. I cannot stress this enough: you’re on a hiring mission – if you snooze, you lose.
- How – interview channel (video chat app), scheduling tool, applicant tracking system. What steps go when, and how does it flow?
Define a Quick, No-Bull, Recruitment Process
- You don’t need ten interviews and two challenges. What you need is a quick 3-4 step process, max. Got a recruiter? Good. Have them source great prospects, comb through the applicants, and interview the ones that seem to fit the bill. Don’t have one yet? Better get one, there’s nothing better than an in-house culture ambassador to move hiring successfully. Bonus tip – arm your recruiter with enough technical knowledge to allow them to do some quick tech validation during their interview, to weed out the obvious wrong profiles.
- Then, get your CTO (or equivalent colleague, in terms of tech knowledge) to interview the candidate for one hour. During that hour, and above all else, they will have to check how the candidate thinks. How do they face a problem? How do they maintain consistency in their output? Do they have examples to illustrate their answers? Also, present them with real-life tech problems and ask them how they would solve them. Again, experienced candidates have faced tech issues before and can use reason and logic to find a workable solution to a problem. It may not be the “right” solution, but if their reasoning is sound, they will know how to get there. Finally, if your product/service is heavily connected to a specific stack, it could make sense to show them some code snippets or other similar elements and ask the candidate how to improve them. If they’re good, they’ll spot the issues and offer solutions.
- If absolutely necessary, create a coding challenge that is meaningful for their role, that won’t take more than 4 hours of their time (or be ready to pay for the time they take doing it, if longer), and that mirrors real-life topics without being a “do this for us so that we can use it later commercially”. Candidates hate that, and rightly so. Give the candidate a reasonable amount of days to perform it, and check with them when the challenge should be sent to them. The earlier, the better, obviously, but your CTO’s interview might have been on Tuesday, and the candidate will have time for the challenge only during the weekend – in which case, send it on Friday.
- Finally, get your strongest product person (hey, it may be you, the CEO of the company, if you have the bandwidth!) to have the final interview with the candidate. This person should be able to understand how much of a culture-add the candidate. What is a culture-add, you ask? It’s someone who not only fits your company’s culture but enriches it and makes it even more appealing for future candidates in a virtuous cycle kind of way. It starts with how the candidate would engage and interact with their squad, other teams, etc., but also how they live your company’s values and project them to the outside world.
- Got ‘hell yeses’ from everyone? Send the candidate an offer immediately. Remember, the candidate may have other offers on the table, and it doesn’t matter if your recruitment process was smooth and efficient, if then you take too long to make them an offer.
Learn From Your Mistakes and Iterate
All of our work is iterative, isn’t it? We try something, we check the results, we iterate if it doesn’t work, right? Therefore, define a plan, stick to it until you notice something goes wrong, find the issue, iterate the approach, and carry on.
Yet – and I know this might come as a surprise, but bear with me – yours is not the only company hiring people. A ton of other companies are doing it and they’re making a ton of mistakes! Why not learn from their mistakes first? Grab some time to browse through the recruiting hell subreddit – it lists so many mistakes that you’ll know what not to do even before you start!

Looking for Software Development Services?
Get straight to the point, jargon-free advice from a tech expert that has been building award-winning Startups for the past 10 years.
3. You’re Prioritising the Wrong Skills
Assuming you didn’t skip to this part first (Oh, you did? Go read the bits above, come on!) you know by now that it’s not all tech.
Yes, successful candidates will be good in their technical skills, but you need to make sure they are also great humans to interact with. They do not have to be like you, or your idealised version of what a developer has to be.
They don’t have to be extroverts, or fun to be around, or cracking jokes all the time, or anything of the sort. They can be like that, sure, but what they do need to be is good colleagues, and to be a good colleague, one needs to be a good person.
That’s it.
You will want candidates who enjoy helping others and solving problems, who offer clear communication and who are curious.
Curious people will ask “Why?” and that question will make you explain something that you thought was clear, but maybe it’s not, or that you thought was solved, but maybe still needs work. Curious people see beyond their mental cubicle and connect the dots, ask questions, suggest solutions. Those are the devs you want, and if you don’t look for those traits, sure, you may get a good coder, but only that, and not a great worker. You need great workers.
So, to summarise, make sure you search for the following traits when hiring:
- Likes to help
- Solves problems
- Communicates clearly
- Is curious (and asks questions)
4. Your Hires Struggle to Adapt to the Team and Product
You’ve read the previous sections and you’re thinking “That’s all great, sure, I’ll implement that, but we’ve got ongoing issues”. I hear you.
You may be in a situation in which you’ve hired one or more developers and they’re struggling to adapt to your team (or your product) and – spoiler alert! – They may be thinking of leaving.
This usually happens when there’s a disconnect between what the candidate was tested on and what they are now working on. Was the technical interview (and challenge, if used) based on real-life needs and tasks that your team works on? Are they aligned with you and your team on the importance of the product that you’re working on? Is there a gap in the interaction of the worker and the rest of the team?
Honest answers to all of these questions will allow you and your team to check what failed when hiring this person and what mistakes to avoid in the future. Then, as you practice and improve your hiring chops, these situations become way less frequent. In any case, you should always maintain a degree of self-vigilance, so as not to fall into a sort of “clone trap”, where you end up just hiring clones of your ideal colleague and your culture gets stuck.
Actually, maybe that could already be happening. If you’re having more than one developer not adapting well to your team, and leaving, perhaps it’s time to take a look within and uncover blind spots.
You see, if your team is stuck in ways that are too rigid that’s a problem now but it’ll be a nightmare later with other hires as they will either a) stay, and fuel that negativity by thriving in it, or b) they will leave, not wanting to endure any of that.
As we’ve learned when we were kids, we must look to both sides of the road – look left to confirm if your team’s culture is healthy and look right to confirm if the new hire will adapt and thrive in it.
5. You Hire’em But Scaling Isn’t Happening Properly
Ok, you’re hiring developers, they’re working and they seem to get along fine with the team but… where’s the scaling of your product? Where’s the growth that you wanted to have achieved by now? Why is delivery so slow, and morale so low? And have you checked how much technical debt you’re accumulating?
These are different issues, stemming from different root causes, but each of them can contribute to a situation where despite being able to hire (and relatively successfully) you’re not getting the expected results. Let’s check them one by one:
Slow Delivery
It’s possible that your dev team isn’t yet as big as you need it to be, and it’s just a question of time, but it’s also possible that your team simply isn’t delivering as fast as it can.
Your team can do better, but for that, y’all probably need to review your processes. Just how agile is that Agile methodology of yours?
Are your devs swamped with meetings where they are not needed? Are they being constantly interrupted with messages/slack huddles that are not urgent and break their concentration?
Are their priorities constantly being changed? Talk to them! Hear them out and understand what their pains are. Talk to your engineering managers too, if your team has them. See how they are coaching and enabling their team members to do their best work. Then talk with your product and project managers and try to understand how they are functionally leading their squads.
Somewhere in there (or maybe a bit everywhere) you’ll find entropy. Go!
Low Morale
Morale is a cute double-headed beast. One of those heads concerns the individual’s feelings, and how they perceive how things are going. The other is how, collectively, the sum of all those individual feelings result, within a team, in a vibe, if you will, that feeds upon itself and reinforces the negativity.
Foster a culture of transparency, explain that you’re keen on finding out what entropies are keeping your team from thriving and keep everyone posted on how things are progressing. You’ll see how morale will improve in no time!
Accumulated Technical Debt
I’m not an engineer – far from it, I methodically failed maths in school! So I’m not the right person to tell you how your team should balance speed and rigour.
What I can say is that somewhere between moving fast and breaking everything including our code and let’s make sure everything is perfect, taking all the time in the world to do it, your team – and only yourselves, no one else – will be able to find the sweet spot and the low-hanging fruit that you can tackle quickly to energise the team into maintaining that balance.
Sign up for our newsletter
Join hundreds of entrepreneurs and business leaders to receive
fresh, actionable tech and startup related insights and tips
6. You’re Losing Developers Faster Than You Can Hire Them
Ok, now we’re entering a field of waving red flags, as far as the eyes can see. If developers keep leaving, something’s definitely wrong. Here are a few reasons why this might be happening:
Poor Management
Please tell me you’re not promoting great individual contributors (IC) to management positions because “that is what companies do”.
An amazing IC does not automatically make an amazing manager. It doesn’t work that way, because the characteristics that make for a great developer are not necessarily the same as the ones that make for a great manager.
Great managers are coaches, enablers who aid their colleagues to be the best developers they can be. They’re there to guide, to train (and therefore yes, they should have the technical knowledge to handle it), and to untie Gordian Knots. That’s it. If they’re not doing this, then your ICs will notice it and start wondering why they’re working there in the first place.
It’s also important to note that engineering managers need support from upper management to do a good job. If their hands are tied from those above, there’s little they can do to help those in their team. Consider how much autonomy and decision-making capabilities they have, and fix it if needed.
Boredom
A product doesn’t have to be shiny and sexy to be appealing to those who develop it. I mean, it doesn’t hurt if it is, but boredom doesn’t come from a lack of glitter but from a lack of purpose.
Software engineers like to feel that the work they’re doing is meaningful and that, line by line, their code is helping bring to fruition a solution. Make sure that each sprint or iteration is focused on keeping that evolution going and boredom won’t afflict your team!
Lack of Career Progression
This one is a given; if an engineer feels like they are not progressing, they will quit and go elsewhere.
Mind you, progressing does not necessarily mean “becoming a manager”. It can mean many different things – expanding their stack/responsibilities, becoming more and more senior in their particular area and yes, for some, becoming team leaders and managers. As always, listen and pay attention to what people tell you, and you’ll know what you need to offer.
Toxic Culture
I mean… would you say your company, your beloved company, has a toxic culture? Would others say that? If they do, why? What is it that you’re either not seeing at all, or not interpreting as deeply negative?
Because you might not be seeing it, and others in the company might even be shielding you away from it, but toxic elements corrode a company’s culture and it’s very hard to reverse that.
If you’re hearing or reading opinions about the level of toxicity of your company’s culture, pay attention, if possible, ask for more details and be ready to face some hard truths – and the change that must come with them.
Ill-adjusted Salary/Benefits
Your company’s culture can be great, managers are there to help instead of blocking, the work is interesting and engaging… but your company doesn’t exist in a vacuum, there’s a lot of competition out there.
Also, your workers don’t just work; they have families, hobbies, bills to pay, and salary and benefits are key to their wellbeing – and for their willingness to stay.
Compare your salaries with those that the market pays (start with free sources like Comprehensive and Glassdoor before paying for data elsewhere) and see where your company is in the scale.
Also, check the careers page of companies where your ex-workers are moving to. What benefits do they offer? Why are people deciding to join them instead of staying in your company? You can learn a lot this way.
You can also learn a lot from your company’s online reviews that workers and ex-workers write. If they don’t feel there’s space for criticism internally, they’ll vent out there. Read them carefully, analyse the criticisms made, consider ways of solving the ones that are real and give the review an honest answer.
Finally, conduct meaningful exit interviews. I’m talking about you, the CEO of the company. You do it, and by ‘meaningful’ I mean to demonstrate to the person leaving that indeed you want to know why they are leaving and then consider what changes you should apply to avoid more bleeding.
If you follow the tips I’ve shared in this article, you’ll find that most of these warning signs will either go away naturally or never appear in the first place.
Wrapping Up
Let’s compile everything I’ve gone into detail about in this article again, for clarity, and summarise our key findings:
- No candidate marketing strategy – To attract top candidates, your company must treat your hiring process like product marketing by showcasing your team, values, and culture on your careers page, and spreading this narrative across various platforms to build trust and engagement.
- Candidates dropping out – ensure a transparent, efficient, and quick recruitment process, aligning your team, providing clear job details, and offering a streamlined interview process that values candidates’ time and culture add, while learning from mistakes and iterating on your approach.
- Prioritization of wrong skills – focus on finding candidates who are not only technically skilled but also good colleagues—curious, clear communicators, problem-solvers, and eager to help others.
- New hires not adapting to your team/product – assess both the alignment between interview questions, challenge tasks, and real work, as well as the health of your team’s culture, to avoid future disconnects and ensure better hires.
- Scaling isn’t happening – Reviewing processes, fostering transparency, and finding the right balance between speed and quality to improve efficiency and morale is essential if your team is struggling with slow delivery, low morale, and accumulating technical debt.
- Devs are coming and going at a fast pace -either due to poor management, boredom from lack of purpose, no career progression, a toxic culture, or ill-adjusted salary/benefits, all of which need to be addressed through better leadership, engaging work, a healthier environment, and competitive compensation.
Ultimately, hiring isn’t just about finding competent brains and filling boxes; it’s about finding the right puzzle pieces to complete your cherished vision.
Think of it as a pulsating, living organism that needs different organs to be whole. Which bio-pieces will make it unbeatable?
The ones that you should look for, engage with and nourish. And as for the ones that are already part of this organism? Make sure they get all the nutrients they need and the correct environment to thrive, and you’re bound to be on the right track!