Applied online, the application had a non-trivial math/programming question that took me at least an hour. I had one phone screen, was given a coding assignment that took me a weekend (I implemented two approaches, and wrote about both in my documentation although I only submitted the second), then had onsites.
I had about 5 technical interviews during the day onsite. They were all pretty easy except one subtle algorithm problem where I came up with a O(n lgk) solution and the optimal was a tricky O(n). I did not see it until it was thoroughly explained to me, and I believe this is one reason I didn't get an offer.
The major reason I believe I didn't get an offer was because they seemed to want someone with more experience, even though they read my resume. Most of the employees seem to have PhDs or be as old, but I have just graduated from undergrad (but I've been studying graduate level ML material for months).
Most of the people that interviewed me (quite a few) were very nice and competent. One thing that annoyed me was that they let me know the day after onsites that I didn't get an offer by the job application system, as if I had never advanced passed the application stage, and so I got no feedback.
Process was very fast. I just wished they hadn't wasted all of our time if they were looking for someone with more experience.