Atlassian | Karat round | Technical round | Code design round | P40
Anonymous User
4158

🧠 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

Comments (0)