Atlassian·Software Engineer·Technical Phone Screen
May 2026
Atlassian software engineer interview with a meaty trie-based URL router problem. The question had a lot of layers: core data structure, wildcard precedence, concurrency, complexity analysis, and tests all in one go. Felt like a system design and coding question smashed together.
- Design and implement a URL routing matcher using a trie. It should support adding and removing route patterns at runtime, matching request paths, static segments, and a single-segment wildcard `*` that matches exactly one segment.
- How do you handle precedence when both a static segment and a wildcard could match the same path at the same position?
- What are the time and space complexities for insert, remove, and lookup in your trie implementation?
- How would you make this trie thread-safe when routes can be added or removed concurrently with reads?
- Write unit tests covering edge cases: root path `/`, leading/trailing slashes, duplicate route registration, and overlapping wildcard patterns.
“The trie structure itself wasn't the hard part.” The rest of the author's notes on Software Engineer interview at Atlassian, Technical Phone Screen round, covers how they worked through the question, what the panel pushed back on, and what they would do differently.
View Post