Atlassian Interview Questions (19+ Questions)

Last Updated: June 8, 2026 β€’ 19 Questions β€’ Real Company Interviews

Prepare for your Atlassian interview with our comprehensive collection of 19+ real interview questions and detailed answers. These questions have been curated from actual Atlassian technical interviews across various roles including DevOps Engineer, Data Engineer, QA Engineer, and more.

19
Interview Questions
1
Categories
3
Difficulty Levels

Table of Contents

Our Atlassian interview questions cover a wide range of technical topics and difficulty levels, from entry-level positions to senior roles. Each question includes detailed explanations and answers to help you understand the concepts and prepare effectively for your interview.

πŸ’‘ Pro Tips for Atlassian Interviews

  • Practice each question and understand the underlying concepts
  • Review Atlassian's specific technologies and methodologies
  • Prepare follow-up questions and edge cases
  • Practice explaining your solutions clearly and concisely

Interview Questions & Answers

1. Trace Stalled Script Execution

Company: Atlassian Difficulty: medium πŸ”’ Premium Categories: Devops

Master strace system call tracing in Linux to diagnose hanging processes and network I/O issues. Learn how to capture and analyze syscalls to identify blocking operations, DNS resolution failures, network timeouts, and socket connection problems. This guide covers tracing application behavior at the kernel level, interpreting syscall sequences, identifying root causes of hangs, and debugging custom scripts without application logs. Essential for troubleshooting production integration failures, network connectivity issues, and mysterious application stalls.

2. Fix Multi-Issue ImagePullBackOff in Deployment

Company: Atlassian Difficulty: medium πŸ”’ Premium Categories: Devops

Troubleshoot and fix a Deployment in ImagePullBackOff state by identifying and resolving image pull errors related to registry authentication and image specification.

3. Dynamic Matrix from Script

Company: Atlassian Difficulty: medium πŸ”’ Premium Categories: Devops

Learn to generate GitHub Actions matrix values dynamically from script output. Create workflows that determine test configurations at runtime using job outputs and fromJSON for flexible parallel execution.

4. Correlate Microservice Logs Across Services Using Request IDs

Company: Atlassian Difficulty: hard Categories: Devops, Data engineering, Quality assurance

Parse JSON log files from multiple microservices, correlate events by request ID, and trace requests across services chronologically using Python.

5. Diameter of Binary Tree

Company: Atlassian Difficulty: easy Categories: Devops, Data engineering

Definition for a binary tree node.

class TreeNode:

def init(self, val=0, left=None, right=None):

self.val = val

self.left = left

self.right = right

def diameter_of_binary_tree(root: Optional[TreeNode]) -> int:
diameter = 0

def height(node):
    nonlocal diameter
    if not node:
        return 0
    
    left_h = height(node.left)
    right_h = height(node.right)
    
    diameter = max(diameter, left_h + right_h)
    
    return 1 + max(left_h, right_h)
    
height(root)
return diameter

6. K Closest Points to Origin

Company: Atlassian Difficulty: medium Categories: Devops, Data engineering

def k_closest(points: list[list[int]], k: int) -> list[list[int]]:
max_heap = []

for x, y in points:
    dist = x**2 + y**2
    heapq.heappush(max_heap, (-dist, [x, y]))
    
    if len(max_heap) > k:
        heapq.heappop(max_heap)
        
return [point for dist, point in max_heap]

7. N-Queens

Company: Atlassian Difficulty: hard Categories: Devops, Data engineering

def solve_n_queens(n: int) -> list[list[str]]:
cols = set()
pos_diag = set()
neg_diag = set()

res = []
board = [["."] * n for _ in range(n)]

def dfs(r):
    if r == n:
        res.append(["".join(row) for row in board])
        return
        
    for c in range(n):
        if c in cols or (r + c) in pos_diag or (r - c) in neg_diag:
            continue
            
        cols.add(c)
        pos_diag.add(r + c)
        neg_diag.add(r - c)
        board[r][c] = "Q"
        
        dfs(r + 1)
        
        cols.remove(c)
        pos_diag.remove(r + c)
        neg_diag.remove(r - c)
        board[r][c] = "."
        
dfs(0)
return res

8. Frequent Price Change Detector

Company: Atlassian Difficulty: medium πŸ”’ Premium Categories: Data analysis, Data engineering

Identifying Products with Multiple Price Changes Using SQL

Objective

In this interview question, you are provided with two tables: products and price_history. Your task is to write an SQL query that identifies all products that have experienced at least two price changes. A price chan...


πŸ”’ Premium Content

Detailed explanation and solution available for premium members.

Upgrade to Premium β†’

9. Correlated Subquery for Ranking

Company: Atlassian Difficulty: easy πŸ”’ Premium Categories: Data analysis, Data engineering

Objective

Construct a SQL query to fetch the order_id, customer_id, and total_amount of the top three highest-value orders from the orders table. If multiple orders share the same total_amount within the top three ranks, include all such orders in the result.

Additional Information...


πŸ”’ Premium Content

Detailed explanation and solution available for premium members.

Upgrade to Premium β†’

10. Sync Product Catalog from CSV to SQLite Database

