The target level was Senior. The process was bizarre, but I'll leave that aside. Overall, the interviews weren't difficult. Surprisingly, the hardest coding problem was in the phone screen.
Phone-screen coding: LeetCode 76.
VO 1: The behavioral round. They asked about my past projects, which project I was proudest of, how I had moved projects forward with colleagues over the past two years, and so on.
VO 2: Coding, a versioned key-value store problem that had been posted on the forum. The version was global, so when implementing get(key, version), I could use binary search directly to find the closest version.
VO 3: System design. I was asked to design a messenger with only one-to-one chat. The interviewer was a bit odd. He could have just pasted the question; why did he have to include the stuff in parentheses too? (I was smiling at the time, but my head was full of question marks.) Following the requirements in parentheses, the follow-ups were: 1. Push new messages to the app when a user is online, and use APNS/Google Firebase notifications when they are offline. 2. Support simultaneous login on multiple devices and message synchronization. 3. Store chat history on the server and explain how to paginate it when a user browses older messages.
The system-design round happened to cover an area where I had plenty of experience, so I breezed through it. The next day, HR called and told me I had passed.
Discussion
Loading comments…