Started with a recruiter, who gave a great deal of useful detail about what to expect. Initial "phone screen" was on-site, which I think helped me to do my best. Warm-up questions about previous work and Android particulars, then two not-terribly-difficult coding challenges. On-site full-day interview was six 45-minute sessions, including one for lunch and one for an interviewing trainee (coding-focused), otherwise two primarily focused on coding (much like the phone screen), one on a series of behavioral questions (classic stuff like, "What's something valuable you once learned from a supervisor?"--lots of dusting off old memories), and one on design. The design interview seemed frustratingly aimless, and while I felt I was able to give good answers, this was the one interview where I got negative feedback, too vague to make sense of, making me suspect poorly-communicated expectations. Otherwise, the whole experience was quite positive.