← Atlassian Interview Insights

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

Senior
May 2026

Summary

System design round at Atlassian for an MLE role, focused entirely on building a chatbot service from scratch. Pretty broad scope and they wanted depth on basically every layer, which was a lot to cover in one session.

Questions Asked (5)

Q1

Design a chatbot service end-to-end, covering functional requirements like multi-turn conversation, context handling, tool/API calls, and fallback behavior.

System DesignTechnical Trade-offs
Author's notes

I started with multi-turn context and spent probably too long on it.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scope, then propose a high-level architecture with components for dialogue management, context storage, and tool integration. Walk through the conversation flow, emphasizing trade-offs in context handling, fallback strategies, and scalability, and conclude with evaluation and monitoring.

Pro tip: Tie your design to Atlassian's ecosystem (e.g., Jira, Confluence) by discussing how the chatbot could integrate with their APIs and handle domain-specific queries, showing you understand their product landscape.

1. Clarify Requirements and Scope

Ask questions to understand expected scale, latency, supported channels, and integration needs. Define functional and non-functional requirements, including multi-turn conversation, context retention, tool/API calls, and fallback behavior.

2. High-Level Architecture

Outline core components: NLU, dialogue manager, context store, tool/API integration layer, and fallback handler. Explain how they interact to process user input and generate responses.

3. Deep Dive into Key Components

Detail context handling (e.g., session state, memory), tool/API call orchestration (e.g., function calling, error handling), and fallback strategies (e.g., clarification, handoff to human). Discuss trade-offs like stateless vs. stateful, latency vs. accuracy.

4. Scalability and Reliability

Address how to scale the service (e.g., load balancing, caching, async processing) and ensure reliability (e.g., retries, circuit breakers, monitoring).

5. Evaluation and Iteration

Propose metrics (e.g., task success rate, fallback frequency) and methods for continuous improvement (e.g., A/B testing, user feedback loops).

Key Points to Mention

  • Multi-turn conversation management: maintaining dialogue state and handling context across turns.
  • Context handling: session storage, memory mechanisms (e.g., summarization, vector databases), and context window limitations.
  • Tool/API calls: function calling, authentication, error handling, and latency considerations.
  • Fallback behavior: strategies like clarification prompts, graceful degradation, and human handoff.
  • Trade-offs: stateless vs. stateful design, cost vs. performance, and complexity vs. maintainability.
  • Integration with Atlassian products: leveraging Jira/Confluence APIs and domain-specific knowledge.

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

Q2

What are the non-functional requirements for a chatbot system, and how do you think about latency, throughput, availability, safety filtering, and cost per request?

System DesignTechnical Trade-offs
Author's notes

Safety filtering was the one that tripped me up.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by framing non-functional requirements as the quality attributes that determine whether the chatbot is production-ready, then walk through each dimension (latency, throughput, availability, safety, cost) with concrete targets and trade-offs. Use a structured framework to show how you balance these competing concerns in a real system, referencing Atlassian's scale and user expectations.

Pro tip: Tie each non-functional requirement to a business outcome (e.g., latency affects user retention, cost per request affects unit economics) and mention how you'd measure and monitor them in production. This shows you think beyond pure ML and understand operational excellence.

1. Define the quality attributes

List the key non-functional requirements: latency, throughput, availability, safety, and cost. Explain why each matters for a chatbot (e.g., latency for real-time interaction, safety for brand protection).

2. Set concrete targets and SLAs

Propose specific, measurable targets for each attribute (e.g., p95 latency < 500ms, 99.9% availability, cost per request < $0.01) and justify them based on user expectations and business constraints.

3. Analyze trade-offs and dependencies

Discuss how improving one attribute affects others (e.g., adding safety filters increases latency and cost; scaling for throughput may reduce cost efficiency). Show awareness of these tensions.

4. Propose architectural and operational strategies

Suggest techniques to meet targets: caching, model distillation, autoscaling, multi-region deployment, layered safety filters, and cost monitoring. Explain how these address the trade-offs.

5. Outline measurement and iteration

Describe how you would monitor these metrics in production (e.g., dashboards, alerts) and iterate on the system to continuously balance the non-functional requirements.

Key Points to Mention

  • Latency: p50/p95/p99 targets, impact of model size, caching, and streaming responses.
  • Throughput: requests per second, concurrency, autoscaling, and load balancing.
  • Availability: SLA/SLO, redundancy, failover, and graceful degradation.
  • Safety filtering: multi-layered approach (input/output moderation, fallback responses), latency and cost overhead.
  • Cost per request: token usage, model selection (e.g., smaller models for simple queries), caching, and batching.
  • Trade-offs: e.g., stricter safety increases latency and cost; higher availability requires more resources.

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

Q3

Walk through the high-level architecture of a chatbot service, including the API gateway, conversation manager, LLM inference layer, retrieval/knowledge base, vector store, caching, and logging.

System DesignAPI & Integrations
Author's notes

This felt like the core of the interview.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by framing the architecture as a request flow from client to response, then zoom into each component's role and interactions. Emphasize how the components work together to ensure low latency, scalability, and relevance, and tie back to Atlassian's needs like Jira/Confluence integration.

Pro tip: Highlight trade-offs and failure modes (e.g., caching staleness, vector store consistency) to show you think beyond the happy path. Mention observability and feedback loops for continuous improvement, which is crucial for production ML systems.

1. Client & API Gateway

Describe how clients (web, mobile, Slack) send requests to an API gateway that handles authentication, rate limiting, and routing. The gateway forwards requests to the conversation manager.

2. Conversation Manager

Explain that the conversation manager maintains session state, orchestrates the flow, and decides when to invoke retrieval or LLM inference. It also handles context management and dialogue policies.

