Technical hiring is slightly challenging as compared to a non-technical hiring. There is a lot of depth in the rapidly evolving programming languages and frameworks. Even for programmers, you need to assess their non-technical skills such as communication, flexibility, ability to lead, etc. However, using some of the best practices along with adoption of online tools for technical hiring ensures that the recruitment process for developers remains efficient.
Today we will discuss all the stages of technicalrecruitment along with the best practices. Following these practices, recruiters can make sure that the overall recruitment process speeds up the hiring and reduces the overall cost. Let’s start with the first stage – screening.
For the screening stage, the first thing is to understand the requirements of the role. For example, if you are looking for a programmer who has expertise in the Salesforce Lightning framework, then your assessment should focus around the specific framework of “Lightning” instead of general Salesforce development.
. Apart from technical skills, you also need to evaluate problem-solving, analytical, and communication skills of the candidate. Programmers should have the ability to elaborate and explain different technical concepts in an easy-to-understand manner. Using a technical assessment tool is a great way to perform initial screening. It can be a set of multiple choice questions where you evaluate the knowledge of the candidate or a small algorithm to test the candidate’s analytical abilities. You can automate the process by defining a set of screening questions in the technical screening tool and later shortlist only the candidates passing the initial screening phase. Let’s discuss some of the online tools used for technical screening.
Technical Screening Tools
Through CodeInterview, you can set up technical screening questions and distribute with your candidates using a simple link. The built-in library already contains questions for analytical and problem-solving skills, so you can pick one to save time. If you look at the below image from CodeInterview, you can see each test you create has its own scoring.
Figure 1 – CodeInterview Questionset for a ReactJS Programmer
CoderPad is also an online tool for coding interviews and technical assessments. It has some cool features like test cases, take-home projects, integrations with multiple application tracking systems (ATS), and the ability to pause a test. It provides real-time collaboration between the candidate and interviewer during a coding assignment.
Codility is another platform that helps recruiters hire programmers. It provides a large question bank and coding exercises that can be customized to evaluate the specific skills for a programming role. It also supports coding in many programming languages along with time tracking capability. It uses automatic grading algorithms to grade the submissions.
HackerRank is a comprehensive solution that takes care of the needs of both recruiters and candidates. It allows programmers to test their skills, earn certificates, and compete against other programmers using the platform. Recruiters can also send coding assignments to candidates and convene live technical interviews. It has a rich feature set and is more suitable for large organizations looking for an end-to-end solution.
Initial Phone Interview
When doing the initial phone interview, review the candidate’s resume and make a list of questions you will be asking during the call. Start by introducing yourself and the company. Briefly elaborate on the programming role you are hiring for. Inform the candidate about the overall interview process. During the call, you should evaluate the candidate’s communication skills, enthusiasm, and attitude. You can even ask them about a challenging project that they executed successfully. Before ending the call, tell the candidate about the next possible steps.
During the technical interview, you will evaluate the candidate’s technical skills in reference to a particular set of technologies. For a front-end developer, you might ask about navigation routes, UI/UX, styling, integration with the backend, or caching. Keep an eye on the candidate’s thought process; sometimes, a candidate cannot provide a technology-specific solution but can provide a high-level strategy to implement a solution. You can assign candidates a small coding test in the required language and framework. That will help you evaluate a candidate’s skills in a particular programming language or framework. For example,ou can ask a Dot Net Core developer to use the entity framework to interact with the database in the coding solution.
A coding challenge or a pair programming sessions is essential to the interview process. In a code challenge, you provide the candidate with a coding assignment, and the candidate needs to complete it within a certain time. The next section will focus on the importance of code review, what factors you should keep in mind when analyzing the candidate’s code, and some examples of these factors.
When reviewing the candidate’s code, you should note the following:
Is the code easy to read and understand? Does it follow established coding conventions and style guidelines? Are variables and method names up to standards?
Does the code work as expected? Does it meet the requirements and solve the problem it was designed to solve? Has the candidate implemented all use cases, including the failure scenarios?
Does the code run efficiently and avoid unnecessary use of resources such as memory and processing time? Do you see CPU or memory spikes during the code execution?
Does the code handle errors and exceptions in a robust and appropriate manner? Does the application behave gracefully if an unexpected error occurs?
Does the code have adequate test coverage, including unit tests and integration tests? Are the tests well-written and maintainable? This can be skipped for online code interviews if time is short. However, for a take-home coding assignment, this should be included.
Is the code modular and reusable? Can it be easily incorporated into other parts of the codebase? Has the candidate written the duplicate functionality in multiple files instead of centralized code?
Does the code scale well and avoid performance bottlenecks as the amount of data or the number of users increases? Can the code handle concurrent users?
Does the code follow best practices for security, including input validation, authentication, and encryption?
Code organization and structure
Is the code well-organized, with a clear separation of responsibilities and appropriate use of design patterns? Does the folder structure follow the recommended structure for the relevant programming language and framework?Code Interview Questions
Designing online code interviews needs skills and practice. Some of the best practices for conducting an interview include:
Make it Real
The programming challenge should mimic a real-world problem. Presenting a real-world challenge will help you assess the candidate’s skills more realistically. A combination of general-purpose analytical questions and programming language-specific code challenge is the best strategy.
Opt for a Coding Interview Tool
Use an online collaboration tool that will be used by the candidate to write and compile code. You should be able to view the real-time code writing by the candidate, which will help you understand candidate’s thought process. CodeInterview, for example, allows you to playback the code-writing process of the candidate, which greatly helps you understand the candidate’s programming habits and thought process.
Figure 2 – CodeInterview can playback the video of the whole coding process of the candidate
Check our article on designing the online code interviews for a detailed guide on designing coding interview questions.
You conduct an onsite interview when a candidate clears the technical interview and code challenges. If the onsite interview is not possible, then you can convene a video conferencing interview. The purpose of this interview is to evaluate the candidate from a non-technical perspective. You should first determine whether the candidate’s values, work style, and future goals align with those of the company. This evaluation will confirm whether the candidate can integrate smoothly into the team and company’s work environment.
Then you should also evaluate the candidate’s ability to learn new technologies and skills quickly and effectively. In the programming world, technology evolves rapidly.
You should also assess if the candidate can work efficiently in a modern software development methodology such as agile, scrum, or XP. If the candidate has mostly worked in a culture where the waterfall methodology was followed, then this candidate may not be suitable for modern, fast-paced projects where multiple releases are done in a day through strong CI/CD and automated testing.
Another trait to evaluate is the candidate’s attitude, demeanor, and level of professionalism. This will help you gauge their ability to represent the company in a positive light and maintain a professional image.
The reference check is one of the underrated steps of the whole hiring process, but you should never ignore it. When doing the reference check, start by making sure you have obtained the candidate’s permission to speak with their references. Compile a list of questions you would like to ask the references to help you comprehensively understand the candidate’s abilities and fit for the role.
During the reference check process, maintain confidentiality and respect the privacy of both the candidate and the reference. When starting the call with references of the candidate, introduce yourself as a recruiter conducting a reference check. Explain the purpose of the call and the role the candidate has applied for. Use the list of prepared questions to guide the conversation and gather information about the candidate’s skills, work style, and ability to work in a team. You can ask for specific examples of the candidate’s strengths and weaknesses and how they performed in their previous role.
After you have talked to the references, verify the information presented by the candidate during the interview and reference check process. This will ensure that the information provided by the candidate is accurate and consistent. Take your notes during the reference check, including the name of the reference, their relationship to the candidate, and the information they provide. This information will be useful when evaluating the candidate and making a hiring decision.
After the reference check, provide the candidate with feedback on the information you have gathered and answer any questions they may have. Document the reference check results in the candidate’s file for future reference. This information will be useful when making a final hiring decision and during the onboarding process.
Before making the offer, make sure that the offer accurately reflects the duties and responsibilities outlined in the job description. You should also consider the candidate’s education, work experience, skills, and other relevant qualifications when making an offer. At the same time, ensure that the salary and benefits offered are competitive and in line with the market rate for a similar role.
Keep an eye on any laws and regulations, such as minimum wage, equal pay, and non-discrimination laws. Of course, you will need to take into account the candidate’s expectations, too, because that will be one of the deciding factors.
Make the offer promptly to avoid losing the candidate to another employer. Put the offer in writing and ensure that the candidate signs and returns the copy to ensure that both parties understand and agree to the terms of the offer.
Today we discussed the whole hiring process for programmers in detail. We went through each hiring stage and mentioned some best practices to be followed by the technical recruiters. We also mentioned the role of online code assessment tools in automating the process and ease of use.
7 Advantages of Using a Coding Interview Platform
Should You Use Coding Assessments in Your Hiring Process?
Here’s Why You Should Use a Technical Assessment Tool for Hiring Engineers