Just finished my Asana loop a couple months ago for a senior SWE role. Sharing since there's not a ton of detail out there on what the system design round actually looks like.
Short version: it's not a trick. They want to see how you think about collaborative, real-time systems, which makes sense given what Asana actually is.
The prompt I got: design a real-time task management system that handles concurrent edits. Basically a stripped-down Asana. I don't know if that's a permanent prompt or rotates, but it felt very deliberate.
What they're actually looking for: How you handle conflict resolution when two users update the same task field at the same time (CRDT, last-write-wins, OT, whatever your reasoning is). Your API design, both REST and thinking about when WebSockets make sense vs polling. How you'd shard or partition data for a team with 50,000 tasks. Notifications and event propagation at scale.
They pushed back on every hand-wavy answer. When I said 'we can use a message queue' they immediately asked which one, why not Kafka vs SQS, what happens if the consumer falls behind. Standard stuff but they don't let you skip it.
The interviewer was an L6. Asked clarifying questions throughout rather than just listening. It felt more like pair designing than a test, honestly. That surprised me coming from places where the interviewer is stone-faced for 45 minutes.
Time: 45 minutes actual design time, 5-10 minutes of intro and wrap.
One thing I'd flag: Asana's product is deeply about workflows and dependencies. If you can naturally work in comments like 'task dependencies would need special handling because...' it signals you've thought about their domain, not just abstract system design.
I made it to the next round so this worked well enough. Happy to answer specific questions.