Chris Hecker Interview Process

The Chris Hecker interview process is an approach to interviewing software engineers that focuses on assessing the candidate based on topics they should already be very familiar with. It is designed to put the candidate into an authoritative position where they have all the answers instead of presenting them a problem they have zero familiarity with.

The interviewer’s role is to ask clarifying questions to test the candidate’s technical knowledge of projects they have worked on. This will often involve asking questions the interviewer may already know the answer to, but framing it as if they don’t. This gives the candidate the opportunity to explain a subject and demonstrate if they have a deeper technical understanding or just surface level details. It also shows off how good a candidate is at communicating ideas to someone who is unfamiliar with them.

The interviewer should not be focused on correctness or memorization. The ability to solve problems without assistance in a limited amount of time is not what we should be testing for. Instead, we should be focusing on a candidate’s confidence with their responses, communication skills, and patience when working with coworkers. These are all valuable skills that software engineers need to utilize every day.

The Process

Begin with a friendly introduction and small talk. The idea is to create a relaxed and comfortable atmosphere. It’s important to maintain this conversational atmosphere throughout the whole course of the interview.

Ask the candidate about their experiences, interests, and favorite projects from their resume. Try to find a project they are passionate about and that has enough depth that you can use to assess their technical knowledge and understanding. It’s okay to jump around and move off a project if it doesn’t seem relevant or if the candidate was less involved in it.

Start asking detailed questions about the project. Be patient and give the candidate enough time to think and explain their ideas. Pay attention to their responses and ask clarifying questions to ensure full understanding. Spend most of the time focusing on questions the candidate is comfortable answering. Any questions that the candidate is struggling to explain, move past them and revisit them towards the end of the interview. Uncomfortable questions can be valuable in demonstrating an engineer’s approach for solving an unfamiliar problem.

Focus on the following:

  • Design Discussions: Why did they choose specific data structures, algorithms, architectural patterns, etc.
  • Implementation Details: How was a specific feature implemented
  • Problem-solving: Discuss challenges they faced and how they overcame them
  • Communication: Evaluate how good the candidate is at explaining themselves. Are they being patient and making sure they are understood?

References