Free lessons for software engineers

Learn DSA, system design, DevOps, JavaScript and more, one clear lesson at a time.

31 lesson series and 414 lessons, written in plain English. Each series reads like a small book: start at the first lesson and go forward. Every idea is traced step by step, and most lessons end with interview questions and model answers.

Recommended paths

Start with a guide

Pick your goal and follow a ready-made reading order, so you never wonder what to read next.

All guides →

Programming foundations

Learn the building blocks from zero, with every example traced or run.

60 lessons

DSA for Interviews, From Zero

Data structures and algorithms for coding interviews, starting from the very first loop. Every idea is traced step by step and then practised on interview-style questions with full answers, so that it stays with you long term.

14 lessons

JavaScript Core Mastery

A lesson-by-lesson deep dive into how JavaScript actually runs under the hood — execution context, call stack, scope, closures, this, and the event loop. Pure execution-model JavaScript: no array methods, no framework code.

8 lessons

JavaScript Part 2: Objects, Async and Modules

The second half of JavaScript: objects and prototypes, this and classes, promises and async/await, modules, iterators and generators, the DOM and events, errors and Proxy, and memory. Each idea is traced with small examples that were run.

8 lessons

TypeScript From Zero to Confident

TypeScript from the first project to real-world configuration: basic types and narrowing, objects and classes, functions and generics, utility and conditional types, modules and tsconfig, React and runtime validation with Zod, and migrating to strict mode. Every compiler error shown was reproduced.

8 lessons

SQL and PostgreSQL From Zero

SQL and PostgreSQL from your first SELECT to production habits: joins, aggregates, window functions, schema design, indexes and EXPLAIN, transactions and locks, JSONB and safe migrations. Every query was run on a real PostgreSQL server and the real output is shown.

6 lessons

Git and GitHub From Zero

Git from the first commit to team workflows: the mental model, the daily loop, branches and conflicts, remotes and pull requests, undoing mistakes and rebase. Every command was run in a throwaway repository and the real output is shown.

8 lessons

Computer Science Foundations Interviewers Assume

The computer science underneath your code: how programs run, memory and CPU caches, floating point, Unicode, binary and bit tricks, probability, hard problems and string searching, explained in plain English with runnable examples.

6 lessons

Testing From Zero: What, Why and How

Testing from the first test to a team strategy: the shapes of a test suite, unit tests and test doubles, UI tests with Testing Library, API and integration tests, end-to-end tests with Playwright, and TDD, property-based and mutation testing. Every example was run.

9 lessons

Security for Developers: Web App Security From Zero

The security a working developer needs: how attackers think, injection, XSS and CSRF, passwords and login, access control, secrets and cryptography, dependencies and supply chain, and APIs. Small examples, every one run, based on OWASP, PortSwigger and the Node.js security guides.

10 lessons

React in Depth: From Components to Performance

React from the first component to confident senior answers: how rendering really works, state, effects, hooks rules, forms, data fetching, context, performance, patterns, testing and a React interview Q&A. Every example was run.

10 lessons

Next.js App Router From Zero to Production

Next.js 16 the practical way: routing and layouts, Server and Client Components, data fetching and caching, Server Actions and forms, route handlers, middleware and auth, performance and SEO, and deploying. Based on the official docs, with every example run.

0 lessons

Linux and the Command Line for Developers

The Linux and shell skills developers use every day: the file system, permissions, processes, pipes and text tools, shell scripting, SSH, package managers, cron and systemd, logs and troubleshooting a slow or broken server. Every command was run.

0 lessons

Computer Networking for Developers: IP, TCP, DNS, HTTP and TLS

The networking every developer should know: layers, IP and subnets, TCP and UDP, DNS, HTTP/1.1, HTTP/2 and HTTP/3, TLS and certificates, load balancers, CDNs and how to debug network problems with real tools. Every example was captured or run.

Backend, systems and DevOps

How real systems are built, scaled, deployed and kept running.

20 lessons

DevOps, From Zero

A lesson-by-lesson series that takes you from "just git push to Vercel" to running your own production setup on raw AWS — servers, networking, databases, and the mindset behind them.

69 lessons

System Design, Step by Step

