I applied through a recruiter. The process took 2 weeks. I interviewed at Uber (New York, NY) in Oct 2018
Interview
Initially you start with a phone screen for a coding question
This is a five-round interview loop that touches upon variety of areas:
1) Practical coding (spin up a website from scratch; spin up a RESTful API server from scratch)
2) Algorithms (standard coding questions)
3) System design (design a highly scalable, distributed system on the whiteboard)
4) Bar raiser interview (this is basically a culture fit screening from a third-party team)
5) Hiring manager interview (one that potentially whom you will be reporting to)
Helpful resources are algorithm books (Cracking the Coding Interview) and coding websites like leetcode or haclerrank you might find out there. Also consult engineering blogs to get insights on how to properly design systems at large scale.
Make sure you have enough narratives to tackle situational questions. Typically these are the ones asking for handling disagreements, your daily process at work, etc. Make sure that you justify all your questions and describe your process thoroughly. Basically, thinking in terms of the interviewer's shoes is the key!
They let you bring the laptop onsite, and it is highly encouraged to do so. This is one of the "newer" companies that evaluates on your real skills rather than your ability to do things on the whiteboard.
I applied through college or university. I interviewed at Uber (New Delhi) in Oct 2018
Interview
Online Test + Interview. The online test was designed to take a measure of your skills and how they match with the skills required by the company. You can expect questions related to graphs as they are very handy in storing the data connecting cities by roads and also questions related to dynamic programming. These questions will not be very easy and will test your skills.
Interview questions [1]
Question 1
Coding questions related to graphs dynamic programming etc.
I applied through a recruiter. The process took 4 weeks. I interviewed at Uber (Seattle, WA)
Interview
I interviewed for an iOS engineer position. The whole process took about a month and a half. It could've gone faster, but I had some personal reason that caused the delay. I was contacted by a recruiter on LinkedIn. The whole process went pretty smoothly.
The phone screen was mainly solving a Leetcode question on HackerRank. I got an email the next day about passing the phone screen and scheduling the on-site.
The on-site interview is quite different from what I've experience. You need to bring your own laptop that has the dev tools you like. The first interview for me is an 1.5 hour time slot for me to build an iOS app with some requirements from the ground up. You can use any tools, libraries, package management system you like. I was in the room by myself for the most part unless I ran into any questions. After that, I met with a manager for behavioral interview during lunch. Then I met with the same interviewer from round 1 to do a deep dive on the app I wrote. After that I had a system design question. Then lastly I had a coding round, where I code on HackerRank and the code should be running and can run test cases.
Up until this point, everything went pretty smoothly and the people I met on-site are all super nice and friendly.
But after the on-site, the recruiter became quite unresponsive. She promised to get back to me by the end of the week, and didn't really gave me any information in a week and a half, not even a status update on why it's taking longer than expected. Once she told me I got the offer, she became super pushy. I told her I have other interviews that I want to get to, but she insisted that I gave her an answer in a week. I ended up having a counter offer and that bought me more time. I declined the Uber offer because the other offer is better. The recruiter was quite understanding about it in the end though.