Uber Front End Software Engineer II Interview

uber logo
uber
Front End Software Engineer IIOngoing
November 3, 202528 reads

Summary

I interviewed for a Front End Software Engineer II role at Uber, completing a phone round and four onsite rounds covering DSA, System Design, Behavioral, and Front End specialization. Despite feeling I met minimum bars for most rounds, especially after struggling with a graph problem in Javascript, I'm quite pessimistic about the final outcome.

Full Experience

Phone Round

My phone round involved a straightforward problem: finding the k-th smallest element in an array. I approached this by using a limited size heap, which felt like the most appropriate solution.

On Site Rounds

1. Data Structures & Algorithms (DSA)

This round featured a problem similar to Number of Islands II. Initially, I mistook it for Number of Islands I, but I quickly realized that the matrix would change and be queried multiple times, which pointed towards the 'II' version. Thankfully, I was familiar with the proper solution using Union Find and managed to implement it correctly just in the nick of time. I'm hoping this was a Strong Hire.

2. System Design

The system design problem was to design Google Calendar. I had prepared for this, but it felt like some of my planned points weren't entirely relevant, so the interviewer took more control, asking specific questions like "how to do A?" and "how to do B?". I was able to answer all their questions successfully, but I felt like I lost an opportunity to go above and beyond. Uber seems to have this interview style where you can either do well or extra well. I believe this was at least a Hire; the interviewer even mentioned they had "everything they needed," which I took as a positive sign.

3. Behavioral

This round is always hard to gauge. I believe I responded effectively to all questions based on my past work experiences. I have no reason to think it was anything less than a Hire.

4. Specialization - Front End

I consider this the most challenging round because it could be either a UI-building task or a LeetCode-style Javascript question. Despite having four years of React experience, I'm not accustomed to solving LeetCode problems in Javascript, which was a mistake in my preparation. I had prepared primarily for a UI question, but was surprised by a Javascript question involving graphs and async jobs. I struggled quite a bit, as I'm not used to implementing graph algorithms or using Sets in Javascript. The interviewer allowed me to use Google, but that definitely eats into precious time. Nevertheless, I managed to solve the problem, again, just in the nick of time, though I did have one minor loose end which I later corrected and emailed to the interviewer. Once more, the interviewer stated they had "everything they needed," leading me to believe I passed the minimum bar for a Hire.

Based on my performance (Strong Hire, Hire, Hire, Hire), I believe it should be sufficient, but you never truly know with Uber. I've noticed their evaluation process can extend further, with reviewers scrutinizing interviewers' feedback, which explains why some candidates get surprising rejections even after positive interviewer interactions.

Honestly, I'm quite pessimistic and anticipate a rejection. When you're not absolutely perfect, anything can hinder your evaluation. I fear the evaluations might be lower, like Lean Hire, Hire, Hire, Lean Hire, which might not be enough for an offer.

Interview Questions (4)

Q1
Find Kth Smallest Element in Array
Data Structures & Algorithms

Given an array, the task was to find the k-th smallest element. This is a common problem in data structures and algorithms.

Q2
Number of Islands II
Data Structures & AlgorithmsHard

The problem was Number of Islands II, where you're given an empty 2D binary grid and a list of operations. Each operation adds a land cell (1) to the grid. After each operation, you must return the number of islands. I initially confused it with the simpler Number of Islands I.

Q3
Design Google Calendar
System Design

The system design question involved designing a comprehensive system like Google Calendar. This included considerations for scheduling events, managing notifications, handling user synchronization, and ensuring scalability and reliability.

Q4
Javascript Graph Problem with Async Jobs
Data Structures & Algorithms

This was a Javascript-specific programming problem that involved working with graphs and managing asynchronous jobs. It required knowledge of graph traversal algorithms and handling async operations within a Javascript environment.

Preparation Tips

My preparation primarily focused on UI-building questions for the specialization round, as I have significant React experience. However, I was caught off guard by a Javascript question involving graphs and async jobs. In hindsight, practicing LeetCode-style problems specifically in Javascript is a critical area I should have focused on for frontend interviews.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!