While I'd love to tell the exact questions I was asked, I am sure I've signed an NDA, and also every interview is different. I'll try to be as informative as possible though.
Was referred by a buddy to his team, and the initial process took a little longer (about two weeks) partly due to the recruiter not reaching out immediately and that I put things off since I was busy during that period of time.
The phone interview was on filling in code for an existing interface in the mobile framework, which is a not the easiest thing to do since we rely heavily on the editor to auto complete most of the time. The interviewwe was very nice and didn't dwell too much on syntax. The interviewer went into a deeper discussion about the code I just wrote, including why I think the framework was implemented the way it was, and various follow up questions about this particularly feature. The interviewer was quite helpful and offered more detailed explanations of the answers he was looking for throughout the interview.
A day later the recruiter called with positive feedback and wanted to to move to onsite. I was given options of completing a coding challenge at home or onsite (an easier version of the take home I assume). I chose the take home for obvious reasons, but told him that I was going be very busy over the next few days. I eventually around to it and spent about 4-5 hours on it before submitting, after which I was knocking my head on the wall after realizing I had bugs and what not. Also I was unsure of how polished it was suppose to be, and tried to adhere to the 4 hour guideline, which we all know is not a lot of time to do anything. Two days later the recruiter called back to move onto the onsite. The feedback was that overall I did well on the coding challenge, with some problems (e.g. not demonstrating understanding of MVC, bugs, etc), but those problems will be addressed once I go in person.
Interviewees are given $200 in Uber credits to get to and from the interview, which I didn't use as it wasn't enough giving the limitations. Once there, I was put into a room (which every interview complained to be very cold) for 5 one-hour interviews. Compared to other interviews I've done in the past, I felt that the Uber interview was the most effective at gauging the domain knowledge as well as programming skills of a candidate , as opposed to most other places where the questions asked are not relevant to the domain, and in the case of places like Google, completely not related to one's expertise. During the interviews, I was asked to:
1) fix bugs and add to the project I submitted for the coding challenge, and defend my implementation with a bunch of follow up questions related to optimization
2) answer a ton of questions on the mobile framework that tested for both breadth and depth of knowledge (not sure how I came up with some of those answers)
3) code algorithm involving implementation and use of two data structures (was unfamiliar with the second one and had to figure it out on the spot)
4) OOP design question (hardest one for me by far as the interviewer wanted a completely modularized design)
5) design discussion (very interesting as the interview was a debate and I wasn't sure what the interviewer was looking for)
One day later, the recruiter called to make an offer.
I want to mention that the Uber recruiter was very professional and moved very fast (This is not true in many case elsewhere). Useful feedback was also given that allowed me to better prepare for the next stage. I was very satisfied working with him and at no point in time felt I like I was left hanging.