Atlassian | P60 | Sept 2025 | Rejected

atlassian logo
atlassian
Principal EngineerRemote13 yearsRejected
October 3, 202552 reads

Summary

I recently interviewed for a Principal Engineer (P60) position at Atlassian, enduring a comprehensive 6-round process that included technical screenings, system design, code design, and behavioral evaluations. Despite progressing through all rounds, I was ultimately down-leveled to a P50 offer due to my performance in the final coding round, which I subsequently rejected.

Full Experience

My interview journey at Atlassian for a Principal Engineer position (P60) comprised six distinct rounds.

Round 1 (30 mins, Telephonic Screening)

This initial round involved a discussion about my prior experience and the scope of my current role. I was asked to discuss the approach for implementing an LRU cache, with no actual coding required. Following this, there was a design problem where I had to outline the approach for a collaborative editing system like Google Docs, focusing on conflict handling and WebSockets. Another design challenge involved a file storage and searching system that could query by file name or keywords, where I suggested using object storage and Elasticsearch. The round concluded with standard behavioral questions about my motivation for changing jobs and joining Atlassian.

Round 2 (45 mins, Values)

This round consisted of situation-based questions designed to assess my alignment with Atlassian's values. I don't recall the exact questions asked.

Round 3 (1 hour, Leadership Craft)

Similar to the previous round, this one focused on behavioral questions based on my past leadership experiences. Again, I cannot recall the precise questions.

Round 4 (1 hour, System Design)

I was tasked with designing a web scraping system capable of extracting image URLs from a given list of URLs. The problem specified certain API endpoints for initiating jobs, checking status, and retrieving results.

Round 5 (1 hour, Code Design)

This round presented a scenario where I was a cinema hall manager. The challenge was to design a function boolean canSchedule(Movie movie, MovieSchedule schedule); to determine if a new movie could be added to a single day's schedule (10 AM to 11 PM), given existing screenings. Movie times were represented as minutes from midnight.

Round 6 (1 hour, Data Structure)

The final technical round involved designing an employee directory system. The core problem was to find the closest parent group for a given set of employees within a hierarchical structure of groups and departments. I recognized this as a Lowest Common Ancestor (LCA) problem, but I struggled to articulate my solution to the interviewer and couldn't reach the expected depth of the problem due to time constraints.Unfortunately, my performance in the last coding round led to me being down-leveled to a P50 offer. Ultimately, I decided to reject the down-leveled offer.

Interview Questions (6)

Q1
LRU Cache Design Discussion
Data Structures & AlgorithmsMedium

Discuss the approach for implementing an LRU (Least Recently Used) cache. Coding was not required, only an architectural discussion.

Q2
Collaborative Google Doc Design
System DesignHard

Design a collaborative editing system similar to Google Docs. The discussion should focus on conflict handling mechanisms and the use of WebSockets for real-time updates.

Q3
File Storage and Search System Design
System DesignHard

Design a file storage and searching system. Files should be searchable by file name or by keywords within their content. The proposed solution should leverage object storage for files and Elasticsearch for content-based keyword searching.

Q4
Image Web Scraping System Design
System DesignHard

Design a web scraping system capable of scraping a given list of URLs and extracting all image URLs from them. The system should expose the following APIs:

1. POST /jobs -> {urls: ["abc.com", "amazon.com"]}  -> response ({job_id: 1234})
2. GET /jobs/{job_id}/status -> {"completed": "1", "inprogress": "1"}
3. GET /jobs/{job_id}/results -> {"https://abc.com": ["abc.com/img1.jpg"],"https://amazon.com": ["amazon.com/img1.jpg"]}
Q5
Cinema Movie Scheduling
Data Structures & AlgorithmsMedium

You are the manager of a cinema hall. Design a system to determine if a new movie can be added to an existing schedule without removing any current movies. The cinema operates from 10 AM to 11 PM on a single day. Movie start and end times are represented as minutes from midnight. Implement a function boolean canSchedule(Movie movie, MovieSchedule schedule); that takes a Movie (with its duration) and the current MovieSchedule as input, and determines if the movie can be scheduled. Example data provided:

{
  "movies": [
    {
      "title": "Lord Of The Rings",
      "durationInMinutes": 120
    },
    {
      "title": "Back To The Future",
      "durationInMinutes": 90
    }
  ],
  "screenings": [
    {
      "title": "Lord Of The Rings",
      "startTime": 660
    },
    {
      "title": "Lord Of The Rings",
      "startTime": 840
    },
    {
      "title": "Back To The Future",
      "startTime": 1020
    },
    {
      "title": "Lord Of The Rings",
      "startTime": 1200
    }
  ]
}
Q6
Employee Directory: Closest Parent Group (LCA)
Data Structures & AlgorithmsMedium

Given an employee directory structure composed of groups and departments, find the closest common parent group for a target set of employees. The problem is analogous to finding the Lowest Common Ancestor (LCA) in a tree structure. For example, in a given diagram (implicitly a hierarchy), the closest group for employees Alice and Lisa would be 'Engg'.

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!