I have to say, this was probably one of the best interview processes I've gone through to date; they are very thorough, but casual, and never asked any invasive or uncomfortable questions (like "How much are you currently making?"), and led me through the entire process. As I was already employed, they were able to work around my schedule, and deadlines were soft.
The phone screen was standard fare, and the recruiter was incredibly easy to talk to. I found the "why shouldn't we hire you" question to be a little odd, but I'm sure they have their own reasons for asking this question as some sort of gauge of character.
I was then given an online HackerRank test (these are catching on... a good thing, in my opinion, as solutions can be derived in a manner closer to real life, even if you're supposed to take the test "blind."). Very focused on algorithms and data structures, which I wasn't too surprised by, but... well, more on this later.
Then I was given some "homework," a test project basically (read the other reviews... it's apparently the same for everyone). This is another thing I greatly applaud, as it's probably the single best way to gauge a candidates experience: What design patterns, if any, did they use? Which architectural paradigm? Is the code readable? Could it easily be modified if it had to be? These are some of the most important qualities to look for in a candidate, and a code sample is really the only way to glean this information. When I've interviewed candidates myself, I've always asked for code samples, but after this process, I think I'll be switching to small "homework" projects myself. Kudos to the engineering team for making this a part of the process!
The last phase was an on-site interview with a handful of the engineering team. What an awesome environment! I wish I could divulge more about this, but all I can say is that creativity is obviously nurtured at this company.
Which brings me to the only real pitfall in the process; the whiteboard (I always choke on these). This is unavoidable in tech interviews, and to some extent, I still believe necessary, though I think it tends to be a very poor way to judge the actual ability of the candidate; I see its best characteristic as being a very quick and dirty litmus test of whether the candidate can actually code vs copy/paste solutions found on StackOverflow.
I was surprised to find it was mostly more questions about data structures and algorithms; mostly things I hadn't touched since college, and never again in my actual career. It was a pretty awkward process, and I think it's a safe assumption I did rather poorly.
I was very curious as to why the interview process up to this point had been so heavy on data structures and algorithms, so I the following questions I had for them were mostly roundabout inquiries to find out what their architecture was like, and whether they were developing anything sophisticated from the ground up like machine learning (I noticed an OCR component in their flagship product), or perhaps some optimized database querying. However, these components were merely leveraging existing libraries... and moreover, some of them were no longer even relevant, and merely vestigial remnants of failed features.
So I left the final phase just feeling really confused. As such, my only bit of advice to the interviewers is that if the product isn't in need of some brand new compression scheme, original form of encryption, querying optimizations, or data mining/analysis, such heavy focus on algorithms and data structures may be a bit more tedious for both parties than it needs to be. More time spent delving into areas that are used on a regular basis, and that are integral to the longer-term maintainability of a product (design patterns, architectural paradigms, aptitude with frameworks actually used in the project) will likely turn up better candidates that can lend more value. Then again, I'm making a lot of assumptions about a product I only used for an hour or so; there may be more to it than meets the eye!
All that said, everyone involved was incredibly nice, easy to talk to, and obviously very knowledgeable about their particular fields. I feel a lot was learned! I hope the experience was mutually beneficial.