← Nooks Interview Insights

Nooks·Software Engineer·Onsite - System Design / Architecture·Senior

SeniorPrefer not to say
Apr 2026

Summary

System design round at Nooks for a software engineering role, basically a full Twitter design question. Pretty involved conversation covering a lot of ground on the architecture side.

Questions Asked (1)

Q1

Design a system like Twitter, covering posting tweets, following users, viewing a home timeline, search, and notifications.

System DesignTechnical Trade-offsData Modeling
Author's notes

The timeline piece is where things got interesting and also where I spent most of my time.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then design the core data models and APIs for tweeting and following. Focus on the home timeline generation strategy (fan-out on write vs. read) and discuss trade-offs for search and notifications. Finally, address scalability, storage, and caching.

Pro tip: Demonstrate awareness of the 'celebrity problem' and propose a hybrid fan-out approach (push for normal users, pull for celebrities) to show depth. Also, mention how you'd handle consistency vs. availability trade-offs in timeline generation.

1. Clarify Requirements and Scale

Ask about functional and non-functional requirements: expected DAU, tweets per day, read/write ratio, latency requirements, and consistency needs. This sets the stage for design decisions.

2. Design Data Models and APIs

Define schemas for users, tweets, follows, and notifications. Outline key APIs: postTweet, follow, getHomeTimeline, searchTweets, and getNotifications.

3. Choose Timeline Generation Strategy

Compare fan-out on write vs. fan-out on read. Discuss hybrid approach for celebrities, and how to handle timeline caching and pagination.

4. Design Search and Notifications

For search, propose an inverted index (e.g., Elasticsearch) and discuss indexing pipeline. For notifications, design a push-based system with queues and workers.

5. Address Scalability and Trade-offs

Discuss sharding, replication, caching, and CDN for media. Highlight trade-offs: consistency vs. latency, storage cost vs. speed, and failure handling.

Key Points to Mention

  • Fan-out on write vs. fan-out on read for timeline generation, and the celebrity problem
  • Hybrid approach: push for normal users, pull for celebrities
  • Data sharding strategies (e.g., by user ID) and replication for availability
  • Caching strategies (Redis for timelines, CDN for media)
  • Search indexing with inverted index and near-real-time indexing pipeline
  • Notification system using message queues (e.g., Kafka) and push notifications

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.