Recruiting developers in today’s job market is about as easy as knitting a sweater with spaghetti. 🍝 With software development being one of the world’s most in-demand professions in 2024, tech companies and every technical recruiter on planet Earth are vying for their attention.
You don’t have to brave the cold, harsh world of technical recruiting alone, though. We’re about to address the challenges you’ll face on the road to recruiting developers and provide you with some of our own recruitment best practices to enhance your recruiting process.
Plus, we’ll delve into the specific technical skills and programming languages sought after by different industries and businesses in 2024 to help ensure you’re hiring for the right skills this year (and beyond).
TL;DR – Key Takeaways
- Developers specialize in creating and maintaining software applications and projects. They’re often masters of different programming languages, such as PHP, Python, SQL, and Java.
- Recruiting software developers is challenging due to high demand and limited supply.
- There is a scarcity of skilled developers, and the competition is fierce, resulting in high salary expectations that vary by location, but the average in the USA is $110,000.
- When hiring developers, you need to be on the lookout for a combination of hard, technical, and soft skills that will add value to your company.
- To find talented developers, recruiters often turn to niche job boards, developer communities, social media platforms, tech events, and employee referrals.
- It’s not enough to find developers who have the right experience on paper. You must ensure your technical candidates can actually deliver on the job. A skills-first hiring process can help with that. Check out our extensive skills assessment library to create in-depth, fun, and sharable tests that will help bolster your recruitment process.
Why is recruiting software developers so hard?
The demand for software developers far outweighs the available supply, making it a real challenge to find the right candidates.
To make matters worse, top-notch software engineers know their worth and often expect handsome salaries. We’re talking an average of $117,000 — yowza! Not all tech companies can keep up with those figures, which creates quite a stumbling block.
And as the number of developer job openings is skyrocketing, companies of all sizes are scrambling to snag top talent.
If you’re a developer, you can sit back and watch job offers roll in, demand higher wages, and choose who you work with. If you’re an employer — tough luck. Finding a good-quality dev will take lots of work, luck, and faith.
Location can also throw a wrench into the equation. Maybe you’re struggling to find suitable candidates in your country, so you venture into the remote hiring realm. But remote hiring comes with its own set of challenges: labor laws, regulations, currencies, time zones, team management — you name it.
Gone are the days when simply posting a job ad and crossing your fingers would do the trick. Now you have to go the extra mile to stand out and catch the attention of a good developer. So what does a software developer actually bring to the organization that makes them so valuable?
Let’s find out.
Our best practices to follow when recruiting developers
If you want to attract more candidates with the right skill set, technology experience, and mindset, it’s time you rethink your hiring process.
Instead of dishing out generic developer recruitment advice, Paul Scharf, former CTO @ Toggl, will walk you through his workflow for sourcing great candidates for his team of mobile developers.
1. Why automate testing
The biggest argument for automated testing at the initial screening step is to reduce the effort it takes to filter through the hundreds or thousands of applicants we get for a typical opening.
To achieve this, each question on our short test has to test something clear and meaningful that gives us real and objective knowledge about the candidate.
The objectivity of the questions is vital. Any question where the answer depends on interpretation or where the answer has to be evaluated individually, at best, will cause a lot of manual effort and, at worst, will randomize test results, making the test essentially useless.
2. What we cannot test automatically
The next step in technical hiring is to realize that not everything can be easily tested for. Skills that I consider almost impossible to select for automatically are:
Cultural and team fit
Personality
Work ethic
Other “soft skills”
All questions I have seen that try to test for these fail for the same reason. Mostly, they’re too easy to guess ‘correctly’ if you know the least bit about the company you are applying for. For example, should I ask candidates whether they agree with the statement ‘Done is better than perfect’ it takes only a five-second Google search to find the “correct” answer.
Lying on these kinds of questions is so easy that they tilt the scoring of the test in favor of liars while disadvantaging honest applicants, and I would much rather interview an honest person and judge them in person than waste time speaking to a dishonest one — no matter the latter’s qualifications.
These kinds of traits and skills are much better looked after during interviews, paid trial work (we call these “test weeks”), or follow-up technical homework assignments.
3. What we can test
All is not lost, however. Quite the opposite, in fact. Almost any technical position requires reasonably well-definable experience and skill. However, some skills come in handy for any work and can thus be tested to filter candidates for almost any position.
For us, developers should have an understanding of the ecosystem we work in, the programming languages we use, and the ability for highly analytical reasoning.
Similarly, attention to detail, general logical thinking ability, and the willingness to tackle problems that might appear unapproachable are not only useful skills for programmers but are indeed indicators of job performance for any profession.
Most of these skills fall under the category of “intelligence.” So, we could simplify and say that we are looking to find “smart” people, but while intelligence is an important measure, it’s not the only thing that matters. Breaking things down helps us create questions aimed at specific skills and expertise.
4. What I ask candidates in our automated Toggl Hire test, and why
It can be difficult to test the skills outlined above without context. Proper clinical IQ tests can be very successful at this, but using those can be a hassle and, depending on legislation, legally questionable.
Further, they only speak for intelligence as a whole and do not consider experience in the field in question. Therefore, it’s better to design questions within the context of the specific position, requiring both good thinking and domain knowledge.
I will do exactly that for my case of hiring programmers below.
5. Understanding algorithms
Reading and understanding code is probably the skill most developers use the most during a typical day. It’s essential that a candidate can understand how a given piece of code behaves, even if it is a bit trickier. To test this, I present short snippets of code and ask the applicant what they expect the output or the state of a variable to be after the code has run.
For example:
list = [14, 32, 54, 3, 249, 67, 128, 5]
x = 0
foreach y in list
if y > 100
continue
if y > x
x = y
What is the value of x after this code has run?
This piece of code isn’t very complicated, but it’s not something that will be easy to answer for a non-developer.
To determine the right answer, the applicant has to correctly understand the nature of loops, conditional statements, and the continue keyword. They have to combine the different parts to understand that the algorithm searches for the largest number smaller than or equal to 100.
All that remains is picking out that number from the list afterward.
6. Short-term memory
For those who think that such a question is too simple, note how easily we can modify it to require significantly more mental effort.
list = [14, 32, 54, 3, 249, 67, 128, 5]
x = 0
foreach y in list
if y > 100 - x
continue
if y > x
x = y
What is the value of x after this code has run?
The only change is the addition of “- x” in the first condition. All of a sudden, determining the correct answer requires stepping through the algorithm in your head with the given input numbers since the modified condition now depends on both x and y.
Doing so requires a much higher attention span than the previous question. The applicant has to be able to keep several pieces of information in their mind while stepping through the code at the same time.
7. Attention span
Being able to concentrate on a complex problem involving many parts is an important skill. You can test this by presenting a complicated question where, under examination, most details turn out to be irrelevant. The candidate has to be able to determine what parts of the question do and don’t matter to them and then draw the right conclusions.
Let a1 to a100 be the first 100 Fibonacci numbers (1, 1, 2, 3,
5, 8, 13, 21, 34, 55, ..). Let b1 to b100 be the squares of
those numbers. Let A = a1 * a2 * .. * a100.
What is the numerical value of the following expression?
(A * A) / (b1 * b2 * .. * b100)
At first glance, this question seems impossible to solve in the short time available. It seems to require calculations with large numbers and perhaps an understanding of the Fibonacci sequence. In principle, any programmer can write code to solve this question, but none of these things are required.
Instead, solving this question only requires applying primary school-level mathematics – something every developer should be proficient in. Given the commutativity and associativity of multiplications, the numerator and denominator of the fraction in question are exactly equal, so the result is simply 1.
Coming to this conclusion, however, is not trivial and requires careful attention to the question, understanding what is asked, thinking it through, and taking it apart before realizing the solution.
8. Logical thinking
There are many ways to test for pure logical thinking. Among my favorites are boolean satisfaction problems. I present a list of statements that refer to themselves and each other and ask the applicant to check these statements so that all true statements are checked and all false statements remain unchecked.
- [ ] Exactly one statement is checked
- [ ] The statement below this is not checked
- [ ] The statement above this is checked
- [ ] At least one of the statements above or below this is checked
- [ ] The first statement is checked
- [ ] There is a solution to this question
- [ ] There is no solution to this question
Answering this question correctly requires attention to detail, a good attention span, and abstract thinking — all skills I would like new development hires to have.
9. Domain knowledge
Testing domain knowledge can be tricky since questions quickly turn into a trivia quiz with answers that are easy to search for online. However, we can minimize that risk if we include some analytical thinking.
For example, one thing I like to ask about is the performance characteristics of a piece of code. While one can be a decent developer without a deep understanding of this area, understanding the performance of both existing algorithms, as well as the code we write ourselves, is important in making sure our applications process data quickly and do not waste time, power, and money.
f(n)
{
if n < 1000
return 1
sum = 0
for i = 0 to n
sum += i * i
return sum + f(n - 13)
}
What is the runtime complexity of this function?
- ( ) Θ(n)
- ( ) Θ(n^2)
- ( ) Θ(log(n))
- ( ) Θ(n * log(n))
- ( ) Θ(n + log(n))
- ( ) none of the above
By presenting a small piece of code that includes both loops and recursion, as well as several mathematical operations and constants, I test the candidates’ understanding of these concepts and how they affect performance.
They need to understand all the individual components and be able to put them together, realizing which parts are essential in this example and which are not. This also tests their attention to detail.
Using these questions and Toggl Hire, I can automatically select the top 15%, or even top 5% of all candidates and move on to further stages of our hiring process with them. All this requires only the effort of setting up a test once and can yield many great candidates and hires for several months.
Paul Scharf, Former CTO @ Toggl
In addition to the questions above, I would usually also include a few more questions that relate more closely to the technologies and ecosystems we are working with, but I will leave that up to your specific case.
The do’s and don’ts of hiring a great software engineer
It’s not just tech companies that are chasing top engineering talent. Any business with an online presence will have specialized development teams, especially as these skills continue to increase in demand throughout the next decade.
Yet, not every business knows how to attract new developers beyond haunting them on Linkedin. But it’s not that hard — all you need to do is…
1. Know who you’re looking for
The first and most important step to hiring any kind of developer is knowing what you need them to do. By performing a quick job task analysis and gathering job requirements, you should have a decent idea of the skills and experience the new hire needs to be a good fit for the role.
As a business owner, HR manager, or hiring manager, you won’t be a development expert, but you should now have what you need to write a detailed job description.
2. Use skills tests, the best-kept secret for sourcing software developers
Instead of begging them to apply on a job board or demanding a run-of-the-mill resume/cover letter/portfolio, you can intrigue them with a short, fun, challenging quiz. Do they have what it takes to be a world-class developer? Are they HTML5 experts? The only way to find out is by taking your quiz.
3. Expand your search to developer-specific channels
You may be tempted to do some outreach on LinkedIn to find a good developer. But we’d recommend not wasting your time. Why?
Because developers don’t hang out on job boards! They already have a job, probably a pretty good one too, and the best way to attract them to apply for yours is by catching them off guard in places where job hunting isn’t even on their mind.
For example, we found some great people by putting up social media ads targeting them by their job titles. The exception to this rule is developer-specific job boards or communities. Invest in sites such as StackOverflow, Dice, Crunchboard, and GitHub to find developers in their natural habitats.
4. Ensure your offer is competitive
Web developers are paid fairly well, so to tempt them to your business, you’ll need to do more than show the cash. Try highlighting some of these within your job offer:
😎 Cool innovation projects
📈 Progression opportunities
🎓 Training
💻 Remote working
🩺 Healthcare
👨👧👦 Parental leave
✨ Remote employee benefits
These are all great ways to stand out as an employer and capture the attention of a developer who’s already employed.
But avoid these common mistakes:
Let’s take a look at common mistakes that can hinder your hiring efforts.
• Neglecting Long-Term Considerations: Think about future requirements and look for developers with versatile skills. Don’t hire based solely on immediate project needs.
• Geographic Restrictions: Don’t limit your search to local candidates. Consider hiring remotely to access a wider talent pool and potentially find top talent at a more cost-effective salary point.
• Overemphasizing Fancy Degrees: Value real-world skills and practical experience instead of focussing on where the candidate studied and if they hold any sort of certificate.
• Ignoring Remote Hiring Opportunities: Overlooking the possibility of hiring offshore will remove your access to fresh dedicated software developers and creative talent during your recruitment process.
• Lack of Diversity in Candidate Pool: Don’t restrict yourself to candidates from a specific community. Be open to reaching out to professionals from diverse backgrounds and locations. And not every position needs to be filled by a senior engineer — recruit junior developers and train them.
10 places to find the best developers
In 2024, placing an ad in the local job classifieds for a software developer just isn’t going to cut it. Heck, you might not even have success posting a job ad on a regular job board or LinkedIn.
As a hiring manager, you need to stay on top of the latest hiring trends, which we understand can be difficult. So, here are a few handy suggestions on where to find your next developer hires (based on our own internal technical hiring efforts).
1. Niche job boards
Expand your reach by exploring niche job boards catering to software developers. These platforms allow you to target developers who specialize in specific technologies or industries. Some popular options include StackOverflow Jobs, Dice, Crunchboard, GitHub Jobs, and AngelList.
🔥 Don’t forget! You’ll still need to practice creating the most attractive job ads to attract candidates.
2. Developer communities
Engage with online and offline developer communities to connect with a passionate software engineer and stay up to date with the latest industry trends. Platforms like StackOverflow, GitHub, Reddit, and Meetup offer opportunities to connect, learn, and network with developers who are enthusiastic about their craft.
3. Social media platforms
Use social media to recruit software developers from around the world. Twitter (now X), LinkedIn, Threads, and Bluesky provide a means to follow developers with similar interests, engage in discussions, and even advertise job openings on your profiles.
🔥 Don’t forget! Remember to use these 10 best practices for social media recruitment.
4. Public Slack channels
Join public Slack channels that cater to developers seeking advice, collaborate, and connect with potential candidates. Slack channels like #stackoverflow, #github, #coding, and #developer can provide valuable resources and opportunities for interaction.
5. Reddit
Explore relevant subreddits to tap into the large community of software developers. Dive into subreddits like r/programming, r/webdev, r/devops, and r/jobs, which offer spaces to post job openings, ask questions, and engage with developers on various topics.
6. Employee referrals
Don’t underestimate the power of employee referrals to recruit software developers. Your current employees likely have connections in the industry and can recommend talented developers within their network. Encourage and incentivize your employees to refer potential candidates.
7. Tech events
Attend conferences, meetups, and hackathons to mingle with software developers in person. Tech events provide a fantastic opportunity to network, learn from industry experts, and stay updated about the latest trends in software development.
8. Host your own tech event
If you struggle to recruit software engineers through other channels, consider hosting a tech event. Whether it’s a meetup, workshop, or a larger conference, organizing your event can attract a large number of developers and offer a platform to showcase your company’s culture and opportunities.
9. Developer Discord channels
Engage with developer communities on Discord, a popular communication platform. Many tech-focused Discord servers — like Devcord and The Coding Den —are spaces for developers to connect, share knowledge, and even advertise job opportunities.
🔥 Don’t forget! Check out this coding Discord channel to find suitable candidates for your development roles.
10. Gig sites like Upwork
Consider utilizing freelancing platforms like Upwork to recruit software engineers for short-term or project-based work. These platforms allow you to vet developers based on their portfolios and reviews, offering a flexible hiring solution. And they can quickly turn into your next hire. Don’t stop there, though, because you should also consider attracting passive candidates to your organization.
22 top skills to look for in software developers
There are various skills you need to look for when hiring software developers. To make things easier, we’ve broken up the list into hard, technical, and soft skills.
Hard skills
These skills are essential for software engineering and working on projects.
Hard Skills for Developers | Why They’re Important |
---|---|
1. Versatile Programming Languages | Qualified candidates will have proficiency in popular coding languages like Java, Python, or C++. Mastering more coding libraries expands developers’ capabilities and allows them to work on diverse projects. |
2. Software Development Frameworks | Familiarity with frameworks like Spring Boot or React empowers programmers to leverage pre-existing tools and libraries, simplifying the development process. |
3. Testing and Debugging | Meticulousness in testing and debugging code ensures the reliability and functionality of software engineering applications, providing users with a seamless experience. |
4. Database Management | Knowledge of working with databases such as MySQL or PostgreSQL enables programmers to efficiently store and retrieve data, optimizing application performance. |
5. Cloud Computing | Familiarity with cloud computing platforms like AWS or Azure equips developers with the skills necessary to leverage scalable and flexible infrastructures. |
6. Security Awareness | Understanding the importance of security and implementing appropriate measures protects applications and data from potential threats. |
7. DevOps Principles | Familiarity with DevOps helps developers streamline development processes, promoting collaboration, efficiency, and continuous integration. |
Technical skills
These are the skills that developers use to design, develop, and test software.
Technical Skills for Developers | Why They’re Important |
---|---|
8. Object-oriented programming | Understanding the principles of object-oriented programming. |
9. Data structures and algorithms | Designing and implementing efficient data structures and algorithms. |
10. Software testing | Conduct thorough testing to ensure the functionality and reliability of code. |
11. Version control | Familiarity with version control systems, such as Git or SVN. |
12. Agile development | Adherence to agile development methodologies for timely delivery of software within budget. |
13. Testing | Proficiency in software testing techniques to ensure high-quality code. |
14. Documentation | Creating clear and comprehensive documentation to facilitate collaboration and code maintenance. |
Soft skills
Soft skills showcase how effectively a developer will work with others and in your business’s environment.
Soft Skills for Developers | Why They’re Important |
---|---|
15. Effective Communication | Strong communication skills ensure seamless collaboration with team members, stakeholders, and clients — ultimately ensuring project success. |
16. Creative Problem-Solving | Identifying and solving complex problems requires developers to utilize their analytical thinking skills to devise innovative solutions. |
17. Critical Thinking | The ability to think critically helps developers analyze situations and make informed decisions in a rapidly evolving technological landscape. |
18. Teamwork | The ability to work effectively as part of a team contributes to project success and ensures they’re able to collaborate with various members of the team through different milestones. |
19. Adaptability | The willingness to adapt to new technologies and methodologies and stay at the forefront of industry advancements is a must in today’s digital world. |
20. Creativity | Thinking outside the box and implementing unique solutions are qualities of a great software developer. |
21. Interpersonal Skills | This skill helps with building positive relationships and effectively interacting with team members and stakeholders. |
22. Time Management | Effective time management ensures developers can meet deadlines and deliver high-quality work. |
It’s important to remember that the skills mentioned above represent just a glimpse of the vast array of abilities that software engineers may require. Cater your job ads, skills assessment tests, and hiring criteria for each position you’re hiring for.
Kick off your next developer recruitment campaign with skills testing by Toggl Hire
Skills testing is a great way to assess the skills of potential software developers. It’s also a fun and engaging way to challenge candidates and get their attention. And because skills testing is so easy to use, you can easily scale your recruitment process to reach a wider pool of candidates.
Ready to get started? Start browsing our skills assessment library!
Juste loves investigating through writing. A copywriter by trade, she spent the last ten years in startups, telling stories and building marketing teams. She works at Toggl Hire and writes about how businesses can recruit really great people.