My Uber SDE-1 Interview Experience
Cracking an interview at Uber is a dream for many software developers. I recently had the opportunity to participate in the Uber SDE-1 placement. Although I didn't make it to the final round, the experience taught me a lot about where I stood, how Uber evaluates candidates and what to improve for the future. Here's my complete Uber interview experience with interview questions.
Application Journey
I applied for Uber through uber carrer.
Even though I couldn't clear all rounds, I consider this interview a valuable experience to assess my strengths and weaknesses. It showed me exactly what I needed to improve for future interviews.
Round 1 : Online Coding Round (Easy)
- Duration: 90 Minutes
- Platform: Online Coding Platform
- Format: 12 Questions -> 10 MCQs + 2 Coding Problems
This was a moderate-level test. With a decent command of Linux, DSA and basic programming, you can comfortably crack it.
Coding Problems:
1. Longest Common Subsequence
- Difficulty: Moderate
Given two strings, find the length of their longest subsequence that appears in both strings (not necessarily contiguous).
Input: s1 = "abcde", s2 = "ace"
Output: 3
Explanation: LCS is "ace"
My Approach:
-
Recognized it as a Dynamic Programming problem.
-
Created a 2D DP array (dp[i][j]) to store intermediate results.
-
The answer was found at the bottom-right cell of the DP matrix.
2. Rearrange Linked List
- Difficulty: Moderate
Reorder a singly linked list such that all nodes from the second half are reversed and merged alternately with nodes from the first half.
Input: 1 -> 2 -> 3 -> 4 -> 5
Output: 1 -> 5 -> 2 -> 4 -> 3
Concepts: Linked List Manipulation, Reversal, Two-Pointer
My Approach:
-
Find the middle of the linked list.
-
Reverse the second half.
-
Merge both halves alternately.
Round 2 : Technical Round (Medium)
- Duration: 60 Minutes
- Format: 2 Problems + Conceptual Questions
This round tested both data structure understanding and database knowledge.
Coding Problems:
1. Deletion in Doubly Linked List
- Difficulty: Easy
Delete a given node from a doubly linked list while maintaining proper link connections.
My Approach:
-
Update the next of the previous node and the prev of the next node to skip the target node.
-
Handle edge cases for head or tail deletion.
Interviewer wants to understood my knowledge on node connections and pointer adjustments. Interviewer also discussed self-balancing tree concepts related to efficient data management.
2. SQL Question
Problem:
Write a query to find the student with the second-highest marks.
My Approach:
- Used a nested query to exclude the maximum and then find the next maximum.
SELECT MAX(marks)
FROM students
WHERE marks < (SELECT MAX(marks) FROM students);
Round 3 : System Design
- Duration: 60 Minutes
1. System Design : Online Food Delivery System (Moderate)
Design a scalable food delivery platform like Uber Eats or DoorDash that supports user interaction, order management, delivery tracking and payments.
Key Considerations:
-
Users: Customers, Restaurants and Delivery Partners
-
Features: Search restaurants, place orders, real-time delivery tracking and secure payments
-
API flow and user interface considerations
-
Real-time updates for tracking
Database Design:
- Tables for Users, Orders, Restaurants, Menus and Deliveries
Scalability:
- Use caching, load balancers and a microservices-based architecture
