This was easily one of the better candidate pipelines I've gone through. Everyone, from the recruiters to the interviewers, was really nice and approachable. Special shout out to the recruiter who helped me reschedule the virtual onsite after a week of family illness.
Here were the interview steps:
1. Phone screen with a recruiter. Basic behavioral and cultural stuff.
2. Technical Screener with an engineer. This was a HackerRank problem. I don't have a math or CS background, so I had to spend a bit of time with the interviewer to make sure that I understood the problem. Once I had all the terms correctly defined, it was a pretty straightforward task. We then chatted briefly about the space and time complexity of my solution.
3. Prep call with a recruiter. This was a call with a different recruiter, and was focused on preparing for the virtual onsite. I guess technically this wasn't an interview round, but still helpful to know about.
4. Virtual Onsite. This was a 4.5 hour process. The length definitely made it a bit of a gauntlet, but the interviewers were so great that I wasn't totally wiped by the end of the process. I go into more detail on this step below.
5. Offer. Within 2 business days, the recruiter reached out and extended an offer. Like the rest of the process, it was very punctual and respectful. They don’t want to waste anyone’s time, which shows.
Overall, the entire process was awesome. They care about candidates, which was clear throughout the pipeline.
There were 5 rounds during the virtual onsite (with a few breaks thrown in): Values, Data Structures, Code Design, Hiring Manager, and Systems Design
Values:
Values are super important to Atlassian, so make sure you read up on them before hand. Otherwise, normal (albeit very important) behavioral questions. The interviewer did ask a good amount of follow up questions, so be prepared to dive into your answers a bit.
Data Structure round:
This was a live-coding exercise. Given the name of the round, I was expecting something much more Computer Science-y. I was pleasantly surprised to find that, rather than something like implementing a B-Tree from scratch, the round was focused on dealing with reasonably complex, reasonably realistic data structures. (Hashes, arrays, nested keys, etc). After solving the problem, the interviewers threw in additional complications/requirements. This happened 3 times. I ran out of time building out the final requirement, but was able to walk through the changes I would have made. That seemed to be sufficient for the interviewers.
Coding Design round:
This was another live-coding exercise. The challenge was to implement an MVP version of a common web API feature. I was asked to test the solution as well. This was probably my weakest round. I got clever with a implementation detail and it, of course, bit me in the butt while writing tests. Like all coding challenges, it’s super important to verbalize your thought process. As sub-optimally as I performed in this round, it would have been a million times worse if I just didn’t talk while thinking through the process.
Hiring Manager round:
Again, a round with important but routine behavioral questions. The STAR method will get you pretty far here. The interviewer also left me a ton of time to ask my own questions. I walked away from this round with a pretty solid understanding of the company and team culture.
System Design round:
This was a very by-the-book design round. We used the whiteboard feature of HackerRank. That being said, it was mostly conversational. Once we had a more-or-less functioning design, we chatted tradeoffs. If you have any amount of Distributed Systems experience, or if you've studied for System Design interviews at all, you'll know what to do.