Interview
Atlassian Machine Coding Round: Preparation Guide (2026)
Prepare for Atlassian's machine coding round with a practical rubric, build plan, common failure modes, and a two-week low-level design practice plan.

The Atlassian machine coding round is best approached as a practical engineering exercise, not a race to demonstrate every object-oriented pattern you know. Reported accounts describe a technical process that includes coding and system design alongside a values-based evaluation. For candidates facing the practical coding or class-design portion, the strongest signal is usually simple: can you turn an ambiguous requirement into clear, working, maintainable code while explaining the choices you make?
That means preparation should look different from pure algorithm practice. You need a build order, a way to clarify requirements, and enough design judgement to keep the solution extensible without turning it into a framework. Atlassian's interview kit holds four mapped DSA questions and four low-level design problems for focused practice.
This guide covers the machine-coding and low-level design skills relevant to that part of the process only. For the broader interview sequence, including the Karat-administered technical screen, system design, and values conversation, use the Atlassian interview-process pillar page.

Where this round sits in the Atlassian process
Reported accounts describe an Atlassian process that begins with recruiter contact and a Karat-administered technical screen, followed by an onsite sequence of coding, system design, and values-based conversations. Exact sequencing varies by role, level, location, and hiring team, so treat that as the common shape rather than a fixed script.
The practical coding or low-level design element sits within the technical assessment of your engineering judgement. It is not the same as the earlier screen, where rapid computer-science fundamentals and coding may be tested. Nor is it a replacement for the architecture-level system-design discussion that experienced candidates may encounter later.
That distinction matters because each format rewards a different kind of preparation:
- Algorithmic coding rewards pattern recognition, correctness, and complexity reasoning.
- Machine coding rewards turning requirements into a small working program under constraints.
- Low-level design discussion rewards sensible classes, responsibilities, interactions, and trade-offs.
- System design rewards architecture, scale, reliability, and boundaries between services.
The practical round is where candidates reveal whether they can move from “I know the principle” to “I can make the principle useful”. If coding fundamentals are still a concern, the DSA Patterns Sheet is free to browse and helps organise preparation around recurring problem shapes.
Format and time limit: what to expect
Public candidate reports establish coding and system-design rounds in the Atlassian loop, but they do not support one universal machine-coding format or fixed time limit. Atlassian teams, interviewers, and roles can vary. Confirm the tooling, language choices, expected deliverable, and allotted time with your recruiter before treating any preparation schedule as exact.
In a practical coding exercise, expect a deliberately incomplete problem statement rather than a production-scale application. The interviewer may give you a small domain, a set of core actions, and a few constraints. Your job is to clarify the gaps, choose an in-memory model where appropriate, implement the central behaviour, and show that it works.
A useful default assumption is that you are being assessed on how you work with limited time, not on whether you can recreate a complete service. Do not spend the opening portion of the round inventing persistence, authentication, deployment, or distributed infrastructure unless the prompt genuinely requires them.
Ask these questions before designing:
- What is the essential user flow that must work by the end?
- What data must exist in memory?
- Which actions can fail, and how should failures appear?
- Which requirements are fixed, and which are likely to change?
- Is a command-line driver, API shape, or test suite expected?
- Can you make reasonable assumptions if time runs short?
These questions prevent the most expensive error in machine coding: building an elegant solution to a problem that was never asked.
What graders actually reward
The exact scoring rubric is not public. Still, reported interview formats and standard practical-engineering evaluation suggest a reliable order of priority. In rough order of weight, optimise for the following.
A working core flow
The first requirement is a functioning solution. A modest design that can create, update, retrieve, and demonstrate the required behaviour is stronger than an impressive class diagram that never runs.
Start with the smallest end-to-end scenario. If the prompt involves booking, assigning, voting, scheduling, or managing state, make one complete path work before widening the model.
Clear ownership of behaviour
Good low-level design is less about the number of classes and more about putting behaviour in sensible places. A class should own the state and rules it can reasonably protect. Avoid one large manager object that knows everything, but also avoid splitting every noun into a separate abstraction.
A useful question is: “If this rule changes, where would I expect to edit it?” If the answer is “in several unrelated files”, responsibilities are probably scattered.
Requirements discipline
Interviewers notice whether you separate stated requirements from assumptions. Say what you are assuming. Name a trade-off. If a requirement is unclear, ask before coding.
This is especially valuable at Atlassian because the broader loop includes a values-based conversation. You should not treat communication as theatre separate from engineering; clear collaboration during technical work is part of demonstrating sound judgement.
Extensibility where variation is real
Use interfaces, strategies, factories, or composition when the problem contains genuine variation: multiple pricing rules, delivery policies, notification channels, matching rules, or state transitions.
Do not add patterns because you can. Premature abstraction makes code slower to write, harder to explain, and more fragile during follow-up changes. The interviewer is looking for judgement, not pattern vocabulary. For a refresher on choosing patterns purposefully, read design patterns for interviews.
Readable code and visible testing
Names should reveal intent. Methods should be short enough to explain. Error handling should match the problem’s scope. Most importantly, show the programme working through tests or a small driver.
A running demonstration gives the interviewer evidence. It also exposes broken assumptions early enough to fix them.
How to structure the available time
Because the allotted duration can vary, use proportions rather than memorising a minute-by-minute plan. Adjust the blocks to the time your recruiter confirms.
| Portion of the round | Primary goal | What to do |
|---|---|---|
| Opening quarter | Understand the problem | Clarify scope, identify the core flow, state assumptions, sketch entities |
| Next quarter | Build the minimum | Implement the happy path end to end before adding optional features |
| Next fifth | Strengthen design | Extract responsibilities, handle important edge cases, remove obvious duplication |
| Next fifth | Prove correctness | Add tests or a driver, run key scenarios, fix failures |
| Final portion | Communicate and polish | Explain trade-offs, describe extensions, clean names and structure |
The table has one overriding rule: never allow design work to consume the testing block. If you have not run the core flow, you do not know whether the solution works.
A disciplined opening sounds like this:
“I will first confirm the main workflow and constraints. Then I will implement an in-memory version of the core path, test it, and use the remaining time to make the design easier to extend.”
That statement gives the interviewer a roadmap and gives you permission to defer non-essential detail.
For timed rehearsal, Code Practice can help you build the habit of explaining choices while you implement. It is also worth reading how to explain your thought process clearly in coding interviews before your first mock.
Failure modes that cost otherwise strong candidates
Designing the whole system before writing any code
Candidates often spend too long on a polished hierarchy, then discover late that basic state transitions do not work. Start with a small vertical slice. Working code creates a foundation for design improvements; diagrams do not.
Treating assumptions as facts
A silent assumption about capacity, cancellation, duplicate requests, permissions, or ordering can send the entire solution in the wrong direction. Ask, state your assumption, and keep moving.
Building abstractions with no changing behaviour
An interface with only one implementation is not automatically bad, but it needs a reason. If no behaviour varies, direct code is often clearer. Explain why you are adding an abstraction or leave it out.
Ignoring unhappy paths
You do not need to enumerate every impossible failure. But you should handle the errors that matter to the core domain: an unavailable item, an invalid state change, a missing identifier, or an action performed twice.
Not running the programme
Compiling is not proof. A small test or driver should exercise the main journey and at least one edge case. The discipline matters even if the environment is minimal.
Going quiet after the initial explanation
Your interviewer cannot credit trade-offs they never hear. Narrate changes in direction: “I am keeping this simple for the core path,” or “I am extracting this because another rule is likely to vary.”
Confusing low-level and high-level design
Do not jump to queues, caches, load balancers, or database sharding when the question is asking for classes and interactions. If the conversation shifts towards architecture, explicitly mark the boundary. Low-level design versus high-level design explains what each format expects.
A two-week Atlassian machine-coding practice plan
This plan assumes you can practise most days. Keep sessions focused, and write code rather than only reading solutions.
Days one to three: rebuild object-oriented fluency
Choose small domains and implement them without a timer: a task tracker, booking flow, library workflow, notification service, or simple game. Focus on state, methods, validation, and meaningful names.
Use the Low Level Design Sheet, which is free to browse, to review common class-design shapes. After each attempt, identify one responsibility that is too broad and one abstraction that was unnecessary.
Days four to six: practise requirement clarification
Before coding, spend a short opening block writing questions and assumptions. Then solve the exercise under a light timer. Your aim is not speed yet; it is learning to identify the minimum viable solution.
Record yourself explaining the model aloud. Listen for vague phrases such as “this class handles everything” or “we can just add a service”. Replace them with specific responsibility statements.
Days seven to nine: build under realistic pressure
Set a stricter timer based on the duration your recruiter provides. Build the happy path first, run it, then add edge cases. At the end, give yourself a short verbal walkthrough as though an interviewer were present.
Work through Atlassian's interview kit during this phase. It provides four mapped DSA questions and four low-level design problems, giving you both implementation practice and a way to keep coding fundamentals active.
Days ten to twelve: rehearse follow-up changes
Take a completed solution and introduce one new requirement: a new rule, a new type of user, a different selection policy, or an audit trail. Refactor only where the change justifies it.
This is the fastest way to discover whether your initial design was genuinely flexible or merely complicated. For a broader view of what live coding assessors notice, see what interviewers actually look for in live coding interviews.
Days thirteen and fourteen: simulate the conversation
Run two full mocks. In each one, begin by clarifying, announce your build plan, implement, test, and finish with trade-offs plus next steps. Practise receiving interruptions without becoming defensive.
Use an AI mock interview to rehearse technical explanation and the values-oriented discussion that reported accounts describe as meaningful in the Atlassian process. The free-to-browse Operating Systems Sheet and Computer Networks Sheet are also useful for revisiting fundamentals relevant to the earlier technical screen.
Frequently asked questions
Is there a separate Atlassian machine coding round?
Reported accounts describe coding and system-design evaluation in the Atlassian process. The exact division between a practical build exercise, coding discussion, and low-level design can vary by team and role, so confirm the format with your recruiter.
How long is the Atlassian machine coding round?
Public reports do not establish one fixed duration. Ask your recruiter about the allotted time, platform, expected output, and whether testing or a runnable driver is expected.
What should I build first?
Build the central user flow first. Create the minimum data model, implement the primary action, and run it before adding optional functionality or design polish.
Are design patterns necessary?
Only when they solve a visible design problem. Use a pattern to isolate changing behaviour or reduce coupling, not as decoration.
Should I use a framework or database?
Usually, no, unless the prompt specifically requires one. A small in-memory solution is often the clearest way to demonstrate the core logic under time pressure.
How much should I talk while coding?
Talk throughout, but keep it useful. Explain assumptions, design choices, trade-offs, and test results. Avoid narrating every keystroke.
Does Atlassian test DSA as well as low-level design?
Reported accounts describe coding alongside design assessment. Atlassian's interview kit includes four mapped DSA questions and four low-level design problems for practice across those technical skills.
What matters more: clean code or a working solution?
A working core flow comes first. Once it runs, improve readability, validation, and structure. Clean but unexecuted code is difficult to evaluate.
How should I prepare for the values conversation?
Prepare concrete examples of collaboration, disagreement, ownership, learning, and difficult decisions. Rehearse them aloud, with clear detail about what you personally did and why.
Prepare for the practical engineering bar
The most effective preparation for the Atlassian machine coding round is repeated practice at the point where many candidates hesitate: turning a partial prompt into a small, tested, explainable programme. Work from the core flow outward. Ask questions early. Keep abstractions earned rather than ornamental. Leave enough time to run what you wrote.
Open Atlassian's interview kit to practise the four mapped DSA questions and four low-level design problems associated with the company. Then use an AI mock interview to rehearse explaining technical decisions and discussing the values-based parts of the process with confidence.
Interview formats can change by role and team, so confirm the current structure with your recruiter before the interview.