Study plan

Interview in 2 days? Take the crash plan: the most-asked questions and your weak spots, up to 30 a day. Or take 7 or 30 days.

Pick your plan

With JavaScript on, this builds a day-by-day plan from how often each question comes up in interviews and from your weak spots. Without it, start with the most-asked questions below.

Most-asked questions (56)

  1. Write skew under REPEATABLE READ
  2. What ACID really promises
  3. Isolation levels in PostgreSQL
  4. The lost update problem
  5. How a B-tree index speeds up a query
  6. Column order in a composite index
  7. Reading EXPLAIN ANALYZE
  8. The N+1 query problem
  9. Upserts with ON CONFLICT
  10. OFFSET vs keyset pagination
  11. Schema changes without downtime
  12. What CAP actually says
  13. Leader-follower replication and lag
  14. Consistent hashing
  15. Sharding: range, hash and directory
  16. Retries with exponential backoff and jitter
  17. At-most-once, at-least-once and 'exactly once'
  18. The transactional outbox pattern
  19. Sagas: orchestration vs choreography
  20. Designing REST resources
  21. Safe and idempotent HTTP methods
  22. Choosing HTTP status codes
  23. Idempotency keys for POST
  24. Paginating API responses
  25. Versioning an API
  26. Rate limiting with a token bucket
  27. Cache-aside: the default caching pattern
  28. Keeping a cache consistent with the database
  29. Choosing Redis data structures
  30. Work queues vs publish/subscribe
  31. Background job queues
  32. Kafka partitions, keys and ordering
  33. Committing offsets: at-most-once vs at-least-once
  34. Idempotent consumers and deduplication
  35. Kafka or RabbitMQ?
  36. Document store or relational database?
  37. Choosing a database for a new service
  38. The GIL, threads and processes
  39. How asyncio works
  40. Blocking calls inside async code
  41. Server sessions vs stateless tokens
  42. Validating a JWT properly
  43. OAuth 2.0 authorization code with PKCE
  44. Storing passwords
  45. Broken object level authorization (BOLA)
  46. SQL injection and parameterised queries
  47. Load balancing strategies
  48. Why percentiles, not averages
  49. Scaling up vs scaling out
  50. The test pyramid for a backend
  51. Back-of-the-envelope estimates
  52. Monolith or microservices
  53. Design a URL shortener
  54. Design a news feed
  55. Design a chat backend
  56. Design a distributed rate limiter