Hi All,
Recently I had a really nice experience with Atlassian.
The entire process took about 1.5 months.
HR Discussion (40 mins)
- Detailed discussion on current projects and current roles and responsibilities.
- What data structures are used in LRU Cache.
- How would you design an in-memory cache to store a stream integer values.
- What are the major pros and cons of using a hashing data-structure.
- What are the key factors according to you that defines good code.
- What are microservices? How many microservices do you own in current role? Detailed discussion about how I came to own them and what do they do. How do they create impact to the larger picture?
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
- To calculate total size of files processed.
- To calculate Top K collections based on size.
Example:
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 : 300
Round 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:
- Identify the functional and non-functional requirements.
- Based on requirements specified
- Identify how would you store the data/DB to used.
- HLD: Identify the system components on a high-level and how will they interact with each other.
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.