Atlassian | Karat Screening | P40 | April 2025

atlassian logo
atlassian
April 1, 20254 reads

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)

Q1
Hospital Booking System Optimization
System Design

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?

Q2
Supermarket Shopping Hops Optimization
Data Structures & Algorithms

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

Q3
Carpooling to Campground
Data Structures & Algorithms

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]

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!