I was contacted by their recruiter and we scheduled a phone call. After the call they sent me a take home project that took about 3 hours and was interesting as it didn't have one right solution but actually allowed multiple ways to solve the problem.
After that, they scheduled an onsite.
It was
- 1 hour to go over the coding exercise and talk Android in general
- 1 hour general data types and algorithms
- 1 hour systems design
- 1 hour with the manager of the mobile teams
I did fairly well in all of them, system design probably was the weakest.
After a week I got a call from their recruiter telling me that they don't want to move forward with the reason that I'm not an expert in two specific libraries and the team is looking for someone to teach them those. This requirement was never mentioned to me during the process nor did they ask questions around it so it seems they either made up the reason to decline or they made up the requirements in retrospect.
So overall the process was fine but I would have been nice to know in advance they were looking for something very specific.