Every engineering hire is a miracle.
– Etsy CTO Kellan Elliott-McCrea on the Craft of Hiring Engineers
When you’ve reached a certain scale, hiring entry-level engineers becomes a fairly deterministic process – you go to university career fairs, gather resumes, schedule interviews, and hire N members of the graduating class. Yes, it’s a huge oversimplification, and I’ve already gone into tedious detail about the actual process of building out your pipeline, but college recruiting removes the central problem of sourcing great candidates – finding qualified applicants who are looking for a job.
Junior engineers can bring great energy and skills to your organization, but they’ll also make the same mistakes we all make in the first couple years of our careers. Writing fundamentally unmaintainable code, defaulting to complete rewrites instead of the targeted retiring of technical debt, choosing technology based on coolness, getting trapped in the eternal twilight of the 90% done project, and so on. They won’t have the context to know whether something is well-designed (context being developed by having done something similar wrong a half dozen times), won’t have a well-honed instinct for code smell, won’t know how to say “no” productively, and just generally won’t be ten year veterans. Of course not. You don’t necessarily need an entire team of senior engineers (though it’s a delight to work with one) – a ratio of one senior to two mids to four or five juniors generally seems to be about right.
Sourcing senior engineers is, without question, the hardest part of the hiring process. At a certain point, all engineers get hit with a flood of unsolicited email from recruiters, which they typically regard with the pleasure reserved for stepping in dog feces. Worse, the best engineers are also the most likely to be showered with every inducement to stay at their current companies – even trying to get them to switch teams internally can be the cause of significant internal strife, and trying to extract them is an exercise in futility.
But try we must. There are a number of ways to get people in the door, and you have to try as many of them as you can. Every hire is a miracle, and you can’t depend on only one method.
Recruiters. Everyone likes to complain about agencies, but it’s absolutely worth working with the good ones. You can’t depend on this as your only strategy, of course, but candidates coming from recruiters are actively looking, and as such are typically higher yield than candidates identified by other methods. Speed is critical with these candidates, as you’re likely to be in a competitive situation, and the good ones get snapped up extremely quickly.
There’s probably another blog post to be written on the proper care and feeding of recruiters, but the key thing to remember is that they’re also people. They get excited when they make a placement, demoralized when they don’t, and develop long-term relationships with companies and people who treat them well. In my experience, the most important thing you can do to build a positive relationship with a recruiter is also the easiest (which is probably why so many people screw it up) – get back to them right away. Don’t blow them off. In short, treat them and their candidates with respect, and don’t let them twist in the wind, even if the answer is no. There’s nothing worse than to leave a recruiter hanging for a week, then to make an offer after the candidate’s already gone – you lose a hire, the recruiter loses a fee, and you dramatically reduce the likelihood that the recruiter will send you top candidates in the future.
Advertising. There are a number of places where ads might work, and while this is extremely low yield, it’s also low effort. I have made exactly one hire through StackOverflow ads. And one through LinkedIn ads. They were great hires, though, and all I had to do was get my boss to spring for some advertisements, then set up some calendar reminders to make sure I renewed them. You can’t depend on it, but it’s cheap and can’t hurt.
Note that even if you put specific language in your advertisement telling agencies not to contact you, they still will. And that’s fine – you can choose to engage with them or not, but it doesn’t cost you anything to reply promptly and politely.
Resume boards. I’ve historically been pretty leery of low signal sites like Monster and Dice, but more recent entries seem to be attracting a much higher quality of candidate. In fact, I’ve made two great hires through hired.com (angel.co also appears to be a good source). These should be in your arsenal for a number of important reasons. First, you can find great candidates through them. Second – and this is a possibility that didn’t occur to me until it actually happened – is that you can discover that someone you know is on the market (nothing is more frustrating than a friend going to another company without telling you they’re looking). Third is that looking over hundreds of profiles gives you a general sense of what people are expecting for comp at different levels. And lastly, it gives you a less biased view into the available talent. Intentionally or not, a recruiter might favor resumes of a particular type, but the search algorithms for these sites won’t differentiate based on ethnicity, religion, or gender.
Cold emails. Not gonna lie – sometimes you need to be the jerk. Sometimes you need to prospect on LinkedIn and email people you don’t know. Cold-emailing is both the worst method at your disposal, and the easiest to scale – yield will be extremely low, but you can easily double it by doubling your outbound email. It’s possible to get lucky – I once cold-emailed an engineer a week after he’d decided to leave his current gig, but before he’d started looking actively. Most people aren’t interested in a new job, and even if they might be, they’ve been conditioned to automatically delete cold solicitations. But if you hit them at exactly the right moment…
Far better is the cold-email with a third person connection. “Dear Alice, our mutual friend Bob suggested that I get in touch because…” This is dramatically more likely to get you a response – though the other person still isn’t likely to be interested, they’re less likely to reject you out of hand, more likely to at least be civil, and potentially willing to be open to further communication in three, six, or twelve months. You need to play the long game here.
Networking. Of course, the best way to get hires is through your network. These are pre-vetted, more likely to be interested, predisposed toward working with you, and less likely to be in a competitive hiring situation when you talk to them. The problem is that most people completely neglect their network until they want something from it. The best time to network is when you don’t need to.
If they’re willing, you should also use your co-workers’ networks. At best, they can reach out to their contacts, but the cold email with reference to the shared contact can also be effective. It’s a grand slam when you can hire someone great, make a co-worker happy that they’ll be working with a friend, and get them a referral bonus.
I’m not going to get into the details of networking here, but it really isn’t rocket science. Invite ex-colleagues out to coffee, lunch, or drinks. Listen to what they’re working on. Tell them what you’re up to. If they’re looking for help on something, do what you can to connect them to someone who might be a good fit. Be a good friend. And when it’s time, invite them over to your office to see the cool stuff you’re working on. Don’t be pushy – they’ll know what’s going on, and maybe they’ll come over, maybe they won’t. Or maybe they’ll come over next month when they get frustrated at work. Or next year. Or maybe they’ll recommend someone else. Or they won’t. You sow many seeds, and some blossom, most don’t. But these are people you like, doing interesting things – hanging out and maintaining these relationships should be fun, not a chore.
Pull. A couple years back, a small Boston mobile consultancy started a bimonthly meetup for people interested in mobile development. They got a back room at a popular local bar, set up a projector to allow people to show off what they were working on, paid for some nibbles, and started to attract a crowd. They were meticulous in planning this event, and soon became well-known in the community. In a market in which mobile development is a rare, prized skill, they were able to get strong engineers to come to them.
The difference between interviewing junior and senior engineers is more subtle than you’d think. Fresh grads will generally have more of their CS101 knowledge intact, whereas senior engineers should have better instincts and design skills. They should be able to describe systems they’ve built in significant detail, and have war stories of horrible mistakes they’ll never make again.
The more experienced they get, the more likely engineers are to be overly opinionated when it comes to technology, claiming that framework X or technology Y is “the one true way”, regardless of the application. They can be arrogant, or cynical. Fit, judgment, and leadership skills are difficult but important to evaluate, as these are the engineers you’ll be expecting to have an outsized impact on your organization, and potential candidates for future lead or management roles. The stakes are a bit higher, you have less ability to mentor them professionally, and you’ll just generally want to be more sure.
Once you’ve put in all the effort to get a candidate in the door, spent four or five hours of engineering and manager time interviewing them, gone through the feedback session and come up with an offer, it’s hugely frustrating to lose them to a competitor. You need to close your candidates, and for this, there are four critical things that you need to do.
First, they need to be excited about the opportunity. The content of the job, the mission of the company, the product they’ll be working on – you need to sell them on the vision, and if you aren’t a naturally ebullient person, you need to find someone who can get them excited. Getting the CEO to pitch them is a strong signal and can make a big difference.
Second, they should like and feel comfortable with the team. Best is if you can have everyone go out to lunch together – everyone’s on their best behavior in the interview room, and it’s far more likely a candidate will let down their guard and show their true self in an informal social situation. The same is true for you and your team, and this will give the candidate a comfort level in saying yes to an offer. Just be careful to train your team on which questions they can’t ask, even in a social setting, even if meant innocently.
Third, you need to listen. Senior engineers are more likely to have special needs/requests, and you can frequently make your company much more attractive by being flexible. What seems like a big ask to them might be a non-issue for you.
Lastly, you need to get them an offer quickly. It doesn’t necessarily have to be the same day (though I’ve certainly known people who try to get strong candidates offers before they leave the building), but getting them an answer (and offer) by the next day should be a strict rule. People hate uncertainty, and getting them an offer quickly will decrease their motivation to continue interviewing elsewhere.
There is, unfortunately, no silver bullet. Hiring can be a long, slow, frustrating grind of a process, but the one hopeful note is that it responds to preparation, hard work, and creativity. If you put in the effort, develop the relationships, and dig in for the long haul, you can hire some great engineers.