← Atlassian Interview Insights

Atlassian·Machine Learning Engineer·Onsite - System Design / Architecture·Senior

SeniorPrefer not to say
Jul 2026

Summary

System design round at Atlassian for an MLE role. The whole thing was one big design question about building a RAG system on top of Jira and Confluence, which sounds straightforward until you get into the permissions and freshness requirements.

Questions Asked (5)

Q1

Design a RAG system that lets employees ask questions across Jira and Confluence, including cross-product queries like 'what's the status of project X and where's the design doc for it?'

System DesignTechnical 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 clarifying requirements and constraints, then propose a high-level architecture that unifies Jira and Confluence data through a shared retrieval layer. Emphasize how you would handle cross-product queries via entity linking and metadata enrichment, and discuss trade-offs in retrieval, ranking, and generation.

Pro tip: Highlight the importance of access control and data freshness, as Atlassian customers care deeply about security and real-time collaboration. Also, mention how you would evaluate the system with human feedback and automated metrics to ensure relevance and accuracy.

1. Clarify Requirements and Constraints

Ask about scale (number of users, documents), latency requirements, data sensitivity, and whether the system should support real-time updates. Understand the types of queries and the need for cross-product answers.

2. Design Data Ingestion and Indexing

Propose connectors to Jira and Confluence APIs to extract content, metadata, and permissions. Discuss chunking strategies, embedding models, and vector database choices, ensuring incremental updates and access control synchronization.

3. Architect Retrieval and Ranking

Outline a hybrid retrieval approach combining keyword and semantic search. Explain how to handle cross-product queries by linking entities (e.g., project keys) across sources and using metadata filters. Discuss re-ranking with cross-encoders or LLMs.

4. Implement Generation and Answer Synthesis

Describe how to generate coherent answers from retrieved context, possibly using an LLM with prompt engineering to combine information from multiple documents. Address citation and attribution to sources.

5. Address Evaluation, Monitoring, and Trade-offs

Discuss metrics (e.g., retrieval accuracy, answer relevance), A/B testing, and user feedback loops. Cover trade-offs between latency and accuracy, cost, and complexity of maintaining cross-product consistency.

Key Points to Mention

  • Access control and permission-aware retrieval to ensure users only see authorized content.
  • Entity linking and metadata enrichment to connect Jira issues with Confluence pages (e.g., via project keys or issue links).
  • Hybrid retrieval (sparse + dense) and re-ranking for improved relevance.
  • Handling of structured and unstructured data: Jira issues are semi-structured, Confluence pages are unstructured.
  • Incremental indexing and real-time updates to reflect changes in Jira and Confluence.
  • Evaluation strategies: offline metrics (e.g., MRR, NDCG) and online metrics (e.g., user engagement, thumbs up/down).

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

Q2

How would you handle document-level permissions so users only retrieve content they're authorized to see?

System DesignTechnical Trade-offsAPI & Integrations
Author's notes

Blanked for a second here.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the system context and requirements, then propose a layered authorization model that enforces permissions at query time, and finally discuss trade-offs between security, performance, and scalability. Emphasize how ML components (e.g., embeddings, feature stores) must respect the same access controls.

Pro tip: Mention that permissions should be enforced at the data access layer (e.g., database row-level security or API gateway) rather than in application code, to avoid leaks and simplify auditing. Also highlight the importance of caching authorized document IDs per user to reduce latency without compromising security.

1. Clarify requirements and constraints

Ask about scale, latency requirements, permission granularity (per-document, per-folder, inherited), and whether permissions change frequently. This shows you understand the problem before jumping to solutions.

2. Design a permission model

Propose a model such as role-based access control (RBAC) or attribute-based access control (ABAC), and explain how permissions are stored and evaluated. Consider hierarchical inheritance (e.g., space → page → comment) common in Atlassian products.

3. Enforce at retrieval time

Describe how to filter documents during search or retrieval, e.g., by injecting permission filters into queries (SQL, Elasticsearch) or using a policy engine. Ensure ML pipelines (e.g., embedding generation, ranking) also apply the same filters.

4. Optimize for performance and scale

Discuss caching authorized document IDs, precomputing permission sets, or using denormalized permission tables. Mention trade-offs: caching improves latency but risks staleness; precomputation adds storage overhead.

5. Address security and auditing

Explain how to prevent leaks (e.g., via side channels in ML models) and ensure audit logs for permission changes. Suggest regular permission reviews and automated tests for authorization logic.

Key Points to Mention

  • Row-level security (RLS) or document-level security in databases/search engines
  • Policy engines like Open Policy Agent (OPA) for centralized authorization
  • Caching authorized document IDs per user with TTL and invalidation on permission changes
  • Handling permission inheritance and hierarchical structures
  • Ensuring ML models (e.g., embeddings, recommendations) don't leak unauthorized content
  • Trade-offs between latency, consistency, and storage overhead

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

Q3

Jira updates very frequently while Confluence changes less often. How does your ingestion pipeline handle that difference?

System DesignData Modeling
Author's notes

Liked this one actually.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by acknowledging the different update frequencies and their implications for data freshness and processing costs. Then describe a tiered ingestion architecture that uses event-driven streaming for Jira and scheduled batch processing for Confluence, with a unified storage layer for downstream ML. Emphasize how this design balances latency, cost, and consistency.

Pro tip: Mention that you would monitor data freshness SLAs and implement backpressure or dead-letter queues to handle Jira's bursty updates without overwhelming the system. Also, highlight that you'd use incremental syncs for Confluence to avoid full reprocessing.

1. Characterize the data sources

Explain that Jira is high-velocity, event-driven, and requires near real-time ingestion, while Confluence is low-velocity, batch-oriented, and can tolerate longer latency.

