Hiring developers - lessons from screening 1000+ applications
If you are a decent developer looking for a job you won’t have any problems whatsoever finding one. However, the opposite is true if you want to hire developers (unless you’re Google or Spotify), especially if you’re not hiring a lot of them. Having worked with dozens of companies looking to hire tech talent, and having screened thousands of candidates as part of consulting gigs I have seen some approaches work better than others to find, attract and keep developers.
To find developers, there are hundreds of channels you can use and you’ll just have to test some of them. Stackoverflow.com is probably one of my favorites since you can target your specific tech stack there (If you’re looking for Python developers you can choose to have your ad displayed next to questions about python). If you’re fine with hiring remote talent, you might want to consider WeWorkRemotely or RemoteOK but I can’t vouch for them since I have mainly worked with remote freelancers rather than employees. I can recommend Fram specifically for Vietnamese tech talents though.
To make developers interested in you, these are some best practices that I’ve seen work:
- Describe some of the actual problems you want solved, rather than just putting up a generic ad for a backend developer. Preferably you should mention open-ended problems (like we need to pick a new frontend framework) as well as specific challenges (we need integrations with Zapier and Airtable).
- In as much detail as possible, tell them what’s unique about your company - but avoid cliches.
- Describe your tech team (if there is one): Who would your candidate be working with? What products are you proud of, and why? Are there any specific technical challenges that you have overcome, and how?
- Talk about the recruitment process: A professional process is not only a way to find the right people, it can also be critical for attracting the right people to begin with. If you know that you’re going to be properly assessed, that means that so were your future co-workers and therefore they are competent.
To assess their skills, you should try to understand:
- Are they competent within their needed area of expertise? There are no shortcuts here - you need to see examples of their work. It can be code that they’ve written before (at work, or contributions to public github repos) or some kind of code test. Beware though - unless you’re certain that you have a strong employer brand, you should be cautious with giving assignments that require your candidates to spend hours of their free time. Instead, try to cover as much ground as possible during your interviews - one effective way is to show several short code snippets and ask your candidate questions about them: What language is this, what does the code do, why doesn’t it work etc.
- Can they make strategic choices with regards to technology? This is more important if you’re in a startup where a lot of choices regarding your tech stack are yet to be made. Ask your candidate about earlier choices that he/she made!
- Can they ask for help? Programming is a line of work where you can “get stuck” in ways that other professions can’t. Sometimes you just don’t know why your code doesn’t work, and you shouldn’t be afraid to ask for help once that happens. One (slightly evil) way of testing this might be to give an interview question where there’s a missing piece of information, and see if the candidate dares to ask for help.
Once you’ve hired them, these are some general tips to retain your developers:
- Give them everything they need in terms of equipment: A great computer (don’t underspend here!), great software (let everyone work with their favorite tools as often as you can), a quiet room of their own (sitting in an office landscape together with eg. salespeople can be devastating) and a proper budget for courses, books and resources they might need to keep their skills up to date.
- Make sure that there are always at least some interesting technical challenges to work with - this might be as simple as giving people responsability and avoiding micro-management.
- Be an altogether great place to work, where developers as well as non-developers feel safe and are not afraid to speak their minds.
These were some practical things to keep in mind when recruiting tech talent. Happy to hear your thoughts and comments on how this list can be expanded! (Easiest way is probably to follow me on Twitter) and send me a DM)