← Nooks Interview Insights

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

SeniorPrefer not to say
Jun 2026

Summary

System design round at Nooks for a software engineer role, basically a Twitter clone question that sounds straightforward until you get into feed generation and celebrity accounts and realize there's a lot of ground to cover.

Questions Asked (1)

Q1

Design a simplified Twitter-like system that supports user accounts, following, posting short text, a profile timeline, and a home feed showing posts from followed accounts.

System DesignTechnical Trade-offsData Modeling
Author's notes

I started with requirements and APIs which felt safe, but the interviewer kept pushing toward the feed generation part and I hadn't fully committed to a strategy yet.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying functional and non-functional requirements, then estimate scale to inform design choices. Propose a high-level architecture with core components (API, services, data stores), and dive into data modeling and feed generation strategies, discussing trade-offs between fan-out on write vs. read. Conclude by addressing scalability, availability, and potential bottlenecks.

Pro tip: Explicitly discuss the trade-offs between push (fan-out on write) and pull (fan-out on read) models for the home feed, and suggest a hybrid approach for handling celebrity users. This shows you understand real-world complexities beyond basic design.

1. Clarify Requirements and Scale

Ask questions to define functional requirements (e.g., user accounts, following, posting, timelines) and non-functional requirements (e.g., latency, availability, consistency). Estimate scale (e.g., daily active users, posts per user, read/write ratio) to guide design decisions.

2. High-Level Architecture

Outline the main components: client, API gateway, user service, post service, timeline service, and data stores (SQL/NoSQL, cache, message queue). Explain how they interact to support the required features.

3. Data Modeling and Storage

Design schemas for users, follows, and posts. Choose appropriate databases (e.g., relational for user/follow, wide-column for posts) and discuss indexing for efficient queries (e.g., user timeline, home feed).

4. Feed Generation Strategy

Compare fan-out on write vs. fan-out on read for home feed. Discuss trade-offs (latency, storage, complexity) and propose a hybrid approach (e.g., push for normal users, pull for celebrities) to balance load.

5. Scalability and Trade-offs

Address scaling bottlenecks (e.g., hot users, storage growth) with techniques like sharding, caching, and asynchronous processing. Discuss consistency vs. availability trade-offs and how to handle failures.

Key Points to Mention

  • Fan-out on write vs. fan-out on read for home feed generation, including hybrid approaches for celebrity users.
  • Data modeling: separate tables/collections for users, follows, and posts; use of graph or relational DB for social graph.
  • Caching strategies (e.g., Redis) for user timelines and home feeds to reduce latency.
  • Sharding and partitioning strategies for posts and social graph to handle scale.
  • Asynchronous processing with message queues for feed updates and notifications.
  • Trade-offs between consistency and availability (CAP theorem) and how to choose based on requirements.

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