Atlassian Software Engineer Onsite Coding Questions
47+ questions from real Atlassian Software Engineer Onsite Coding rounds, reported by candidates who interviewed there.
What does the Atlassian Onsite Coding round test?
The Atlassian onsite coding round is the core technical evaluation. Software Engineer candidates typically see 2-3 algorithm and data structure problems. Problems range from medium to hard difficulty, and interviewers evaluate both correctness and code quality.
Top Topics in This Round
Atlassian Software Engineer Onsite Coding Questions
Atlassian Full Onsite Interview Experience for SDE Position
I had my Karrat interview a few weeks ago. The interview was a Snake game; these kinds of questions aren't difficult, but there are many corner cases to consider and handle well. VO: Coding 1: Likou57
**Infection Sequences Count** **Problem Description** There are $n$ houses aligned in a straight line, numbered 1 to $n$. An integer array `infectedHouses` represents the houses initially infected wit
Atlassian Principal Engineer Onsite Interview Experience (2025)
**Candidate Profile** * **Experience:** 13 Years (B.Tech, CSE) * **Target Role:** Principal Engineer (Remote) * **Company:** Atlassian * **Date:** September 2025 * **Outcome:** Offer down-leveled to S
#432 All O`one Data Structure
LeetCode #432: All O`one Data Structure. Difficulty: Hard. Topics: Hash Table, Linked List, Design, Doubly-Linked List. Asked at Atlassian in the last 6 months.
## Problem A customer support system stores satisfaction surveys as `(ticket_id, customer_id, agent_id, score, timestamp)` where score is 1-5. Implement a `SatisfactionAnalyzer`: ```python class SatisfactionAnalyzer: def add_response(self, ticket_id: str, customer_id: str, agent_id: str, score: int, ts: int) -> None: ... def agent_avg(self, agent_id: str) -> float: ... # overall average score def agent_trend(self, agent_id: str, window: int) -> float: ... # avg over last `window` responses def top_agents(self, n: int) -> list[tuple[str, float]]: ... # top n by overall avg, desc def customer_history(self, customer_id: str) -> list[tuple[str,int]]: ... # returns (ticket_id, score) sorted by timestamp asc ``` **Example:** ``` sa = SatisfactionAnalyzer() sa.add_response("T1","C1","A1",5,1000) sa.add_response("T2","C2","A1",3,2000) sa.add_response("T3","C1","A2",4,3000) sa.agent_avg("A1") -> 4.0 sa.agent_trend("A1", 1) -> 3.0 sa.top_agents(1) -> [("A2", 4.0)] ``` ## Follow-ups - How would you implement `agent_trend` in O(1) per query using a sliding window? - Extend to flag agents whose 7-day trend is declining by more than 1 point vs their overall average. - What database schema and indexes would you use to support these queries at scale?
## Problem A tennis club has `C` courts and receives booking requests as `(player_id, start_time, end_time)`. Process requests in order of arrival. Assign a request to any available court. If all courts are busy, add the request to a wait queue; it will be assigned when the earliest-ending match finishes. Return the final assignment list: `(player_id, court_id, actual_start_time)`. ```python def schedule_courts( num_courts: int, requests: list[tuple[str, int, int]] ) -> list[tuple[str, int, int]]: ... ``` **Example:** ``` num_courts = 2 requests = [("A",0,60),("B",0,90),("C",10,70),("D",20,50)] Output: [ ("A", 1, 0), ("B", 2, 0), ("C", 1, 60), # court 1 free at 60, C plays 60->120 ("D", 1, 120) # or court 2 free at 90 -> D at 90 ] ``` ## Follow-ups - What priority queue operations are needed, and what is the overall time complexity? - How do you handle a request where `end_time - start_time` varies (duration-based rather than fixed end)? - Extend to support VIP players who jump the wait queue.
Thrilling Teleporter
(Omitted: only an external link/title is provided; the full statement, I/O format, and constraints are missing, so it cannot be reconstructed reliably.)
Given an integer N and an infinite stream of integers, implement a data structure/class that supports ingesting the next integer and returning the average of the most recent N integers (if fewer than
## Problem: Smallest Department Covering Two Employees (LCA Variant) A company's org structure is represented as a tree: - **Internal nodes** are `departments`. - **Leaf nodes** are `employees`. - A
## Problem: Implement a Time-Bucket-Based Rate Limiter Implement a rate limiter with the function: ```java boolean shouldPass(int timeBucket) ``` - `timeBucket` is the bucket id of the incoming req
Change the URL fetching from sequential to **parallel** execution. **Requirements** - Input: a list of URLs. - Behavior: send HTTP GET requests in parallel. - Output: a list of results. - If order
Extend the sequential URL fetcher by **deduplicating URLs** before sending requests. **Requirements** - Input: a list of URLs that may contain duplicates. - Behavior: fetch only unique URLs (optional
Given a binary tree and two nodes, find their lowest common ancestor. This is a variant of the Lowest Common Ancestor (LCA) problem. Please write a function to implement this functionality. ### Sampl
Moving Window Average
Design a data structure to calculate the moving average of a sliding window. Implement a class with the following operation: - `next(val)`: Add the element `val` and return the average of all elemen
Given a set of intervals, find all overlapping intervals. You need to output the start and end points of these intervals. ### Sample Input ``` [(1,4),(3,5),(6,8),(7,9)] ``` ### Sample Output ``` [(3
Given two strings `s` and `t`, determine if `s` is a subsequence of `t`. You may assume that there is only lowercase English letters in both strings `s` and `t`. The length of `t` is generally larger
Implement a function that given a list of tennis court bookings with start and finish times, returns a plan assigning each booking to a specific court, ensuring each court is used by only one booking
Design a service that performs CICD releases daily, and sends a notification to the author of a release success and deployment version. For example, Jason and Mike would be notified of their deploymen
Weighted Moving Average
Imagine you are part of the analytics team that tracks changing user trends. You’re tasked with calculating a moving average from a data stream with a window size of X. Now our engineers are intereste
Implement a function that given a list of tennis court bookings with start and finish times, returns a plan assigning each booking to a specific court, ensuring each court is used by only one booking
What to Expect in the Atlassian Onsite Coding Round
The Atlassian Software Engineer Onsite Coding round has a specific calibration purpose distinct from other rounds in the loop. Across 47+ verified reports on LeakCode for this exact round type, the consistent expectations: clear scoping of the problem before diving into a solution, explicit reasoning about complexity, structured handling of edge cases, and the ability to discuss trade-offs between two reasonable approaches.
Reports tagged with the Onsite Coding round at Atlassian show recurring patterns in difficulty and topic distribution. The Onsite Coding round is typically 45-60 minutes; the interviewer is calibrated against a specific rubric. The discriminator between candidates who advance and candidates who do not is rarely the final correctness of the answer. It is the path: did you clarify, did you verbalize your approach, did you handle edge cases, and did you communicate throughout.
How To Prepare for This Specific Round
Filter the questions below to the most recent reports (past 6-12 months). Questions tagged for this exact round type from this exact company at this exact role level are the highest-signal data available. Older reports may reference questions that have since rotated out of the company's pool.
Practice 4-6 representative problems from this set under timed conditions. The goal is not memorization (companies rotate questions); the goal is to internalize the patterns the interviewer typically reaches for and the depth of follow-up to expect. Reports on LeakCode also tag the typical follow-up depth at this round type, which is the discriminating signal between hire and no-hire calibration.
Onsite Coding Round Timing and Format
The Onsite Coding round at Atlassian typically runs 45-60 minutes. Use the first 2-3 minutes to clarify requirements; you should never start coding or designing without verifying the input/output format, constraints, and edge cases out loud. Use the next 5-7 minutes to verbalize your approach before writing any code. The middle 20-30 minutes are implementation. Reserve the final 10 minutes for testing with concrete examples and discussing optimization or trade-offs.
Time budget discipline is one of the most reliable senior-vs-junior discriminators in this round. Strong candidates verbalize where they are in their budget out loud ("I've used about 20 minutes, I have 15 minutes left for testing and one optimization"). This signals engineering maturity to the interviewer and creates positive feedback they can capture in writing.
Common Failure Modes in This Round
Reports tagged "no hire" at Atlassian Software Engineer Onsite Coding commonly cite: coding silently without verbalizing approach, jumping to implementation before clarifying requirements, missing edge cases (empty input, single element, very large input), producing working code that the candidate cannot refactor when asked, and failing to test their solution with concrete examples before declaring done.
The single most predictive failure mode in 2025-2026 reports: not asking clarifying questions. Interviewers at all FAANG companies are explicitly trained to weight this dimension. Strong candidates ask 3-5 clarifying questions even on problems that look obvious; weak candidates dive into code immediately. The clarifying-question check is often the first signal recorded in the interviewer's notes.
See All 47 Questions from This Round
Full question text, answer context, and frequency data for subscribers.
Get Access