Microsoft SDE Intern Interview Experience
💼 LTIMindtree Interview Experience (On-Campus) | Fresher | 2026
Salesforce SMTS | Interview Experience | Rejected
JPMC | SDE2 (Associate) - Java Backend - Interview Experience + Compensation
Microsoft - SDE2 - Coding Round
Atlassian | Karat round | Technical round | Code design round | P40
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)
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"]
}
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]]
}
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