TL;DR - It's an involved process that ensures both parties get exactly what they want. By the end you will know with 100% certainty whether or not this is the place for you.
The process started with a fairly standard phone screen with company info and questions about what I was hoping to get out of the position etc to see if it was a good match. Then there was a Google Hangouts live coding & questions interview with the VP of engineering and finally a full day of interviews onsite with various members of the team - some technical, some behavioural. The onsite included lunch in the office with the team, who was very easygoing and leagues less awkward than I would have expected (given I'm usually a shy person). By the end of the process, I had a solid grasp on the company culture and knew exactly what I was getting into and what my coworkers would be like.
The technical portions of the interview were very much no-BS. One of the interviewers did a paired programming question with me on the whiteboard. He was writing the code and helping along with bits of the API I had conceptual notions of but didn't know the syntax for and did an amazing job of assessing my knowledge of scheduling/threading/problem solving and not merely how well I remembered the Java API.