Coach Jack has provided the following feedback on your session:
Wei demonstrated good system design thinking throughout the mock interview. He proactively drove the conversation and articulated many advanced tradeoffs relevant to Slack-style messaging systems.
Areas of strength included:
- Clearly enumerated functional and non-functional requirements, including quantitative metrics where appropriate.
- Discussed media message handling using pre-signed S3 URLs and blob storage.
- Proposed a watermark table + client tracking approach to handle multiple-device sync across clients.
- Reasoned about scalability with fanout models.
Areas for improvement:
- Condense and combine requirement statements for clarity—see ShowOffer’s system design writing standards for examples.
- Time allocation: Requirements took ~10 mins; high-level design ~25 mins. For Senior+ roles, aim for:
→ Requirements: 5 mins
→ APIs + Entities: 5 mins
→ HLD: 10–15 mins
→ Deep Dives: 15–20 mins or till the end of the interview
- On scale estimation, avoid over-investing time unless comparing tradeoffs or influencing architecture decisions.
- Proactively discuss durability, clarify which parts of the message lifecycle need persistence and for how long.
- Consider structuring feature rollout progressively:
- 1:1 text chat (online)
- Add media support (upload workflow)
- 1:1 with offline client
- Deletion support (e.g., is_message_deleted boolean column)
- Expand to group chats
- Improve clarity on media upload flow:
- When is media_id generated?
- When is the S3 pre-signed URL returned?
- For deletions, rather than physical removal, a soft delete using a boolean flag is often sufficient and more efficient.