Atlassian | Karat round | Technical round | Code design round | P40

atlassian logo
atlassian
May 21, 202521 reads

Summary

This post details my interview experience at Atlassian, covering a Karat round, a technical round, and a code design round, including specific coding and system design problems.

Full Experience

🧠 Karat Round The Karat round was structured around 5 rapid-fire system design questions followed by a coding problem.

⚙️ System Design (Rapid Fire) I don’t remember the exact questions, but the theme was mostly around:

Performance improvement Component design System scalability Trade-offs between DB, memory, and caching These were not deep-dive design rounds but tested: Quick structuring Trade-off analysis Communication of ideas

💻 Coding Problem Problem: You’re given a list of user actions like:

users : [["Alice", "Connect"], ["Bob", "Disconnect"], ["John", "Connect"]]
Goal: Group users by their action.

Expected Output:
{
    "Connect": ["Alice", "John"],
    "Disconnect": ["Bob"]
}

👨‍💻 Round 1: Technical Round 1 This round had two problems: one on interval assignment, and another on route matcher system design.

🏟️ Question 1:

Court Assignment (Interval Allocation)
Input: [[1, 4], [4, 5], [2, 4]]
Goal: Assign each interval to a court such that no overlapping intervals are on the same court. We have infine number of courts 

Expected Output:
{
    1: [[1, 4], [4, 5]],
    2: [[2, 4]]
}

Approach: Sort intervals by start time Use a min-heap to keep track of court end times Assign to the first available court or open a new one

Round 3 : Code Design - Dynamic Route Mapping

Design a system to register routes and support wildcard path matching.

Examples:****
AddRoute("/a/b/c", "value1")
getRoute("/a/*/b") // value1

AddRoute("/a", "test");
getRoute("/a") //. test

Improved Design:

Used a Trie-based structure to support wildcards Implemented logic to resolve * in any segment Discussed performance and scalability for large route sets

Interview Questions (3)

Q1
Group Users by Action
Data Structures & Algorithms

You’re given a list of user actions like:

users : [["Alice", "Connect"], ["Bob", "Disconnect"], ["John", "Connect"]]
Goal: Group users by their action.

Expected Output:
{
    "Connect": ["Alice", "John"],
    "Disconnect": ["Bob"]
}
Q2
Court Assignment (Interval Allocation)
Data Structures & Algorithms
Court Assignment (Interval Allocation)
Input: [[1, 4], [4, 5], [2, 4]]
Goal: Assign each interval to a court such that no overlapping intervals are on the same court. We have infine number of courts 

Expected Output:
{
    1: [[1, 4], [4, 5]],
    2: [[2, 4]]
}
Q3
Dynamic Route Mapping with Wildcards
System Design
Design a system to register routes and support wildcard path matching.

Examples:****
AddRoute("/a/b/c", "value1")
getRoute("/a/*/b") // value1

AddRoute("/a", "test");
getRoute("/a") //. test

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!