Assessing programmers’ coding skills has become an essential step in any technical recruiting process. In a recent study we conducted, we found that the main challenge met by 60% of 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.
Here are 5 ways to check developers’ coding skills before hiring them:
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.
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 as well as their top answers.
Reputation rate is all the more objective than 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 to other’s questions thanks to their expertise.
4. Live Coding
Because they’re probably the toughest and most stressful challenges developers can encounter in a recruiting process, live coding interviews are often disparaged.
Indeed, being able to think, code and communicate while in the presence of an interviewer can be stressful without any practice. However, from a recruiter’s point of view, live programming tests are a truly valuable source of information. They allow recruiters to observe a candidate’s logic, their ability to explain what they’re doing, how they think, and their ability to code under pressure.
Not only do they 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, where 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 a 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 this exercise 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 to HR managers can set up programming tests using platforms like CodinGame, choosing to test applicants in one specific programming language 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, lisibility or solidity. Once completed, a test report is available to download and share to easily compare and shortlist candidates.
As well as optimizing the hiring process, these tests 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 show 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.
Keep our advice in mind when looking for your next developer: eliminate the guesswork and know for sure whether they’re a keeper.