Hiring highly skilled Software Engineers and Developers is no easy task. First, demand for great developers vastly outstrips supply. Between 2020 and 2030, the BLS predicts demand for software developers will increase by 25% in the US.
If you’re wondering how to hire a software developer, how to hire a software development team, or where to hire software developers, this post will offer sage advice from people who’ve done it successfully.
The hiring process for developer jobs generally requires at least five steps. Here are some tips for maximizing each step.
If you have a large stack of resumes in front of you, it can shorten the process to throw out any with typos, the wrong programming languages, tech stack, technical skills, or web development experience.
Spolsky also considers whether the applicant has been accepted by a selective institution. This can include a university with a low acceptance rate, an elite military unit, or a company with far more applicants than jobs.
Similarly, there’s a list of hiring criteria created by former Googlers at Twitter prioritizing candidates with a “top-tier place” on their resumes, which they defined as “Microsoft (not SDET or test developer), Google (SWE, not SET), Facebook, Amazon, LinkedIn (this list does explicitly not include: Yahoo, Zynga, Oracle).”
At the same time, don’t over-index on credentials. With demand high, you don’t want to miss out on smart, productive people. Selective institutions are hardly immune from systemic inequalities and nepotism.
The purpose of a phone screen is to ensure the candidate’s resume represents them accurately by asking a few questions about their software development experience. This is also the first time you’ll get a taste of their soft skills such as their communication skills.
Spolsky recommends using the time to chat about a particular programming problem for half an hour or so, which will tell you both whether the tech talent is there and whether you enjoy talking to them.
After the phone screen generally comes a take-home coding assignment.
“We've recently lessened the time requirement, and designed the problem to be solved in about an hour, because not everyone can spend all day,” Asana Engineering Manager Greg Sabo told Coding Sans.
Offering a shorter assignment is a great way to save time for the candidate and the reviewer. If it looks good they set up a primarily technical phone screen before the series of on-site technical interviews and reference check.
Here are some tips for nailing the in-person interview part of hiring a software developer.
First, allocate an hour to the interview. “If you spend less than one hour, you're not going to be able to make a decision,” Spolsky writes. To make this hour count, ensure your hiring manager trains interviewers to only ask questions that reveal make-or-break information. Ideally they’ll also put the candidate at ease, smoothly transition between subjects, and be able to help candidates think through questions without giving away the right answers.
Look for passion. It’s easier to direct a passionate person than to motivate someone whose heart isn’t in it.
Ask the candidate to explain something in terms a non-Engineer would understand. If they can’t, “You don't want to hire them, basically, because they are not smart enough to comprehend what it takes to make other people understand their ideas,” Spolsky writes.
Were able to accomplish something despite a blocker
Encountered a problem they couldn’t solve and how they handled it
Sell them on the job. Great candidates will have their pick of employers so make a case for why they should choose you.
Talk more than a quarter of the time. The purpose of the interview is to learn about the candidate. It's amazing how many people will talk themselves out of a job if you simply let them.
Ask any question whose answer is easily Googleable. Developer hiring is more about general aptitude than any particular skill set. “Any skill set will be technologically obsolete in a couple of years anyway,” Spolsky writes. “Hire people who are going to be able to learn any new technology rather than people who happen to know how to make JDBC talk to a MySQL database right this minute.”
Questions to consider incorporating:
What requirements do you need to effectively execute?
How do you handle bad/incomplete/competing requirements?
How do you balance business needs with technical needs/desires?
If a user wants a feature that can’t be implemented, how do you convey that?
You should spend your time with references getting the information you can’t get anywhere else. For example, did they communicate clearly and often? Were they responsive to requests? This might be a good place to ask some of the working-with-others questions from the interview to see how their self-perception lines up with how others perceive them. Maybe they consider themselves a full-stack developer, but do their colleagues or former bosses agree?
I asked our Head of Recruiting Michael Lipschutz for his best five sources for Engineers. “1 - 5: Engineer referrals,” he said.
Research shows strong relationships between colleagues increases job performance, retention, well-being, and productivity. At Clockwise, we sponsor frequent fun team-building events that give us a chance to connect on a personal level. And we offer mental health days to recharge after particularly intense periods.
High-quality as they are, referrals alone likely won’t deliver the volume you need.
Michael adds sourcing through Covey, university recruiting, attending local software events, professional sourcers, and of course people who apply directly to our job postings on our website and external job boards to the mix. Each tactic has their strengths and weaknesses. Some sources have higher volumes of candidates, some are easier to use, some are less expensive.
But, don’t forget that there are a ton of talented software engineers with “10,000 hours” of coding experience who don’t have a bachelor’s degree in Computer Science. We recently spoke to Tommy Collison, Head of Business Development and Communications Strategy at Lambda School. Tommy made a compelling case for the benefits of hiring coders without a CS degree, starting pretty close to home. “My older brother never did CS in school,” Tommy said. “He was coding from the age of 11 or 12.” That older brother is Patrick Collison, Irish billionaire entrepreneur, and co-founder and CEO of Stripe.
Ultimately, the best mix for you depends on your organization’s size, reputation, etc.
Building out your software development team is one of the biggest challenges of your career. The stakes are high, as a bad hire can be costly in terms of time, money, and morale. Demand for highly skilled software engineers and developers is also high, and growing faster than supply.
Luckily, there are things you can be doing to make finding, evaluating, and hiring great software developers a little faster, easier, and less error-prone.
If you’re a great developer who’s open to new opportunities, Clockwise is hiring! And if you’re looking for advice on hiring Engineering Managers, check out: Hiring and onboarding engineering managers: Advice from Greg Badros.