Skip to content

9 Best Practices for Recruiting Developers With Skills Tests

Post Author - Juste Semetaite Juste Semetaite Last Updated:

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).

Technical Skills Assessment Tests
Ready to recruit technical talent? Create a free account to enjoy skills-based hiring.

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.
skills-first hiring approach
Hiring developers gets easier when you modernize 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.

test your programming skills
Are you a candidate looking to test your technical skills? Take a free JavaScript skills test.

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.

Skills tests are a better method for screening developers than resumes.

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.

Using a ready-made assessment template can save you a lot of time in trying to come up with the wight questions.

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 DevelopersWhy They’re Important
1. Versatile Programming LanguagesQualified 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 FrameworksFamiliarity with frameworks like Spring Boot or React empowers programmers to leverage pre-existing tools and libraries, simplifying the development process.
3. Testing and DebuggingMeticulousness in testing and debugging code ensures the reliability and functionality of software engineering applications, providing users with a seamless experience.
4. Database ManagementKnowledge of working with databases such as MySQL or PostgreSQL enables programmers to efficiently store and retrieve data, optimizing application performance.
5. Cloud ComputingFamiliarity with cloud computing platforms like AWS or Azure equips developers with the skills necessary to leverage scalable and flexible infrastructures.
6. Security AwarenessUnderstanding the importance of security and implementing appropriate measures protects applications and data from potential threats.
7. DevOps PrinciplesFamiliarity 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 DevelopersWhy They’re Important
8. Object-oriented programmingUnderstanding the principles of object-oriented programming.
9. Data structures and algorithmsDesigning and implementing efficient data structures and algorithms.
10. Software testingConduct thorough testing to ensure the functionality and reliability of code.
11. Version controlFamiliarity with version control systems, such as Git or SVN.
12. Agile developmentAdherence to agile development methodologies for timely delivery of software within budget.
13. TestingProficiency in software testing techniques to ensure high-quality code.
14. DocumentationCreating clear and comprehensive documentation to facilitate collaboration and code maintenance.
Software negineering encompases a wide range of coding skills.
Software engineering encompasses a wide range of coding skills.

Soft skills

Soft skills showcase how effectively a developer will work with others and in your business’s environment.

Soft Skills for DevelopersWhy They’re Important
15. Effective CommunicationStrong communication skills ensure seamless collaboration with team members, stakeholders, and clients — ultimately ensuring project success.
16. Creative Problem-SolvingIdentifying and solving complex problems requires developers to utilize their analytical thinking skills to devise innovative solutions.
17. Critical ThinkingThe ability to think critically helps developers analyze situations and make informed decisions in a rapidly evolving technological landscape.
18. TeamworkThe 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. AdaptabilityThe 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. CreativityThinking outside the box and implementing unique solutions are qualities of a great software developer.
21. Interpersonal SkillsThis skill helps with building positive relationships and effectively interacting with team members and stakeholders.
22. Time ManagementEffective time management ensures developers can meet deadlines and deliver high-quality work.
What were the top skills in 2023?
The top soft and technical skills to develop in 2024.

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!

Sample skills assessment test library
Juste Semetaite

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.

Subscribe to On The Clock.

Insights into building businesses better, from hiring to profitability (and everything in between). New editions drop every two weeks.