editione1.0.8
Updated August 24, 2022You’re reading an excerpt of The Holloway Guide to Technical Recruiting and Hiring, a book by Osman (Ozzie) Osman and over 45 other contributors. It is the most authoritative resource on growing software engineering teams effectively, written by and for hiring managers, recruiters, interviewers, and candidates. Purchase the book to support the author and the ad-free Holloway reading experience. You get instant digital access, over 800 links and references, commentary and future updates, and a high-quality PDF download.
Every professional software engineer or manager has seen a hiring process at some point in their career. If you’ve worked on a software development team, you’ve been interviewed, interviewed others, and maybe hired team members.
Hiring creative, specialized, and skilled workers like software engineers is an inherently challenging matching process, where the variables and possible combinations are numerous. Companies and teams consistently struggle with goals that are often in tension:
To find the right quality, quantity, and diversity of candidates.
To make hiring decisions fairly and effectively.
To do all this efficiently, at reasonable cost in time and money.
Flaws in hiring processes—including inadequate assessment, slowness in hiring, and noise and bias in evaluation—incur a major cost to companies and can have a significant toll on job-seekers and employees.
Three common pitfalls make software engineering hiring a unique challenge:
The difficulty of assessing skills and fit. The factors that make a software engineer effective in their role are complex. Engineering requires significant skill and years of training, but (perhaps unlike in some fields like medicine or law) ability and fit for a role is usually not indicated by specific certifications or academic degrees. Great teams routinely include PhDs, college dropouts, and those who’ve learned to code mid-career. Resumes, phone screens, and interviews do measure skill, but are all highly imperfect. Interviewers often have strong opinions about candidates, for example, but evidence generally show these assessments are not reliable indicators of job performance, and most experts believe that structure, calibration, and a combination of signals is the best mitigation for noise and bias. As we will discuss, fit depends on alignment on both sides.
Ineffective and unfair processes. Hiring requires making crucial decisions in the face of ambiguity. The goal is a fair, efficient, and effective process for decision making that’s right for one team or company. But few people understand the technical hiring process deeply enough to design these processes well. Multi-stage hiring processes, from resume filtering to complex technical interviews, can go wrong in surprising ways. Interviewers and hiring managers may not be properly trained, or may not appreciate the importance of time spent on recruiting. This can lead to spending too much—or too little—on hiring, and ineffective or unfair hiring decisions. The fact that typical tech teams do not reflect the diversity of the population is also indicative of an uneven playing field for job seekers. Much of the “wisdom” around hiring amounts to replicating things that have become customary at other companies, but may not apply to your stage or needs.
Poor candidate experiences. Companies very often underestimate the importance of the candidate experience (due to a perceived asymmetry of power) or don’t even realize that their candidate experience is poor. While it’s easy for a company to feel like it holds all the cards when hiring, the most desirable candidates often have many options and will self-select out of that company’s process if it doesn’t take their needs and values into consideration. In fact, if your company is holding a high bar for hires—as it should—it’s safe to assume that any candidate you’d want to hire has multiple options.
dangerWhen thinking about recruiting, both startups and larger companies often look to other, often famous, companies for inspiration. But you are (probably) not Google, and “hire like Google” can be dangerous advice. The kinds of people you want to hire may not be the same. Each company is in a unique position—its size, growth, philosophies, and financial outlook may be very different from companies you compare against. Finally, well-known companies often have different kinds of leverage, such as a prestigious employer brand, which means that some of their practices may simply be things they can (seemingly) get away with due to their desirability. We can learn a lot from large, successful companies, but we shouldn’t blindly copy them.
This Guide covers all stages of the hiring and recruiting process for software engineering and software engineering management roles.
Hiring is the process of finding and building alignment between the needs and values of professionals and organizations. Recruiting is the process of attracting professionals that an organization might consider hiring.
This Guide covers the end-to-end hiring process of full-time software engineers including everything from sourcing candidates to interviewing to extending and closing offers.