I briefly filed an application at Atlassian; I then got an email with a link to a seemingly personalised online test. Their questions match the info I gave them in my application so accordingly that I'm imagining they either had a fancy application-auto-processing keyword-extracting machine learning algorithm and system, or some humans to read the applications.

I am sharing the questions that I faced in the test. What I said I was able to do included:

  • Python, Java
  • OOP, design patterns, Java generics, essential functional programming

And the test pretty much hit me spot-on on those topics.

Test questions

Suggested time: 1.5h; actual used: ~3h.

5 multi-choice; 3 coding; 2 short-answer.

1.1 Singleton pattern: An implementation was given, and it asks to identify what's wrong.

1.2 JVM method invocation mechanism: Don't know what this was, but "<init>", "<clinit>" was mentioned.

1.3 try-finally block: What happens if in "try" I return true, but in "finally" I return false?

1.4 "char" in Java: How many bits is used under the hood? Is it a signed or unsigned number?

1.5 Run-time typechecking against generic type: What's wrong with doing "if (myObject instanceof List)"?

2.1 Write a method that takes two arrays and returns the index on the first array, from which point on the subarray of it is the same as the second array.

2.2 A recursive implementation of a fold was given (taking an initial value, a list, and a function). Change it to iterative.

2.3 An interface of a ternary tree is given. (With heaps of generics used, e.g. "Either<Type, Triple<Tree<Type>>>") Write a method that returns a list of leafs in order of in-order traversal.

3.1 Name a product you use, and a way to improve it.

3.2 Market yourself within 140 chars.