It’s extremely difficult to find talented software engineers — especially in today’s market. I have my own theories as to why that is, ranging from the fact that software engineering is still a relatively young profession, all the way to deeper philosophies about how competent people are at their jobs, in general. What’s more, companies that lack talented engineers typically have a very difficult time finding talented engineers, and this is not coincidental.
The problem is that you don’t find talented engineers — they find you, which means your effort should be primarily spent on creating a culture that attracts them. Am I really suggesting there might be a better approach than farming your hiring out to recruiting firms who cold-call and spam their way to profitability, who themselves haven’t the first clue as to how to find talented engineers? Probably not, if you’re looking to impress your CTO, who’s asked you to add 15 more engineers before next quarter. However, if you’re looking to hire top-tier engineers, don’t call up your local account managers and hiring executives who will just scour your area for the Usual Suspects.
Work on changing your culture, introducing them to things like Test Driven Development, Domain Driven Design, Pair Programming, S.O.L.I.D. Principles of Object Oriented Programming, the list goes on. Work on finding someone who wants to bring those things to your organization, and convince them that you’re committed to doing it. Finally — and this is key — hire a team to help. You’ll find talent is attracted to talent.