Level: Senior-Level
Round: Phone Screen · Type: Coding · Difficulty: 7/10 · Duration: 45 min · Interviewer: Very Unfriendly
Topics: Concurrency, Linked List, Databases, Locking Mechanisms, Isolation Levels, Behavioral Questions
Location: San Francisco Bay Area
Interview date: 2026-01-15
Got offer: False
Question: Database isolation levels, multi-threaded linked list operations with locking, and behavioral questions.
This was my first technical interview for an internal database group at Salesforce. The interviewer, asked about my background and then started with database fundamentals, focusing on isolation levels. There are four levels, and I was asked about the last two, along with lock granularity:
I was then asked about the differences between the last two isolation levels.
Next, I was asked behavioral questions, such as how I manage projects.
The coding question involved multi-threading and linked lists. The specific problem was: Given a linked list, how do I handle insertions, reads, and deletes with multiple read threads and one write thread? I only needed to write pseudo-code.
I discussed the impact of different locks on reads and writes and whether they could lead to thread starvation. When discussing simple locks, I struggled with how to extend them. The interviewer eventually suggested using compare-and-swap (CAS) locks.