Uber | Senior Software Engineer | Bangalore | March 2025

uber logo
uber
Senior Software EngineerBangalore5.5 years
April 1, 20253 reads

Summary

I interviewed for a Senior Software Engineer role at Uber in Bangalore and was rejected due to issues in the managerial and low-level design rounds. The process included an online assessment, two coding rounds, a managerial interview, high-level design, and low-level design.

Full Experience

I am currently working as a Senior Software Engineer in a fintech company with a total of 5.5 years of experience. Below is my interview experience with Uber.

Round 1: Online Assessment (OA) on Codility

This round was an online assessment conducted on Codility. I don't remember the exact questions, but they were related to arrays, hashmaps, and OOPS concepts.

Round 2: Pre-Screening

  • Coding Question

    Problem: Sort an array by comparing the squares of each number.

    Solution: I implemented a brute-force solution first and then optimized it using a two-pointer approach.

  • Follow-up Problem: Extend the solution to find the kth largest element.

    Discussion: We discussed code cleanup, modularity, and removing the auxiliary array for the second question.

Round 3: Coding

Problem:

Given an n-ary tree (each edge is a directed edge from parent to children) with each node as a character, find the length of the longest two paths from top to bottom such that no two consecutive characters are the same.

Follow-up:

Problem: The edges in the n-ary tree are now undirected, and the path can be in any direction. Find the longest path.

Solution:

I was able to solve the question, although it took some time due to the complexity of the n-ary tree. I used a DFS approach combined with sorting to find the top 2 longest valid children for each node. I returned the current character + the max child string during each recursion while keeping track of the global answer variable to compare with the longest path (including a second max length child, if it existed). The logic was similar to the "max path sum in a binary search tree" problem.

Round 4: Managerial Interview

I was asked to draw and explain the components of my previous project and justify any non-functional requirements with my design.

Below questions were asked to judge my past expeirnece.

  • Discussed cross-team collaboration. Provide examples of working with different teams on various aspects of the project.
  • Explain a situation where I had a conflict with a colleague and how I resolved it.
  • Share an example where I took on a leadership role to ensure a project met deadlines and objectives. How did you organize the work, and what challenges did you overcome?
  • Share an example of an unrelated project I took over to ensure it met standards and deadlines. How did you achieve that, how did you track success etc.

Round 5: High-Level Design (HLD)

Problem: Design a system to notify users if a stock price changes by x% compared to its last closing price. The stock exchange is providing the following information:

  • Stock name
  • Current price
  • Previous closing price

Round 6: Low-Level Design (LLD)

Problem: Write code to create a publisher-consumer model where multiple producers publish messages to a queue, and multiple consumers can consume messages from the queue. System can have multiple such queues.

Solution: I created all required entities and had PublisherQueueSubscription and ConsumerQueueSubscription stored as a HashMap/List in a subscription repository. My design followed a synchronous approach where the message was deleted from the queue once all consumers received it by getting he front message. I also proposed an asynchronous solution, where each consumer would have its own local queue to poll messages (similar to how Amazon SQS/SNS works).

Verdict: Rejected

Reason:

  • Managerial Round: I was told that I could not provide more complex answers.
  • LLD Round: I overcomplicated my solution and was not able to write running code at the end due to some syntax issues.

The recruiter encouraged me to apply again in a few months.

Interview Questions (11)

Q1
Sort Array by Squares
Data Structures & Algorithms

Problem: Sort an array by comparing the squares of each number.

Q2
Find Kth Largest Element After Squaring and Sorting
Data Structures & Algorithms

Problem: Extend the solution to find the kth largest element. Discussion: We discussed code cleanup, modularity, and removing the auxiliary array for the second question.

Q3
Longest Path in Directed N-ary Tree with Non-Consecutive Different Chars
Data Structures & Algorithms

Given an n-ary tree (each edge is a directed edge from parent to children) with each node as a character, find the length of the longest two paths from top to bottom such that no two consecutive characters are the same.

Q4
Longest Path in Undirected N-ary Tree
Data Structures & Algorithms

Problem: The edges in the n-ary tree are now undirected, and the path can be in any direction. Find the longest path.

Q5
Explain Previous Project Design and NFRs
Behavioral

I was asked to draw and explain the components of my previous project and justify any non-functional requirements with my design.

Q6
Cross-Team Collaboration Experience
Behavioral

Discussed cross-team collaboration. Provide examples of working with different teams on various aspects of the project.

Q7
Conflict Resolution with Colleague
Behavioral

Explain a situation where I had a conflict with a colleague and how I resolved it.

Q8
Leadership in Project Delivery
Behavioral

Share an example where I took on a leadership role to ensure a project met deadlines and objectives. How did you organize the work, and what challenges did you overcome?

Q9
Taking Over an Unrelated Project
Behavioral

Share an example of an unrelated project I took over to ensure it met standards and deadlines. How did you achieve that, how did you track success etc.

Q10
Design Stock Price Change Notification System
System Design

Problem: Design a system to notify users if a stock price changes by x% compared to its last closing price. The stock exchange is providing the following information:

  • Stock name
  • Current price
  • Previous closing price
Q11
Design Publisher-Consumer Model with Multiple Queues
System Design

Problem: Write code to create a publisher-consumer model where multiple producers publish messages to a queue, and multiple consumers can consume messages from the queue. System can have multiple such queues.

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!