Level: Mid-Level
Round: Onsite · Type: Multiple Types · Difficulty: 6/10 · Duration: 180 min · Interviewer: Unfriendly
Topics: System Design, Data Structures, Behavioral
Location: San Francisco Bay Area
Interview date: 2025-12-01
Got offer: False
Question: Design a simplified browser history system.
Question: Find the missing number in a string.
Question: Standard behavioral questions.
Phone Screen:
I was asked to design a simplified browser history system that supports the following operations:
visit(url: string): Visit a new URL from the current page. When this happens, all forward history should be cleared.back(steps: int) -> string: Move backward in history by up to steps. Return the current page after moving back. If I can’t move steps times because I reach the beginning of history, I should stop at the first page.forward(steps: int) -> string: Move forward in history by up to steps. Return the current page after moving forward. If I can’t move steps times because I reach the end of history, I should stop at the last page.I had to implement a class BrowserHistory that initializes with a homepage and supports these methods.
Bonus questions included:
hasVisited to determine if a URL has been visited.Onsite:
For the coding portion, I had to find the missing number. Given a number n, representing the range [1 - n], and a string, I needed to find the missing number. For example, if n = 5 and str = "1234", then 5 is missing. The string could be out of order. For instance, if n = 13 and str = “1310923....”.
Behavioral:
The behavioral questions were standard. I felt they went well, but I was ultimately rejected. The feedback mentioned positive signals in coding and design, but they were looking for stronger alignment in communication and collaboration around technical problem-solving.