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.
Software developer hiring: Tips for all five steps of the hiring process
The hiring process for developer jobs generally requires at least five steps. Here are some tips for maximizing each step.
1. What to look for in a Software Developer’s resume
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.
2. How to get the most out of a phone screen
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.
3. Tips for the coding challenge
After the phone screen generally comes a take-home coding assignment.
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.
4. Interviewing Software Developers: Dos and don’ts
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.
- Ask questions in terms of SBOs (Situation, Behavior, Outcome). For example, ask about a time they:
- 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.”
- Forget about soft skills. Especially for mid/senior level roles, you want to know how well they typically work with stakeholders. You’re evaluating their:
- Mentorship capacity
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?
5. How to fully use each reference check
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?
Where to hire a great programmer
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.