Panda Guru LogoPanda
Guru

Uber | SDE 2 | Bangalore | July 2024 [Offer]

Online Assessment

Questions: 3 questions. All LeetCode Easy to Medium.

Performance: Solved all of them with all test cases.

Candidate's Approach

No approach provided.

Interviewer's Feedback

No feedback provided.


Technical Phone Screen

Questions: Given a size N array, for every K sized rolling window in the array, find the minimum absolute difference between any two elements in the K sized window.

Performance: Implemented a working solution with time complexity O(NKlogK), however the expectation was to do better and provide a solution with time complexity O(NlogK). Idea behind the optimal solution is to do a one-time construction of K sized sorted set of the first window and a K - 1 sized sorted set of the difference between the sorted elements of the first window in time complexity O(KlogK). Iteration through the array (removal of the first window element, addition of the next element, and computation of the minimum absolute diff of the window) can be performed in O(logK) each, leading to an overall complexity of O(NlogK + KlogK) = O(NlogK).

Candidate's Approach

The candidate implemented a solution with time complexity O(NKlogK) but recognized the need for an optimal solution of O(NlogK). They discussed the idea of constructing sorted sets for the first window and iterating through the array efficiently.

Interviewer's Feedback

The candidate did not implement or clearly discuss the optimal solution, which led to uncertainty about receiving an onsite interview call.


Onsite DSA

Questions:

  1. Construct an N sized array consisting of elements from 0 to N - 1 given K subsequences of that array. It can be assumed that at least one valid answer always exists. Follow-up: In case of multiple valid solutions, return the one that corresponds to the "lowest" value. (i.e. [0, 1, 2, 3] is lower than [0, 2, 1, 3])

Performance: Was able to solve both the question and follow-up with optimal time complexity. The first part can be solved by topological sort. The second part requires a minor modification in the topological sort DFS to ensure that the numbers are always traversed in descending order.

  1. String manipulation. Same as this post.

Performance: Implemented working solution. Trie seemed like overkill given the set of elements is limited, and the interviewer seemed to agree, so a simple hash-map based approach was enough.

Candidate's Approach

The candidate successfully solved the first question using topological sort and modified the DFS for the follow-up. For the string manipulation question, they opted for a hash-map approach instead of a Trie, which was deemed sufficient.

Interviewer's Feedback

No feedback provided.


LLD

Questions: Well defined logging library API with get and set methods. Data was expected to be handled in memory.

Performance: First implemented functionally complete solution with appropriate design patterns such as singleton and fluent. Then discussed and partially implemented improvements such as concurrency handling with locking and time complexity optimisation. Ran into some strange compilation issues while working on the optimisation and wasn’t able to fully complete all the requirements discussed, but no major gaps.

Candidate's Approach

The candidate implemented a complete solution using design patterns and discussed concurrency handling. They faced compilation issues during optimizations but managed to cover the main requirements.

Interviewer's Feedback

No feedback provided.


HLD

Questions: Don’t recall the exact problem statement, but it was well-defined. The interviewer copy-pasted a list of requirements rather than verbally discussing a high level problem statement.

Performance: Since the problem statement was well-defined, the interview was more straightforward than a usual HLD round.

Candidate's Approach

No approach provided.

Interviewer's Feedback

No feedback provided.


HM

Questions: Several behavioural questions, with cross questioning. Focused a lot on experience managing multiple stakeholders.

Performance: Not specified.

Candidate's Approach

No approach provided.

Interviewer's Feedback

No feedback provided.


Compensation

Compensation Details

Notes

The interviews were comprehensive and covered pretty much all standard topics. However, the hardest part of the process was getting the initial call from the recruiter. Had to use personal referrals and just be patient.

I regularly used LeetCode for DSA. Read up about design patterns and multithreading for the LLD interview. Watched videos from the System Design Interview YouTube channel and read a few case studies from Alex Xu's books for HLD. Existing Uber interview experiences were helpful in finetuning preparation before each round.