← 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 capacity planning for a logging and analytics pipeline. Pretty technical and open-ended, more back-of-envelope math than I expected.

Questions Asked (1)

Q1

You own a logging and analytics pipeline. Walk through how you'd estimate the storage needed one year from now, covering ingest rate, growth assumptions, retention tiers, compression, replication, indexing overhead, and spike buffers. Give a rough number and explain how you'd validate and revisit it.

System DesignProduct Analytics & MetricsTechnical Trade-offs
Author's notes

This was the whole interview basically.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by defining a clear baseline: current daily ingest volume, average event size, and retention policies. Then apply growth assumptions and multipliers for compression, replication, indexing, and spike buffers to project one-year storage. Conclude with a rough estimate and a validation plan using monitoring and periodic reviews.

Pro tip: Always state your assumptions explicitly and show how sensitive the estimate is to changes in growth rate or retention—this demonstrates that you understand the business impact of storage decisions.

1. Establish Baseline Metrics

Gather current daily ingest rate (events/day), average event size (bytes), and existing retention tiers (hot, warm, cold). Calculate raw daily storage before any overhead.

2. Apply Growth and Overhead Multipliers

Estimate annual growth rate (e.g., 20-30%) and apply it to the baseline. Then multiply by compression ratio (e.g., 3-5x), replication factor (e.g., 3x), indexing overhead (e.g., 20-50%), and spike buffer (e.g., 20-30%).

3. Calculate Total Storage per Tier

For each retention tier, compute the storage needed based on retention period (e.g., hot: 7 days, warm: 30 days, cold: 365 days) and the adjusted daily volume. Sum across tiers for total.

4. Provide Rough Estimate and Validate

Present a rough number (e.g., 'around 500 TB') and explain how you'd validate it: monitor actual ingest and storage growth, compare with projections, and adjust assumptions quarterly.

5. Revisit and Iterate

Describe a process for revisiting the estimate: set up alerts for deviations, conduct quarterly reviews, and refine growth assumptions based on product roadmap and business metrics.

Key Points to Mention

  • Ingest rate: events per second/day and average event size; consider peak vs. average.
  • Growth assumptions: user growth, feature adoption, seasonal spikes; justify with data.
  • Retention tiers: hot/warm/cold with different retention periods and storage costs.
  • Compression: algorithm (e.g., gzip, zstd) and typical compression ratios for logs.
  • Replication: factor for durability (e.g., 3x) and its impact on storage.
  • Indexing overhead: additional storage for indexes (e.g., inverted index, columnar).
  • Spike buffers: capacity for unexpected traffic surges (e.g., 20-30% extra).
  • Validation: monitoring tools, dashboards, and periodic review cadence.

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