Intermediate to Advanced
DSA and System Design
Everything in the DSA course, plus a full System Design curriculum that covers the building blocks of large-scale systems and the judgement to combine them. Built for engineers targeting senior, staff and architect roles.
- Duration
- 28 weeks
- Modules
- 9
- Topics
- 64
- Format
- Live and Recorded Classes
What you will be able to do
- Everything from the DSA course, plus the design skills senior interviews test
- Reason about trade-offs in latency, consistency, availability and cost out loud
- Choose between SQL and NoSQL, and justify the choice with real constraints
- Design caching, sharding and replication strategies that survive scrutiny
- Work through a system design interview with a repeatable structure instead of improvising
- Translate the same judgement into architecture decisions in your day job
Who this is for
- Mid-level engineers targeting senior or staff roles
- Engineers whose coding is strong but who struggle with open-ended design questions
- Backend and full stack engineers moving toward architecture work
Prerequisites
- One to two years of professional software engineering experience
- Comfort with any backend language
- Basic understanding of databases and HTTP
Curriculum
9 modules, 64 topics, covered in depth.
Module 1
Everything in the DSA Course
The full sixteen-week DSA curriculum is included, from complexity analysis through graphs and dynamic programming.
- Foundations and complexity analysis
- Sorting
- Two pointers and sliding window
- Binary search
- Recursion and backtracking
- Trees
- Heaps
- Graphs
- Dynamic programming
- Interview execution
Module 2
System Design Foundations
The vocabulary and mental models the rest of the curriculum builds on.
- Vertical vs horizontal scaling
- Latency, throughput and bandwidth
- Availability, reliability and fault tolerance
- The CAP theorem and what it actually constrains
- Consistency models
- Back-of-the-envelope estimation
Module 3
Networking and Delivery
How a request reaches your system and what sits in front of it.
- DNS and how resolution works
- HTTP, HTTPS and connection reuse
- Load balancing algorithms
- Reverse proxies and API gateways
- Content delivery networks
- WebSockets, long polling and server-sent events
Module 4
Data Storage
Where the hard trade-offs live. Most design interviews turn on this section.
- Relational databases and indexing
- SQL vs NoSQL and how to choose
- Database replication
- Sharding strategies and hotspots
- Consistent hashing
- ACID and BASE
- Transactions and isolation levels
- Object storage and blob stores
Module 5
Caching
The highest-leverage optimisation, and the easiest to get wrong.
- Cache placement: client, CDN, application, database
- Cache-aside, read-through, write-through, write-back
- Eviction policies
- Cache invalidation strategies
- Redis and Memcached in practice
- Thundering herd and cache stampede
Module 6
Asynchronous Systems
Decoupling producers from consumers, and the failure modes that follow.
- Message queues and brokers
- Publish-subscribe
- Apache Kafka fundamentals
- Event-driven architecture
- Delivery guarantees and idempotency
- Dead letter queues and retries
- Stream processing
Module 7
Architecture and Operations
How systems are structured, deployed and kept alive.
- Monolith vs microservices
- Service discovery
- API design: REST, GraphQL and gRPC
- Rate limiting algorithms
- Circuit breakers and bulkheads
- Observability: logs, metrics and traces
- Distributed consensus and leader election
Module 8
Design Case Studies
Full end-to-end designs worked through the same way you would in an interview.
- Design a URL shortener
- Design a rate limiter
- Design a news feed
- Design a chat system
- Design a ride-hailing service
- Design a video streaming platform
- Design a distributed search
- Design a notification system
Module 9
The Design Interview
A repeatable structure for the forty-five minutes you actually get.
- Clarifying requirements and scoping
- Estimating scale before designing
- Drawing a high-level design first
- Going deep where the interviewer probes
- Stating trade-offs explicitly
- Handling follow-up constraints
Roles this prepares you for
- Senior Software Engineer
- Staff Engineer
- Tech Lead
- Principal Engineer
- Software Architect