Personal Blog

Great companies are made of great people. In “Good to Great“, Jim Collins emphasized that leaders of companies that go from good to great start with getting the “right people on the bus… and in the right seats”. That is why hiring and retaining the best talent is instrumental to your success.  Despite its limitations, having a good interview process is critical for making good hiring decisions. Interviewing is your primary tool for deciding if a candidate is a good fit for the position and the company. The cost of bad hiring decisions goes beyond morale and productivity for your team.  Bad hires over time will turn a great company into a mediocre company.

My goal here is to outline six yes-no questions that the interviewing team needs to answer at a minimum in the affirmative to move forward with a candidate. These questions provide a framework for the areas that need to be covered during the interview process. Answering “no” to any of these questions should be an immediate red flag.

Interview Structure

There are two broad categories you need to assess during the interview process. They are technical skills and leadership potential.  Technical skills are easy to understand, so let me elaborate more on leadership potential.  Some might call it “culture fit”, but I strongly believe that thinking of this as “leadership potential” is the right frame of reference.  Cultural fit is very vague and could easily lead to biases in hiring decisions. For me, what distinguishes great teams is that each member sees themselves as owners and thus takes the necessary actions to collaborate to find the best solutions and continuously improve the status quo. You want leaders in your team at every level and not yes-men. 

At the end of an interview, you need to be able to say YES or NO. There is no “Maybe” or

“Weak Yes”. Despite the limited time you have during an interview, you need to reach a decision. Each of the two areas above has a set of essential questions we need to have answers to by the end of the interview process. A single interviewer might focus on one or two questions, but you should cover all these questions by the end of the process. The goal here is to help establish a more objective framework for all those involved in the interviewing process to avoid individual biases and inconsistencies.

Technical Skills

There are a lot of things to cover in terms of technical skills in the interview depending on the position and the candidate’s level of experience. However, the following three questions should set the stage for what you need to assess about the candidate at a minimum.

Can they design solutions to technical problems?

A good candidate needs to have the ability to understand a problem and design a solution using the knowledge they already have.  Typical problem solving and design questions fall under this category. Depending on experience and position, you want to cover:

  1. Design-small (e.g. algorithm, data structure, object-oriented design)
  2. Design-large (e.g. web applications, microservices, distributed systems)

Can they translate a solution into working code?

A software engineer ultimately needs to deliver working code. A great design on a whiteboard is not useful to an end-user unless it is translated into a working application.  Coding questions fall under this question and you want to cover:

  1. Coding blocks (e.g. looping, conditions, functions, etc)
  2. Quality (e.g. requirements understanding, edge cases, test cases)

Can they self-learn new concepts quickly?

Technology and tools change and you want to make sure the candidate can grow and adapt as well. You want to make sure that they have:

  1. Breadth (diversity of technologies and concepts learned over the career)
  2. Depth (internal working of a data structure, technology, or tool)

Leadership Potentials

Leadership is not a title.  Everyone in the organization needs to be a leader.  The hallmark of a leader is taking ownership, working with others, and making things happen.  The following questions check for what I see as the minimum qualities needed to assess leadership potential in a candidate. I highly encourage you to establish your own leadership principles and team values. That way, you have a clear standard to evaluate candidates. You can take inspiration from Amazon Leadership Principles. Asking the candidate about projects and situations they have been in and diving into how they handled them and why is the best way to assess this area. Candidates early in their career might not have enough experience here, but remember that you are assessing their “potential” and not just past history.

Do they focus on results?

An employee will focus on tasks. A leader focuses on results. Never confuse activity with progress. A good candidate will have the end in mind and understand the why behind the task. Ask about failures and what they’ve learned from them.  A leader knows they are done when the result is achieved, not when the task is completed.  Probe for the following in the interview:

a. Who is the customer

b. What are the metrics

Can they resolve conflicts constructively?

Good engineers will have opinions and occasionally have disagreements with teammates on approaches to solving certain problems. How do they resolve these differences? How did they convince others of their point of view? What if things do not go as they wish? You do not want yes-men or my-way-or-the-highway types.  Evaluate the following two aspects:

  1. With peers (code reviews, design reviews, teamwork)
  2. With management (deadline, performance review, communication)

Do they take initiative?

This is the biggest deal-breaker for me, and I have declined candidates who were technically great but failed on this question. This is the difference between a mediocre and a great engineer. This is about moving forward despite ambiguity and always taking action instead of getting stuck in analysis-paralysis state.  This has two aspects:

  1. Takes ownership (task vs result, new ideas, speak up vs blaming)
  2. Has bias for action (delivers, accountable, follow-through)

Conclusion

Interviewing is hard and is not perfect.  Yet you need to have a consistent and repeatable process to evaluate candidates.  A bad hire in an early stage startup could be disastrous so do not compromise.  At the end of an interview loop, aim to use these questions as the agenda for the debrief. As an interviewing team you should be able to answer those questions and use that to guide the conversation.  For me, saying no to any of these is already a deal breaker.

Leave a comment