Design chat system for the interview
Design chat system for the interview. Open connections, the path of one 1:1 message, group fan-out, history, and presence.
Full interview prompts answered step by step, and the back-of-the-envelope estimation that sizes them.
Design chat system for the interview. Open connections, the path of one 1:1 message, group fan-out, history, and presence.
Design distributed cache for the interview. Placement, eviction, a stampede, a stale write, and the node that melts on a hot key.
Design notification system for interviews. Preferences, fan-out, quiet hours, and push, email, and SMS as separate workers.
Design payment system for the interview. The ledger, idempotent charges, capture and refund, and what the provider keeps.
Design search engine for the interview. Crawl, index, and query as three systems, plus typeahead as a smaller, hotter index.
Design web crawler for the interview. The frontier, politeness, the seen-set, freshness versus coverage, and a Bloom filter.
A step-by-step method for back-of-the-envelope estimation in system design interviews, with worked QPS and storage examples and the numbers to memorise.
Design news feed for the interview. Fanout on write versus fanout on read, what to cache, and how ranking stays out of the storage path.
Design URL shortener for the interview. The read path, the write path, how short codes are minted, and a capacity estimate you can redo.