Q1
Describe a system you've designed or contributed to that required scaling to handle increased load. What trade-offs did you make between consistency, availability, and partition tolerance, and why?
Why they ask this:* They want to assess your understanding of distributed systems concepts, architectural decision-making, and your ability to think about real-world constraints at scale.
Q2
Walk us through your approach to debugging a memory leak in a production service that only occurs under specific load conditions. What tools and strategies would you use?
Why they ask this:* They're evaluating your troubleshooting methodology, familiarity with profiling tools, and ability to solve complex problems methodically under pressure.
Q3
How would you refactor a monolithic codebase to improve testability and reduce coupling? What patterns or architectural approaches would you consider?
Why they ask this:* This assesses your knowledge of design patterns, code quality practices, and your ability to improve legacy systems—a common task for mid-level engineers.
Q4
Explain the difference between optimistic and pessimistic locking in database transactions. When would you use each, and what are the trade-offs?