Interviewing in 2018

I recently left my job in NYC and started actively interviewing at a lot of different companies. I was interviewing for both senior/lead IC positions and middleweight management positions. As someone who has hired people before, it's been an incredibly insightful experience.

All in all, nobody is good at interviewing, but there's a whole lot we could probably do better.

Set expectations about the role

I've seen two kinds of approaches for hiring: hiring for a specific role, or hiring for a person's shape. When companies hire for a specific role, the interview process is set up and organized around asking the question: will this candidate succeed in the role we need to fill? However when hiring for a person's shape, the process asks the question: is the shape of the candidate a good match for any roles we are looking to fill?

In either case, it's beneficial for both parties if the candidate knows up front if they are being evaluated for a specific role or a set of potential roles. This will help the candidate both prepare for the interview, as well as help them express their interest for a specific role if there is potentially many roles they could be evaluated for.

As an example of what not to do, I interviewed at a company where I was uncertain about the exact role or roles I was being evaluated for, and got different answers from different interviewers about what the position was that I was applying for and what traits would make someone successful in that role. Imagine if I wasn't unemployed and actively looking for a job: would I be able to afford spending a full day of interviewing on a role that was unclear? Had I known that I was being considered for several different roles and given information about each of them, I would have avoided wasting time trying to understand what the job actually would be.

Evaluate based on the job's demands

It should go without being said, but if you're evaluating a candidate for a job, the candidate will expect that the sorts of skills you screen for relate to the job at hand. It's astonishing how often I was presented with programming challenges that have absolutely no relation to my ability to implement a product or infrastructure change, effectively lead a team, communicate with other employees, or do any other function that I've had throughout my career.

Testing for the ability to implement a graph traversal algorithm on demand is not a good signal for a software engineer. Note: I have literally designed/implemented multiple build/dependency management systems in my career and I still believe giving a whiteboard graph traversal exercise is a bad idea.

Similarly, some companies had interview lineups of solely other engineers/engineering managers. This seems misguided, as I've never worked in (and cannot imagine) an environment where I solely interact with other engineers/engineering managers.

Ask yourself, what should you be actually scanning for to see if a candidate will be successful in the role?

Example 1: code review

There was one interview slot that was extremely good. It helped me (as the candidate) understand the company's engineering values, and helped the interviewer understand how I operated in a lead/mentor role.

I was told that it was a role playing slot where they were looking for how I provided technical feedback on a code review. I was presented with a GitHub pull request that was authored by the interviewer, and told to review the change and give feedback in whatever way I felt most comfortable: either as comments on the code itself, a overall summary, or talking to the candidate in person. I'm not going to say more, as that would likely reveal info the employer would not like to be made public.

This was the first time I had ever been evaluated for my ability to read, comprehend, describe, and communicate feedback on code that I hadn't written in an interview. That's where a huge portion of time is spent as a more senior engineer, and this kind of interview slot is excellent at gauging the candidates skills in that area.

Example 2: architectural overview

There was another interview slot which represented the job well. It helped me (as the candidate) get excited about the company's set of current challenges, and helped the interviewer understand how I thought about architectural issues as an engineer.

The slot was unusual in that it didn't feel like an interview and wasn't presented as a typical "solve this problem." Instead, it was an educational conversation about the company's existing architecture. The interviewer began by drawing the company's software architecture on the whiteboard and described how the system worked in broad strokes. Then they explained about how the role I was being considered for fit into this big picture. They also talked about the sorts of changes they wanted to make and we discussed the various tradeoffs, business constraints and impacts, and overall direction things could go in and the impact it could make on the business.

This interview slot could have easily been the same sort of interaction that a new hire would have as a part of onboarding. They treated me as if I was already in the role and was being asked to provide feedback/insight with respect to their current challenges, approach, and chosen technologies.

At the end of it, I felt valued, informed, and got a much better sense about what I'd be working on in the role. The interviewer also was able to both sell me on the impact of the role, gauge my knowledge of their existing toolchain, and get a sense of how I would ask for additional context and how I'd approach architectural risk.

Check your interviewer diversity

When being interviewed in-person, a candidate will see the interviewers as the group of folks that the organization has placed trust in. This first impression of who can be trusted is extremely important. Candidates will remember who interviewed them when they join, and will assume they are trusted decision makers. This can amplify an existing power dynamic between the group of people who interview and the group of people who do not.

Candidates see interviewers as representatives of whom trust is placed in an organization.

If your interview panel consists of a uniform group of people and the candidate is not part of that group, they will hesitate to join for fear of being tokenized, isolated, or overruled. Similarly, if your interview panel consists of a group of people that doesn't match the diversity of the people the candidate sees in the office, the candidate may believe there is an unspoken power dynamic between the trusted individuals doing the interviewing and those who are the other workers.

That being said, it's impossible to have a lineup of a small handful of people who are adequately representative of the organization they belong in. However, do consider the impact of a homogenous interviewer panel.

De-risk early

When hiring, employers need to mitigate risks. They need to de-risk spending a lot of time on a candidate they cannot hire (or who won't join them), and they need to identify candidates who lie about their skills and history.

In my experience, very few companies seem to care about checking references; those that did waited until the very end of the process (the last step before giving an offer). This seems crazy to me, as the amount of time/resources needed to check references is vastly smaller than the amount of time invested in bringing a candidate on-site for a full day interview.

Similarly, I know of companies that have brought candidates on-site but ended up not hiring them due to complications around immigration.

To be respectful of the candidate's time (and your own time), these kinds of show-stopper verifications should be done sooner, especially if they can be solved with a simple email or short phone call.

Avoid lunchtime interviewing

Eating while being interviewed (or interviewing) is the worst, and I don't know how it can be made better.

  • Some companies put "culture fit" screens in lunch slots. It's hard to eat while a group of strangers are actively judging your personality.
  • Some companies give the candidate food while they go on with a typical interview slot. It's hard to eat while talking about difficult conversations you've had with your prior reports.
  • Some companies just simply forget to feed the candidate. Unless your startup is super strapped for cash and working on failing business models, you're probably not going to want to check the candidate's ability to solve programming puzzles on an empty stomach.
  • Some companies give the candidate alone time for lunch. It's nice to get a break from interviewing, but can also be a bit of a drag if the lunch slot is particularly long.

Competitive research

If you're a hiring manager, I wish I could encourage you to go through the interview process for an equivalent position at other companies. Unfortunately that's ethically dubious. Intentionally misrepresenting yourself and deceiving employers is a bad idea. However, I can't imagine a better way to understand how to better organize your approach to screening and interviewing candidates. Maybe the next best thing would be to ask your new hires to share their experiences interviewing elsewhere.

Just imagine what you could learn just about the process (not even considering intellectual property) by analyzing how your competitors interview. How do they advertise the role? How do they describe what skills they are looking for? How do they invest time into the candidate? What sorts of questions do they ask in order to understand the shape of the candidate?