While I'd love to tell the exact questions I was asked, I'm sure I've signed an NDA, and every interview is different. I'll try to be as informative as possible though.
I 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 because I put things off since I was busy during that period.
The phone interview involved filling in code for an existing interface in the mobile framework, which is not the easiest thing to do since we rely heavily on the editor for auto-completion. The interviewer was very nice and didn't dwell too much on syntax. They went into a deeper discussion about the code I wrote, including why I thought the framework was implemented the way it was, and various follow-up questions about this particular feature. The interviewer was quite helpful and offered more detailed explanations of the answers they were looking for throughout the interview.
A day later, the recruiter called with positive feedback and wanted to move to an onsite interview. 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 mentioned I would be very busy over the next few days. I eventually got around to it and spent about 4-5 hours on it before submitting, after which I was kicking myself for realizing I had bugs and whatnot. Also, I was unsure of how polished it was supposed 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 would be addressed once I went 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, given the limitations. Once there, I was put into a room (which every interviewee complained was very cold) for five 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 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 unrelated to one's expertise. During the interviews, I was asked to:
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 cases 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 felt I was left hanging.
Design a casino game.
The following metrics were computed from 373 interview experiences for the Uber Software Engineer role in United States.
Uber's interview process for their Software Engineer roles in the United States is very selective, failing most engineers who go through it.
Candidates reported having good feelings for Uber's Software Engineer interview process in United States.