Atlassian·Software Engineer·Onsite - System Design / Architecture
- Design a hierarchical tree data model that supports adding a node under a given parent and retrieving all descendants of a node. Walk through your REST API design and database schema choices.
- What are the read and write trade-offs between adjacency list, materialized path, nested set, and closure table storage strategies for trees?
- How would you handle edge cases like cycles, deletion of a subtree, moving a subtree to a different parent, and enforcing depth limits?
“I went straight to adjacency list because it felt obvious, and the interviewer just nodded and waited.”