Level: Senior-Level
Round: Onsite · Type: Multiple Types · Difficulty: 7/10 · Duration: 240 min · Interviewer: Unfriendly
Topics: Data Structures, Algorithms, System Design, Behavioral Questions
Location: Toronto, ON, CA
Interview date: 2025-01-31
Got offer: False
I interviewed with Lyft in early January 2025 for the Rider team in Toronto. The onsite interview consisted of a coding round, two system design rounds, and a behavioral round.
Round 1: Coding
The coding question was LeetCode 981. I was asked to implement the Time Based Key-Value Store problem. I needed to explain the time and space complexity tradeoffs between using a TreeMap and binary search. I was required to implement the solution with command-line input/output and manually test it. The input/output format was as follows:
` input = """ PUT key1 5 PUT key2 6 GET key1 GET key1 1 GET key2 2 PUT key1 7 GET key1 1 GET key1 2 GET key1 3 GET key4 GET key1 4
output = """ PUT(#1) key1 = 5 PUT(#2) key2 = 6 GET key1 = 5 GET key1(#1) = 5 GET key2(#2) = 6 PUT(#3) key1 = 7 GET key1(#1) = 5 GET key1(#2) = 5 GET key1(#3) = 7 GET key4 = <NULL> GET key1(#4) = 7 `
Round 2: System Design
This round involved designing a web crawler. These are commonly asked questions in interviews.
I was also given a coding question:
Given a list of overlapping job schedules, find the minimal number of workers that can process them. I was told to create a worker if a worker is available, and worker IDs start with 0. If there are multiple workers available, use the worker with the smallest index. It was assumed that no two jobs have the same start time. The output should be the job and its worker ID, sorted by job ID. The interviewer provided two test cases, stating that if they passed, the algorithm was essentially correct.
I was asked to share my screen and walk through the code in the last 15 minutes. I had to ensure screen sharing permissions were set up beforehand because restarting the application would be necessary otherwise.
Round 3: System Design
This round involved designing a chat system with three use cases:
This question mainly assesses whether you consider using web sockets for real-time communication. These are commonly asked questions in interviews.
Round 4: Behavioral
The interviewer asked many behavioral questions. I only remember one: sharing an experience where I collaborated with someone difficult.
LeetCode similar: LeetCode 981