No More Hustleporn: What I Learned Conducting Technical Interviews

Tweet by sam

tech thot leader. southern belle turned nonbinary dyke. probably stoned. they/them

This year I conducted 75 technical interviewers. Here's what I learned: 🧵

First, some background. I'm a tech lead at a hypergrowth startup and we've doubled our engineers from 50 -> 100 in the past year. Hence, lots of interviews.

Most of the candidates I interviewed were senior backend engineers. The most common language choice was Java, which is alive and well in 2021.

To give you a sense of what we ask in interviews, I am trained on 2 different interview topics at work. Those topics are:
🔻 Coding (OOP design + algorithms/data structures)
🔻 Technical design (DB design + API design)

All of the backend candidates had engineering degrees. I did some full stack interviews, and some of those candidates came from bootcamps or were self-taught. Those candidates tended to have solid React, API, and DB fundamentals but lacked extensive backend experience.

Candidates came from both start-ups and enterprise companies. I can say with certainty: FAANG engineers are not anything special. Somebody's performance in an interview had little correlation with previous companies.

In fact, the single factor that had the strongest correlation to how well a candidate did in an interview was how nice their resume looked. Seriously.

If I received a resume in black and white and full of typos, it was a good sign that the candidate was not going to be very detail-oriented in the interview. I can't overstate the importance of a nice resume. I made mine on Canva, would recommend doing the same.

Ok, now some advice based on the most common problems I saw in interviews.

1. Coding interviews

Before you write anything down, verbally explain your solution to your interviewer and ask them how it sounds. I can't give you the correct answer, but I can tell you if you're way off-base.

Run your code early and often. You would not believe how many hour long interviews I've done where the candidate never ran their code at all.

Ask your interviewer for help if you get stuck, and REAALLLY listen to what they say. It is soul-crushing to be in an interview where the candidate is way off and ignores my feedback and instead goes down a completely wrong path.

2. Technical Design

Database design and API design both tended to be a hit or a miss - either someone knew them well or they didn't.

For database design: Know the differences between SQL and NoSQL DBs and when you would want to use each. Also, you will probably need a join table in your solution, so look into those.

For API design: Learn about authentication and how to securely handle data. Also learn all the basic HTTP status codes and think through when you'd need each for an API.

3. General Interview Stuff

It's okay to be nervous. Everyone is nervous. You don't have to apologize for it.

I expect you to make dumb mistakes you wouldn't otherwise. Part of the interviewer's job is to help point out stuff like typos and copy/paste errors so you don't get stuck. If they're not doing that, they suck.

Communication is key. In this job, you will also need to communicate with people in roles outside of engineering. I need to see that you're capable of explaining technical problems and solutions.

And finally: I'm a person too 🥲 I'm also in this tense situation with you. I do my best to be nice and personable, please help me out - I'm in 2-3 interviews per week just like you probably are

I have many more thoughts on interviewing but I'll save those for another time. Happy to answer any questions :)