Hi All,
Recently I had a really nice experience with Atlassian.
The entire process took about 1.5 months.
HR Discussion (40 mins)
I was a bit surprised to see HR asking technical questions.
Round 1 - Low-Level Design (1 hour)
All coding rounds needed working code in IDE and supposed to write test cases.
This was a low level design round and lasted 1 hour. Allowed to use any IDE of your choice. I was asked to code the LLD for API rate limiter.
Desing API Rate Limiter. Solved it. Added more complexity. Was able to solve with some hints.
Round 2 - Code Design (1 hour)
Given a list of [FileName, FileSize, [Collection]] - Collection is optional, i.e., a collection can have 1 or more files. Same file can be a part of more than 1 collection.
How would you design a system
file1.txt(size: 100)
file2.txt(size: 200) in collection "collection1"
file3.txt(size: 200) in collection "collection1"
file4.txt(size: 300) in collection "collection2"
file5.txt(size: 100)Output:
Total size of files processed: 900
Top 2 collections:
- collection1 : 400
- collection2 : 300Round 3 - System Design (1 hour)
Atlassian has a number of different products, each containing different types of content. As an example, let’s look at four of our products:
Jira - Issues
Confluence - Web Pages
BitBucket - Pull Request
Trello - Board
How would you add tags for related pages across all Atlassian products.
How would you scale up the system to 100 Million tag requests a day.
Approach:
Round 4 - Values (1 hour)
Multiple behavioral based questions to check culture fit.
Round 5 - Management Round (1 hour)
Deep discussion about past experiences.
Received an offer after a week.
Note: Unlike other companies, Atlassian doesn't ask LC questions. They focus on seeing whether the candidate can solve real world problems. Really wish all companies moved to this pattern of interview.