Had applied a few months prior, was contacted by HR and 3 interviews scheduled for the same day. No online assesment.
Round 1:
Design a data structure to use in a db that supports snapshots. Write should happen on the current version but reads can happen from any snapshot. Solved using nested hashmaps and a binary search to find a value given a version.
Round 2:
Design the backend for a stock exchange (price tracking not order matching). Implement get, put and range method that returns all stocks within a given range. Required making use of timestamps and linked list to ensure correctness and order and some follow up questions on concurrency.
Round 3:
Design a server on top of a DB that is limited to N concurrent reads, but can accept any number of requests. Focus was mainly on how to ensure the system can serve all requests and not exceed quota at the same time. Had to implement locks to handle concurrency. Lot of follow up questions on concurrent processes, synchronization and. Producer-consumer pattern, caching etc.
Got response from recruiter next day with positive feedback, hiring manager round for the next day.
Round 4 (HM):
Some questions on previous projects and some behavioral questons. Asked to design the timeout/eviction manager for a job scheduler. it should automatically evict processes that have spent too long, and should also remove jobs that have been completed. Had to explain and design the data structure (i used priority queue with a linked hash map). Follow up questions on concurrency and optimization.
Had to explain approach and write code in all rounds (i used java). Did not have to execute any.
Got offer after a week.