Learning Materials
Resources to help you master system design interviews.
General Preparation Guidelines
Essential guides and strategies for preparing for system design interviews
Learn Fundamental Concepts
Fundamental concepts and building blocks of system design
How to make full-text search lightning fast
What is an inverted index? How Elasticsearch and Solr make full-text search fast across millions of documents. Simple explanation with examples.
Lessons on Building Scalable Search
Why you should separate search from your database: real-world lessons from Amazon. When search needs its own service and how to avoid overloading OLTP.
Decoupling search index: the essentials
Keep search index in sync with your database: CDC vs dual writes, versioning, resilience, and reconciliation. Quick reference for Elasticsearch and OpenSearch.
Keeping your search index in sync with your primary database (Part 1)
How to sync search index with database using CDC: DynamoDB Streams, PostgreSQL WAL, Debezium, Kafka. Versioning, backpressure, and dead letter queues.
Keeping your search index in sync with your primary database (Part 2)
Search index reconciliation, backfill strategy, and AWS Zero-ETL: DynamoDB export to S3, PostgreSQL replication slots, Aurora CDC to OpenSearch.
Common Misconceptions
Clarifying misconceptions that often come up in system design interviews and bootcamp Q&A.
Practical System Design Tips
Hands-on tips for building and operating systems—beyond interview prep.
We're always adding new content. Please check back for more resources.