Interview Experience | SDE2 | Uber | Nov 2025
Summary
I interviewed for an SDE2 position at Uber in November 2025, navigating five rounds that included DSA, System Design, Machine Coding, HLD, and a Managerial round, ultimately resulting in a job offer.
Full Experience
Round 1: Screening (DSA + System Design)
DSA Topic: Dynamic Programming on Trees. Problem: A variation of the Optimal Binary Search Tree problem.
This was my toughest round. Time management was a challenge, leaving no room for the System Design portion. However, I managed to provide a working, memoized solution for the DSA problem.
Key Takeaway: Even if you feel a round didn't go perfectly, keep your head up—functional code often carries more weight than you think.
Round 2: DSA Round
Topic: DP on Game Theory. Problem: Variation of the Optimal Strategy for a Game (Minimax principle). Two players will play the game and they are allowed to pick only only the corner values at each turn.
This round went much smoother. I successfully implemented a memoization-based solution. The interviewer was looking for clear logic on how to maximize the player's value while assuming the opponent plays optimally.
Round 3: Machine Coding + LLD
Task: Implement core Linux File System commands (e.g., mkdir, cd, ls, pwd).
Duration: ~45 minutes.
Performance: I wrote the core logic and class structure in about 35 minutes. Spent the remaining 10 minutes debugging and fixing edge cases.
Focus: The interviewer looked for clean code, appropriate use of data structures (likely a N-ary Tree for the folder hierarchy), and error handling.
Round 4: High-Level Design (HLD)
Task: Design Splitwise.
Interviewer: Staff Software Engineer.
Key Discussions: My focus was on the Graph Edge Optimization problem (minimizing the number of transactions among a group), database schema design and handling concurrent expense entries, and scaling for large groups and global consistency.
Round 5: Managerial Round
Focus: Deep dive into professional history and behavioral traits.
Final Verdict: Selected! 🎉
All of the rounds were on Hackerrank. I got a link for practice prior to the interviews and used it extensively to get used to it.
Interview Questions (4)
Optimal Binary Search Tree Variation
A variation of the Optimal Binary Search Tree problem. Time management was a challenge, leaving no room for the System Design portion. However, I managed to provide a working, memoized solution for the DSA problem.
Optimal Strategy for a Game (Minimax) - Corner Picks
Variation of the Optimal Strategy for a Game (Minimax principle). Two players will play the game and they are allowed to pick only the corner values at each turn. I successfully implemented a memoization-based solution. The interviewer was looking for clear logic on how to maximize the player's value while assuming the opponent plays optimally.
Implement Linux File System Commands (mkdir, cd, ls, pwd)
Implement core Linux File System commands such as mkdir, cd, ls, and pwd. The interviewer looked for clean code, appropriate use of data structures (likely a N-ary Tree for the folder hierarchy), and error handling. I wrote the core logic and class structure in about 35 minutes and spent the remaining 10 minutes debugging and fixing edge cases.
Design Splitwise
Design Splitwise. Key Discussions focused on the Graph Edge Optimization problem (minimizing the number of transactions among a group), database schema design and handling concurrent expense entries, and scaling for large groups and global consistency.
Preparation Tips
I spent two days prior creating a "Work Document" detailing my past projects using the STAR method, which proved invaluable for the managerial round. Don't wing the managerial round; having a pre-written document of your achievements makes a massive difference in how confidently you speak.
For machine coding, getting to a "running state" quickly allowed me time to fix bugs and refactor, which interviewers appreciate.
I extensively used the Hackerrank practice link provided prior to the interviews to get used to the platform.