The main challenge that recruiter's come across while hiring developers is to find qualified candidates. According to a study it was estimated that 75% of all hiring-related decisions result in a mis-hire. Hence assessing a candidate's coding skills is an essential step in a technical recruiting process.
Well, the first thing that rushes to your mind when you think of recruitment or any term related to it is "RESUME". Can we just rely on those? The answer to that question is an absolute NO.
1. Because resumes can be faked.
2. Developers aren't necessarily good at selling their skills and expressing themselves.
A plethora of abilities is necessary for a talented programmer, including technical skills which can be evaluated with the below-given methods.
1. Reviewing their portfolio
Every developer, irrespective of their level of experience, should own a programmer portfolio.
Personalized portfolios are one of the ways in which candidates can showcase their coding skills through personal/open source projects. These can range from single static web pages to complex software projects. These are essential in the recruitment process as they showcase the candidate's development level, their career goals, the skills that they have acquired, the skills that they want to acquire in the future, their level of creativity and design, background, etc.
Carefully review each project to see how the candidate has described them. This needs to be done to thoroughly understand a candidate's abilities such as:
1. Integration of tools/libraries/languages/modules. Does the candidate have good experience in working with multiple programming languages? Are they open to learning new languages when it is demanded from them?
2. Ownership of the project. Was it a collaboration?
3. The number of finished and unfinished projects in the portfolio. Is the number of unfinished projects more?
Digging into the projects in their portfolio as well as some of the source code can serve as a basis for dialogue during the interview. This helps to validate a candidate's ability to explain and present the project.
2. Reviewing their GitHub account
GitHub is an essential resource when it comes to assessing a developer's skills. GitHub serves as an online platform where developers can showcase their work on open source projects and contribute to other open-source initiatives.
It is a window for recruiters to see how candidates work towards an open-source culture as well as voluntarily collaborate with other programmers on different projects.
As a recruiter, you need to know how to analyze a candidate's GitHub account. Simply start by verifying the below-given metrics:
1. The number of followers - This is a sign of reputation and the level of activity of the candidate across different platforms.
2. Date of creation of the account on GitHub - This can be seen under the contribution activity tab.
3. The number of repositories - This can be viewed under the repositories tab, showcasing the projects the candidate is authoring as well as the projects the candidate is forking from others.
4. The number of contributions - This can be viewed under the contribution activity tab, along with a color gradient, implying the frequency and quantity of contributions made. This is further categorized as pull requests, commits, issues opened, issues closed, etc.
If you are a technical recruiter, then feel free to dive into the project code to verify the readability and cleanliness of the code, and also its structure.
3. Reviewing their use of Stack Overflow
Stack Overflow, simply put, is a Q and A website on all things related to computer programming.
Members of the platform can ask and answer questions related to computer programming. Based on their responses and contribution of upvoting/downvoting of answers, the members receive points and badges, which are visible on their profiles. The website is helpful for developers for their daily tasks.
A candidate's level of knowledge, their involvement with the development community, and their reputation can be analyzed with the help of their Stack Overflow account. A high reputation on the platform can be indicative of:
1. The activity of the member.
2. Asking good questions.
3. Answering correct answers.
4. Live coding sessions
Live coding interviews, also known as pair programming sessions, are one of the toughest, underrated, and most stressful challenges that candidates have to go through in a recruiting process. That being said, such coding tests allow technical recruiters to observe a candidate's problem-solving approach, their ability to communicate, collaborate, and code under pressure.
Live coding sessions are done via screen sharing, where the candidate is given a task. Such tests run between 15 minutes to 1 hour, at the most. A developer or a technical recruiter with a decent amount of experience of programming knowledge, then observes how the candidate solves the task.
5. Automated programming tests
Automated coding tests are one of the most efficient, simplest, and fastest ways to screen programmers before hiring, filtering the experienced from the beginner.
Pre-employment coding tests provide a proven model for the screening and hiring of proficient developers.
Candidates have to code and debug through real and practical problems, which are automatically analyzed.
Technical recruiters or hiring managers can set up programming tests and can assess applicants in one specific programming language or over multiple frameworks (Java, Angular, Python, React, HTML, etc.). After the completion of the tests, they are provided with performance scorecards that the platform assesses the candidate on metrics such as language mastery, code design, readability, and solidity.
6. Solving Questionnaires
Using programming questionnaires is a great way to quickly screen-out smart programmers from the lot. The biggest advantage of using questionnaires is that you can evaluate a developer's problem-solving ability and their way of coding.
You can find good programming questionnaires from websites such as FizzBuzz, Top Coder, Anagram, Taxes, Google Code Jam, Bug Fixes, Box Size, and many more.
I highly recommend the FizzzBuzz questionnaires to filter out highly-skilled developers from novice developers. FizzBuzz questionnaires look easy but are quite challenging. As they claim, it won’t help in finding great programmers, but it will help to filter out the not so good ones from the list of applicants.
Only exceptionally good developers can finish the test with high scores.
7. Conducting Hackathons
It is not always possible to conduct pair-programming sessions. For those who can't, conducting Hackathons is also a fruitful substitute and provides user engagement.
In such events, developers come together to collaborate on a given task. Every Hackathon event aims to find the best digital solution for a given task, which in turn focuses on a particular set of skills. This helps organizations easily find the right developer for the required skills.
It is highly recommended to keep the candidates engaged by sending them emails
(recommended email tools) or keeping them aware of their progress with phone calls.
In most cases, testing the candidates is the most useful portion of the hiring process.