Hic Sunt Dracones

tomo@hicsuntdra.co

Why is Tech Interviewing Broken?

Being an exceptional developer and being good at interviewing for that same developer job are two different skills.

A good interviewer will see through the candidate if the substance isnā€™t there. Likewise, they will be able to spot a diamond in the rough. Yet, this is a rare interview experienceā€”interviewing is challenging.

I keep hearing that we need to fix the technical interviewing process. But why is tech interviewing broken?

I will unwrap this question and cover the following topics:

Why are technical interviews seen as broken these days?

Why are technical interviews seen as broken these days?

Several factors lead to that sentiment:

  • Lack of Relevance
    • Technical interviews may test knowledge and skills outside of the job scope. For example, they may ask outdated questions or questions unrelated to the job.
  • Lack of Real-World Context or use of Whiteboarding
    • Technical interviews are limited by the lack of a real-world context, making it difficult to assess candidatesā€™ ability to apply their skills and knowledge in practical situations and determine if they fit the role.
  • Stressful Environment
    • ā€œWe want to see how you operate under stress.ā€ Technical interviews can be stressful and intimidating, impacting a candidateā€™s performance. The stress can result in a poor evaluation of the candidateā€™s abilities and potential, even if they are well-suited for the role.
  • Bias
    • Technical interviews can be consciously or unconsciously biased toward certain people. For example, some interviewers may have implicit biases based on gender, race, or educational background.
  • Inadequate Preparation
    • Technical interviews often require considerable practice from the interviewee, but they also need proper preparation from the interviewer. The meeting should be structured appropriately and effectively so the interviewer can assess the candidateā€™s skills and knowledge accurately.

The pros and cons of the whiteboard interview

The pros and cons of the whiteboard interview

The whiteboard interview is the most hated interviewing practice among software engineers. Still, many companies utilize it.

The truth is that it has both benefits and drawbacks. Let me explain:

Downsides

  • Limited Real-World Context
    • Writing a short algorithm tells us nothing about broader engineering skillsā€”teamwork, leadership, creativity, attention to detail, and soft skills.
  • Limited Problem-Solving Ability
    • Often focusing on candidatesā€™ abilities to recall information rather than working through complex problems or assessing their problem-solving skills.
  • Artificial Working Environment
    • At no point in any developerā€™s day-to-day work do they need to recall an algorithm from memory and flawlessly execute it in 30 minutes, under stress, without googling, while others watch.
  • Lack of Collaboration
    • Whiteboard interviews are isolating and do not allow candidates to collaborate, which is essential in many software development roles.

Benefits

  • Ability to Test Code Writing Skills
    • The interviewer can evaluate the candidatesā€™ ability to write code, explain algorithms, and think logically.
  • Assessment of Communication Skills
    • The interviewer can assess the candidateā€™s communication skills, as they need to explain their thought process and how the solutions work.
  • Scalability
    • Whiteboard interviews can provide a quick and efficient way for the interviewer to assess a candidateā€™s technical skills, which are instrumental in high-volume hiring scenarios.
  • Consistency
    • Whiteboard interviews can provide a consistent and standardized evaluation process for all candidates. They help cut bias, ensure a fair assessment, and normalize passing thresholds when multiple interviewers exist.

Takeaway

While the whiteboard interview has drawbacks, it can be a helpful tool in the technical interview process, especially regarding scale. Scalability and consistency are critical at enterprise-size hiring levels, where companies interview almost constantly.

However, I recommend combining this interview technique with other vetting methods, such as coding assignments, pair programming, and technical discussions.

The use of take-home projects in technical interviews

The use of take-home projects in technical interviews

Many technology companies also use take-home projects as part of their interviewing process.

Take-home projects are an excellent way to interview software developers as they allow candidates to show their skills and abilities in a realistic environment, providing a more accurate assessment of their capabilities. It also allows the candidate to showcase their problem-solving skills, attention to detail, and ability to work independently.

This interviewing process can be very insightful for specific roles, like individual contributors. But is this the right tool for evaluating senior-level engineers?

Additionally, the most significant issues with the take-home projects are the time investment required and the sentiment of working ā€œfor freeā€ (unpaid work).

Therefore, ensuring the project is appropriately scoped is crucial. Itā€™s also vital to communicate the projectā€™s expectations and guidelines to mitigate some of the abovementioned issues.

Can ChatGPT and AI compromise the interviewing process, and should we fear it?

Can ChatGPT and AI compromise the interviewing process, and should we fear it?

This is not the usual ChatGPT rant, panicking that AI will take over software engineering jobs. Yes, ChatGPT can indeed pass the coding interview at Google; however, note that it will not get that job.

How should we stand with using ChatGPT during the technical interview?

It is standard practice for candidates to use Google Search and Stack Overflow during technical interviews. The issue is what they will search for, not whether they can use outside help. Reference materials, syntax questions, and language documentation are all allowed. Day-to-day working developers use all these resources constantly, so shouldnā€™t an interviewing candidate also be allowed to use them? Candidates are good to go if they are not searching for a complete solution to the question or copying and pasting ready code. Adding ChatGPT in the tool belt makes perfect sense.

On top of that, interviews are timed. Writing out the question in a way ChatGPT can understand takes time and skill. Sometimes, it can even take longer than conducting a web search. It takes several iterations and exchanges with the bot to achieve the desired answer. So, can we trust the response 100%? ChatGPT is still inconsistent. A candidate can trial and error and use AIā€™s code, but it wastes valuable time.

The bottom line is that ChatGPT is not a threat but a valuable tool that makes engineers more productive. When used smartly, it can produce great results. Even in the technical interview, candidates can showcase another valuable skill that makes them better engineers.

What should the ideal technical interview look like?

What should the ideal technical interview look like?

The end goal of the technical interview is to get an answer to this one question: What is the probability that this candidate will succeed in this job?

We want an employee offering traits. Thus, we need to redefine the top talentā€”itā€™s not only about the code.

Four key characteristics make up a superb software engineer:

  1. Technical and coding skills
  2. Understanding the engineering context
  3. Soft skillsā€”communication, collaboration, and empathy
  4. Adaptability

Several interviewing techniques can be used to achieve your goal and find your unicorn engineer. Some examples are:

  • Real-World Problem Coding Assignment
    • Giving the candidate a real-world problem, such as finding and fixing bugs in a codebase or developing a simple new feature, can provide a more realistic assessment of their technical abilities and problem-solving skills.
  • Pair Programming
    • Pairing the candidate with an experienced software engineer for a programming session can provide insight into their coding style, collaboration ability, and communication skills.
  • Technical Discussion
    • Engaging the candidate in a technical discussion about their experience and projects can provide insight into their knowledge, expertise, and ability to articulate their thoughts and ideas.
  • Behavioral Interviews
    • Conducting behavioral interviews to understand the candidateā€™s past experiences and how they handle various situations can provide valuable insight into their communication skills, leadership style, and ability to work in a team.

Get the technical interview right

To get the technical interview right, it is crucial to:

  • Approach the interview with a holistic perspective.
  • Consider both the candidateā€™s technical and non-technical skills and qualities.
  • Create a fair, inclusive, and relevant assessment process.

Itā€™s essential to consider combining various screening techniques to view the candidateā€™s skills and abilities comprehensively.

šŸ‰ February 27, 2023