Recruiting developers in today’s job market can be as easy as knitting a sweater with spaghetti. 🍝
With software development being the world’s most in-demand profession in 2023, tech companies and every technical recruiter on planet Earth are vying for their attention.
In this complete guide, we’ll 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 projects.
Ready? Buckle up!
TL;DR – Key Takeaways
- Developers specialise 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 that have the right experience on paper – you must ensure your technical candidates can actually deliver on the job. That’s where the skills-first hiring process comes in. Check out our extensive assessment library to create in-depth, fun, and sharable tests that will help bolster your recruitment process.
What’s the problem with recruiting software developers?
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 – great news! 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: labour 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 organisation 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, 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
As such, we have to realise 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
and other “soft skills”
All questions I have seen that try to test for these fail for the same reason: they are 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 favour of liars while disadvantaging honest applicants – and I would much rather interview an honest person and judge them in person than talking 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. But some skills come in handy for any work and can thus be tested to filter candidates for almost any position.
For us, developers, an understanding of the ecosystem we work in, the programming languages we use and the ability for highly analytical reasoning are a must.
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”.
We could simplify and say that we are looking to find “smart” people, but while intelligence is an important measure, it is 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 is 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 is 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 is not very complicated, but it is not something that will be easy to answer for a non-developer.
To determine that 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 afterwards.
6. Short-term memory
For those that 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.
This can be tested 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 matter to them, and which do not, 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 realising the solution.
8. Logical thinking
There are many ways to test for pure logical thinking.
Among my favourites are boolean satisfaction problems. Simply put, 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, realising 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.
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 specialised development teams. Yet, not every business will know 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 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. Make Sure Your Offer is Uber-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 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 seek developers with versatile skills, and 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 2023, placing an advert in the local job classifieds for a software developer just isn’t going to cut it.
As a hiring manager, you need to stay on top of the latest hiring trends, which we understand can be difficult. That’s why we have a few handy suggestions on where to find your next developer hires.
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.
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.
And 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.

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 organisation.
22 top skills to look for in software developers
There is a large number of skills that you need to look for when hiring software developers.
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 Skill for Developers | Why it’s 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 it’s 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 Skill for Developers | Soft Skills for Developers |
---|---|
15. Effective Communication | Strong communication skills for collaboration with team members, stakeholders, and clients, ensuring project success. |
16. Creative Problem-Solving | Identifying and solving complex problems, utilizing 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, 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. |
20. Creativity | Thinking outside the box and implementing unique solutions. |
21. Interpersonal Skills | Building positive relationships and effectively interacting with team members and stakeholders. |
22. Time Management | Effective time management to ensure they meet deadlines and deliver high-quality work. |
Read more: Top 25 Most In-Demand Skills in 2023 & Beyond
These skills mentioned above represent just a glimpse of the vast array of abilities that software engineers may require.
Now, it’s time to look at where you can find your next top-talented software developer.
FAQ: What does a developer do?
A software developer is a skilled professional who creates computer programs customized for specific tasks. They are responsible for building various applications, from user-friendly mobile and desktop apps to complex backend systems.
Their primary role involves creating, testing, and maintaining the underlying code that powers these projects.
Similar to learning foreign languages, software developers need to be fluent in the realm of computer systems. They must be proficient in various programming languages and setups to effectively develop applications for different platforms, such as SQL for databases, Git for repositories, JavaScript for mobile development, and Python for analytics — these aren’t all languages and there are hundreds more.

And it’s not always about the latest, hottest languages in the market.
For example, in 2020, governments and banks were begging for COBOL programmers to maintain extremely old systems since many who knew it were retiring or moving on with their lives. The language itself was created in 1959.
So, the specific skills and languages required can vary depending on the industry and project. For example, Python is commonly used in banking and finance, while SQL is popular in marketing projects. JavaScript plays a significant role in retail and dynamic web applications, while languages like C# are prevalent in the security industry.
FAQ: How much do they earn?
One of the biggest questions that any hiring department has to ask is: how much do you need to fork out to attract a good software engineer?
In the USA, it’s $110 000, in Switzerland it’s $97 000, in Israel it’s $71 000, and in the United Kingdom it’s $55 000. Of course, these are all averages; the salary range can change based on location, language, and skillset.
Most recruiters would partner up with hiring managers to review and establish a fair salary range for a software developer.
But speaking of developer skills…
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? Head over to our 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.