This document outlines a 5-step methodology for designing a system like Reddit or Quora:
1) Define use cases, assumptions, and constraints.
2) Perform back-of-the-envelope calculations for database design and daily traffic.
3) Design core components like APIs and services for key use cases like posting topics and reactions.
4) Create a high-level design diagram.
5) Scale the design through techniques like load balancing, database sharding, caching, and DNS.
Related topics: