Process took ~5 months. Applied online sometime around May/June of 2019. It's a 5 part process. Initially I was sent a Hackerrank challenge. I had read that you needed to complete 2 to pass and I completed 3/5 tasks and never heard back.
Fast forward to around October I received an email apologising for not following up and from then onwards the process was very efficient and contact was very regular.
Stage 2 was a phone interview. This is just a fairly easy casual discussion with a recruitment officer. They want to know a bit more about you, why you're changing roles, why you want to join Atlassian, what you like working out etc. Just be honest and forth coming.
Stage 3 is where it heats up.
This is a coding challenge done as a peer programming exercise with one of their engineers. You're given about 5 - 10 minutes at the start of the interview to go over the code.Mine was a user management service.
Along with the code comes a PDF with a series of questions that increase in difficulty. These questions are written as a simple bug report/feature request format which you need to solve. I asked my interviewer if the expectation is to finish all questions. He said he'd never had someone finish so it seems to me that the primary intent is the understand your work flow, probe your depth of knowledge and see how you tackle a problem.
It is extremely helpful to think out loud as much as possible, even if you start down the wrong path, it gives the interviewer openings to question your process which itself can be very insightful as they may reveal things you hadn't considered.
Learn TDD. They want to see you test your code properly. Can't overstate this enough, including edge cases. In my case, considering the edge cases out loud satisfied my interviewer and he told me I could ignore writing them in the interest of time but that it was good that I had noted those cases.
Stage 4 is what they call a project deep dive.
Describe your application in-depth. The more you can talk about it the better. Practice this! In my case they asked almost no questions for the first 15 - 20 minutes and let me speak uninterrupted. Practice DRAWING your architecture on a white board. Practice your discussion flow so that you can plan out the points you want to focus on. Speak of the areas that you feel most comfortable answering tough questions about because they will ask you to justify your choices. The more openings you can give them to ask questions about what you DO know will reduce the number of questions on things you may feel less comfortable on.
Be humble. It's okay to discuss areas of application design where you made mistakes. In my case, I confessed to some poor choices around an API design but was able to justify that by both acknowledging restrictions in the infrastructure to which we were deploying and as well as how I might tackle that problem differently with what I've learned since then.
Be prepared to answer things from REST architecture, performance, memory management, bug discovery and process of identification, testing methodology, team processes, automation, production environment. Basically everything you need to consider for an end-to-end application.
Answer some technical questions. See below
Complete a design challenge. This is pseudocode. My problem was to show an example of a basic connection pool. Things to consider are repeated method calls, concurrency, datastructures. Mentioning pitfuls in your basic design, even if you're unable to solve them there and then is really positive and shows you've considered the issues.
Stage 5 is an assessment of behaviour.
This section is primarily focused on behaviour and values. You will be interviewed by one or more dev managers - one of which will be your manager if you are given an offer. In some ways, this is the hardest to prepare for. Have LOTS of examples of situations that demonstrate your values and constructive behaviour. Even if the situation doesn't have a happy ending, be reflective in your preparation. In these cases, show how, while a mistake was made, lessons were learned.
Also, study up on Atlassian values. They are really important to the company. Find tangible examples that you can link back to these values. If you are naturally a good fit for the company, then these values will resonate with you.
In all interviews, it's positively received if you have a number of prepared questions.
One last thing, something that I really appreciated throughout the process was that after each stage, your recruitment officer reaches out with feedback from your interviewers. This is incredibly valuable