Interviewing in 2018

Last updated May 9th, 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.

NOTE: during this period of interviewing, I was not working. It was my job to find a job. I had a whole
lot of time to invest in the interviewing process and was willing to jump through any number of hoops to apply and
interview. I was aiming to get as much information as I needed to understand if the role would be a good fit for me.

I was very privileged to be in this position (I am not the typical candidate), and lucky that software
engineers/engineering managers are in high demand today (this is not typical of almost every other field in the US
today).

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

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.

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?

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.

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.

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.

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.

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.

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?

Do you want to learn more? Was something confusing? Was something insightful? In the NYC area
and want to grab a coffee? Feel free to drop me an email at
sufian@gmail.com or send a tweet my way
@sufianrhazi

Disclaimer: Unless stated otherwise, the above words are my own and do not represent the
opinions of any person or business but myself.