Atlassian | P40 | Bangalore | Interview Exp | Offer
Summary
I received an offer for a P40 role at Atlassian in Bangalore after completing six rounds of interviews covering Low-Level Design, Data Structures & Algorithms, High-Level Design, company values, and managerial discussion. My interview experience was thorough, leading to a successful outcome.
Full Experience
My interview journey with Atlassian began after receiving a referral. The process kicked off with an initial call from the recruiter, where they outlined the interview structure, what they look for in candidates, and provided some helpful prep guides. They scheduled the subsequent rounds two weeks later, giving me ample time to prepare.
1. LLD Round
I was tasked with implementing a Snake Game, but with a slight twist: the snake wouldn't grow after every food item eaten, but rather after every nth food item (where n was a given parameter). The primary focus was on code organization, creating appropriate objects, functions, and abstractions to ensure the implementation was modular, extensible, and clean. The expected output was a snakeGame object exposing a nextMove(dirn) function, requiring me to manage the board, snake, and food state internally. Despite practicing this problem beforehand, I slightly overshot the allocated time by 5-10 minutes.
2. DSA Round
This round involved an n-ary tree structure. For any given pair of leaf nodes, I needed to find their lowest common ancestor (LCA). The interviewer heavily emphasized explaining the time complexity and maintaining continuous communication of my thought process throughout the problem-solving.
After these two rounds, it took another two weeks for them to schedule the next set of interviews, which were set for one week later.
3. HLD Round
The challenge was to design a YouTube-like homepage for a software similar to Confluence. The goal was to display the most "engaged with" documents across the organization, with the additional requirement of not showing documents I had authored or already read. This was essentially a standard leaderboard design problem. I proposed using Cassandra to store user view information for documents. One area of discussion and critical feedback revolved around the database schema design, specifically how to accurately determine the ranking of pages for a particular user and effectively filter out documents they had already viewed.
4. Values Round
This round deeply explored Atlassian's guiding principles. I had to articulate how my past experiences aligned with their values. For instance, for the value "be the change you seek," I needed to recount a time I initiated a significant change within my previous company.
5. Manager Round
Similar to the values round, this interview focused more intensely on my previous work experience. The manager thoroughly questioned my past projects, looking for specific examples of how I embodied Atlassian's values within those projects. It was crucial to demonstrate a comprehensive understanding of all the work I had done.
Finally, after a couple more weeks for internal discussions and hiring committee reviews, I received the offer.
Interview Questions (5)
I was asked to implement a Snake Game with a slight variation. Instead of increasing in size every time it eats food, the snake only increases its size after eating every 'n'th food item. The focus was on code organization, creating appropriate objects, functions, and abstractions to ensure a modular, extensible, and clean implementation. The expected return object was a snakeGame object which exposes a nextMove(dirn) function, where the user inputs the next direction for the snake to move. I needed to internally manage the state of the board, the snake, and food items.
Given an n-ary tree structure, I needed to find the Lowest Common Ancestor (LCA) for any given pair of leaf nodes. The interviewer emphasized time complexity, clear explanations, and continuous communication of my thought process.
I was asked to design a YouTube-like homepage for a software like Confluence. The goal was to display the most "engaged with" documents across the organization. Additionally, the system should not show documents that I, as the user, have already written or read, similar to YouTube's recommendation system. It was mostly a standard leaderboard question.
This round revolved around Atlassian's principles. I was expected to provide examples showcasing how I embody their guiding values, such as 'be the change you seek' by describing a time I initiated change in my company.
This round was similar to the values round but with a much stronger focus on my previous experience. The interviewer delved deeply into my past projects, questioning how I demonstrated Atlassian values within those projects. It was important to show thoroughness regarding my past work.
Preparation Tips
For Low-Level Design (LLD), I focused on previous years' interview questions, practicing problems like the snake game, rate limiter, and parking lot design. I found ChatGPT to be a useful resource for gathering past interview questions from various platforms like Glassdoor, LeetCode, Blind, and GFG.
For Data Structures & Algorithms (DSA), I systematically tackled LeetCode questions asked in the last six months, prioritizing them by frequency.
My High-Level Design (HLD) preparation involved practicing previously asked system design questions such as Jira, tagging systems, and leaderboard designs.