9 Best Practices for Recruiting Developers With Skills Tests | Toggl Blog
Skip to content

9 Best Practices for Recruiting Developers With Skills Tests

Juste Semetaite Juste Semetaite Last Updated:

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

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

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.

Don't just rely on job ads in the hiring pipeline, invest in building up your profile in places like public dev Slack channels.
Don’t just rely on job ads in the hiring pipeline; invest in building up your profile in places like public dev Slack channels.

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.

Discord channels could be a great place to find suitable candidates for your development roles.
Discord channels could be a great place to find suitable candidates for your development roles. | Source

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 DevelopersWhy it’s 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.
Most demanded programming languages by recruiters worldwide in 2022 | Source
Most demanded programming languages by recruiters worldwide in 2022 | Source

Technical skills

These are the skills that developers use to design, develop, and test software.

Technical Skills for DevelopersWhy it’s 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 Skill for DevelopersSoft Skills for Developers
15. Effective CommunicationStrong communication skills for collaboration with team members, stakeholders, and clients, ensuring project success.
16. Creative Problem-SolvingIdentifying and solving complex problems, utilizing 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, 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.
20. CreativityThinking outside the box and implementing unique solutions.
21. Interpersonal SkillsBuilding positive relationships and effectively interacting with team members and stakeholders.
22. Time ManagementEffective 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.

Recruiting software engineers means you'll need to be up to speed on what they do.
Recruiting software engineers means you’ll need to be up to speed on what they do. | Source

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!

recruiter skills assessment
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.

Join 30,000+ subscribers getting the best tips on productivity, work management, hiring and more!

We promise we won't spam you and you can unsubscribe anytime.