Level: Senior-Level
Round: Onsite · Type: Multiple Types · Difficulty: 6/10 · Duration: 240 min · Interviewer: Unfriendly
Topics: Object-Oriented Design, Iterator, TreeMap, System Design, Caching, Database Indexing, Bloom Filter, LRU Cache, Singleton
Location: San Francisco Bay Area
Interview date: 2024-02-28
Got offer: False
I had a negative interview experience and was ultimately rejected. I hope my experience can help others.
Round 1: The interviewer was impatient and did not turn on the camera. The question was described verbally in a very complex way. When I asked if the question could be written down or given an example, the interviewer stated they only described questions verbally. I was told it was an OOD question about violation policies. I realized afterward that it was actually an algorithm question, specifically to write an iterator. The key points were how to use an abstract class and how to override the iterator. The interviewer was misleading and took up all my time, leaving no time for debugging.
Round 2: The interviewer was good technically and very nice. The coding question was similar to LeetCode 56 with a follow-up (I'm not sure if there is a corresponding LeetCode problem, but I think it can be solved using a TreeMap). The interviewer was willing to communicate and discussed the technology stack used by the team.
Round 3: Originally scheduled as a design round, the interviewer started with a coding question: write a Singleton. After I finished, the interviewer switched to design. The design question was: given a service that receives many requests daily requiring database queries to retrieve IDs or other columns, how can performance be improved? I said caching (e.g., Redis) to check if a query has been performed before to reduce database queries. I also suggested adding an index to the most frequently used columns in the database table, or using a Bloom filter to quickly check if the data is in the database before querying. The interviewer didn't seem satisfied, and I'm not sure what answer they were looking for. With 10 minutes left, I was asked to write an LRU cache. I had prepared for this question, so I quickly wrote a map + doubly linked list version. Before I started, the interviewer specified that I couldn't use existing libraries, so I wrote it quickly. The interviewer didn't seem to understand and asked what I would use if I could use existing libraries. I said LinkedHashMap, and then the time was up, and I wasn't asked to run test cases.
Round 4: The manager asked about system design: a scanner system. The communication went smoothly. I felt the system design questions were not very in-depth and were more high-level.
LeetCode similar: LeetCode 56