2 phone calls prior to anything technical, 1 with recruiter another with hiring management, these calls are meant to learn about each other outside of technical skills; good to see they are doing it instead of just jumping right into some brain teasers like some other companies do.
Then 1 technical phone screen, it covered a fair amount knowledge that's relevant to the job, as well as a coding exercise via collabedit. The interviewer was kind enough to send me feedback directly afterward upon request, candid feedback is real here.
Then first onsite round, 2 technical interviewers and 2 management interviewers. I ended up stopped here due to my technical skills not meeting the need. The technical questions asked were fair given they are very frank about looking for experienced candidate, it's natural that some questions you just can't answer because you haven't deal with those problems before or haven't used a certain aspect of a language. It was pretty heavy on multi threading and cover a wide spectrum of Java programming skills.
In the end, the recruiter call me up and deliver the bummer new era in person rather than just an email, that was also nice.
Overall it was a very positive experience for me, I have less doubt about the company culture after the interview, they do care a big deal about it, which is reflected by their interview process. And their culture is obviously not for everyone.