I first applied for Atlassian through their online careers website. Not long afterwards, I received an email from them with a link to an online set of challenges to solve, after which they might consider giving me a phone interview.
The online questions were not that hard (and were not timed); they consisted of 4 multiple choice questions about the intricate details of Java, 3 (somewhat long) coding questions that were not too complex (eg. flatten a tree, implement this recursive algorithm iteratively without knowing what it does, etc...), and a couple of short discussion questions about why you would like to work there.
After passing that stage, I moved on to a phone interview which consisted of some pretty standard questions (why do you want to work at Atlassian), some behavioural questions (mention some times where you worked well in a team), and some very easy technical questions (difference between a set, a list, and a map).
Finally, I was scheduled in for the final round interviews. Normally, these are done on-site in Sydney, however because I lived in Melbourne, these were done over Skype.
There were three interviews done in a row:
1) A "technical" interview: consisted of theoretical and practical questions about Java, algorithms, concurrency, and some other questions to get a feel for the level of proficiency in the computer science.
2) A "whiteboard" interview: consisted of taking the guys on the other side through a previous significant project I'd completed, the design process, why certain decisions were made over others, the reasoning behind them, etc... WARNING: you are expected to take the lead in this interview and show off your project. My mistake here was that I was too passive and waited for them to ask questions, and so they did not fully understand the project I have chosen.
3) A "coding" interview: consisted of (in "pair-programming" with an interviewer watching your screen and helping to bounce off ideas) implementing a Stack in Java that passed some given correctness and performance unit tests. The problem itself was quite easy (I finished it in < 10 minutes), and the extensions requested were also easy. WARNING: you are expected to communicate your decisions and tradeoffs very well here. My mistake was that I "didn't convince the interviewer that I understood the concepts", mainly because I was expecting she would ask and nudge me when she wanted to know why I chose eg. an array, while she was expecting me to prove to her that I understand it.
Overall, the process was clear and timely, however, I felt a bit unfairly treated by the final interviews. The fact that they were on Skype and that I was not told my entire responsibilities in these interviews made communication a bit harder.
I would recommend that anybody undertaking these interviews be ready to convince the interviewers that they understand the problems, and that they have considered the options well before making a decision.