I applied to a job posting on a forum, and the recruiter who responded was very friendly and approachable. He asked pertinent questions about my experience and scheduled an online test, followed by a coding test.
The online test was quite simple—boilerplate questions in Java involving code flow, exceptions, etc. The coding test, however, was a bit of a curveball. I have successfully interviewed with Google, Amazon, and Microsoft. In all of those interviews, they make you write code and discuss it extensively. One of those interviews was a remote coding interview, so I thought I had seen it all. But I was mistaken.
An Atlassian interview starts by sending some zipped code about 30 minutes before the scheduled interview. I was not informed of this, so I had to pick up the Skype call and sheepishly told them I needed 10 minutes to download and set it up in Eclipse. Once this was done, I quickly browsed through the code. It was a simple implementation of an event subscriber system with some test cases. I assumed I would be asked to improve or debug the system.
In my experience, these kinds of interviews are usually grueling. You will be asked to implement a method and then critique it in terms of efficiency, design, and logic. You may be asked about the algorithmic complexity (O(n), etc.) and challenged to improve it. Or you may be questioned about the fallacies in the design or checked on whether you handle edge cases gracefully.
In Atlassian's interview, however, no such questions were asked. They asked me to fix a failing test, which pointed to a simple bug. They objected to one of my methods, asking me to check the Javadoc of the API I was supposed to use. Apparently, the Javadoc specified it differently from how I assumed, and I went back to correct it. They asked me to change a behavior, and I promptly wrote a test case to drive it. When I had to debug a failing test, I used some System.out.println statements, though they hinted at using the debugger. When I was puzzled by a method in the Java library, I Googled for it. At the end of the interview, all tests were green, and I was happy.
Apparently, they weren't. The recruiter called me back after a week and told me they were rejecting me because they considered me borderline. Specifically, they were unhappy about me not using the debugger and not reading the Javadoc carefully. I was really surprised initially, but then it made sense. I was used to interviews that tested for programming concepts, knowledge of algorithms and data structures, program design skills, etc. But this was, I realized in retrospect, a test of software engineering principles. "They were testing to see if I followed software engineering best practices." TDD check, debugger check, attention to Javadoc check.
Personally, I am not sure if those are the most important qualities to look out for. But I wish I had known upfront that this is what they were looking for. Which is why I thought it would be a good idea to write this up for someone else's benefit. I am also adding specific feedback they gave me as interview questions below.
Overall, this was a sort of weird experience because I don't know what to take back home. For comparison, I was convinced by Amazon after a particular phone screen interview in which a guy grilled me about computer architecture, right from the command 'ls' down to the bits that move around in the microprocessor. A Google interviewer tested my debugging skills by posing a problem of a server that responds late a few times every day: "Now, how will you start to analyze the problem? Where can problems lie—DB, web server? How do you zero in?" Atlassian's interview was more of a checklist of best practices. So, it should be easy to beat, right? :)
All the best.
RTFM
TDD
Debugger
Overcomplicated
Search online
The following metrics were computed from 2 interview experiences for the Atlassian Senior Java Developer role in India.
Atlassian's interview process for their Senior Java Developer roles in India is extremely selective, failing the vast majority of engineers.
Candidates reported having mixed feelings for Atlassian's Senior Java Developer interview process in India.