Uber | Software Engineer II (SE-2) | Bangalore | Interview Experience

uber logo
uber
Software Engineer II (SE-2)BangaloreOffer
October 25, 202528 reads

Summary

I successfully navigated through multiple technical and design rounds for a Software Engineer II role at Uber in Bangalore, ultimately receiving and accepting an offer.

Full Experience

A few months ago, I applied for a Software Engineer II position at Uber through a referral. My interview process began with a CodeSignal test where I successfully solved both coding questions.

Technical Screening

This round focused on Data Structures & Algorithms, specifically a dynamic programming question which I solved successfully.

Coding Round 1 (Algorithms & Data Structures)

I faced two coding questions in this round, with a strong emphasis on Time Complexity and Space Complexity. The problems were:

  1. Cheapest Flights Within K Stops
  2. Maximum Points You Can Obtain from Cards

Coding Round 2 (Depth in Specialization - Low-Level Design)

This round involved implementing file system APIs: mkdir, pwd, and cd. The mkdir and pwd functionalities were straightforward, but cd presented a challenge due to a wildcard * which needed to match '.', '..', or any child directory.

Design & Architecture (High-Level Design)

I was asked to design a backend system for an e-commerce website, specifically for the browsing experience and excluding the purchase process. The system needed to use popularity data to highlight top items. Additionally, I had to design an event processor for various product-related events ('Product added to Cart,' 'Product viewed,' etc.), discussing data storage and prioritizing consistency versus availability. I also had to elaborate on the data structure for product catalog storage.

Collaboration & Leadership

This round was scheduled but later canceled.

After completing these rounds, I received an offer from Uber and happily accepted it!

Interview Questions (5)

Q1
Minimum Appends for Subsequence
Data Structures & Algorithms

Given two strings, s and t, consisting only of lowercase English characters. Determine the minimum number of times s must be appended to itself for t to be a subsequence of the resulting string.

Example: s: boy t: oyb

Answer: 2, because "boyboy" contains "oyb" as a subsequence.

Q2
Cheapest Flights Within K Stops
Data Structures & Algorithms

Standard problem about finding the cheapest path between two nodes in a graph with a limit on the number of stops.

Q3
Maximum Points You Can Obtain from Cards
Data Structures & Algorithms

Standard problem about maximizing points by picking cards from the ends of a row.

Q4
Implement File System APIs
Data Structures & AlgorithmsHard

Implement basic file system APIs:

  1. mkdir
  2. pwd
  3. cd

The cd command must support a wildcard * that can match any of '.', '..', or any child directory.

Q5
E-commerce Product Browsing System Design
System DesignHard

Design a backend system for an e-commerce website that displays merchandise. The system's scope is limited to the browsing experience, specifically excluding the purchase process. Popularity data should be used to select and highlight the top items. I was also asked to design an event processor that would handle vast amounts of events, such as 'Product added to Cart,' 'Product viewed,' 'Product wishlisted,' and 'Product purchased.' Key questions posed to me were: 'Where should this data be stored?' and 'What should be prioritized: consistency or availability?' The interviewer also asked for an example of data that would be stored in MongoDB.

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!