Assessing programmers’ coding skills has become an essential step in any technical recruitment process. In our 2022 tech hiring survey, we found that the number one challenge met by recruiters when hiring developers was to find sufficiently qualified candidates. Indeed, the majority of mis-hires in tech recruiting come down to a lack of technical skills.
I can hear you thinking: “Wait, can’t you rely on developers’ resumes?”. Well, no.
Firstly, because developers aren’t necessarily good at selling themselves – you could end up missing out on great applicants because they fail to stand out on paper.
Secondly, because self-reported skills are unreliable – if you pin your hopes on a shiny resume, you might find yourself disappointed with someone who doesn’t quite live up to your expectations.
A variety of abilities make for a talented programmer – but technical skills are the ones that you can evaluate most accurately.
Looking to hire a computer programmer? Wondering how to test programming skills before hiring? Here are 5 ways to check developers’ coding skills:
1. Dig into their programmer portfolio
Any passionate developer, however junior they may be, should have a programmer portfolio.
Portfolios are the best way for developers to showcase their coding skills through personal projects and a unique chance to make a lasting impression. They come in many shapes and sizes, ranging from single web pages, for those seeking their first junior role, to complex software projects, for senior and managerial applicants.
Portfolios are useful in the recruitment process as they show candidates’ development level, their career goals, the skills they’re focused on acquiring, etc.
Look out for how a candidate describes the context of each project: how did they integrate with other libraries or tools? Did they collaborate with other developers? Have they worked on lots of unfinished projects?
Good communication skills will always pay off in a developer role and a portfolio is also a way to validate a candidate’s ability to explain and present things.
Finally, going over a candidate’s portfolio, digging into some projects’ source code prior to an interview, can serve as a basis for dialogue and help you construct bespoke questions to use during the hiring process.
2. Take a look at their GitHub account
GitHub is an invaluable resource when hiring developers. GitHub serves as an online showroom where developers work on open source projects and contribute to others’ initiatives.
For developers, the point of owning a GitHub repository is to show that they can write readable and maintainable code that other people can easily understand or jump into.
As a recruiter, before diving into this code to verify how clean, readable and structured it is, start by checking very simple metrics such as:
- The number of followers (a sign of reputation)
- The date the candidate joined GitHub (a useful “most recently joined” filter exists in the sorting options in the top right-hand corner) as an indication of their experience level
- Relevant keywords for languages and technologies
- The number of repositories your candidate has (projects they’re authoring and what they’re forking from others) to get a feel for the type of projects they’re involved in
- Their public activity shown through the number of contributions made to the site (pull requests, commits, issues opened)
GitHub is NOT a resume. It’s a perfect way to glance at samples of developers’ work such as mobile apps, games, scripts, plugins, etc. Most importantly, it allows you to see how developers voluntarily collaborate with peers in collective projects.
We go into more detail about how to use GitHub to find and hire developers here.
3. Ask about their use of Stack Overflow
Stack Overflow is, in its simplest form, a question and answer site on all things computer programming.
Developers can ask and answer questions on anything to do with programming and active members receive points and badges for their responses and contributions. The site holds a wealth of knowledge and any developer will be using it daily.
It is perfect for measuring a candidate’s knowledge level and involvement in the development community. You can quickly check out developers’ reputation on Stack Overflow as well as their top answers.
Reputation rate is all the more objective that it has been granted by peers. Users with high reputations on Stack Overflow are developers who a) are regularly active on the site b) ask pertinent questions c) provide helpful answers thanks to their expertise.
Sure, being able to think, code and communicate while in the presence of an interviewer can be stressful without any practice. However, live programming tests (coding test for interview) are a truly valuable source of information and a great way to showcase skills. They allow recruiters to observe a candidate’s coding skills, logic, and ability to explain what they’re doing.
Why not add live coding to your developer assessment process? Not only do these sessions allow interviewers to see, in real-time, how a candidate performs on their own, with just their programming knowledge as their weapon, but they also test communicative and collaborative skills within a team (in the case of collective interviews).
Usually live coding is done via screen sharing, thanks to an online interview tool (such as CoderPad). The applicant is given a brief and is then observed as they complete the task. This type of exercise is very different from a timed exam. The aim of the exercise is not to provide a correct answer to the question in the shortest amount of time, but rather to consider the whole session as constructive dialogue.
Interviewers may be interested in seeing what kind of questions the interviewee will ask to understand the problem before they rush into resolving it. They may also appreciate being told if the candidate encounters difficulties at any point.
At the end of the day, the aim of a programming interview test is not to produce (nor to evaluate) a perfectly constructed, perfectly neat piece of code. Indeed, live coding boils down to allowing both parties to gain understanding of each other in a dynamic, conversational setting.
5. Programming tests
Coding tests are one of the most efficient ways to screen developers before hiring.
They provide a proven model for identifying and hiring proficient developers. Candidates code their way through real, practical problems that they could encounter in a company (such as finding a bug in a defective piece of code or properly synchronizing a multi-threaded application), enabling recruiters to measure their coding skills objectively and efficiently.
Tech recruiters, HR managers, CTOs and tech leaders can set up a programming test for developers using platforms like CodinGame, choosing to test applicants in one specific programming language or role (test web developer skills, for example), or over multiple technologies (Java, Angular, Python, etc.).
Candidates’ code is automatically analyzed and recruiters are provided with performance metrics ranging from language mastery to code design, readability or solidity. Once completed, a coding ability test report is available to download and share to easily compare and shortlist candidates.
As well as optimizing the hiring process, technical tests for software developers also provide for an improved candidate experience (compared to the non-technical discussions that too often take place during a first interview). Programming tests are a way for recruiters to test developer skills while showing developers that they are tech-friendly.
Coding challenges save recruiters a great deal of time while securing their hires on the technical side. Online technical programming tests usefully replace paper or whiteboard tests, giving developers a chance to demonstrate their skills.
Improve your developer screening process. Keep our advice in mind when looking for your next developer: eliminate the guesswork and know for sure whether they’re a keeper.