Learn how real systems are built, one idea at a time. Start with what happens when you press Enter, then work through scaling, caching, databases, queues, reliability and security, and finish by designing a URL shortener, a chat app and a news feed. Every short form is explained when you hover over it, and every idea comes with a diagram.

12 lessons

System Design Case Studies, Part 2

Twelve more system design case studies, each with requirements, back-of-envelope numbers, API, data model, architecture, deep dives, failure modes and a runnable simulation: web crawler, key-value store, Dropbox-style sync, collaborative editing, CDN, top-K, unique IDs, multi-region, matching engine, sales ranking, finance pipeline and scaling on AWS.

12 lessons

Backend in Depth: Designing an API You'd Put in Production

From folder structure to N+1 queries: the choices a senior full-stack engineer must explain. Clean code, layers, REST design, validation, errors, logging, auth, databases, Prisma, GraphQL, Node speed and testing.

10 lessons

The Browser Contract: Auth, Storage, Security & HTTP

What happens between the address bar and your React app, and the safety choices interviewers like to ask about: storage, sessions vs JWT, XSS and CSRF, CORS, HTTP caching, status codes, rendering and Core Web Vitals.

10 lessons

Design Patterns and Low-Level Design (OOD) for Interviews

Object-oriented design interviews and the design patterns behind them: SOLID, creational, structural and behavioural patterns, the patterns you already use, and worked class designs for a parking lot, LRU cache, vending machine, elevator, blackjack, chat server, rate limiter and notifications. All examples are TypeScript that was run.

10 lessons

API Design: REST, GraphQL and gRPC From Zero

How to design an API other developers enjoy using: resources and URLs, methods and status codes, errors, pagination, versioning, idempotency, authentication, rate limits, OpenAPI, and when to choose GraphQL or gRPC. Small examples, every one run.

10 lessons

Node.js From Zero: Event Loop, Streams and Servers

Node.js the way a working developer needs it: the event loop, modules, files and streams, building an HTTP server without a framework, Express and Fastify, errors and logging, async patterns, worker threads and production habits. Every example was run.

10 lessons

Docker and Kubernetes From Zero

Containers and orchestration in plain English: images and layers, writing a good Dockerfile, volumes and networks, Docker Compose, then Kubernetes pods, deployments, services, config, scaling, rollouts and debugging. Commands run for real wherever the sandbox allows.

0 lessons

Observability and SRE: Logs, Metrics, Traces and Reliability

How to know what your system is doing and keep it reliable: structured logs, metrics and Prometheus, tracing with OpenTelemetry, SLIs, SLOs and error budgets, alerting, dashboards, incident response and blameless post-mortems. Examples were run locally.

Interview prep

Questions with model answers, debugging scenarios and design problems.

39 lessons

Full-Stack Interview Questions for 4+ Years

Real questions for a full-stack engineer with four or more years of experience: HTML and CSS, Tailwind, TypeScript, React, Next.js, Node.js, Express, MongoDB, Prisma, Hasura, LLMs, agents, RAG, the AI SDK, Meilisearch, Mixpanel and the libraries teams use every day. Every answer is written in plain English.

7 lessons

Senior Frontend Depth: React Internals, TypeScript & Testing

Topics that come up most in interviews: how React really renders, hooks in depth, concurrent React and Server Components, how to manage state, advanced TypeScript, how to test, and accessibility.

15 lessons

Scenario Debugging: The “It's Slow, Fix It” Guide

Scenario questions answered with one method you can repeat: measure, isolate, fix, check. API fast but UI slow, UI fast but API slow, re-renders, memory leaks, duplicate requests, slow first loads, huge lists and layout shift. Plus many cases about incidents, backend, frontend, security and architecture.

8 lessons

Practical Design Problems: From Whiteboard to Working Code

Small, practical design problems with the details interviewers listen for: IDs, collisions, caching, headers and what happens when things fail. A URL shortener, a rate limiter, pagination, file upload, notifications, autocomplete and classic mini-designs.

5 lessons

AI Engineering for Full-Stack Developers

Building LLM features you can trust: the OWASP Top 10 for LLM apps, prompt injection and safe tools, evaluation harnesses, cost and latency, and observability with guardrails. Every demo uses a deterministic fake model, so nothing needs an API key.

Career and leadership

Resumes, study plans, and the thinking of a team lead.

Looking for a definition? Every series has a glossary, and they are all listed on the glossaries page.