Uber || SDE-1 Interview Experience || On-campus
7794
Jun 19, 2023
Jun 20, 2023

Hi, I am an MTech grad from Tier-1 college. Recently I got on campus opportunity to give an interview for SDE -1 at Uber.

Below is my full detailed interview experience of Uber -1st dec 2022

After codesignal online assessment 10 People from IIT Madras were shortlisted out of which 6 were from my batch, i.e. from MTech CSE and remaining were from BTech. In IIT Madras slot 1.1 Uber was started at 4 AM. As part of hiring process there were in total 3 interview rounds, the initial round was technical round followed by low level system design then HR .

Round 1 (Technical Round)
I had a Microsoft interview so I gave an Uber interview at 5 AM on 1st December. The interviewer was a female so she made me comfortable initially, then she introduced herself. She was in Uber for the past 2 years and has done her masters from IIIT Hyderabad. She told me the plan for the next 45 minutes. The initial 5 minutes was reserved to know about me. Then next 20-25 minutes for the questions discussion and 10 minutes for the code, at last 5 minutes If I have any question for her.

The platform for the online assessment and interview was codesignal. The question for the round 1 was as follows -

You have n queues, each have some elements. You need to find the k elements from this n queues such that the sum is maximum.

Note that, queue can pop elements from the front only. Here also you can take any element if it is in the front of the queue only. Below input will give more clarity.

Input 1 -
N = 3, K = 3
1 100 5
50 3
51 1 2

Output - 152 by taking 2 elements from queue 1, 1 element from queue 2 and 0 elements from queue 3.

I told her the recursion approach, and she asked me to write the code of the recursion on the pen paper. Mainly she was trying to check if I am going in the right direction or not. She asked me what the parameters of the recursion call were. After that I told her that there exists an overlapping subproblem here so I can use dynamic programming. I told her how overlapping subproblems exist there. I told her my approach using DP. There was a loophole in that solution. She asked me to check my solution first and helped me to lead to the final solution. She asked me to code fast as because of network issues there was a glitch on the codesignal platform and we both were not able to access the IDE, I somehow was able to code my final solution and she tried it by some test cases and it was working correctly. Then she asked If I have any questions, I asked her about her 2 year experience at Uber and some follow up questions I asked. Overall she was so supporting and made me feel comfortable during the interview.

Tips/Suggestions -

  1. Uber usually asks questions from Dynamic Programming and Graph. If you are whole heartedly preparing for Uber try to have a good knowledge this topics.
  2. Try to come up with the optimal solution directly if possible. Do not waste your time with the naive approach.

Round 2 (System Design) - Results came out and 3-4 candidates were cleared in the first round. I got a call that you got selected for the next round. I had my 2nd round of Microsoft interview so I asked them to wait for 45-50 minutes. When I reached the spot the interviewer was waiting for me outside and asked me to come to the panel room. He was a well experienced person and also made me comfortable. He introduces himself, he had joined Uber a couple of months ago, also he was an ex-employee of Meta and Microsoft. Again he had told me about the interview time division. The time duration and division was almost similar to the previous round. I introduced myself first, I told him about my master’s thesis project. He was very interested in it and told me that I am lucky that I am able to work on projects involving software+hardware. After that, he sent me a codesignal link. The question was to implement a text-editor using object oriented language. The default language set was Java but I was more comfortable in C++ so I asked him if it is mandatory to code in Java. He replied, no you can do any language so I changed to the C++ language. So the question was as follows -

You need to implement a text-editor which can have below 4 operations. The operations need to be performed in chronological order.

Append - It will append the current string.
Backspace - It will delete the last character of the editor.
Undo - It will remove the effect of the last operation performed.
Redo - It will perform the redo operation. The condition is you can only perform this operation if the last operation is Redo/Undo operations.

Initially I told him about 2 stack solutions but there was a loophole in the stack solution then with some hints I was able to come up with a solution of doubly linked lists. He asked me what the complexity of each operation was. I came up with an approach that was performing all operations in the O(1) time and with a space of count of append operations. He was very happy with the approach and asked me to code it up.

I have asked should I implement the Doubly linked list or can I use STL. He asked me to implement it. I implemented it and he asked me to test a few test cases that were working fine. At last he asked if I had any questions, I asked him if there was any way to optimize it, he said as far as you have implemented in the most optimal way. But you can set a cap to make undo or redo operations that may take less space , though the time complexity is the minimal in your approach only. Then I asked about his experience and what he found new in his past companies and in Uber. He explained it to me very briefly. I asked him for suggestions, he again said you are doing a very good master’s project. Also you can think in different directions that is actually good and your resume showcases that you have breadth knowledge. Again he asked, any other question I stopped at that time. Then finally he said we will meet you in the next round.

Though I got a call that I was selected for the next round, I was not able to make it to the final round. As I was busy with the nutanix interview, I asked to wait for 30-40 minutes. Just after 10-15 minutes they said I am eliminated as they had no vacancies left now(They took candidates from other IIT’s). Finally Uber has rolled out 0 offers from IIT Madras.

Tips -

  1. Interviewer is there to help you. Whatever you are thinking try to think loudly so that interviewer may correct you if needed.
  2. Whatever interviewer is saying listen it carefully and try to think in that direction because they are trying to give us hint indirectly.
  3. For second round try to practice this Low-level design questions.

It was a great experience for me at IIT as I atleast got a chance to give 2 rounds of uber interviews. I would like to suggest that the first round is basically to test your problem solving skills as she already said to me that it will be fine if you can just write a pseudo code. As far as I know, Uber usually asks questions from Dynamic Programming and Graph topics. The second round was to test your coding skills, actually how well you can write code. So please try to follow the rules of object oriented. All the best for your interview !!

If you haven't read my microsoft interview experience please check it out here-  https://leetcode.com/discuss/interview-experience/3649901/MICROSOFT-oror-Sde-1-interview-experience-oror-On-campus

If you have any insights, advice, or would like to connect, reach out to me on linkedin-  https://www.linkedin.com/in/yashasvi-mahajan-065886257/

Comments (7)