Uber | Senior Software Engineer (SSE) Interview experience
Summary
I recently interviewed for a Senior Software Engineer position at Uber, going through three rounds focused on Data Structures & Algorithms and Machine Coding. Despite the overall difficulty not being excessively high, I was ultimately rejected after the third round, which I suspect was due to my limited background in Object-Oriented Programming (OOPS) for the machine coding challenge.
Full Experience
I had the opportunity to interview for a Senior Software Engineer role at Uber, which involved three distinct rounds. I'm sharing my experience to give back to the LeetCode community that has been instrumental in my job search.
Round 1 (Data Structures & Algorithms)
This round featured a Trie-based problem. The core task was to find all words that share a specific prefix. However, the question included a particular 'catch' that made it more complex than a standard prefix-matching problem using a Trie.
Round 2 (Data Structures & Algorithms)
The second round focused on a graph-based problem centered around currency conversion. The interviewer was keen on exploring various graph algorithms and extended the problem to touch upon different BFS-based weighted graph questions, including Dijkstra's algorithm. The goal seemed to be to cover a broad spectrum of fundamental graph algorithms through this single problem.
Round 3 (Data Structures & Algorithms + Machine Coding)
The final round was a combination of DSA and a machine coding challenge. I was tasked with building an event assignment module. The scenario was to imagine an office environment where rooms needed to be booked, and my task was to assign a suitable room to an incoming calendar event.
Unfortunately, I received a rejection after this round. While I didn't find the difficulty too high, and I spent about two weeks to prepare specifically for the DSA aspects of these rounds, I believe I struggled with the machine coding part, likely due to my weaker background in Object-Oriented Programming principles.
Interview Questions (3)
The problem involved a Trie data structure. The primary goal was to find all words in a given set that shared a specific prefix. The interviewer added a particular 'catch' or additional constraint to the problem, making it more challenging than a straightforward prefix search.
This was a graph-based problem where the main task was to handle currency conversions. The interviewer then extended the problem significantly to cover various basic graph algorithms. The discussion involved exploring concepts related to Breadth-First Search (BFS) for weighted graphs and touched upon Dijkstra's algorithm, with the aim of assessing my understanding of fundamental graph traversal and shortest path algorithms.
For this machine coding challenge, I was asked to build an event assignment module. The scenario provided was similar to a room booking system within an office. The core functionality required was to take an incoming calendar event and assign an appropriate, available room to it based on certain criteria (implicitly, time, availability, etc.).
Preparation Tips
I dedicated approximately two weeks to prepare specifically for the Data Structures & Algorithms components that would be covered in these interview rounds.