I applied for the position in March/2024 via Linkedin. A few days later I received an email from the recruiter for a conversation. We talked a little about my experiences, the challenges they face, salary expectations, that sort of thing. She explained the following phases of the selection process to me, I participated in all of them.
1. Online test on Code Signal (algorithms and data structure, 4 questions, 70 minutes)
2. Onsite (literally in the office) with 4 steps: 1 specific code (backend in my case), 1 collaboration (using Uber's values as a reference), 1 algorithms (leetcode style), 1 system design.
They give little or no information about interview details. I had to ask a lot to get any information. They share some mock interview videos but it doesn't help much.
About the steps:
1. Online test: there are 4 leetcode style challenges. There is no time to solve all 4 in the time available. There are 2 easy, 1 medium and 1 difficult. I managed to solve the 2 easy ones, the medium one and partially the difficult one. The worst part is that the platform is very buggy, they record your screen all the time so the connection can drop and you waste a lot of time.
2. Onsite (a whole afternoon at the Uber office).
* Collaboration: these are situational questions whose answers must be connected to Uber's values. Tip: Take all the values, select stories from your career that relate and it should be enough. I had this interview with a manager and the experience was good overall.
* Specific (Backend): they didn't give me any information about this step before so I didn't know what to expect. It was a simpler Leetcode style problem. I don't really know what they were evaluating at this stage since there was another similar one later. I think the experience here was OK.
* System Design: they present a very generic system design problem and you must ask questions to clarify and offer solutions to the problem. In the middle of the solution, the interviewer asks questions about it. My experience was terrible. The interviewer introduced himself by proudly saying that he was the "bar raiser", when the person says that you already know what to expect. He was by far the most arrogant person who has ever interviewed me in my career. And like every arrogant person there are many things he doesn't know and won't admit. He said wrong information about databases, laughed at some of the answers I gave, and kept putting pressure on me to redo some of the answers. My desire at the end of this stage was to abandon the process, but I was so stunned that I didn't do it.
* Algorithms: they present a leetcode-style problem (middle level perhaps) and you must present the solution. The interviewer was good and I was able to solve the problem without difficulty.
I knew I wouldn't be approved because of that system design interview. A few days later the recruiter sent a generic message saying that I didn't pass without giving more details.