← Atlassian Interview Insights
Start by clarifying the SLO and current latency breakdown, then systematically address each layer: caching (client, CDN, application, database), read scaling (replicas, sharding), query/index tuning, payload optimization, and async processing. Emphasize instrumentation to measure impact and prioritize changes by expected latency reduction versus effort.
Pro tip: Frame your answer around the SLO: 'To meet p99 < 200ms, I'd focus first on the 80% of requests that are reads, since caching and read replicas can yield immediate wins.' This shows you prioritize based on data, not guesswork.
Measure current end-to-end latency, identify bottlenecks via tracing, and clarify the SLO target (e.g., p99 < 200ms). This ensures you optimize the right things.
Add caching at client (HTTP cache headers), CDN (static assets), application (Redis/Memcached for recipe data), and database (query cache, materialized views). Use appropriate TTLs and invalidation strategies.
Introduce read replicas for horizontal scaling, optimize slow queries with indexes, and consider denormalization or covering indexes for frequent lookups.
Reduce payload size via compression, field selection, and pagination. Move non-critical work (e.g., logging, recommendations) to async queues to keep the critical path lean.
Add metrics (latency percentiles, cache hit rates, DB load) and tracing. Prioritize changes by expected impact on SLO and effort, iterating based on measurements.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.