Design a Twitter-like service
Company: Asana
Role: Software Engineer
Category: System Design
Difficulty: medium
Interview Round: Onsite
Design a simplified Twitter-like system that supports:
- Users can post short messages (tweets).
- Users can follow/unfollow other users.
- Home timeline: show a user a feed of recent tweets from accounts they follow (reverse chronological).
- View a user’s profile tweets.
Cover:
- APIs and core data model
- High-level architecture and storage
- Feed generation approach (fan-out on write vs fan-out on read)
- Caching, pagination, and ranking (optional)
- Consistency, reliability, and scalability considerations
Quick Answer: This question evaluates system design competencies including distributed systems, API and data modeling, feed-generation strategies, caching, pagination, consistency, and scalability for social feed functionality.