The recruiter screen was followed by a hiring manager round, which felt more like a mix of product sense and execution—mostly a mix of OOP algorithms in Python or Java and some high-level system design. The onsite consisted of five back-to-back rounds covering data structures, database management (heavy on SQL and data lifecycles), deep system design, and behavioral questions. - Data structures and coding rounds focused on things like linked lists and tree traversals.- The system design round was the real test, where I had to walk through building a scalable real-time gaming leaderboard, discussing tradeoffs in architecture, APIs, and data flow.- The behavioral part focused heavily on ownership of my code and handling feedback.When you prepare, make sure you can go a level deeper on database management and object-oriented patterns instead of just grinding LeetCode, I'd say. I did grind LeetCode though, but ensure you understand the depth behind everything you solve. I also did a few mocks with an Uber SWE on Prepfully, specifically for the system design and database rounds, and that honestly helped me catch some blind spots in my architecture knowledge and practice explaining my tradeoffs clearly. I'd say get a mock or two from anywhere if you can—it helped me a lot!
The following metrics were computed from 121 interview experiences for the Uber Software Engineer role in San Francisco, California.
Uber's interview process for their Software Engineer roles in San Francisco, California is fairly selective, failing a large portion of engineers who go through it.
Candidates reported having very good feelings for Uber's Software Engineer interview process in San Francisco, California.