According to a report by ManpowerGroup, 75% of employers report difficulty filling roles, with the Information Technology industry facing an even greater shortage at 76% despite recent tech layoffs. Additionally, IT and data skill sets are also reported as the hardest technical skills to find in the market.
In such a fiercely competitive hiring landscape, it is crucial for employers to accurately evaluate the skills of an IT professional. Amid the talent shortage, you don’t want to buy a pig in a poke and hope for the best. Recruiters must strike a balance between a speedy hiring process to avoid losing top candidates and efficient assessment to ensure the right hire.
There are several effective methods to help you find the right candidate for your team. These methods typically assess not only the candidate’s coding ability but also soft skills such as problem-solving, communication, and collaboration.
Below, we go through different strategies, such as reviewing portfolios, GitHub accounts, Stack Overflow contributions, and conducting coding assessments, among others. Keep in mind that each strategy must be adapted to the position you’re looking to fill. This means considering whether it is an entry-level or senior role and whether you are seeking an expert or someone with a broader range of skills, among other factors.
Programmer portfolio
A well-organized and curated portfolio showcases the candidate’s previous work and accomplishments, technical capabilities, and creativity. Here’s what to assess:
Variety
Evaluate the range of projects they’ve worked on, considering whether they span different technologies (e.g., front end, back end, mobile development, cloud integration) or focus on a specific domain. A diverse portfolio can show adaptability and a willingness to learn new skills. Conversely, a focus on a particular domain (e.g., deep specialization in AI or mobile apps) can indicate expertise that aligns well with your specific needs.
Relevant experience
Look for projects directly related to your company’s tech stack or business focus. For example, if you’re looking for a developer to handle e-commerce platforms, the portfolio should ideally include relevant projects involving payment gateways, product catalogs, or custom CMS systems. If you’re hiring for a mobile app developer position, their portfolio should include completed apps, possibly available on app stores. Additionally, if you’re in compliance-heavy sectors (e.g., finance or healthcare), check for industry-specific experience and projects where attention to regulatory concerns is critical.
Complexity
Consider the complexity of the projects, for example, whether they are simple static websites or intricate systems involving back-end logic and databases.
Quality of work
Keep an eye on the user experience, user interface, code structure, and attention to detail. Test some of the live applications or demos provided.
Consistency
Pay attention to the overall consistency of the portfolio and compare older and newer projects. Significant improvements over time can reflect growth and a strong learning trajectory. And take notice of incomplete work: while experimentation is valuable, a portfolio with too many unfinished projects or half-baked ideas can indicate difficulty in seeing projects through to the end.
Level of involvement
A strong portfolio often signals experience, self-motivation, and the ability to complete projects from start to finish. Nevertheless, even a strong portfolio can sometimes be misleading, as it may reflect team efforts rather than individual contributions. During the interview, ask questions to gauge the candidate’s real input and level of involvement, and beware of smooth talkers who oversell. As for the interviewees who seem hesitant, remember that trade secrets may prevent a developer from going into too much detail. Acknowledge their boundaries, and don’t be nosy. Instead, redirect the conversation to what they can share.

GitHub Account
A developer’s GitHub account can provide valuable insight into their coding style and skills such as problem-solving and collaboration. Here’s how to evaluate it:
Followers and join date
The number of followers provides a glimpse of the developer’s reputation, while the join date reflects experience.
Activity
Check how often they commit to repositories. Regular contributions suggest that the developer is continuously learning and refining their skills. Several tools can be of help, such as ProfileSummary, which generates a summary of a GitHub user’s profile with information such as commits per quarter, stars per language or per repositories, all with interactive charts.
Code quality
Have a technical expert look through public repositories and evaluate whether the code is clean, readable, structured, and well-documented, and if the developer uses best practices such as meaningful variable names, comments, and efficient algorithms.
Collaboration
Check whether the candidate has contributed to open-source projects. Contributions to open-source projects highlight teamwork and familiarity with real-world coding practices.
Diverse technologies
The range of technologies they use, the types of projects they’ve created or contributed to, and how they leverage GitHub for version control and project management can provide valuable insight into their technical versatility.
Stack Overflow
Stack Overflow is a platform where developers help each other solve coding problems. Here are some aspects to consider when evaluating an active Stack Overflow profile:
Reputation and contributions
While reputation points don’t tell the whole story, they can provide a snapshot of how helpful the candidate has been to the community. Look at the quality of their answers rather than the quantity.
Problem-solving approach
Analyze how they break down problems and provide solutions. This can give you a sense of how they’ll approach challenges in a work environment.
Depth of knowledge
Check if the candidate’s answers cover diverse topics, reflecting a broader knowledge, or are focused on specific areas, reflecting in-depth knowledge of certain technologies.
Live coding interviews
Live coding interviews are a way to assess a candidate’s coding skills in real time: the candidate is given a problem to solve while discussing their thought process.
A live coding interview allows candidates to work in an online coding environment where they can actually write, execute, and test their code. They often have access to a simplified IDE (Integrated Development Environment) to run the code and get immediate feedback. Live coding interviews mimic real-world programming more closely by allowing candidates to debug their solutions, test edge cases, and correct mistakes in real time.
These interviews are used mainly when hiring senior developers, as an employer may want to ensure the candidate can handle critical situations. While a live coding interview can be stressful for candidates, it allows an employer to assess how they work under pressure.
Rather than focusing solely on whether the developer arrives at the correct solution, the interviewer should pay attention to how they approach the problem (if they ask for clarification, if they break down the problem and create a strategy, how quickly they adapt to new information, etc.) and how they communicate their thought process.
There are several online interview tools for live coding, such as Coderbyte, CoderPad, Codeshare, HackerRank, and Karat. The latter offers a professional interviewing service where trained interviewers conduct live coding interviews on behalf of companies.
During a live coding interview, the interviewer may or may not engage in pair programming, which is the method we will discuss next.
Pair programming

