← Atlassian Interview Insights

Atlassian·Software Engineer·Onsite - System Design / Architecture·Senior

Senior
Apr 2026

Summary

System design round at Atlassian for a software engineer role, focused entirely on load balancing for a collaborative document service. The question had a lot of layers and I felt like I was playing catch-up the whole time.

Questions Asked (2)

Q1

You have a document-sharing service where requests are load balanced using round-robin across a stateless app tier. What problems does this cause for a collaborative editing workload?

System DesignTechnical Trade-offs
Author's notes

I started with cache locality which felt safe, but then they kept pushing and I realized there were like four other angles I hadn't touched.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by explaining why round-robin load balancing works for stateless requests but fails for collaborative editing, which requires session affinity and shared state. Then discuss the specific problems: inconsistent document state, lost updates, and poor user experience. Finally, propose solutions like sticky sessions, a shared data store, or a pub/sub system to synchronize edits.

Pro tip: Acknowledge that sticky sessions alone are insufficient for true collaboration; you also need a mechanism to broadcast edits to all users editing the same document, regardless of which server they are connected to. Mentioning operational complexity and failure modes (e.g., server crash losing unsaved edits) shows depth.

1. Clarify the workload characteristics

Explain that collaborative editing involves multiple users concurrently modifying the same document, requiring real-time synchronization and consistent state across all participants.

2. Identify the mismatch with round-robin

Point out that round-robin distributes each request independently, so subsequent requests from the same user may hit different servers, leading to inconsistent views and lost edits.

3. Enumerate specific problems

List issues such as stale data, edit conflicts, inability to maintain WebSocket connections, and difficulty in implementing operational transformation or CRDTs.

4. Propose architectural solutions

Suggest alternatives like sticky sessions with a shared session store, a centralized collaboration service, or a distributed pub/sub system to propagate changes.

5. Discuss trade-offs and failure modes

Compare solutions in terms of scalability, latency, consistency, and complexity, and mention how to handle server failures without data loss.

Key Points to Mention

  • Session affinity (sticky sessions) is necessary but not sufficient for collaborative editing.
  • Shared state must be maintained across servers, e.g., using a distributed cache or database.
  • Real-time synchronization requires a publish-subscribe mechanism to broadcast edits to all clients.
  • Conflict resolution algorithms like Operational Transformation (OT) or Conflict-free Replicated Data Types (CRDTs) are needed.
  • WebSocket connections are long-lived and cannot be load balanced with simple round-robin.
  • Failure modes: server crash can lose unsaved edits if state is not persisted or replicated.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q2

How would you fix the issues you identified with round-robin routing for this kind of workload? Walk through your solutions.

System DesignTechnical Trade-offsAPI & Integrations
Author's notes

Talked through consistent hashing on doc ID to keep requests for the same document landing on the same server.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by briefly recapping the specific issues you identified with round-robin routing for this workload, then propose targeted solutions that address each issue. Structure your answer by walking through each solution, explaining the trade-offs and why it's appropriate for the given context (e.g., Atlassian's scale, multi-tenancy, and API integrations).

Pro tip: Acknowledge that no single solution is perfect; show maturity by discussing how you would measure the impact of your changes and iterate. Mention that you'd validate with load testing and monitor key metrics like latency, error rates, and fairness across tenants.

1. Recap the issues

Briefly summarize the problems with round-robin for this workload, such as ignoring server capacity, session affinity, or tenant isolation. This sets the stage for your solutions.

2. Propose solutions

For each issue, suggest a concrete alternative or enhancement, e.g., weighted round-robin, least connections, consistent hashing, or adaptive load balancing. Explain how it addresses the issue.

3. Discuss trade-offs

For each solution, outline the trade-offs: complexity, latency, consistency, and operational overhead. Relate them to Atlassian's context (e.g., multi-tenant SaaS, high availability).

4. Prioritize and implement

Explain which solution you would implement first and why, considering factors like impact, effort, and risk. Describe a phased rollout or A/B testing approach.

5. Measure and iterate

Describe how you would measure success (e.g., latency percentiles, error rates, tenant fairness) and how you would iterate based on monitoring and feedback.

Key Points to Mention

  • Weighted round-robin or least-connections algorithms to account for heterogeneous server capacity.
  • Consistent hashing to maintain session affinity and reduce cache misses for stateful workloads.
  • Tenant-aware routing to ensure isolation and fairness in a multi-tenant environment like Atlassian's.
  • Health checks and circuit breakers to avoid routing to unhealthy instances.
  • Observability: metrics, logging, and tracing to validate improvements and detect regressions.
  • Incremental rollout with feature flags and canary deployments to mitigate risk.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.