Recruiting Developers: the importance of finding the right people
Fri 3 Jan 2020 | Randall Degges
Taking the time to make the right hires and carefully thinking through your recruiting strategy is one of the best investments your business will ever make
Just about every business today relies on people who write code. The problem is that hiring good developers is difficult. It may even be the most difficult thing a business will do.
The reason developer hiring is such an important topic (and something many businesses find challenging) is that unlike many other professions, good developers can be many times more productive than their peers.
If you are hiring a driver to get you from A to B, regardless of how fast the driver you hire is, the difference between a high-performing driver and any other driver will be fairly minimal: they will both get you from A to B within a reasonable amount of time. It is essentially impossible for a driver to get you from A to B 10 times or 100 times quicker than another driver.
But this is not true in the technology industry. A great developer may be many times more productive than other developers, and a poor developer may actually remove value from your organisation. In short, hiring developers is a high-stakes game because the productivity multiple between one developer and another may be significant and business-altering.
Reaching the right people
There are only two ways to reach developers: in-person and online. Regardless of your tactics, if you want to recruit good people you need to get their attention, and without question, the best way to do this is to be an active participant in the developer community.
For in-person recruiting, this might involve giving technical talks at programming conferences, hosting developer dinners, and participating in developer events, such as hackathons or community meetups.
If you’re able to, having your existing technical talent present on new methods and tools they are using at programming events can be a great way to connect with like-minded developers working on similar problems, make friends, and build a reputation for both your business and your employees.
Similarly, hosting a relaxed dinner where you invite some of your top developers as well as other respected developers in your area can be a great way to make authentic connections and explore opportunities. I have met some truly great people hosting these types of intimate events. Supporting these activities by giving your existing developers time and resources so they can attend these types of events is an authentic and effective way to recruit great people to your business.
But as much as I love in-person developer events, it would be remiss to not mention more scalable, online ways to attract great developers.
Some of the most effective ways I’ve found to recruit great developers online is to publish technical articles and videos, answer questions on topics related to your business on popular developer sites like StackOverflow, and build and share open source software that other developers can use to solve problems.
Giving your top people time to share some of the interesting technical things they have learned on a company blog and YouTube channel can be incredibly effective. It can get the attention of developers working on similar problems, build developer awareness of your company and attract thousands of developers to your site over a number of years
While it can be a lot of work, allowing your technical teams to publish some of the software they create as open source solutions can be very effective too. Not only will open sourcing some of the projects your teams work on attract external developers to your company, it often makes your engineering team work more effectively by forcing them to build reusable solutions to common problems.
These strategies will help you reach the right people, but after you have reached them, it is still up to you to win them over. That means understanding fair market rates, developer culture, and engineering management. If you can foster an environment in which great developers want to work, you will have a much easier time getting great people to join your company.
Testing prospective candidates
One common misconception I have heard from business owners is that if you hire great developers they will perform well. This is not true. All developers can perform well under certain conditions, but it is up to you to design a hiring process that ensures the developers you hire will flourish based on your engineering culture, management, company values and technology needs.
When you are designing a developer hiring process the first thing you need to know is that testing developers and finding a great fit is tricky. There is no perfect way to do it and you will never be able to guarantee you always hire the right people.
With that said, here are the things that I have found work well in a developer hiring process.
Ask developers in-depth questions about projects they have worked (or are working) on. Avoid just asking them what they are doing currently, instead have them explain it to you in great depth. Ask them why they are doing things certain ways and how they might change things. Probe at a deeper level and you can gain a deeper understanding of how they think and what their realm of expertise is.
It is important to ask a candidate what their favourite project has been. I often have them walk me through it — what they liked about it, and what they disliked. This is a great way to figure out not only what the candidate knows, but also the types of projects they enjoy working on.
Instead of coding-puzzles, give candidates a take-home project. Not only are coding-puzzles a poor reflection of what candidates will actually be doing on the job, they also incentivise poor behaviour. Instead of making the interview process about a candidate’s experience and depth of knowledge, coding-puzzle-style technical quizzes end up merely testing the candidate on how well they have memorised a series of common math problems, which is almost certainly what you do not want to test for.
Instead of forcing a candidate to solve problems on a whiteboard, consider giving them a take-home project. What I like to do is ask candidates to build a very small application (which they should spend no more than four hours on); something similar to what they would be working on if they get the job. This way, the candidate has a chance to think through what they are working on without the performance pressure of an interview and can show you how they perform in a real-world scenario.
An added benefit of the take-home project is that if the candidate does come in for an onsite, you will have plenty to talk about using the take-home assignment as a basis for conversation. I like to ask candidates what they liked and disliked about the assignment and use those questions as a starting point to dive deeper into the technology choices and strategies they used.
Making the best hires
Making sure every developer you hire understands your business challenges and how things can be improved is critical. Bringing on developers who will just take orders is a recipe for disaster, as your business will be unable to innovate effectively with this mindset. It is vital that the strongest members of your team have the same vision for fixing issues and pushing for change that you do.
When this is all done successfully, developers will be one of the strongest growth factors for your business. Taking the time to make the right hires and carefully thinking through your recruiting strategy is one of the best investments your business will ever make.
DevOps Fri 3 Jan 2020DevOps is not just an excuse for the firing of developers
Security Fri 3 Jan 2020A holistic view on solving the cyber security skills gap