When I was first promoted to leading a team and tasked with hiring people, I was really scared because of the prevalence of articles and anecdotes claiming scary things like “80% of people in software can’t code” or “one bad hire will destroy your team.”

After a few years of doing it, I think those fears are silly and it’s all a lot of overblown scare tactics to pressure us into cargo-cult adoption of what Google has done, usually through consulting firms that advise on the recruiting process or through new businesses like HackerRank, etc., that try to commoditize this fictional hiring fear.

What has worked for me is trusting recommendations from my existing team, employees in a company, or my extended network. I’ve also selectively reached out to specific users of GitHub, Stack Overflow, Kaggle, and other community sites. I will also travel to university recruiting fairs, professional conference recruiting fairs, and sometimes local meetups or technology groups.

I avoid opening up a job ad to the whole internet and accepting an undifferentiated stream of resumes. I avoid it not because it means I have to weed out “bad coders” or some nonsense — in many cases, most applicants are fully skilled enough for the job, and it’s just a big lie in our industry when people whine about inability to pass FizzBuzz. It keeps the incentives aligned towards hiring hyper-competitive 22-year-olds who just spent 10 months on leetcode and end up working for a lot less money, while nobody thinks about the impact on culture, long-term design or other expertise, diversity, etc. They just want the 22-year-old leetcode jockeys to arrange them as a doll collection in open-plan seating for VCs and investors to walk by.

Instead I an internet stream of resumes because it’s not cost effective to put myself in a position where I or especially engineers on my team have to scour huge piles of resumes.

I can’t stress this enough. You should not open yourself up to a firehose of resumes. And adding extra filters, like coldly making candidates complete a code test before they even speak to a human about the nature of the job is just a symptom of the contortions you have to do if you open yourself up to a firehose.

Focus on improving the useful signal of the source of resumes. Keep diversifying and improving this, and take on small batches of higher signal resumes.

If I could summarize what has worked efficiently for me:

- keep job ads short and technically focused on the intended job duties

- don’t open yourself to a firehose of resumes

- use technically probing conversation, recursively digging into really technical details of the candidates past experiences or studies

- code tests, if used at all, should be used lightly, involve no hazing-style algorithm trivia, and candidates should have options regarding their comfort and preferences (e.g. doing it on-site vs take-home, using their editor & programming environment of choice, generous time limit, and absolutelt nothing resembling HackerRank/coderpad/whiteboard hazing nonsense).

- Keep initial interviews short and informative.

- Use the max over a candidate’s performance in early rounds, and min in later rounds, explained below:

- In early rounds, always have more than one interviewer to get multiple impressions, and use the best candidate impression to decide to continue them to the next round.

- in late rounds, have many interviewers and use something closer to the candidate’s worst session to decide on an offer, but perhaps with some careful discussion to mitigate the chance it was unrepresentative.

- And of course always give the candidate a chance to ask questions and see the facilities. I would expect a candidate to absolutely turn me down if they aren’t allowed to ask questions, and why shouldn’t they? Especially if my company comes across like we care more about cramming in one more trivia question than about the candidate’s curiosity and preferences, frankly then we don’t deserve to hire a good candidate.

There really is such a woeful lack of Peopleware-style common sense in modern tech hiring; a lack of basic humanity or empathy to such a degree that it actually hurts business.