The basic structure was:
1. Quick 15 minute phone screen after sending in your resume.
2. Programming assignment to complete within a week.
3. Technical phone interview lasting 30-60 minutes.
4. Full day on-site interview
Both phone interviews were pretty standard. Go over your resume and some relatively simple technical questions.
The programming assignment was a good mix between being simple enough to complete without much difficulty, but complex enough that you could really differentiate yourself with a good solution.
The on-site interview was a great experience. They give you a tour of the office which was very impressive. Plus throughout the whole day there was plenty of time to ask questions about the company to regular developers. I left feeling like I knew enough about Braintree to confidently make a decision if I got an offer.
There were three distinct interview parts (In addition to lunch): A general technical interview where you both talk about some specific projects you've worked on in the past as well as do some coding problems on a whiteboard. A whiteboarding session where you map out the overall design of a web application(what would API look like, how to store data, how to scale, etc). And finally a pairing session where you make an update to your own code from the programming assignment.
I would describe the difficulty level as being thorough and challenging but not unnecessarily difficult. There were no trivia questions about syntax or specific technologies and no brainteaser questions. Every part of the interview felt like it was covering something that would be directly relevant to the job.
Overall it was an outstanding interview process. They were very responsive and respectful throughout the process and I think I would have been left with a positive opinion of Braintree regardless of the outcome.