There were 4 rounds. Each of them was an elimination round.
Round 1(Online test on Hackerrank platform – 90 mins):
An easy Tree-based question. (straightforward – 100 marks)
(Easy – 100 marks)
A Question based on GCD with the sieve of Eratosthenes. (Moderate – 100 marks)
The cutoff needed to clear this round was 300.
Further rounds held at the Uber Hyderabad office.
Round 2(30-40 mins):
The Interviewer asked some questions related to networking and OS.
Discussion on Thrashing
TCP Vs. UDP
How the OS handles Page Faults?
Explain the layers of the OSI model with their brief explanation.
The above questions were asked in a rapid-fire style, so I didn’t remember all of them. The Interviewer was just checking my basic understanding of OS and networking.
After this, the Interviewer switched to the Coding part and asked two questions.
Given a number n find the number of valid parentheses expressions of length n. (Interviewer already mentioned to not provide the solution with Catalan number).
Round 3(Problem-solving 45-60 mins):
In this round, I’d given only one question to solve. He was only interested in the approach and didn’t ask to code.
Given an array of integers arr = [5, 6, 1]. When we construct a BST with this input in the same order, we will have “5” as root, “6” as the right child, and “1” as a left child. Now if our input is changed to [5,1,6], our BST structure will still be identical.So given an array of integers, how to find the number of different permutations of the input array that results in the identical BST as the BST formed on the original array order?
The Interviewer was quite friendly and provided some hints, which helped me to approach the problem in the best way. I believe this was the toughest round.
After he was satisfied with my solution, he asked if I have any questions for him. I asked him why Uber doesn’t use OTP verification like Ola to verify rider credentials. And then we had some discussion on it.
Round 4(HR + System design + Project 80-90 mins):
The Interviewer asked me to propose a solution for BookMyShow’s concurrency management in the seat booking procedure. I came up with some solutions, and he kept pointing out flaws in them. In the end, he finally agreed with my approach.
Then he asked me to brief him about my projects. He was interested in my mini project and asked some questions related to it.
Some more discussion on
What are design patterns and why we use them? Explain any two of them.
Discussion on database normalization.
Which is better for distributed systems(normalization or denormalization)?
Let say you are the leader of your project team. There is a conflict among your teammates in choosing a design pattern for a particular task(All are proposing a different design pattern). How would you resolve this situation?
What do you do when you can’t find the solution to a problem (In the context of the project)?
He ended the interview by asking if I have some questions for him. I asked him about his responsibilities and how he feels in the company.
Some Interview Tips that might help.
When you stumble with a new question in interviews, don’t get nervous. Instead, try to deal with it constructively. Just share whatever approach (even if it’s incomplete) you have in mind with the Interviewer, he would surely help you to think in the right direction.
Before solving any question, clear all your doubts regarding its explanation with the interviewer. You could simply ask the interviewer politely to repeat the question.
Prepare some questions beforehand, that you could ask the interviewer at the end of the interview.
All the Best !!