2. Design ingestion pipelines per source

For Jira, propose a streaming pipeline (e.g., Kafka + stream processing) to capture changes as they happen. For Confluence, propose a scheduled batch pipeline (e.g., Airflow + API polling) that runs periodically.

3. Unify storage and processing

Store both streams in a common data lake or warehouse (e.g., S3 + Delta Lake) with a consistent schema, enabling unified feature engineering and model training.

4. Handle schema evolution and deduplication

Implement schema registry and versioning to manage changes, and use idempotent writes or deduplication logic to handle retries and late-arriving data.

5. Monitor and optimize

Set up monitoring for pipeline latency, throughput, and data quality; use autoscaling and backpressure to handle Jira's bursts, and optimize batch sizes for Confluence.

Key Points to Mention

  • Event-driven vs. batch processing: use Kafka/Kinesis for Jira, Airflow for Confluence.
  • Data freshness SLAs: define acceptable latency for each source (e.g., seconds for Jira, hours for Confluence).
  • Incremental ingestion: use webhooks or change data capture (CDC) for Jira, and delta syncs for Confluence.
  • Unified storage layer: data lake with schema-on-read or lakehouse architecture to support ML.
  • Scalability and cost: autoscaling for streaming, cost-effective batch for Confluence.
  • Data quality and consistency: deduplication, exactly-once semantics, and monitoring.

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

Q4

How would you make sure the generated answers cite the source Jira issues or Confluence pages correctly?

System DesignTechnical Trade-offs
Author's notes

Shorter discussion than I expected.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Frame the answer as a system design problem: propose a retrieval-augmented generation (RAG) pipeline that grounds answers in Atlassian's Jira and Confluence content, then layer on citation verification and evaluation. Emphasize trade-offs between precision, recall, latency, and user trust, and show how you'd measure and iterate on citation accuracy.

Pro tip: Mention that citations should be treated as a first-class output with their own evaluation metrics (e.g., citation precision/recall), and that you'd log user feedback on citations to continuously improve the system. This shows you think beyond model accuracy to product reliability and trust.

1. Ground generation in retrieved sources

Use a retrieval-augmented generation (RAG) architecture where the model only generates from retrieved Jira issues and Confluence pages, and require it to output source IDs alongside each claim. This ensures answers are traceable by design.

2. Enforce citation formatting and linking

Post-process model outputs to validate that cited IDs exist and map to the correct URLs, and reject or flag answers with invalid citations. Use structured output constraints (e.g., JSON schema) to force the model to separate answer text from citation metadata.

3. Verify citation correctness with automated checks

Implement a verification step that compares each generated claim against the cited source using entailment models or similarity checks, and scores citation precision and recall. Flag low-confidence citations for human review or fallback responses.

4. Evaluate and monitor citation quality

Build an offline evaluation set with human-annotated gold citations, and track metrics like citation accuracy, coverage, and hallucination rate. In production, monitor user feedback (e.g., thumbs down on citations) and retrain or adjust retrieval as needed.

5. Iterate with trade-offs in mind

Balance citation strictness against answer usefulness and latency: stricter verification may reduce hallucinations but increase response time or refusals. Continuously A/B test and tune thresholds based on user trust and engagement metrics.

Key Points to Mention

  • Retrieval-augmented generation (RAG) with Jira/Confluence as the knowledge base
  • Structured output constraints to separate answer from citations
  • Automated citation verification using entailment or similarity models
  • Metrics for citation quality: precision, recall, coverage, hallucination rate
  • Human-in-the-loop review for low-confidence citations
  • Trade-offs between citation strictness, latency, and answer completeness

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

Q5

How would you evaluate this system both offline before shipping and online once it's live?

A/B Testing & ExperimentationProduct Analytics & Metrics
Author's notes

Went with retrieval metrics like recall at K and MRR for offline, plus a small labeled QA set for end-to-end answer quality.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Structure your answer by clearly separating offline and online evaluation, then connect them through a shared metric framework. Emphasize how offline validation de-risks the launch, while online experimentation measures real-world impact and guards against regressions. Use concrete examples from your experience to illustrate each phase.

Pro tip: Always define your primary success metric and guardrail metrics before designing any evaluation—this prevents cherry-picking and ensures alignment with business goals. Also, mention that offline metrics are proxies, so you validate them against online results to build trust in your offline pipeline.

1. Define Objectives and Metrics

Start by clarifying the system's goal and selecting primary, secondary, and guardrail metrics. Ensure these metrics are measurable both offline and online.

2. Offline Evaluation

Use historical data, cross-validation, and holdout sets to assess model performance. Simulate production conditions as closely as possible and compare against baselines.

3. Pre-Launch Validation

Run sanity checks, bias audits, and stress tests. Validate that offline metrics correlate with business KPIs and set up monitoring for online deployment.

4. Online Evaluation

Deploy via A/B test or phased rollout. Measure impact on primary and guardrail metrics, monitor for drift, and ensure statistical significance.

5. Iterate and Learn

Analyze results, compare offline vs. online performance, and feed insights back into model improvements. Document learnings for future cycles.

Key Points to Mention

  • Offline metrics: precision, recall, AUC, RMSE, etc., and how they relate to business metrics.
  • Online metrics: click-through rate, conversion, engagement, latency, and guardrail metrics like error rates.
  • A/B testing best practices: randomization, sample size, statistical power, and avoiding peeking.
  • Monitoring and alerting for data drift, model decay, and system health.
  • The importance of aligning offline and online metrics to ensure offline improvements translate to online gains.
  • Ethical considerations and bias checks, especially in user-facing systems.

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