As most people have said, their interview and hiring process is very thorough. The whole process took almost 2 months because there were quite a few steps to go through.
Everyone I spoke to was very friendly, energetic and very willing to share their experiences working at the company. No one had a bad thing to say about working there which was very encouraging. Communication throughout the whole process was very good.
The whole process was:
1.) 30 minute introduction phone call with a hiring manager. Spoke about the business, what they do, their culture and their ideals. We also spoke a little bit about myself and my background.
2.) 1 hour introduction interview at their Ventura office. Spoke 1 on 1 with one of the senior engineers there. Similar to the phone call, except more detail. Spoke in depth about the technical side of the company, their stack and their processes. Also went into more detail about myself, my skills and my background.
3.) At home programming test. They emailed a document with a scenario and I was told to provide a design and implementation. The implementation should be production quality. They encouraged asking questions about anything I was not clear on. There is no time limit, as they understand people may have an existing job and might not be able to carve out a few hours to complete this right away. This wasn't too difficult, and is a great introduction into the types of problems you might work on at the company.
4.) Remote review of the programming test. Once I completed and submitted my implementation I reviewed it with one of the senior engineers via GoToMeeting. We spoke about my implementation and why I chose to do things certain ways, and the tradeoffs of those choices.
5.) Remote whiteboard exercise with a different developer. This was a pretty standard whiteboarding exercise via GoToMeeting. The interviewer was very helpful and provided very quick hints and feedback. The first 30 minutes or so were talking about the company and culture which was great to ease the nervousness.
6.) Another remote whiteboard exercise with yet another developer. This was also a very standard whiteboard exercise via GoToMeeting. Again, this developer was very helpful and was very willing to provide hints and feedback.
7.) In person interview at their Ventura office. I met with 3 more developers for 1 hour each. Each was a different whiteboard exercise. 2 of the developers asked some general development strategy and design questions after the whiteboard exercises.
Again, the whole process is definitely a marathon, but they are ensuring that you not only know your stuff but that there is an equal cultural fit on both sides.