The interview process is lengthy, but in depth. There is an initial phone screen, a technical challenge, a technical interview and a day of onsite interviews.
The first bit of the process is standard stuff and I don't feel like I can contribute anything that hasn't already been added in reviews so far. I will focus primarily on the onsite.
The day starts out with a brief tour and an introduction to a space with your recruiter. This was a great experience. The space is really cool and made me a little envious of those working in the office (I applied for a remote position).
All of your onsite interviews are with two other Braintree engineers. I really enjoyed this experience. We got into great conversations and went multiple directions in many of the sessions and I like the way that worked in practice.
The first session of the day is billed as a technical interview. You discuss previous projects in depth and different development practices such as testing. This was my favorite interview of the day (yes, even over lunch!). It was great to see that we were all clearly on the same page as far as how much we valued the different topics. Prepare for this by reviewing everything on your resume and being prepared to talk about the problems you enjoyed solving and the features you enjoyed implementing.
The second session is actually just lunch. This is their cultural aspect of the day. I'm sure your conversation and the things you say are being evaluated consistently throughout the day but this is mostly just hanging out with the team, getting food, keeping up conversation and talking about your interests. The food was great. My hosts really talked up how awesome Chicago's food scene was and I was not disappointed!
The third session is the one I was the most fearful of. It was a whiteboarding session. This is your typical system design interview. It was practical and we covered a lot of topics. For me, this was the most uncomfortable interview simply because I'd never actually had a whiteboarding interview before. It was a good learning experience and the engineers there aren't interested in watching you struggle. You get a sense that they do want you to succeed and this isn't designed to trip you up. So if that's a concern you have, don't worry about that. Practice for this portion by reviewing system design interviews and just make sure you're comfortable about talking about potential issues that come with building and scaling a system. Again, they aren't trick questions. It's just a new interview/experience for some.
The fourth session is the one that I wasn't super concerned about but I didn't fair well in. This is a pairing session. You extend the code you submitted in your challenge after your initial phone screen. We completed the addition which was nice. Unfortunately, I suffer from migraines which are made worse by a lot of artificial light. Our pairing room was in a room exposed to zero natural light and just strong overhead fluorescent lighting. For me this meant that the migraine I was trying to put off came in at full force about midway through the pairing. This impacts my ability to focus and I started making simple mistakes like misreading error line numbers or file names output while running my specs. At the end my interviewers wanted to dive deeper into design decisions and impacts of those decisions. At that point it was all I could do to answer shortly and my best to concentrate on their questions. Because of this, my answers were short, low energy and I didn't elaborate like I would have normally. Recognizing this in the cab from the office to the airport was a bummer, especially as the biggest pairing advocate in my current company.
At the end of the day I had a brief sit down with 2 of the managers for the teams which were looking for an engineer. There was more of the same in this interview. They were very willing to talk and answer questions but because of the pain I was in, I didn't get to ask everything that I wanted to. I started to feel slightly better because we ended up back in the same more dimly lit room the other sessions were in but without the painkillers I would normally have on hand at home, I wasn't going to recover to ask the specifics of each time that I would have liked to.
Overall, I truly enjoyed the process. It was long, in depth and at the end of the day a bit tiring, but it was all in the pursuit of finding quality engineers that jive with the company. I'm disappointed in my results but I appreciate that I got feedback for each interview. The downside is that the concerns I had about flunking the pairing portion due to the symptoms of that migraine are easily recognizable in the feedback I was provided.
Remember to bring Excedrin when traveling if you're prone to frequent migraines :) Give it your best and if everyone is in sync, congrats. If not, it happens. It's not always a great mutual fit. Learn from it for the next one and good luck!