Pair programming is another method to assess both technical and interpersonal skills. This technique involves pairing the candidate with one of the company’s current developers at a single workstation to solve a problem. One developer, the driver, writes code while the other, the observer, reviews each line almost as immediately as it is typed. The two developers should switch roles, taking turns as driver and observer. This setup ensures that the candidate will have the opportunity to demonstrate their ability in both roles.
The goal of this method is to see firsthand how the candidate interacts with others; for example, if they are receptive to feedback, actively contribute ideas, and help drive the solution forward. You’ll also get insight into their coding habits and practices.
When evaluating the results of pair programming interviews, remember that sometimes, having a candidate who can communicate effectively is as important as getting the solution right.
Platforms like Coderbyte, CoderPad, and Codeshare offer features for online pair programming interviews.
Whiteboard interviews

The often dreaded and even hated whiteboard interviews are still used, especially at big techs such as Google.
These interviews involve asking the candidate to solve problems on a physical or virtual whiteboard without the aid of an IDE or search engines. Candidates are expected to think out loud during this type of interview, which also differs from real work, where they’d think first and communicate later. Unlike pair programming and live coding interviews, writing syntactically correct code is not required.
Interviewees who strongly prefer to think quietly about the problem or are simply not adept at externalizing their thoughts in real time may be erroneously perceived as less skilled.
For neurodivergent candidates, being watched while solving a problem can hinder their cognitive processes. For instance, individuals on the autism spectrum may struggle with performing under social pressure and providing immediate verbal explanations. This makes whiteboard interviews a poor reflection of their real-world skills.
Despite the criticism, whiteboard interviews can be a reasonable method for evaluating a candidate’s grasp of core computer science concepts like data structures and algorithms, as well as their ability to communicate ideas clearly and logically on the spot. Ultimately, when deciding on whiteboard interviews, recruiters and hiring managers must be aware of the method's limitations. While it's useful for testing theoretical knowledge, it doesn’t reflect real-world coding environments. Therefore, it’s essential to complement whiteboard interviews with other assessments.

Take-home project
A more inclusive option to whiteboard and live coding interviews is the take-home coding project, which offers a flexible way to evaluate candidates’ skills. This method enables candidates to solve problems in their preferred environment and utilize search engines and other tools, ultimately allowing them to showcase their skills in a more realistic setting.
Take-home projects should be designed to reflect real-world tasks the candidate might face on the job. The evaluator should assess their ability to write clean, maintainable, and scalable code, as well as gain insight into their documentation skills and project structure.
Since candidates are often given a set deadline (typically a few days), take-home projects are an efficient method for assessing their time management abilities. This approach is best suited for later stages of the hiring process, when you want to see how candidates approach real-world tasks, and for senior or mid-level roles where problem-solving, design, and code quality are critical.
Be mindful that take-home assignments should not take up excessive time, especially if your company is not compensating the candidates for their time. Recruiters and hiring managers should find a balance that respects candidates' efforts while allowing for effective evaluation. Additionally, always remember to provide feedback on the project, regardless of whether you're moving the candidate forward or not. Acting with respect and consideration will also help preserve your employer brand.
Programming tests
A programming test consists of short coding challenges or algorithmic problems that must be solved within a strict timeframe (e.g., 30 minutes to 2 hours). Due to its consistent evaluation format, automated tests are an effective way to compare candidates objectively.
Programming tests are especially suitable when you need to evaluate large numbers of candidates in a short period. Platforms like Coderbyte, Codility, DevSkiller, LeetCode, and HackerRank offer automated online programming tests with scoring systems to evaluate code correctness, efficiency, and performance. These platforms utilize various technologies to prevent cheating.
The recruiter or hiring manager can tailor the assessments to suit the specific requirements of the role, testing everything from basic syntax to complex algorithms and system design.
Unlike live coding and whiteboard interviews, candidates can focus on the problems without worrying about simultaneous communication. This aspect makes the programming tests more inclusive for neurodivergent professionals.
Your company can also create its own manual programming tests without using an external platform. However, it would require more effort in terms of preparation, testing, and evaluation, and may be a less efficient use of your resources.
Key takeaways
Each method listed in this article will have its own advantages and disadvantages. The suitability of each approach depends on the stage of the recruitment process and the experience level required for the role. In addition, some methods may be more inclusive for neurodivergent candidates than others.
Ultimately, the key to effective evaluation lies in combining approaches to get the complete picture of a candidate’s strengths and shortcomings while being mindful of not unnecessarily prolonging the hiring process and risking losing top candidates.
Subscribe to our newsletter
Enjoying our content? Subscribe to the TechTalents Insights newsletter and get our best articles and interviews delivered directly to your inbox. Click here to join the community!