This is The Founders' List - audio versions of essays from technology’s most important leaders, selected by the founder community. Pulled from a Quora post in 2015, Greg Brockman (former CTO at Stripe, now co-founder + CTO at Open AI) answers the question, "What is the engineering interview process like at Stripe?" Greg goes into detail around the frameworks and thinking behind the Stripe technical interviewing process and why they use this formula to build a world-class team at Stripe. Read the Quora post here - https://www.quora.com/What-is-the-engineering-interview-process-like-at-Stripe
Update (April 21, 2015): For a description of the latest iteration of our interview process, see https://stripe.com/jobs/engineering-onsite.pdf.
We've redesigned our interview process several times, as we've learned what works well and what doesn't. The most recent iteration was designed by Siddarth Chandrasekaran, Evan Broder, and me back in May 2013 .
Our interviews try to simulate the work you'd do on a day-to-day basis. We don't ask any purely algorithmic questions — no project at Stripe has ever required writing a red-black tree from scratch. We're also perfectly okay with people Googling around or collaborating with their interviewers.
We start off with a coding interview over Skype. We generally do the actual coding over Skype screen sharing so that you can write in your favorite editor (you're also free to use your language of choice). The questions we ask are intended primarily to test what we call a person's "thought-to-code compiler". Namely, it's always fairly clear how a human would go about solving our problems, but the challenge is in writing clean, maintainable code to implement the relevant functionality. Simply writing correct code isn't enough — the most common reason for doing poorly on this interview is not having a strong enough intuition around what makes for good code.
Our on-site interviews consist of the following components:
While we're doing the technical assessment, we pay attention to what it's like working with you. In general, we look for high-bandwidth, enjoyable communication.
At the end of the process, we apply a few tests:
Each hiring decision requires everyone at Stripe to (at least implicitly) be on board. Hiring meetings are open to everyone at Stripe (though in practice usually just the interviewers attend), and anyone can veto a hire. That way everyone feels invested in each new hire joining the team, and no one can claim someone else was hired unfairly.
One important aspect of any process is how you measure its success. In the long run, the main thing we care about is that we're building a great team. It's certainly hard to assess that definitively, but our litmus test is whether engineers continue to join Stripe simply because of the people. Putting a candidate at a lunch table with a handful of Stripes has been our best selling strategy to date. As long as that continues to be the case, we know that we're building the right team.