- 01What Is Clean Code?B
- 02Meaningful NamesB
- 03Small Functions That Do One ThingB
- 04Comments & FormattingB
- 05Clean Error HandlingB
- 06KISS: Keep It Simple, StupidB
- 07DRY: Don't Repeat YourselfB
- 08YAGNI: You Aren't Gonna Need ItB
- 09Code Smells & RefactoringI
- 10Clean ArchitectureI
- 11SOLID at a GlanceB
- 12S — Single Responsibility PrincipleB
- 13O — Open/Closed PrincipleB
- 14L — Liskov Substitution PrincipleI
- 15I — Interface Segregation PrincipleB
- 16D — Dependency Inversion PrincipleI
Picture-first software engineering
Learn the big ideas the easy way.
Short lessons with diagrams, real-life analogies and small code examples, from clean code and SOLID to Kafka and Kubernetes.
- Topics
- 11
- Lessons
- 137
- Hours
- 8
- Library notes
- 0
Suggested learning path
Each topic builds on the ones before it. Jump in anywhere you like.
1Clean Code & SOLIDReadable code and flexible designs
2Design PatternsProven answers to common problems
3Software ArchitectureShape systems that last
4Data Structures & AlgorithmsThink like a problem solver
5Backend EngineeringServers, data and scale
6Frontend EngineeringFast, safe, delightful UIs
7MicroservicesSmall services, big systems
8Apache KafkaThe event streaming backbone
9KubernetesRun containers at scale
10System Design L6Design for scale, failure and recovery
11Database Design & PerformanceModel data, protect correctness, scale reads and writes
- 01What Is Software Architecture?B
- 02Layered (N-Tier) ArchitectureB
- 03MVC, MVP & MVVMB
- 04Clean Architecture in DepthI
- 05Hexagonal Architecture (Ports & Adapters)I
- 06Onion Architecture & Clean vs Hexagonal vs OnionI
- 07Domain-Driven Design: Strategic DesignI
- 08Domain-Driven Design: Tactical PatternsA
- 09Event-Driven ArchitectureI
- 10Microkernel (Plugin) ArchitectureI
- 11Serverless ArchitectureI
- 12Vertical Slice Architecture & the Modular MonolithI
- 13Choosing an ArchitectureI
- 01Big-O Notation Made SimpleB
- 02Arrays & StringsB
- 03Hash Maps & SetsB
- 04Two Pointers & Sliding WindowI
- 05Linked ListsI
- 06Stacks & QueuesB
- 07Trees & Binary Search TreesI
- 08Heaps & Priority QueuesI
- 09Graphs: BFS & DFSI
- 10Sorting AlgorithmsI
- 11Binary SearchI
- 12Recursion & BacktrackingI
- 13Dynamic ProgrammingA
- 14DSA Interview Patterns Cheat SheetI
- 01How a Web Request WorksB
- 02REST API DesignB
- 03REST vs GraphQL vs gRPCI
- 04SQL vs NoSQL DatabasesB
- 05Database Indexing & TransactionsI
- 06Caching & RedisI
- 07Message Queues & RabbitMQI
- 08Authentication, Authorization & API SecurityI
- 09Scaling, Load Balancing & Rate LimitingI
- 10Docker & ContainersB
- 11Observability: Logs, Metrics & TracesI
- 12Backend Languages: Node.js, Go, Python & RustB
- 01How Browsers Render a PageB
- 02JavaScript Essentials: Event Loop, Closures & thisI
- 03TypeScript EssentialsB
- 04React FundamentalsB
- 05React Hooks in PracticeI
- 06State Management (Redux, Zustand, TanStack Query)I
- 07Next.js Rendering: CSR, SSR, SSG, ISR & Server ComponentsI
- 08Frontend Performance & Core Web VitalsI
- 09Frontend SecurityI
- 10Frontend Testing StrategyI
- 11React vs Vue vs AngularB
- 01The L6 System-Design Thinking LoopA
- 02Exactly-Once Payment ProcessingA
- 03Timeouts, Retries & BackpressureA
- 04Flash Sale: 10 Million Buyers, No OversellA
- 05Premiere-Night Video StreamingA
- 01Database Relations & Foreign KeysI
- 02Normalization & DenormalizationI
- 03ACID, Transactions & LocksA
- 04Indexes, EXPLAIN & Query PlansA
- 05N+1 Queries, Loading & PaginationA
- 06Replication, Partitioning & ShardingA
- 07Storage Engines & Database OperationsA
- 08DBMS Foundations, Keys & NormalizationI
- 09SQL Language, Identifiers & Data TypesI
- 10Transactions, Indexes & ConcurrencyA
- 11Views, Triggers & Stored ProceduresA
- 12SQL Interview Query DrillsI