Developer Relations: Finding, Hiring, and Keeping Developers.
Prologue: I like to help startups as a technical advisor – formally and informally. The biggest problem startups face by far is finding and hiring developers. It’s a big deal. There are great startups that are held back because they can’t staff up. Because I keep running into this problem, and repeatedly explaining how to overcome it, I thought it would be useful to write down a solution you can put into practice.
But be warned, this solution is not a quick fix. It’s something that is pretty hard to fake (developers are not fools), and you need to adopt this approach at the business strategy level. I don’t know your context, your constraints, or your company, so we’ll have to do this over a series of longish articles. That will let you pick out the bits that work for you. Grab some coffee!
You need developers. You need developers, yesterday. You need so many you actually have a budget for recruitment, not just head count. You will mostly spend this budget on recruiters. You will mostly waste it.
Everybody needs developers. Everybody says they are “hiring”. You have open jobs on your website. You have job ads—paid job ads. You are paying a recruiter. And yet you keep losing the best candidates. You can’t afford them, or they get taken before you can even make an offer. If you get to see good candidates at all.
This is affecting your business directly. More developers means more sales faster. You’re like a restaurant without enough tables. Oh, you have the floor space, and the line of customers out the door. But there’s nowhere for them to sit.
Yet you still play the developer recruitment game, because you have no other choice.
Let’s think about what you are getting for your money. The really good developers, the ones you really want, the ones that really are ten times better 1, the ones that really will grow your business, your product, your team, those developers, you can’t have them.
You cannot have them. Don't fool yourself. Why? They already have jobs. Well-paid jobs. Very well-paid jobs with insane bases, perks you can't match, and, oh yeah, public company stock options. Those developers are not moving. And when they do, it’s because a friend spoke to them about a cool new company. Or they’re doing their own startup. Or they're just moving to another fantastic position in a big tech company.
Here’s what the really good developers are not doing: reading your job ads, and replying to recruiters' messages. Now, you might get lucky. Sometimes these developers happen to end up looking for a job in the usual channels. Life happens and their network is temporarily dry. Or, you get a junior who is destined for greatness, but has not built their network yet.
How lucky do you feel? The pool of available job-seeking developers who will see your traditional job ad is mostly going to contain poor performers (they end up job hunting for longer), juniors (of which only a small percentage are what you want), and those testing the water—that is, looking for more money (worth it if they are good, and if you can tell, and if you can close the offer, and if the planets align…).
OK, you know this. So you’ll settle for ordinary developers who are professional and get the job done. Nothing fancy. Not everyone can be a 10X developer. This evens the odds, right?
Nope. The same dynamic applies. They might not make quite as much, but they are just as valuable. The 10X developer might build your first version in a 3-month frenzy, but guess who has to fill in the missing 90% of the features? Guess who has to get the thing into production and support it. Who does all the "boring" integration work? Most of the long term value in your company will be created by the ordinary professional developer. Any company with any sense will hold onto these developers very tightly. They also do not spend long job hunting. And they also move jobs to get paid more.
The take away is this: it's no good hiring the top 1% of your recruiting leads. They don't represent the top 1% of the developer population. Your interview process can be 100% accurate in assesment of ability, and you will still fail.
Those are the ground rules.
There is an effective strategy that does work, given these rules: show that you care about developers and respect them. Do this by consistently paying above the market rate, and building a reputation for treating developers well. You’ll end up with the best candidates and the strong team you always wanted.
You don’t have the budget, and you can’t afford all that free beer on Friday either. You get that “treating developers well” is a nice recruiting tactic, but, well, how? Is it expensive?
First, on the budget side of things, it’s better to have a smaller team of higher paid, higher performers. Good developers are amazingly great value for money. The legendary but impossible to hire 10X developer is not paid ten times as much (by anyone)! The wonderful and definitely possible to actually hire 2X developer, won’t need twice the average developer salary. Not even close 2.
Developer salary levels are the result of a complex global system that nobody really understands. There are multiple factors that disconnect the true value of software from the salaries of the people who write it. The only way an individual developer can escape this undervaluing is by doing a startup (if that’s you – awesome!). Luckily for the business, your business, almost all developers just want a good job where they are respected and get good money. The upshot is that good developers, if you can get them, are amazingly great value for money. Insanely great value for money.
That's how you pay above the market rate. Fewer developers and better developers.
Want to know why Amazon is so successful? On the developer side, they do this—the famous “two-pizza“ team sizing. If it takes more than two pizzas to feed your developer team, you have too many developers (on a single team).
Staffing up like this is a longer term tactic. Fewer and better developers does not happen overnight. And you need stuff done tomorrow (or yesterday).
The second tactic, treating developers well, is the one you can actually do something about today. What that means, and how to start, and how to embed it as a competitive advantage in your organization, is what we’ll spend most of the time talking about in this series of articles. This tactic also takes time, but it is faster to put in place, and supports the first tactic (you need to hire the better developers in the first place).
To conclude, let’s think about what a successful strategy would mean when you have a job opening.
You manage to attract a really great developer, because they believe you and your business care about developers. This developer generates some good results for you—happy clients and solid on-time releases. Then they have a friend who’s looking for something new. The friend is also great—and has a profile: an Open Source contributor, blogger and conference speaker. They join, blog and speak about your business, and word starts to spread. Now good developers know that you are good too. You hire from the network of those two solid early hires. And then from the network of those hires. Your business grows, and network hiring is just not enough. But now you have a solid reputation for good DX—Developer Experience—so when you put the word out on your site, blog, socials and conferences, you get great recruitment leads. A virtuous cycle spins up, and you find that you can hire on brand alone—that is the end game.
One final thing: the developers that already work for you—what about them? As the overall quality of your team increases, they are motivated to level up. They enjoy working for you more, because they are learning from peers they respect. Don't underestimate the boost you'll give to your existing team when you show them you care.
In the next article we'll start learning how to make developers happy by supporting Open Source software.