At ReadMe, we wanted to rethink the technical interview process to be more candidate-focused. Technical interviews can be an exhausting, scary, frustrating experience, which is the last thing you want if you’re trying to kick off a hopefully long-term relationship with a candidate.
We have one goal in the interview process: to enable each candidate be the best version of themselves. That doesn’t mean everyone will be the right fit, however we want to make sure nobody feels like they weren’t given the chance to show us their best stuff.
We also know that every step of the way, candidates are interviewing us, too! Everyone we hire has many options, and we want to make sure people see how special we are from the start.
Before We Write a Job Description
We start the process long before we even think about hiring. At ReadMe, we have a rule that any hiring manager has to do the job for a few months before they hire someone else. It makes sure there’s a strong need for a job, and more importantly that the manager has a strong understanding of what they’re looking for and a good amount of empathy toward the problem.
First Impressions
We’ve recently redone our job listings, since for many people it’s their first impression of us. We wrote them from the perspective of a new candidate. We wanted to highlight how the job would help them learn and grow, replace generic tropes with specific examples about what makes ReadMe unique, ensure it’s clear what to expect from the process, and of course… add a bit of whimsy! We also include a timeline of what you should expect in your first, third and sixth months doing the role, as a way to bring concrete examples in and show progression clearly.
At the end of our job listings, we outline the hiring process for each role. From initial phone call to offer, we want people to know what’s up next.
Onsite Invitation
When we decide to bring someone onsite, we send them a personalized website with all the information they need. We don’t want to miss out on someone great because they didn’t know how to prepare, or what we’re expecting. Here’s an example of what it looks like!
It goes over where to go, what they need to bring, how to get in, and how to approach interviewing with us. In COVID times, it includes a Zoom link, and a virtual tour of the office, since we're doing our onsites remotely. Interviewing anywhere can be nerve-wracking, and we want to let people focus on showing what makes them special and unique, rather than having to worry about the logistics.
Onsite
We like to start with a get-to-know-you session with everyone the candidate is going to talk to throughout the day. It’s a nice way for everyone to go around the table and introduce what they do at ReadMe, and the candidate can answer some common questions once rather than repeating it every interview. It goes a long way toward making people feel comfortable—you’re not just sitting in the room waiting for someone you’ve never met to show up and quiz you—you’ve already gotten to know everyone in a friendly situation.
Bring Your Own Project
This is one of the most unique things ReadMe does. Worst case, it can feel like technical interviews are the interviewer showing off, or just checking if you know the same inane JavaScript trivia they do. Best case, you’re being asked to solve a problem you just heard about in an environment you’ve never used before. We want every candidate to be able to do the best they possibly can, which is why we do things a bit differently! We ask everyone to bring their own project to work on.
After working at any company, you quickly learn the codebase and environment. So, it makes no sense to interview someone by asking them to solve a problem they aren’t familiar with in a codebase they’re not familiar with. This lets us go a lot deeper, since we can ask why they made certain decisions and watch how they work on a problem they’re knowledgable about. It’s so much more useful than making people defend quickly-thought-out design decisions they’re making up as they go along.
Best of all, it puts the interviewee in the driver’s seat. We’re learning from them, and get to explore something we’ve potentially never thought about before. It’s so much more engaging than having a single problem we’ve seen dozens of times, and avoids an issue where we grade them based on how similar to our solution they got.
We’ve had people do all sorts of things!
- Review and merge in pull requests for open-source projects they’re maintaining.
- Write a file uploader with progress bar for their personal website.
- Learn a new technology, such as React Native or GraphQL.
- Add a new item to a game they’ve built from scratch.
- Add a test suite to a codebase that’s gone too long without it.
- Realtime chat rooms using Firebase.
- Work on a project another company assigned them for an interview. (Hey, why not! Two birds with one stone.)
- We have some fun projects ready to go, too, if necessary!
What We Look For
We look for curious people, and we’ve built an interview process to support that. Curiosity means you’ll naturally find new things to get excited about and take on. Curiosity means your gut reaction is to figure something out. Curiosity means wanting to understand other roles in the company and developing empathy for them.
I like to ask people questions like, “What’s the coolest thing you’ve built,” and let the conversation go wherever it goes. Some of the best answers have nothing to do with building a website, even—I love people who get excited about weird, interesting niches.
Our Handbook
Last step is the offer. That means we’ve made our decision, and now the candidate gets to decide! We include with each offer an Employee Handbook (check it out!), which does a good job of showing our culture—how we work, what we value, what benefits we provide, and how we think about our code of conduct. It does a really good job of giving each candidate a feel for what life at ReadMe is like.
Why We Do It
We put a lot of time and thought into our interview process, because it’s important. We want our product to be a certain way, and for that to be true we need people whose values match up with ours. To attract people like that, we need an interview process that reflects them! Since we care about usability, simplicity and design, we wouldn’t be able to appeal to the right people if our interview process was the opposite of that.
It’s also a great way to find diamonds in the rough. We’re up against thousands of companies and jobs, and having a unique interview process helps us find people who might have slipped through a Google or Facebook interview. There’s a ton of people out there who are amazing candidates but bad at technical interviews, and ours gives us a chance to find them!
A product is only as good as its people, and its people is only as good as its interview process!
(If you like this process, we're hiring! We might just be what you're looking for.)