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 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,, and a combination of signals is the best mitigation for 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, 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 , 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.