10 Steps to Reduce Hiring Bias and Improve Diversity in Tech

In our article: 6 Tips to Reduce Bias in Tech Recruiting, we looked at general advice to reduce bias when recruiting. In our 2022 Tech Hiring Survey, 66% of recruiters agree that bias is an issue in tech recruiting. Here we will dive deeper into ten concrete steps to take so that your screening and interviewing are as fair as possible.  

How to reduce bias in tech hiring:

  1. First filter by testing skills
  2. Make the test relevant to the job
  3. Include other criteria than just programming language knowledge
  4. Take measures to prevent cheating
  5. Benchmark your test
  6. Set a reasonable time limit for the test
  7. Standardize interviews
  8. Avoid anxiety-producing aspects where possible
  9. Involve more people in the filtering and decision-making process
  10. Use the tools candidates are comfortable with for tests and interviews

1. Filter by testing relevant skills

A resume can provide a lot of information about a candidate but this means it’s also ripe for introducing bias. The candidate is from your hometown? Some subconscious affinity bias could make the resume instantly rosier. Famous school or company listed? Now the halo effect has you evaluating other aspects more generously. 

Instead, you can start the process fairly by giving each candidate a chance to show their skills. Just send a test and immediately get a sense of who has the required talents for the job. Or you could include a link to a take home assessment task on CoderPad directly to your job add. You then have an objective measure to rank candidates and choose the top ones to move forward to the interview stage.

2. Make the test relevant to the job

Keep the test directly relevant. This provides a better experience for candidates and also gives you a score that is meaningful and correlates well with future job performance. If you get too creative with the test or include skills that are desirable but not related to the day-to-day tasks on the job, candidates will feel frustrated and you’ll have a score that is far less useful. 

If you use CodinGame for Work to create a test, you can choose a specific job title and all the relevant languages, frameworks or other skills will be selected. If a specific language is not essential to the job, you can also choose to use language independent questions. 

3. Test for criteria other than just programming language knowledge

If you focus only on whether a response to a coding question fits the requirement, you are missing out on a more nuanced view. One candidate might find a quick solution that would not work with many edge cases whereas another might have a more thoughtful response that shows thinking out of the box. You can therefore add additional grading criteria to get a more holistic view. 

CodinGame reports show a variety of criteria depending on the type of question. Common ones are language knowledge, problem-solving skills, code reliability, and design so you can get a global view of capabilities. This makes it easier to assess fairly with a more complete view of the candidate’s abilities. 

4. Take measures to prevent cheating

One problem with getting people to test from home is that sometimes people seek a little too much help. This can result in scores that don’t accurately reflect their skills. While it’s normal for developers to do some online research to speed up their work, you don’t want to create a test or assignment where candidates can Google and paste the answers. It can be hard to avoid this if you are not using a testing tool. 

With a tool such as CodinGame, you have anti-cheating protection. You can see a code playback to know when people pasted code and see how they wrote their answers to see their thinking. If they do plagiarize, it is automatically detected, and the time limit for questions and randomization means people must rely on their own knowledge to answer. 

5. Benchmark your test

Creating a test is one thing but how do you decide which score correlates to good performance on the job? To figure out an appropriate minimum score, you can get some current employees to take the test and decide based on the average score. If this is impractical, such as if you will be testing for skills other employees don’t have, you can take advantage of the comparative score feature in CodinGame. This will simulate results for your test based on the performance of thousands of candidates around the world, and show you where a candidate’s score would fall on the curve of average performance.

6. Set a reasonable time limit for the test

Setting a test with a time limit serves three main purposes, it:

  • Reduces cheating by requiring applicants to respond quickly and not search for the answer.
  • Gives an idea of how candidates work under pressure.
  • Makes sure the experience is fair for everyone rather than giving an advantage to those who have more time to devote to a test, which can be the case for some take-home assignments. 

Sometimes recruiters are reluctant to send tests to candidates for fear of scaring them off. Using timed tests reduces this risk as you can give an exact estimate of the time required. 

Sometimes it will be necessary to adapt the time limit of tests in order to be fair. So make it clear to candidates that you are open to this possibility if they have specific needs. 

7. Standardize interviews

Freeform interviews can be unfair as not every candidate has the same questions. One interview might take a detour and focus on achievements not directly related to the post but which create a positive view of the candidate. Also, without a structure of defined questions and guidelines for evaluation, it can be difficult to compare interview performance.

Instead, come up with a list of precise questions and decide what kind of answers you are looking for with each one before you start interviewing. Consider a grading structure with clear indications of what’s required for each amount of points. Then you can compare candidates more easily based on their answers to questions and their overall scores.

8. Avoid anxiety-producing aspects where possible

Interviews are stressful for many people. While you can’t eliminate all sources of anxiety, there are some ways to make them less nerve-wracking. To start with, avoid multiplying interviewers if it’s not necessary. Facing a panel of people can be more intimidating than just talking to one or two. If it’s necessary to involve a maximum of people, be sure to adapt the seating arrangements. Sitting around a table can be less stressful than placing the candidate on one side of a desk and everyone else opposite. 

If you use CoderPad for an online interview, you can involve the people you need but later share the recording with other interested parties. That way they can see how the candidate codes without adding pressure in the moment. In CoderPad, you can also make a coding exercise less stressful by practicing collaborative coding. You can work with the candidate on a problem, show a solution, or just help out. 

CoderPad also has a Focus Time feature where candidates can have 5 minutes of quiet time to regroup during an interview. During this time the candidate’s work is blurred and video/audio is paused. It reduces the pressure and gives candidates a chance to lower their anxiety levels. Conveniently, the recruiter can review the Focus Time work after the interview. 

9. Involve more people in the filtering and decision-making process

While it’s not advisable to get everyone into a room to sit across from the candidate in an interview, you can involve others in the filtering, looking through anonymized test results, and checking interview performance via playback or seeing the produced code. An extra set of eyes helps to evaluate a candidate more fairly. 

You can: 

  • Record an interview to get additional feedback from other stakeholders. 
  • Playback code from a test to get opinions on coding style and skills.
  • Share test reports and structured interview summaries with scores. 

10. Use the tools candidates are comfortable with for tests and interviews

Doing a remote interview with Zoom or Google Meet and requesting a candidate to screen share to do a demo or test, can lead to a suboptimal experience. The candidate who is squeezing in an interview in a lunch break on a borrowed computer and has never used Google Meet, might struggle to get set up correctly, or not have the right IDE or libraries installed. Likewise, asking a candidate to write on a whiteboard what they are used to typing into an IDE will not provide a natural or smooth experience. 

Instead, try to reproduce a standard work environment as closely as possible. An online interview with CoderPad, which is accessible from any browser and doesn’t require an account or a separate IDE, is perfect (you can test it out via the sandbox here). Also doing tests with CodinGame with the standard IDE experience will ensure candidates have an excellent experience. Candidates should feel at home with the tool they’re using so they can properly show their skills


There’s a better way to test coding skills.

Picture of Kristen Hateley

Kristen Hateley

Kristen Hateley is a content manager and copywriter at CodinGame. Her interests include conversion optimization, UX, and boosting SaaS adoption.