A guide to technical interviews at Medium

The goal of our interview process is to predict how you’ll perform once you join our team. Since interviewing ability has almost no correlation with employee effectiveness, we want to provide an even playing field by sharing notes on what to expect.

We conduct several different types of interviews designed to extract signals around code fluency, design/architecture, behavior, and alignment. We don’t expect you to be good at at everything. The whole point of the interview is to understand your boundaries — areas in which you excel, as well as your limitations. Chances are if you’re amazing at one thing, you can be amazing at multiple things. The good news is that Medium is an environment that encourages a growth mindset, and you’ll have many opportunities to develop your craft.


the process

Step 1: Exploratory. The initial chat will cover some highlights in your work experience, your motivations, and give you information on what Medium is doing and where we’re going. We want to make sure there’s mutual interest and alignment before starting the process.

Step 2: Technical Interview. This is a one-hour interview where you’ll work with a Medium engineer to solve a problem. This step can be done in-person or remotely (via screenshare).

Step 3: Onsite Interview. The final interview panel runs between 5–6 hours with a an hour break for lunch. There are three mandatory interviews when you come onsite:

  • coding
  • system design
  • career history
  • For the fourth interview, you have an option of selecting a second coding exercise, or a “tech talk”. The tech talk can be on the topic of your choice, and will allow you to teach a concept you’re familiar with, to several members of our team.

some tips

We understand the stressful conditions of a 60-minute technical interview, so we’d like your input on how we can most effectively assess your technical ability. If you’re not comfortable whiteboarding, or like to spend a few minutes brainstorming alone, we’ll do our best to accommodate your preferences. Here are some tips on how to prepare for the interview:

  • Show us your approach to a problem and how you break it down. Can you effectively turn your solution into code?
  • Make sure you ask clarifying questions and double check your assumptions.
  • Communicate through your thought process. This will make it easier for the interviewer to help if you get stuck.
  • Show us your learning aptitude and how you process new information and concepts.
  • You’re not here to answer CS trivia, but we do want you to have an understanding of what’s going on beneath the hood. Can you discuss tradeoffs and understand when to use common data structures and algorithms?

Hopefully you found this guide helpful. We’re always looking for ways we can improve our process, so please send comments and suggestions to [email protected] Thanks for taking the time to interview with us, and good luck!