Process is exactly like the guy above described. Kudos to that review because it helped me make it to the final round.
It started with a coding test in C++, you have 80 minutes to submit. Should be enough time. I worked at it pretty slow and carefully and still submitted with about 10 minutes left.
I passed the online coding test and they scheduled a phone interview. They told me to study data structures, algorithms and were very specific in their study instructions, which helped a lot (and screwed me later on, keep reading). The time came for the phone interview and they never called me! I had to call their receptionist and email the manager to find out what happened. About 45 minutes later (YIKES!), they apologized and it started. That right there should have tipped me off to how disorganized they are, but I was willing to let it slide and gave the benefit of the doubt. Phone interview was a lot of "whats wrong with this code" style questions. Sometimes you had to fill in the blanks, other times you could just answer without coding. Again, lots of O(n) questions, linked lists, OOP, data structures, trees. All of it in C++. It was a relaxed environment and the devs who interviewed were easygoing. I passed and was then set up for an in person technical interview.
The in person interview started with a resume review conversation, pretty typical stuff. They then had me whiteboard 2 questions. The first question was almost the same question as the sample Google interview on youtube (see Interview Questions form). The second question was about a gigantic file containing a huge number and sorting the number with limited RAM but unlimited hard drive space. Pretty laid back interview once again.
I passed and was told there would be a final interview and it would be behavioral questions and tour of the office, with a lunch at the end. I showed up, got a tour, met some nice people. Some key managers were not around so I ended up interviewing with the same guy I did the first in-person with. They also nabbed a random dev to the interview room. It was rather disorganized, and the manager admitted as such. The same guy from the previous technical/in-person asked me more resume questions. He then had me code classes on the whiteboard of a sample program related to one of my previous jobs from years ago. I was not expecting this because they specifically said it was a behavioral interview and I had already done 3 technical screens already. This really bugged me and I got through it but was internally very frustrated. I honestly think the guy was just killing time until the other managers were ready for me. The other managers then came in and asked me the typical "Name a time when you disagreed with a coworker" stuff. They asked some more HR type questions and that was it. We had lunch and I thought it went well.
I heard back a couple days later that I was not selected. When I asked for feedback, the hiring manager (the one who was only present for HR questions) said I should work on UML. I'm guessing he was referring to the out of the blue design question I got in the last "behavioral" interview, because none of the other tech screens had anything to do with UML. The reality was that the guy who asked the design question said explicitly to write a class in C++ code, not UML.
The second feedback was to get more C++ experience, I didn't understand this because I passed their 3 technical screens. How does someone with not enough C++ experience get through three of their technical screens? Why even schedule a final round behavioral interview if I didn't have enough C++ experience to begin with? *Shrug*
My advice is to follow these interview guides, but just be ready for anything with these guys. They are not organized so things will not go as planned.