Uber | SDE | SF | March 2020 | [Reject]
Anonymous User
1412

Status: New grad, MS CS
Position: SDE at Uber Movements team(New Grad was closed).
Location: SF, Cal. (Virtual Interview)
Date: March 10, 2020.

Phone Interview: Flood Fill

Onsite: Virtual Interview using Zoom*
Round1: Coding Round: taken by a senior engineer: 1 hr

  • Given a list of Meetings and list of rooms. Allocate meetings to rooms.
  • List of meetings: [{meeting:1, start_time: 5, end_time: 8, attendees: 6},{meeting:2, start_time: 6, end_time: 11, attendees: 9}]
  • List of rooms: [{room: 1, capacity: 6}, {room: 2, capacity: 8}]
  • Interviewer mentioned complexity wont be important, but need production ready code. I wrote straight forward O(n^2) complexity code, where i consider each meeting and loop through rooms list.
  • Sorted the meetings by start time. When considered a room, i added that room to a min priority queue to later free up rooms if time passed.

Round 2: Architectural round: taken by senior engineer: 1 hr

  • Design Notification service: got feedback as solution seems good. Said that use of queues to decouple services was good.

Round 3: Behavioural: taken by 2 Hiring Managers: 45 min

  • Explain in detailed about last project.
  • tell me about a conflict with senior developers ? How did you solve it ?
  • tell me about a challenge you faced ?
  • tell me about a time with deadline to submit ?

Round 4: Bar Raiser: taken by senior engineer from different team, with one engineer shadowing: 45 min

  • questions like conflicts, challenges, initiatives taken. Similar to Manager round, but with more pressure and digging deeper.
  • All questions where behavioural and seemed like the interviewer was not satisified about answers on conflict resolution.
  • select a project and explain in details ? Why did you do that project intially ?

Round 5: Algorithms: taken by senior engineer: 1 hr

  • Max points on a line
  • I knew the idea of slope, but i forgot the case of y intercept, where 2 lines can have same slope but different intercept if they are parallel. Use: y = mx + c
  • Solution is to find slope m and y intercept c of each 2 points and add that to a Map<String, Set<Points>>, where key is m_c. Since slope will be same for 2 parallel lines, we need to find c as well to be unique.
  • Couldnt figure edge case like: when slope is infinity ((y2-y1)/(x2-x1)), c = 0.
  • when slope is 0, c = y.
Comments (3)