I have mixed feelings about this interview. I received a call out of the blue from a technical recruiter who asked if I was interested. He was polite, explained what they were looking for, and mentioned that multiple roles were available. He asked me to focus on design patterns and concurrency, given my 11 years of experience.
I asked for 20 days to prepare, which he agreed to. I was a bit skeptical that the process would be smooth since I had asked them to wait for 20 days. I had read many interview experiences on this site, which suggested that their follow-up and feedback process is not very efficient. Luckily for me, that was not the case; the interview and feedback were quite effective and within acceptable time limits.
Okay, so regarding the interview, I was asked to look at a code repository and correct or write test cases. I found this a bit overwhelming, as understanding the code repository and the problem, and then finding the right place in the code to fix an issue, is difficult (especially when someone is continuously watching your screen). It was supposed to be peer programming, but the interviewer was nowhere close to being a peer programmer. He was critical each time I fixed something in the code. I know he may have been trying to understand my thought process, but he should consider the code repository size and the pressure the candidate is under during an interview, and offer guidance.
I suggested discussing all the questions so that, even if I couldn't fix them all, he would still understand my thought process. He declined and said, "Let's finish the current problem." This is not a great approach. A candidate might find, for example, problem 2 difficult but problem 3 easy to solve (which he never got a chance to discuss since the candidate was stuck on problem 2).
Also, fixing code in that repository should not be the only assessment. The interviewer could spare 10-15 minutes to discuss design patterns, concurrency, Java features, TDD, etc. If the interviewee doesn't ask any questions other than fixing code in that repo, then there's hardly enough opportunity to prove that they are worth hiring.
Prepare for TDD, writing test cases, and make yourself proficient with keyboard shortcuts so you can navigate the code quickly.
The question was: "Why did you fix problem X using approach A and not approach B?"
I would suggest that before saying you have fixed the problem, take some time and see if you can improve it.
The following metrics were computed from 18 interview experiences for the Atlassian Senior Java Developer role in Sydney, Australia.
Atlassian's interview process for their Senior Java Developer roles in Sydney, Australia is extremely selective, failing the vast majority of engineers.
Candidates reported having mixed feelings for Atlassian's Senior Java Developer interview process in Sydney, Australia.