temporal·Software Engineer·Onsite - System Design / Architecture
May 2026
System design round at Temporal for a software engineer role. The whole session was basically one big question about building a chat system, but it branched into a lot of sub-topics fast and I felt like I was constantly context-switching between transport layer stuff and distributed systems theory.
- Design a 1-on-1 chat system end to end, covering client connectivity, message delivery, persistence, and read receipts.
- Walk through your message pipeline using Kafka. What consumer latency do you expect, what delivery semantics do you use, and how do you partition by conversation?
- How does Kafka differ from Redis as a backing store for a messaging system, and when would you choose one over the other?
- How do you handle fan-out to a recipient who is online versus sending a push notification when they are offline?
- How do you guarantee message ordering within a conversation?
- How would you implement online and offline presence detection?
“This felt manageable at first but the scope kept expanding.” The rest of the author's notes on Software Engineer interview at temporal, Onsite - System Design / Architecture round, covers how they worked through the question, what the panel pushed back on, and what they would do differently.
View Post