Atlassian P6 | Sydney | Rejected offer
Summary
I interviewed for a Principal (P6) role at Atlassian in Sydney, a process that spanned four months. Despite strong performance in most rounds, I was down-leveled to P5 after two system design attempts and ultimately rejected the low-balled offer.
Full Experience
The entire interview process took approximately four months, though I believe it could have been expedited to two. I applied for a P6 (Principal) role, bringing 8 years of experience to the table.
After an initial HR call, I proceeded through six distinct interview rounds:
Coding Interviews (2 rounds, 45 minutes each, with a 15-minute break):
The interviewers paid close attention to code quality, writing tests, and my thought process, including discussing alternative solutions. I appreciated that I was allowed to use my own IDE, which really emulated a real-world work environment.
First Coding Round:
- I was asked to implement a rate limiter. I used a leaking bucket algorithm, which I had reviewed the day before.
- The next task was to modify it for per-user functionality, which I achieved by adding a concurrent hashmap to manage individual buckets.
- Finally, I had to incorporate a credit system for users if their allocated rate wasn't fully utilized. Fortunately, my existing code was quite adaptable to this requirement.
- We concluded with discussions on thread safety, JVM specifics, and how to scale the solution to a distributed system.
My outcome for this round was Strong Hire P6.
Second Coding Round:
- I tackled a problem to sort a collection, which was very similar to LeetCode's "Rank Teams by Votes".
My outcome for this round was also Strong Hire P6.
System Design (1 hour):
I was asked to design a web crawler. I did make a few initial mistakes, specifically forgetting to account for loops in the obtained links, but I quickly corrected my design after the interviewer pointed it out. For a P6 role, I felt there was no room for error or hesitation, and any misstep seemed to be noted. I generally found the judging criteria for this round to be quite biased and unrealistic.
The outcome for this round was Hire P5, which was my biggest setback.
Craft Interview (1 hour):
This round involved an in-depth discussion about my project architecture, the problems I'd faced, the trade-offs I'd made, and my responsibilities. Given my recent company-wide impact, I didn't encounter any issues here.
My outcome was Strong Hire P6.
Management Interview (1 hour):
This was a standard behavioral discussion with the hiring manager, covering my achievements, trade-offs, and conflict resolution strategies.
The outcome was In between Hire and Strong Hire P6.
Values Interview (30 minutes):
This was a slightly less in-depth behavioral round. I found that I could pretty much use the same answers from the management interview.
Despite receiving "Strong Hire" ratings for most rounds, except for system design, Atlassian didn't offer me the P6 role directly. Instead, they requested that I redo the system design interview.
Second System Design (1 hour):
This time, I was tasked with designing a tagging system specifically for Atlassian products. I felt very confident going into this, but the interviewer was extremely tedious about API design, which consumed a significant portion of my time. As a result, the final design ended up feeling somewhat hectic.
The outcome was again Hire P5.
In the end, I was low-balled to a P5 offer. I suspect this might be a common practice for them to pay less. The total compensation offered was 190k AUD base, a 15% annual bonus, and 250k USD in RSUs over four years.
I ultimately rejected the offer, primarily due to recent negative reviews I had seen on Blind and Glassdoor regarding Atlassian.
Interview Questions (4)
Implement a rate limiter. Initially, I implemented a leaking bucket algorithm. Then, I had to modify it to be per user by adding a concurrent hashmap. Finally, I needed to add a credit system for each user in case the rate was not used. We also discussed thread safety, JVM, and how to make it distributed.
Design a web crawler. During the discussion, I initially forgot about loops in obtained links, which I quickly fixed after the interviewer mentioned it.
Design a tagging system specifically for Atlassian products. The interviewer was very particular about API design, which took up a significant portion of the time.