Resources →
Curated links I keep coming back to. No noise, just what actually works.
DSA
Start with NeetCode — great problem selection and clean video explanations. If a video doesn't click, find the same problem on Striver's sheet and watch his YouTube walkthrough instead. For DP specifically, Aditya Verma's playlist is unmatched.
Best structured problem list to go from 0 to interview-ready. Clean video explanations for every problem.
The classic 75-problem set that most interviews still revolve around. Do this first if you're short on time.
191 handpicked problems covering every DSA topic. Use as a fallback video source when NeetCode's explanation doesn't land.
The best Dynamic Programming playlist out there. Goes from first principles and builds intuition problem by problem.
System Design
Watch the playlist to build intuition for common patterns, then use Hello Interview for structured problem breakdowns. Reading actual engineering blogs from Uber and Netflix is what separates a good answer from a great one.
8-Week System Design Roadmap
- Mon: Requirements, capacity estimation, and back-of-the-envelope math
- Tue: Scalability, horizontal vs vertical scaling, stateless services
- Wed: Load balancing, health checks, failover
- Thu: Caching basics, TTLs, cache-aside, write-through
- Fri: DNS, CDN, API design, pagination, versioning
- Sat: Revisit every topic from the week and write trade-offs in your own words
- Sun: Practice - Design a URL shortener
Practice: Design a URL shortener (TinyURL)
Covers: requirements, API design, hashing, load balancing, caching
- Mon: SQL vs NoSQL and choosing the right database
- Tue: Indexing, query patterns, denormalization
- Wed: Replication, leader-follower, multi-leader
- Thu: Sharding, partition keys, rebalancing, hot partitions
- Fri: CAP theorem, consistency models, eventual consistency
- Sat: Revisit Week 1 + Week 2 together and compare storage trade-offs
- Sun: Practice - Design WhatsApp
Practice: Design WhatsApp
Covers: NoSQL, replication, partitioning, message storage, online presence
- Mon: Advanced caching, cache invalidation, cache stampede, hot keys
- Tue: Consistent hashing and distributed cache design
- Wed: Object storage, blob storage, metadata storage
- Thu: Read-heavy vs write-heavy systems
- Fri: Idempotency, deduplication, retries, exactly-once illusion
- Sat: Revisit Weeks 1-3 and redraw URL shortener + WhatsApp
- Sun: Practice - Design a distributed cache
Practice: Design a Distributed Cache
Covers: consistent hashing, replication, eviction, hot keys, failure handling
- Mon: Message queues, pub/sub, retries, dead-letter queues
- Tue: Kafka architecture, partitions, consumer groups, ordering
- Wed: Kafka vs RabbitMQ and when to use each
- Thu: Rate limiting algorithms and abuse prevention
- Fri: Fan-out, push vs pull, notification delivery guarantees
- Sat: Revisit Weeks 1-4 and write failure scenarios for each design
- Sun: Practice - Design a Notification System
Practice: Design a Notification System
Covers: Kafka, fan-out, retries, rate limiting, push vs pull, idempotency
- Mon: Monolith vs microservices and service boundaries
- Tue: Synchronous vs asynchronous service communication
- Wed: Saga pattern for distributed transactions
- Thu: CQRS and when separating reads/writes helps
- Fri: Event sourcing, outbox pattern, eventual consistency
- Sat: Revisit Weeks 1-5 and map patterns to earlier systems
- Sun: Practice - Design an order and payment system
Practice: Design an Order and Payment System
Covers: microservices, Saga pattern, CQRS, outbox pattern, consistency trade-offs
- Mon: WebSockets, long polling, server-sent events
- Tue: Presence systems and live status updates
- Wed: Feed generation, fan-out-on-write vs fan-out-on-read
- Thu: Search autocomplete, ranking, inverted indexes
- Fri: Observability, metrics, logs, tracing, SLOs
- Sat: Revisit Weeks 1-6 and explain every trade-off out loud
- Sun: Practice - Design a social feed
Practice: Design a Social Feed
Covers: fan-out, ranking, caching, feeds, hot users, observability
- Mon: Design Netflix / YouTube video streaming
- Tue: Design Uber ride matching and location tracking
- Wed: Design Ticketmaster with high-concurrency booking
- Thu: Design Dropbox file sync and metadata storage
- Fri: Design search autocomplete or rate limiter
- Sat: Revisit all weak topics and rebuild diagrams without notes
- Sun: Practice one full 45-minute system design round
Practice: Design Ticketmaster
Covers: high concurrency, locking, queues, consistency, payment flow
- Mon: Practice requirements clarification and scope control
- Tue: Practice capacity estimation and bottleneck analysis
- Wed: Practice data model and API design from scratch
- Thu: Practice scaling plan, failure modes, and trade-offs
- Fri: Review common mistakes and prepare reusable templates
- Sat: Revisit Weeks 1-7 and explain designs like an interview
- Sun: Mock interview on Pramp
Practice: Mock interview on Pramp
Covers: end-to-end system design, trade-offs, bottlenecks, scaling plan
Comprehensive YouTube playlist walking through common system design interview problems step by step.
Structured breakdown of a real system design question. Great template for how to approach any similar problem.
Real-world architecture decisions at scale. Reading this is how you get concrete examples to drop in interviews.
Deep dives into streaming, resilience, and distributed systems from one of the most interesting engineering orgs.
Free peer-to-peer mock interviews. Use near the end of the roadmap to practice under real interview pressure.
AI
If you're starting from scratch, go through AI Engineering from Scratch — it builds every algorithm from math before touching a framework. Karpathy's GPT video is the single best thing to watch to understand transformers from the ground up.
416 lessons, 20 phases — from linear algebra to autonomous agents. Every algorithm built from raw math before a single framework is imported.
Build a GPT from scratch in code. The clearest explanation of how transformers work under the hood. Watch this before reading any paper.