How to Hire Software Developers
Need to hire software developers?
You’re in the right place. Today, you’ll learn how to attract and hire the right people for your team. (With years of experience in technical recruitment, we have it down to a science.)
Want to learn more? Here’s how to hire software developers.
What is a software developer?
Software developers create computer programs that execute specific desktop or mobile-based tasks. Different software developers will, in other words, work on anything from mobile apps to complex systems and networks.
That’s also why there are two different types of software developers: applications software developers and systems software developers. Application software developers tend to build, install, and maintain applications on a large scale. Systems software developers are typically responsible for the systems that support applications.
Depending on how you define it, a software developer may have similar, overlapping, or entirely different tasks as a software engineer, programmer, or web developer at your company. But for the purposes of this article, let's assume that software devs work on software problems from start (customer-side) to finish (end-product).
The specific technical skills that a software developer needs depends on the roles they’re applying for. Some common skills that you might be looking for (depending on your industry) are: SQL, Git, Python, Linux, or Java.
Now you know what a software developer does. How do you find one, though? Here’s what the recruitment process looks like, what qualities you should look for in a software dev, and where to find them.
How hard is it to hire software developers?
Is it hard to hire software developers? Yes and no. Yes, if you don’t have a solid strategy and don’t focus on the candidate experience. According to industry data, 80% of technical hiring managers say there’s a lack of talent.
But hiring software developers doesn’t have to be difficult if you have a candidate-friendly recruitment process and use proven assessment tools. Over time, word will spread that you are a great employer and as a result, you attract more qualified candidates.
How much does it cost to hire a software developer?
According to our own research, application developers earned on average $106,710 in 2017. Systems developers earned $111,780 in that same time period.
And as our calculations show, just the external recruitment costs of a systems developer amount to $27,945. That’s without taking into consideration all the internal costs of a recruitment process.
As you can see, hiring a software developer comes with a price tag. That’s why you want to ensure that you get the right one.
The recruitment process for software developers
How do you hire software developers?
First, let’s look at the recruitment process:
Step 1: You fill your pipeline with qualified developers (more on that below).
Step 2: Choose the developers you want to interview.
Step 3: Get them on a quick phone screen interview.
Step 4: Send out coding test assessments to evaluate their technical skills.
Step 5: Invite them a final round of interviews.
Step 6: Send an offer to the best fit!
Where to find software developers
Start by filling your pipeline with qualified candidates.
Note: If you’re strategic about attracting the right people from the get-go, you’ll save time, money, and energy during your recruitment process. Not to mention that your chances of hiring the right person will increase significantly.
So, while we recommend that you proactively look for candidates, you can also put out your job ads. Just note that one in every 72 sourced candidates is hired compared to one in 152 applicants who apply through your jobs portal. Sourcing your own candidates can be a much more effective strategy.
With sourcing, we definitely don’t mean spam people with cookie-cutter LinkedIn messages! Rather, reach out to people personally and show that you are highly interested in their work.
Your message can be as simple as:
“Hi name, I happened to come across your blog post on X. Loved it! At (your company), we are looking for a junior software developer to help us (your mission). I’m impressed by your blog, your open-source projects, and your GitHub profile -- great work -- and we would love to talk more about this position with you. Would you like to chat more about this opportunity? Thanks!”
But to source candidates and fill your pipeline, you need to know where to look.
There are tons of places offline and online where you can find software developers. These are some of our favorites.
82% say that employee referrals generate the most qualified candidates.
But at the same time, referrals can be limiting.
People tend to hang out with people who are like them. And if you ask for referrals, you often get a very homogenous group.
According to studies, companies can get 55% more candidates from underrepresented groups if they prompt employees to refer more diverse candidates.
So make sure that you ask employees to refer not just people like themselves but also diverse candidates.
Blog posts are another great source for excellent candidates.
Let me explain:
Plenty of software developers have their own personal blogs or blogs on platforms like Medium. (And these days, developers also hang out on platforms like Instagram or TikTok. Here’s one example of a developer’s TikTok account.)
They’re great places to find people who enjoy their work and are good communicators (traits of an ideal candidate!)
Another good way to source candidates is to look at their open-source projects.
Not only will you often tap into motivated candidates, but you’ll also be able to see their code right away.
You’ll find open-source projects on sites like GitHub.
Where do developers hang out online? Different online forums. Try forums like Reddit and Hacker News to see if you can find some quality candidates.
More specifically, look out for people who seem to be adding value to the forum.
Industry and technical conferences are another source for top-notch candidates.
If you can’t be there yourself, reach out to the conference hosts or speakers to get referrals.
When I say LinkedIn, I don’t actually mean messaging a ton of people out of the blue. Instead, add connections you actually know or have touchpoints to, and reach out to them.
And even more so, post engaging LinkedIn posts to spread the word about your opportunities. Fun company updates are enough along with the occasional post where you let people know of your open roles.
While the options above are more “traditional,” remember that not everyone can or wants to hang out in these spaces.
Many candidates with diverse backgrounds may not feel welcomed or simply can’t access them. For example, a single parent doesn’t have as much time on their hands to work on open-source projects.
So, remember to tap into more unusual places to source candidates.
One such place is coding groups (check out Rails Girls!) You can also find candidates in niche online forums.
Finally, a few words about job ads.
Job ads are, as said, less efficient than actively sourcing candidates.
But that’s not to say you shouldn’t use them. Just be mindful about how you use them.
You see, the way you phrase your ad will attract or turn away candidates, so choose your words carefully.
For example, women tend to reject job ads with words like “dominant” or “competitive,” because these words are associated with male stereotypes. It’s always better to stick to gender-neutral wording that is welcoming to candidates from all backgrounds and identities.
And in the same way:
If you’re looking for a junior developer, avoid overly demanding requirements. No junior developers have 10+ years of experience or expert knowledge of multiple languages.
Here’s our go-to job description template that you can use for your own postings:
[Write a bit about your company and show what your values, culture, perks, and benefits are like. Mention anything that you think makes your company stand out, such as your amazing mission, focus on growth, and more.]
[Clearly and transparently describe what the job is all about.]
We are looking for a Software Developer to... You will be responsible for… You will also...
Software developer responsibilities
[List the responsibilities. Hit the high points; focus on the most important things the developer will be doing day-to-day.]
- Responsibility 1
- Responsibility 2
- Responsibility 3
Skills and qualifications
- Include skill and qualification requirements, such as the language a developer should be proficient in and other language/framework/technical skills they need depending on your existing tech stack.
- List the required educational level and certifications; if it's flexible, you can mention that it’s “nice to have” or leave these out altogether.
If you’re wondering where to post your job ad, there are tons of job boards where you can do it. Our favorites are:
What to look for when hiring a software developer
To hire a software developer, you need to look at two things:
1) Candidates’ soft skills
2) Candidates’ technical skills
Believe it or not, both skill sets are equally important.
First, let’s look at how to identify candidates with the best soft skills. (So, if you’ve ever asked yourself, “How do I recognize candidates with the best communication skills? And those who are innovative, team players or have the ability to take feedback?”, this is how.)
In the next section, we’ll look at how to evaluate someone’s tech skills.
But first, how do you know if someone will be a great person to work with?
Even though it gets thrown around a lot, don’t rely on your gut or intuition.
And we like people who are more like ourselves. Even if that candidate wouldn’t be the best choice.
In other words, you risk hiring a person who is not the best fit for the job if you don’t remove bias and subjective opinions from your recruitment process.
That said, we need a more objective way to evaluate software developers.
How? Try these four steps:
Step 1: Requirements. The first step is to define your requirements. What skills/traits should developers have? If you’ve defined these before your process starts, you’ll have a list of objective criteria to use when assessing software developers.
Step 2: Skill assessment (below). Another objective way to evaluate candidates is to look at their technical skills. You’ll learn how in the next section.
Step 3: Consistency. Go through every step with every candidate in the same way. This way, you can truly evaluate candidates using the same criteria.
Step 4: ‘Blind’ assessments. Also, let different people on the team interview the candidate. Ideally, you’ll include a non-technical person so that you see how the candidate interacts with them.
But before the hiring team comes together to discuss and choose a candidate, ask them to assess candidates on their own. As a result, you avoid any peer pressure from affecting the outcome.
Personality testing: On a final note, should you use personality testing to figure out if your candidate is the right fit? The answer is probably no. Personality tests are some of the worst tests in terms of predicting job performance. If you must use them, the better tests are multi-measure tests and cognitive ability tests.
Evaluating software developers’ technical skills
Now you know how to objectively assess a software developer’s soft skills.
But what about tech skills?
Great question. Fortunately, there are great ways to objectively assess candidates' tech skills.
Take-homes are coding tasks that software developers work on at home.
You can give a time limit (our recommendation: 3-4 hours) and outline any instructions that you have.
The developer then works on your task and delivers it to you.
There are a few reasons take-homes are the best coding challenge tests for software developers:
- No hiring manager is present, so the candidate’s performance won’t be subject to their unconscious bias.
- Candidates don’t need to feel like they have to perform on the spot (it’s way less stressful than having someone look over your shoulder!)
- Take-homes are more flexible alternatives for people with inflexible schedules (parents, full-time workers, and so forth.)
- You get to see how candidates approach and solve a real problem -- Did they go the extra mile? Did they understand your instructions?
There are other methods for technical interviewing, too.
You can use pair programming and ask someone on your team to work on a coding challenge together with the candidate. We also offer pair programming tests, so if you prefer them, you can read more about CodePair here!
Next, let’s look at how to use these strategies to hire freelance software developers.
How to hire freelance software developers
If you’re looking for a freelance software developer, you might be thinking:
“All of this sounds good… But how do I find contractors for my business?”
It’s not that different.
And we even have an entire guide on how to hire (remote) freelance developers.
The primary benefit of outsourcing your software development work to freelancers is flexibility and cost.
It’s relatively cheap to hire freelance software developers (lower hiring and employee costs), and you can outsource work when you have it and save money when you don’t.
You can pretty much use the strategies I’ve outlined above.
That said, hiring freelance software developers is a skill of its own. You’ll need to know where to look for them and how to test their skills.
Just change the way you’re sourcing candidates:
Referrals are a great way to source candidates. If someone is ready to vouch for the developer you’re working with, that’s a great sign.
Blogs and open-source projects can, similarly, help you source the right person.
Note that these sites can require a bit of digging to find the right talent.
If you work with freelancers, you don’t need to take that many steps in your recruitment process, because freelancers are a more flexible workforce. Here’s what the process looks like:
- Reach out to the freelancer you potentially want to work with
- Hop on a quick phone interview
- Send them a short, paid assessment task (around 30 minutes)
Here’s a message you can use to reach out:
“Hi (name)! I happened to come across your portfolio. Love your work on (example). At (your company), we’re looking for a software developer to help us (work tasks). Let me know if you’d like to chat more?”
And you can even use CodeSubmit to send out and manage your tests.
That’s it! You’ve now hired your first freelance software developer.
Note: A pro tip is to hire a few freelancers so that you can a) work with them simultaneously and see who’s the best fit and b) have an established working relationship with a group of freelancers so that you can get in touch with them when you need to.
How to hire software developers for your startup
Looking to hire software developers for a startup? A lot of the strategies you use will be the same as I outlined above.
However, there are a few things to keep in mind when hiring software developers specifically for startups.
First, you probably don’t have a stand-out employee brand just yet. So you need to convince people of your mission.
Second, a startup is constantly evolving. What type of developer should you be looking for at each stage?
Third, as a startup, you probably don’t have a ton of certainty. You might need to ensure that you can reduce expenses, if necessary.
Here’s what you need to know.
Attract candidates to your startup
How do you get software developers convinced that your startup is the best place for them to work at?
After all, they’re highly sought after, and working for a startup comes with its risks.
One: Offer a candidate experience that stands out. (So, a great assessment experience and interview process that is quick and efficient.)
Two: Show them the benefits of working at your startup. How will the developer improve their skills? Why is your mission something they’d be interested in working on?
Software developers for the different stages of your startup
When do you hire a software developer? For many startups, it’s a million-dollar question. After all, if you hire someone too fast, your startup could fail. But too late, and you won’t be able to meet your customers’ expectations.
35% of startups fail because of poor product-market fit. In other words, they create the wrong product or launch at the wrong time.
If you’re at the MVP stage, first look around to see if there are any no-code tools you can use (if you aren’t and don’t have a technical person on the team). A few examples are WordPress for web solutions and Adalo for apps.
And if you choose to outsource the development of your MVP, make sure your MVP is as lean as possible. That means: not a ton of development work. You want to be sure that your product is something people are willing to pay for before investing a ton of time and money into it.
Once you have validated your idea and have some traction, it’s time to start developing your product.
How many developers you take on depends on your startup. If it’s heavily tech-focused, you’ll likely need a team of devs and a CTO (as you build your startup). If not, one or two might be just enough.
In-house or freelance?
Last, should you hire in-house or freelance software developers?
Obviously, this depends on your startup.
A great way to get started is to first work with freelancers and start building an in-house team (if you need one) once you have enough customers and cash in the bank.
The pros of cons of in-house vs. freelance can be summed up like this:
For startups, freelancers can mean more flexibility, which can be a must-have in those early stages of your company.
Plus, you can tap into a talent pool at a fraction of the cost than to hire that level of talent in-house.
Freelancers can require more management effort on your side (freelancers work on multiple projects and you need to be the person ensuring that YOUR project gets done). But on the other hand, as a new startup founder, you should be heavily involved in everything that goes on in your business so that you understand exactly how it operates.
That’s why, as a startup, it’s typically best to start out with contractors rather than an in-house team.
Want to hire top software developers?
There you go! Now you know how to hire the best developers.
Ready to implement this in your own hiring processes?