← Back to blog Atlassian Technical Interview Debrief: Three Stages, Min Stack / Infinite Sorted Array Binary Search + Notification System Design + Two BQ Rounds
Atlassian

Atlassian Technical Interview Debrief: Three Stages, Min Stack / Infinite Sorted Array Binary Search + Notification System Design + Two BQ Rounds

2026-06-06

Atlassian's interview is very clear, split in order into three stages: two coding rounds → one system design → two BQ rounds. The pace is friendly, interviewers come from different product teams and won't push hard, but they continually steer you into details. The algorithm problems aren't tricky, but edge-case handling and ownership are the scoring keys. Here is a full debrief of all three stages.

Atlassian Technical Interview at a Glance

Stage Rounds Content
Stage 1 2 coding Min Stack / infinite sorted array binary search
Stage 2 1 system design In-app Notification System
Stage 3 2 BQ collaboration / leadership / ownership
Style Gentle but detail-focused Interviewers deliberately probe edge cases

Stage 1 · Problem 1: O(1) Min Stack

Implement a stack supporting push, pop, and min, all in O(1) time.

Reframe: use two stacks—a main stack for all values and an auxiliary stack for the "current minimum." Each push updates the auxiliary stack (push the smaller of the current value and the existing min); pop pops both in sync; min() returns the auxiliary stack's top.

class MinStack:
    def __init__(self):
        self.stack = []
        self.mins = []                      # synced with stack; top is the current min

    def push(self, x):
        self.stack.append(x)
        cur_min = x if not self.mins else min(x, self.mins[-1])
        self.mins.append(cur_min)

    def pop(self):
        if not self.stack:
            return None                     # empty-stack guard
        self.mins.pop()
        return self.stack.pop()

    def min(self):
        return self.mins[-1] if self.mins else None

Interviewer edge-case probes: pushing the same minimum repeatedly (the auxiliary stack must store it in sync so pop stays correct), and consecutive pops emptying the auxiliary stack (needs an empty-stack guard). Complexity: all three operations O(1), space O(n).

Stage 1 · Problem 2: Binary Search on an Infinite Sorted Array

Find a target's position in an infinitely long sorted array, accessible only via get(i), with no direct way to know the length.

Reframe: first find an upper bound by exponential growth (i = 1, 2, 4, 8... until get(i) > target), shrinking the infinite problem to a finite range [lo, hi], then run standard binary search within it.

def search_infinite(reader, target):
    # 1) find a bound exponentially
    lo, hi = 0, 1
    while reader.get(hi) < target:
        lo = hi
        hi *= 2
    # 2) binary search within the range
    while lo <= hi:
        mid = (lo + hi) // 2
        val = reader.get(mid)
        if val == target:
            return mid
        elif val < target:
            lo = mid + 1
        else:
            hi = mid - 1
    return -1                               # not found

Boundaries the interviewer cares about: target absent, empty array (get(0) out of bounds), all values smaller than target. Explain what get returns out of bounds and why exponential bound-finding is O(log n). Time: O(log n). Space: O(1).

Stage 2 · System Design: In-app Notification System

Design an in-app notification system supporting send, store, and display of notifications, including read / unread state, display order, and TTL expiry.

Time was tight, so I started from high-level components:

Component Responsibility
Producer Business services trigger notifications
Notification Service Dedup + scheduling
Storage MySQL (persist) + Redis (cache hot data)
Frontend Query Pagination and filtering

The interviewer's focus: how to design the data model, how to do Redis caching, and how to optimize query latency when a user has thousands of notifications. I added using Kafka for an async pipeline and supporting batched writes to the DB, keeping the design simple and implementable—Atlassian's system design wants it grounded, not theory-only.

Stage 3 · Two BQ Rounds

Round 1: collaboration / communication

Round 2: leadership / ownership

BQ scoring key: Atlassian's two BQ rounds are critical, the core of evaluating culture fit and leadership potential—each story should show influence + reflection.

Prep Suggestions

Stage Focus
Coding Drill Min Stack / binary-search variants; proactively cover edge cases
System Design Present a grounded, implementable plan: Redis cache + pagination + Kafka
BQ Prepare collaboration / mentoring / ownership / failure-reflection stories

The overall style is gentle but very detail- and ownership-focused: algorithm problems aren't tricky, system design must be grounded, and the two BQ rounds are critical—every round can affect the final result, so balance your prep.


FAQ

How many stages is the Atlassian technical interview?

Three stages: two coding rounds, one system design, and two BQ rounds. Interviewers come from different product teams with a gentle style, but they continually steer you into edge cases and design details.

Is Atlassian's coding hard?

Not tricky—the difficulty is in edge cases. Min Stack probes repeated minimums and consecutive pops on an empty stack; infinite-array binary search probes absent targets and empty arrays. Articulating boundaries matters more than the main logic.

What does Atlassian's system design value?

A grounded, implementable plan, not just high-level theory. For the notification system, articulate the data model, Redis caching, query-latency optimization for thousands of notifications, and a Kafka async pipeline + batched writes.

How do I prep Atlassian's two BQ rounds?

Prepare stories around collaboration / communication and leadership / ownership: explaining complex concepts to non-technical stakeholders, unblocking a teammate, taking initiative beyond your role, and reflecting on a failure. Each story should show influence and reflection. If useful, our VO support / VO proxy / interview assistance can polish these two-round BQ stories and run timed rehearsals.


Preparing for the Atlassian technical interview?

Atlassian's three stages test edge-case rigor, grounded system design, and ownership stories. If you want timed mocks of Min Stack / binary-search variants, a notification-system design walkthrough, or two-round BQ story polishing, reach out: share the job description so we can predict the problem set and plan practice, with live VO support / VO proxy / interview assistance pairing available.

Add WeChat Coding0201 to get Atlassian technical-interview problems and mocks.

Contact