3. Retrieval & Knowledge Base

Detail how the conversation manager queries a vector store (e.g., Pinecone, FAISS) to retrieve relevant documents from a knowledge base (e.g., Confluence pages, Jira tickets). Mention embedding generation and similarity search.

4. LLM Inference Layer

Describe how retrieved context and user query are combined into a prompt sent to an LLM (e.g., OpenAI, Anthropic) for response generation. Discuss model serving, batching, and latency considerations.

5. Caching & Logging

Explain caching strategies (e.g., Redis) for frequent queries or embeddings to reduce latency and cost. Cover logging for monitoring, debugging, and fine-tuning, including user feedback and metrics.

Key Points to Mention

  • API gateway responsibilities: authentication, rate limiting, request routing, and possibly request/response transformation.
  • Conversation manager: session state, context window management, and orchestration of retrieval and LLM calls.
  • Vector store: embedding model choice, indexing strategy (e.g., HNSW), and similarity search for retrieval-augmented generation (RAG).
  • LLM inference: model selection, prompt engineering, handling token limits, and latency optimization (e.g., streaming, caching).
  • Caching: multi-level caching (response, embedding, retrieval) to improve performance and reduce costs.
  • Logging and monitoring: capturing interactions for debugging, A/B testing, and continuous improvement; ensuring privacy and compliance.

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

Q4

How would you handle state and memory in a chatbot, specifically the difference between per-session and per-user memory, and short-term versus long-term storage?

System DesignData Modeling
Author's notes

Blanked for a second on the per-user long-term memory piece.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the chatbot's use case and requirements, then define the memory types (per-session vs. per-user, short-term vs. long-term) and their storage strategies. Discuss trade-offs in latency, cost, and personalization, and propose a concrete architecture with data models and retrieval mechanisms.

Pro tip: Emphasize the importance of memory scoping and TTL policies to balance personalization with privacy and cost, and mention how you would evaluate memory effectiveness with metrics like retention and user satisfaction.

1. Clarify Requirements and Scope

Ask about the chatbot's purpose, expected conversation length, user base size, and personalization needs to determine memory requirements.

2. Define Memory Types and Lifetimes

Distinguish per-session (ephemeral, context within a conversation) from per-user (persistent across sessions) memory, and short-term (recent turns) from long-term (historical facts/preferences).

3. Design Storage and Retrieval Architecture

Propose storage solutions: in-memory or Redis for short-term session data, and a database or vector store for long-term user memory, with appropriate indexing and retrieval APIs.

4. Address Trade-offs and Constraints

Discuss latency, cost, scalability, privacy (e.g., GDPR), and how to handle memory eviction, summarization, and conflict resolution.

5. Propose Evaluation and Iteration

Suggest metrics (e.g., response relevance, user retention) and A/B testing to validate memory design, and outline how to iterate based on feedback.

Key Points to Mention

  • Session memory: stored in-memory or Redis with TTL, used for immediate context; user memory: persisted in a database or vector store for personalization across sessions.
  • Short-term memory: recent conversation turns, often summarized or truncated to fit context window; long-term memory: user preferences, facts, and history, retrieved via similarity search or key-value lookup.
  • Data modeling: use a session ID for per-session data and a user ID for per-user data; consider a hybrid approach where session memory is a cache layer over user memory.
  • Trade-offs: long-term memory improves personalization but increases latency and cost; need strategies like lazy loading, caching, and summarization.
  • Privacy and compliance: ensure user consent, data encryption, and right to be forgotten; anonymize or delete data as needed.
  • Evaluation: measure memory hit rate, response quality, and user engagement; use offline metrics and online A/B tests to refine memory policies.

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

Q5

How do you approach scaling and monitoring for a chatbot system, and what are the key trade-offs between model size and latency, RAG versus fine-tuning, and streaming versus batched generation?

Technical Trade-offsSystem Design
Author's notes

The RAG vs fine-tuning trade-off was where I had the most to say.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by framing the problem around user experience and business metrics (e.g., latency, cost, accuracy), then walk through each trade-off with concrete examples from your experience. Emphasize a balanced, iterative approach that starts simple and scales based on monitoring data.

Pro tip: Tie every trade-off back to Atlassian's context—e.g., how Jira or Confluence users benefit from low-latency responses and accurate answers—and mention specific tools you've used (e.g., Prometheus, Grafana, Kubernetes) to show hands-on experience.

1. Clarify requirements and constraints

Ask about expected traffic, latency SLAs, cost budget, and accuracy needs to ground the discussion in real constraints.

2. Outline scaling and monitoring strategy

Describe horizontal scaling with load balancers, autoscaling, and monitoring key metrics like latency, error rates, and GPU utilization.

3. Analyze model size vs. latency trade-off

Discuss how larger models improve accuracy but increase latency and cost, and suggest techniques like distillation or quantization to balance.

4. Compare RAG vs. fine-tuning

Explain when to use RAG for dynamic, up-to-date knowledge versus fine-tuning for specialized, static tasks, and mention hybrid approaches.

5. Evaluate streaming vs. batched generation

Highlight that streaming improves perceived latency for interactive use, while batching optimizes throughput for offline or high-volume scenarios.

Key Points to Mention

  • Latency SLAs and user experience metrics (e.g., time to first token)
  • Horizontal scaling with Kubernetes and autoscaling groups
  • Monitoring with Prometheus/Grafana for latency, throughput, and error rates
  • Model compression techniques (quantization, distillation, pruning)
  • RAG for dynamic knowledge vs. fine-tuning for domain adaptation
  • Streaming for real-time interaction vs. batching for cost efficiency

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