Explain DB concurrency, debugging slowness, DDD and CQRS
Company: Revolut
Role: Software Engineer
Category: Software Engineering Fundamentals
Difficulty: medium
Interview Round: Technical Screen
## Backend fundamentals: concurrency, performance investigation, and architecture terms
Answer the following backend questions:
1. **How do databases handle concurrency?**
- What mechanisms prevent lost updates and ensure isolation?
- How do isolation levels relate to anomalies (dirty read, non-repeatable read, phantom read)?
2. **If users report the service is slower than usual, how do you investigate?**
- What signals do you check first?
- How do you narrow down whether the bottleneck is CPU, DB, network, dependencies, or code changes?
3. **What are DDD and CQRS?**
- Define each term.
- When would you use them, and what are common pitfalls?
Quick Answer: This question evaluates understanding of database concurrency control and isolation anomalies, backend performance investigation and diagnostic skills, and knowledge of architectural concepts DDD and CQRS, testing competencies in transaction semantics, operational troubleshooting signals, and architectural trade-offs.