What is the best way to evaluate someone's technical skills?
Tags: career, discuss, interview
Published: 2023-02-15 17:01:21

## Introduction 👋🏼

As someone entering the job market and going through multiple hiring processes recently, I started questioning the various methods companies use to evaluate candidates' technical skills. Why do companies use different methods to interview, and what advantages and disadvantages each approach has? I'm writing this article to express my views on each method as an interviewee and learn more insights from you in the comments section.

## The Goal 🎯

Before discussing the different interview methods, I want to discuss the goal of the interview process.
I believe there are four criteria that companies want to evaluate the candidates on, they are:

1. Technical Knowledge
2. Problem-solving skills
3. Communication
4. Cultural fit

What criteria are more significant will depend on the company and the role. Different interview methods assess some criteria better than others, so you must consider what you want to evaluate before choosing a way to interview candidates.

## The Different Methods to Evaluate Technical Skills

In the following sections, I will discuss some of the types of interviews I encountered and how each assesses the different interview types.

### Online Coding Assessments 👨‍💻

Online coding assessments typically involve solving a set of coding problems within a limited time frame using a coding platform. These problems usually focus on the use of data structures and algorithms and can be found on websites such as [Leetcode](https://leetcode.com/) and [HackerRank](https://www.hackerrank.com/).

| Skill |  Explanation |
|-------|---|
| Technical Knowledge | Online coding assessments test a candidate's knowledge of programming, data structures, and algorithms. Still, they may not necessarily assess the specific technical skills required for the role. |
| Problem-solving skills | While these assessments can provide insight into a candidate's problem-solving abilities, it is possible for a candidate to perform well simply by recognizing and implementing a solution that they have seen before, rather than demonstrating their ability to solve new problems. |
| Communication | Online coding assessments do not directly evaluate a candidate's communication skills. | 
| Cultural fit | Online coding assessments do not assess a candidate's cultural fit with the company. |


### Coding Assessment with Interviewer 👨‍💻👨‍💼

Also known as "pair programming," coding assessment with an interviewer are similar to the coding assessments discussed before. Still, the difference is that there will be an interviewer present. This format allows the interviewer to observe the candidate's thought process and approach to problem-solving, as well as their coding skills and technical knowledge. The interviewer may ask questions and guide the candidate through the coding problems.

It provides a more in-depth evaluation of a candidate's problem-solving skills than online coding assessments since the interviewer can assess the candidate's thought process and understanding of the problem.

| Skill |  Explanation |
|-------|---|
| Technical Knowledge | Similar to online coding assessments, coding assessments with an interviewer test a candidate's knowledge of programming, data structures, and algorithms but may not directly assess the technical skills required for the role. |
| Problem-solving skills | It provides a more in-depth evaluation of a candidate's problem-solving skills than online coding assessments since the interviewer can assess the candidate's thought process and understanding of the problem. |
| Communication | While coding assessments with an interviewer provide insight into a candidate's ability to communicate their solution, it is only one aspect of communication. It may not fully evaluate their overall communication skills. | 
| Cultural fit | It can evaluate cultural fit depending on the interviewer's approach, who may ask questions to assess the candidate's fit with the company before or after the coding portion of the assessment. |

### System Design Interviews 🌐🛠️

While I have only encountered system design interviews twice, I am familiar with their general format. During this interview, the interviewer asks the candidate to create a high-level architecture for a system, often using examples such as YouTube, Twitter, or Spotify.

It is important to note that candidates are not expected to replicate the exact architecture of these products. Instead, they are evaluated on their understanding of system architecture and ability to weigh different trade-offs between various approaches. These interviews aim to test a candidate's problem-solving skills, ability to create efficient solutions, and communication skills in explaining their designs to the interviewer.

| Skill |  Explanation |
|-------|---|
| Technical Knowledge | A system design interview assesses a candidate's technical knowledge in designing complex real-world software architecture, which encompasses multiple subjects, including data storage, scalability, and security. |
| Problem-solving skills | It evaluates a candidate's problem-solving skills by assessing their ability to design solutions for large-scale, real-world problems. Through them, an interviewer can assess how the candidate breaks down the problem, consider different constraints and trade-offs, and make architectural decisions. |
| Communication | It tests candidates' ability to effectively communicate their design choices, explain trade-offs, and justify their decisions. |
| Cultural fit | They do not directly assess cultural fit, but the interviewer may include questions to evaluate it |


### Take Home Project 🏠

This type of interview involves providing the candidate with a prompt to develop a project that aligns with the role's requirements. The project may vary depending on the position, such as a webpage, an API, or a mobile app. It should be developed using the required programming languages and frameworks. Typically, candidates are given several days to complete the project and submit it for evaluation.

Take-home projects allow candidates to demonstrate their skills and problem-solving abilities in a more realistic environment and at their own pace. They also enable the candidate to showcase their creativity and personal style in their approach to solving the problem.

However, there are some downsides to taking home projects. The interviewer cannot assess the candidate's ability to think on their feet or how they or work under pressure. The candidate may receive help from outside sources, such as friends or online forums, which can compromise the integrity of the evaluation.

| Skill | Explanation |
|-------|-------------|
| Technical Knowledge | Evaluates the candidate's knowledge of the programming language and frameworks used in the role, as well as general software development concepts |
| Problem-solving skills | Assesses the candidate's ability to solve problems and design software based on the prompt. This includes breaking down the problem, identifying constraints and trade-offs, and creating a solution that meets the requirements. |
| Communication | Focuses on how well candidates document their code and explain their design choices. It may not evaluate verbal communication directly, but the quality of written communication can indicate the ability to communicate effectively. |
| Cultural fit | Does not directly assess cultural fit. Still, the project prompt may reflect the team's values and provide insight into the candidate's approach to work. |

### Resume/Portfolio interview 📄

Resume/portfolio interviews consist of the interviewer conversing with the candidate, focusing on their previous roles, technologies they have worked with, and projects they have been involved in. The interviewer will usually review the candidate's resume and portfolio and ask questions related to their prior experiences or ask some questions prepared before the interview to obtain more specific insights about the candidate.

In addition to assessing the candidate's technical abilities, these interviews may also evaluate their problem-solving approach. The interviewer may ask the candidate to share any experience where they encountered a challenge and ask them to explain how they dealt with it. Additionally, the interviewer may evaluate the candidate's teamwork approach and how they collaborated with their team members in previous projects by asking questions about it.

Resume/portfolio conversations offer a chance for candidates to have a more personalized discussion about their technical and soft skills. However, it's essential to remember that this interview format does not allow an in-depth evaluation of a candidate's technical skills.

| Skill | Explanation |
|-------|-------------|
| Technical Knowledge | By having the candidate talk about his past experiences, the interviewer understands what programming languages, frameworks, and tools the candidate are familiar with. |
| Problem-solving skills | The interviewer may ask about specific problems the candidate has faced and how they solved them, providing them with some understanding of the candidate's problem-solving skills. |
| Communication | The interviewer may ask about how the candidate communicates with team members, how they document their work, and how they present ideas to other people |
| Cultural fit | Through questions, the interviewer may assess how well the candidate's work style and values align with the team's culture and the company's mission. The interviewer may ask about how the candidate collaborates with others, how they handle conflict and their approach to problem-solving in a team setting. |

## Conclusion 🏁

This article discussed various methods employed to interview and evaluate candidates for technical positions. While companies developed these techniques to ensure fairness and accuracy in assessing candidates, they all have certain limitations. Companies often combine different interviewing methods to achieve a more just and accurate candidate assessment. There may be more effective evaluation methods that are not yet widely adopted. Still, it is essential to acknowledge that companies have limited resources for the hiring process. The current techniques may be the most practical given the company's resources. Still, it is always worth considering whether there are more efficient ways to conduct interviews.