Atlassian | Software Engineer P40 / P50

atlassian logo
atlassian
Software Engineer P40 / P50
July 10, 202529 reads

Summary

I interviewed for a Software Engineer P40/P50 role at Atlassian, which included a Karat screening, a code design round, a data structures round with a problem on commodity prices, and a system design round for a content tagging system. I am currently awaiting results.

Full Experience

Round 1: Karat Screening Round All are available or similar on LeetCode.

1 LC Medium 5 Multiple choice questions on system design

Round 2: Code Design Design a Middleware Router

Round 3: Data Structures

Commodity Prices Imagine you are given a stream of data points consisting of <timestamp, commodityPrice> you are supposed to return the maxCommodityPrice at any point in time.

The timestamps in the stream can be out of order, or there can be duplicate timestamps, we need to update the commodityPrice at that particular timestamp if an entry for the timestamp already exists Create an in-memory solution tailored to prioritize frequent reads and writes for the given problem statement

Can we reduce the time complexity of the getMaxCommodityPrice to O(1) if the language does not support it? This can be done using a variable to keep the maxPrice value, but we need to update it when performing the upsert operations

Round 4: System Design

Atlassian has a number of different products, each containing different types of content. As an example, let’s look at three of our products:

Jira – Issues
Confluence – Pages
Bitbucket – Pull requests

We want to build a system that allows users to tag content from different products, and then to view content by tags. A goal of this system is that it should be built on a product-agnostic way, so that we could add new products in the future without a large amount of work.

There are three key experiences that we want to build here:

  1. As a user, I can add, remove and update tags on content
  2. As a user, I can click on a tag and see all content that has been associated with that tag
  3. As a user, I can see a dashboard of popular tags

Imagine that you are on a team that needs to design and build the system to power this experience.

Round 4 : Result Awaited

Interview Questions (3)

Q1
Design a Middleware Router
System Design

Design a Middleware Router

Q2
Commodity Prices (Max Price in Out-of-Order Stream)
Data Structures & Algorithms

Imagine you are given a stream of data points consisting of <timestamp, commodityPrice> you are supposed to return the maxCommodityPrice at any point in time.

The timestamps in the stream can be out of order, or there can be duplicate timestamps, we need to update the commodityPrice at that particular timestamp if an entry for the timestamp already exists Create an in-memory solution tailored to prioritize frequent reads and writes for the given problem statement

Can we reduce the time complexity of the getMaxCommodityPrice to O(1) if the language does not support it? This can be done using a variable to keep the maxPrice value, but we need to update it when performing the upsert operations

Q3
Design a Content Tagging System
System Design

Atlassian has a number of different products, each containing different types of content. As an example, let’s look at three of our products:

Jira – Issues
Confluence – Pages
Bitbucket – Pull requests

We want to build a system that allows users to tag content from different products, and then to view content by tags. A goal of this system is that it should be built on a product-agnostic way, so that we could add new products in the future without a large amount of work.

There are three key experiences that we want to build here:

  1. As a user, I can add, remove and update tags on content
  2. As a user, I can click on a tag and see all content that has been associated with that tag
  3. As a user, I can see a dashboard of popular tags

Imagine that you are on a team that needs to design and build the system to power this experience.

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!