Company: Atlassian Difficulty: medium Categories: Data analysis, Data engineering, Quality assurance

Compare CSV updates against an SQLite database to synchronously insert new products and update existing product prices using Python and SQL transactions.

11. CSV and Partitions

Company: Atlassian Difficulty: easy Categories: Data analysis, Data engineering

Read an orders CSV file into a Spark DataFrame and determine how many partitions Spark created for the data.

12. Anonymize User PII Data for a Social Media Platform

Company: Atlassian Difficulty: medium Categories: Data analysis, Data engineering

Practice data masking and string manipulation in Snowflake SQL with this PII anonymization interview question. You extract email domains using substring functions and mask phone numbers to protect user privacy. Covers SPLIT_PART, SUBSTR, CONCAT, and data anonymization techniques in Snowflake. Common in data engineering interviews at companies like Atlassian.

13. Group and Concatenate

Company: Atlassian Difficulty: medium πŸ”’ Premium Categories: Data analysis, Data engineering

Crafting an SQL Query to Retrieve Detailed Order Information with Alphabetized Product Names

Objective

For this SQL interview question, your task is to write a query to retrieve a comprehensive list of all orders. Each order's details should include the unique identifier for the order, th...


πŸ”’ Premium Content

Detailed explanation and solution available for premium members.

Upgrade to Premium β†’

14. Course Enrollment Ranker

Company: Atlassian Difficulty: medium πŸ”’ Premium Categories: Data analysis, Data engineering

Interview Question: Write an SQL Query to Retrieve Courses by Enrollment with Ranking

Objective

Write an SQL query that retrieves the names of courses, their enrollment counts, and their ranks based on enrollment, from the provided courses and registrations tables. The courses should be ra...


πŸ”’ Premium Content

Detailed explanation and solution available for premium members.

Upgrade to Premium β†’

15. Single Number

Company: Atlassian Difficulty: easy Categories: Data engineering

def single_number(nums: list[int]) -> int:
result = 0
for n in nums:
result ^= n
return result

16. Binary Tree Level Order Traversal

Company: Atlassian Difficulty: medium Categories: Data engineering

Definition for a binary tree node.

class TreeNode:

def init(self, val=0, left=None, right=None):

self.val = val

self.left = left

self.right = right

from collections import deque

def level_order(root: Optional[TreeNode]) -> list[list[int]]:
if not root:
return []

res = []
queue = deque([root])

while queue:
    level_size = len(queue)
    current_level = []
    
    for _ in range(level_size):
        node = queue.popleft()
        current_level.append(node.val)
        
        if node.left:
            queue.append(node.left)
        if node.right:
            queue.append(node.right)
            
    res.append(current_level)
    
return res

17. Word Search II

Company: Atlassian Difficulty: hard Categories: Data engineering

class TrieNode:
def init(self):
self.children = {}
self.is_word = False

def find_words(board: list[list[str]], words: list[str]) -> list[str]:
root = TrieNode()
for word in words:
node = root
for char in word:
if char not in node.children:
node.children[char] = TrieNode()
node = node.children[char]
node.is_word = True

res = set()
ROWS, COLS = len(board), len(board[0])

def dfs(r, c, node, word):
    if (r < 0 or r == ROWS or c < 0 or c == COLS or 
        board[r][c] not in node.children):
        return
        
    char = board[r][c]
    next_node = node.children[char]
    word += char
    
    if next_node.is_word:
        res.add(word)
        next_node.is_word = False 
        
    board[r][c] = "#" 
    
    dfs(r + 1, c, next_node, word)
    dfs(r - 1, c, next_node, word)
    dfs(r, c + 1, next_node, word)
    dfs(r, c - 1, next_node, word)
    
    board[r][c] = char 
    
    if not next_node.children:
        del node.children[char]
        
for r in range(ROWS):
    for c in range(COLS):
        dfs(r, c, root, "")
        
return sorted(list(res)) # Sorting for consistent testing validation

18. Meeting Rooms II

Company: Atlassian Difficulty: medium Categories: Data engineering

def min_meeting_rooms(intervals: list[list[int]]) -> int:
if not intervals:
return 0

start_times = sorted([i[0] for i in intervals])
end_times = sorted([i[1] for i in intervals])

s_ptr = 0
e_ptr = 0
active_rooms = 0
max_rooms = 0

while s_ptr < len(intervals):
    if start_times[s_ptr] < end_times[e_ptr]:
        active_rooms += 1
        s_ptr += 1
    else:
        active_rooms -= 1
        e_ptr += 1
        
    max_rooms = max(max_rooms, active_rooms)
        
return max_rooms

19. Ride Sharing API Testing

Company: Atlassian Difficulty: medium πŸ”’ Premium Categories: Quality assurance

Uber operates in over 10,000 cities worldwide with 130 million active users. QA testing of ride sharing APIs requires comprehensive validation of fare estimation, driver matching, trip tracking, and cancellation workflows to ensure reliable transportation experiences....


πŸ”’ Premium Content

Detailed explanation and solution available for premium members.

Upgrade to Premium β†’


Ready to Practice More?

Explore interview questions from other companies or try our hands-on labs to build practical experience.