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 Screening | P40 | April 2025
Summary
I appeared for an Atlassian Karat screening round, which included a system design scenario and two coding questions.
Full Experience
Appeared for the attlassian Karat screening round recently and the following questions were asked:
Started with a brief introduction and format of the interview then 5 System design scenario related questions were asked in a frame of 20 mins. For example:
You are given a hospital booking management system where you have a queue of patients waiting for the slot to visit a doctor. As soon as a slot becomes available you do follwoing things:
a. Take the first person of out the waiting queue and text them the available slot details and wait for 30 mins for them to respond. b. If they respond yes then you remove them from waiting. c. If they respond no, you put them back in front of the queue.
How would you optimise such a system?
Then the interviewer jumped to the coding questions:
First Question:
You are given a 2-D array mentioning the product and its department in a supermarket and a list of item you have to purchase. You can buy the items in 2 formats:
(A) Pick items as mentioned in shopping list (this would require multiple visits to similar departments) (B) Buy all the items of a department together in one shot.
You need to find the additional hops of departments you would be having in approach a.
For example: products = [ [apple, fresh], [banana, fresh], [milk, dairy] .... ]
list = [apple, milk, banana]
Number of hops in approach a = fresh -> dairy -> fresh = 3 Number of hops in approach b = fresh -> dairy = 2
Additional hops = 1
Second Question:
You and your friends are driving to a Campground to go camping. Only 2 of you have cars, so you will be carpooling.
Routes to the campground are linear, so each location will only lead to 1 location and there will be no loops or detours. Both cars will leave from their starting locations at the same time. The first car to pass someone's location will pick them up. If both cars arrive at the same time, the person can go in either car.
Roads are provided as a directed list of connected locations with the duration (in minutes) it takes to drive between the locations. [Origin, Destination, Duration it takes to drive]
Given a list of roads, a list of starting locations and a list of people/where they live, return a collection of who will be in each car upon arrival to the Campground.
Bridgewater--(30)-->Caledonia--(15)-->New Grafton--(5)-->Campground ^ Liverpool---(10)---Milton-----(30)-----^
roads1 = [ ["Bridgewater", "Caledonia", "30"], <= The road from Bridgewater to Caledonia takes 30 minutes to drive. ["Caledonia", "New Grafton", "15"], ["New Grafton", "Campground", "5"], ["Milton", "New Grafton", "30"], ["Liverpool", "Milton", "10"] ] starts1 = ["Bridgewater", "Liverpool"] people1 = [ ["Jessie", "Bridgewater"], ["Travis", "Caledonia"], ["Jeremy", "New Grafton"], ["Katie", "Liverpool"] ]
Car1 path: (from Bridgewater): [Bridgewater(0, Jessie)->Caledonia(30, Travis)->New Grafton(45)->Campground(50)] Car2 path: (from Liverpool): [Liverpool(0, Katie)->Milton(10)->New Grafton(40, Jeremy)->Campground(45)]
Output (In any order/format): [Jessie, Travis], [Katie, Jeremy]
Interview Questions (3)
You are given a hospital booking management system where you have a queue of patients waiting for the slot to visit a doctor. As soon as a slot becomes available you do follwoing things:
a. Take the first person of out the waiting queue and text them the available slot details and wait for 30 mins for them to respond. b. If they respond yes then you remove them from waiting. c. If they respond no, you put them back in front of the queue.
How would you optimise such a system?
You are given a 2-D array mentioning the product and its department in a supermarket and a list of item you have to purchase. You can buy the items in 2 formats:
(A) Pick items as mentioned in shopping list (this would require multiple visits to similar departments) (B) Buy all the items of a department together in one shot.
You need to find the additional hops of departments you would be having in approach a.
For example: products = [ [apple, fresh], [banana, fresh], [milk, dairy] .... ]
list = [apple, milk, banana]
Number of hops in approach a = fresh -> dairy -> fresh = 3 Number of hops in approach b = fresh -> dairy = 2
Additional hops = 1
You and your friends are driving to a Campground to go camping. Only 2 of you have cars, so you will be carpooling.
Routes to the campground are linear, so each location will only lead to 1 location and there will be no loops or detours. Both cars will leave from their starting locations at the same time. The first car to pass someone's location will pick them up. If both cars arrive at the same time, the person can go in either car.
Roads are provided as a directed list of connected locations with the duration (in minutes) it takes to drive between the locations. [Origin, Destination, Duration it takes to drive]
Given a list of roads, a list of starting locations and a list of people/where they live, return a collection of who will be in each car upon arrival to the Campground.
Bridgewater--(30)-->Caledonia--(15)-->New Grafton--(5)-->Campground ^ Liverpool---(10)---Milton-----(30)-----^
roads1 = [ ["Bridgewater", "Caledonia", "30"], <= The road from Bridgewater to Caledonia takes 30 minutes to drive. ["Caledonia", "New Grafton", "15"], ["New Grafton", "Campground", "5"], ["Milton", "New Grafton", "30"], ["Liverpool", "Milton", "10"] ] starts1 = ["Bridgewater", "Liverpool"] people1 = [ ["Jessie", "Bridgewater"], ["Travis", "Caledonia"], ["Jeremy", "New Grafton"], ["Katie", "Liverpool"] ]
Car1 path: (from Bridgewater): [Bridgewater(0, Jessie)->Caledonia(30, Travis)->New Grafton(45)->Campground(50)] Car2 path: (from Liverpool): [Liverpool(0, Katie)->Milton(10)->New Grafton(40, Jeremy)->Campground(45)]
Output (In any order/format): [Jessie, Travis], [Katie, Jeremy]