Free Programming & Engineering Courses
Structured courses with explanations, comparison tables and code in several stacks — from REST API design and GraphQL to idempotency, event sourcing, distributed systems, payments and LLM integration.
Engineering Fundamentals
API Architecture and Integration Design
REST, GraphQL, gRPC, events and webhooks; contract-first OpenAPI; pagination, errors, idempotency and versioning; gateways, BFFs…
API Platform & Lifecycle
Run APIs as products: contract-first OpenAPI 3.1 and AsyncAPI 3, mocks, Spectral governance, breaking-change CI, contract…
API Security in Depth
The OWASP API Security Top 10 (2023) in practice: BOLA, BOPLA, BFLA, OAuth 2.1 and RFC 9700, token validation, fine-grained…
Authentication & Authorization Architecture
Design identity for modern systems: passwords and sessions, OAuth 2.0 and OIDC, tokens, MFA and passkeys, SSO, authorization…
Caching and Performance Engineering
Caching layers, cache patterns and invalidation, HTTP caching and CDNs, Redis, measuring performance, database tuning, scaling…
Database Caching at Scale
Caching for high-traffic systems without stale or leaked data: cache-aside done right, the stale-set race, versioned keys, TTLs…
Design Patterns, Explained Simply
SOLID and all 23 classic design patterns, plus the patterns modern frameworks are built on, explained in plain language with…
Distributed Systems for Backend Engineers
The theory behind modern backends: clocks and ordering, consistency models, CAP/PACELC, replication, partitioning, consensus,…
DSA Patterns Made Simple
The coding-interview patterns that solve most problems, taught one at a time: how to spot each pattern, one short template to…
ETL and Data Pipelines
Build data pipelines that are correct, re-runnable and cheap to operate, through real production problems: ETL vs ELT, batch vs…
Event Sourcing & CQRS
Model domains as events: event modeling, aggregates, event stores, CQRS and projections, eventual consistency in the UI,…
GraphQL in Production
Design, secure and operate GraphQL APIs: schema design and nullability, mutations and errors, DataLoader and cost limits,…
Idempotency & Retry-Safe Systems
Make every operation safe to retry: idempotent design, Idempotency-Key implementation, timeouts and deadlines, backoff with…
Integrating LLM APIs
Ship LLM features like any other production dependency: models and tokens, prompts as code, streaming, structured outputs, tool…
Kafka in Production
Build and run event-driven systems on Apache Kafka 4: topics, partitions, keys and offsets, reliable producers with acks and…
Messaging, Events and Email Systems
Queues, streams and background jobs, delivery guarantees, outbox and CDC, event design, sagas, Kafka in practice, notification…
Mobile API Best Practices
Design backends for iOS and Android: screen-shaped responses, payload and battery efficiency, offline-first and delta sync,…
Observability and Operations
Logs, metrics and traces with OpenTelemetry, SLOs and burn-rate alerting, incident response, runbooks, telemetry pipelines, safe…
Payments & Money APIs
Build correct money systems: representing money, how card payments work, PSP integration models and PCI scope, SCA, payment…
Queues & Background Processing in Depth
Messaging models, message design, ordering, acknowledgements, broker choice, job frameworks by stack, retries and DLQs, poison…
Rate Limiting, Quotas & Abuse Protection
Protect APIs with the right algorithms (windows, token bucket, GCRA), distributed limiters, RateLimit headers, quotas and plans,…
Real-Time APIs
WebSockets, SSE, long polling and WebTransport; designing, receiving and securing webhooks; fan-out, presence, connection…
Request Lifecycle: How Web Frameworks Handle a Request
Follow a request from the socket to the response in the frameworks you use: the proxy and server chain, PHP-FPM, WSGI, ASGI and…
Resilience Patterns
Design systems that survive failure: failure modes and metastability, timeout budgets, circuit breakers, bulkheads, load…
REST APIs in Depth
Industry-standard REST API design for any stack: resource modeling, HTTP semantics, status codes, JSON conventions, pagination,…
Scaling Databases & Data Consistency
Scale relational databases the way high-traffic products do: find the queries that matter, index for real workloads, fix N+1 and…
Software Architecture Foundations
Modern architecture practices for scalable systems: event-driven design, microservices, DDD, consistency, and resilience patterns.
System Design Interviews, Step by Step
A repeatable method for system design interviews, then worked walkthroughs of the questions asked most: URL shortener, rate…
Testing in Practice
Write tests that catch real bugs without slowing teams down: a testing strategy across unit, integration and end-to-end levels,…
Transactions, Locking & Concurrency in Code
Real production bugs and their fixes: transaction boundaries, framework pitfalls, long transactions, pool exhaustion, isolation…
Web Security and WAF
The OWASP Top 10 in practice: injection, XSS and CSP, CSRF and CORS, access control and SSRF, plus TLS and headers, WAFs and…
Engineering Leadership
The Engineering Manager Handbook (Development Manager)
A practical course for engineering managers and development managers: the manager operating system, the first 90 days with a new…
The Team Lead Handbook
A practical course for team leads: the move from engineer to lead, team charters and working agreements, effective 1:1s,…
The Tech Lead Handbook
A practical course for new and experienced tech leads: what the role owns, the first 90 days, balancing code and leadership,…
Programming
Android with Kotlin and Jetpack Compose
Build modern Android apps with Kotlin and Jetpack Compose: composable screens, layouts and lists, state and side effects,…
ASP.NET Core Web APIs
Build ASP.NET Core Web APIs on .NET 10 that hold up in production: minimal APIs with route groups and typed results, built-in…
C# Fundamentals: From Your First Program to Async and JSON
Learn modern C# on .NET from the first line to real applications: the dotnet CLI, types and string formatting, control flow and…
Dart Fundamentals: The Language Behind Flutter
Learn modern Dart 3 from the ground up: variables and sound null safety, functions with named parameters, collections with…
Data Analysis with pandas
Analyse data with pandas 3: DataFrames and Series, loading messy CSV files with the right types, selecting and filtering,…
Django from Basics to Production
Build web apps and APIs with Django 6.1 and Django REST framework: views and URLs, models and the ORM, relationships without N+1…
Elixir Fundamentals: Functional Programming and OTP
Learn Elixir from the ground up: immutable data, pattern matching, multi-clause functions and pipes, collections and Enum,…
FastAPI: From Basics to Production
Build production-ready Python APIs with FastAPI: Pydantic v2, dependency injection, async SQLAlchemy and Alembic, JWT auth,…
Flask API Fundamentals
Build lightweight Python APIs with Flask routing, request handling, JSON responses, and blueprints.
Go Programming Fundamentals
A hands-on path through Go syntax, tooling, and concurrency, built from the official Go documentation and tour.
Go Web Frameworks: net/http, Chi, Gin, Echo and Fiber
Build the same JSON API with the Go standard library and the four most popular Go web frameworks, then learn the parts every…
HTML5 for Beginners: Build Your First Web Pages
Start from zero: what the web and HTML are, where HTML came from (from Tim Berners-Lee's 18 tags to HTML5 and today's Living…
htmx: Build Interactive Web Apps with HTML
Build modern, interactive web apps by returning HTML from your server instead of JSON. Start with why hypermedia works,…
iOS with SwiftUI
Build modern iPhone and iPad apps with Swift and SwiftUI: views, layout and lists, state with @Observable, NavigationStack,…
Mobile Apps with React Native and Expo
Build real iOS and Android apps with React Native, Expo and TypeScript: screens and styling, fast lists, navigation with Expo…
Modern Angular: Signals, Standalone Components and SSR
Learn modern Angular (v22) the way new apps are built: standalone components with signal inputs, outputs and model, template…
Modern C++ Fundamentals: From Basics to Smart Pointers and Threads
Learn modern C++20 from your first program to safe, fast code: building and formatting, values and references with const…
Modern HTML5 in Production
Fix the real-world problems HTML is responsible for: pages screen-reader users can't navigate, controls keyboards can't reach,…
MongoDB from Basics to Production
Learn MongoDB from documents and queries to production: CRUD with update operators, query operators and projections, data…
NestJS in Production
Build and run NestJS 12 services that stay maintainable: modules and dependency injection, DTO validation, domain errors and…
Next.js App Router in Production
Build and run Next.js 16 App Router applications that are fast, secure and operable: Server and Client Components, dynamic…
Node.js Backend Fundamentals with Express
Build backend APIs with Node.js 24 and Express 5: routes and routers, path and query parameters, middleware, validation with…
PHP 7: Maintaining and Upgrading Legacy Apps
Work confidently in PHP 7 codebases: language features, testing and refactoring legacy code, security hardening, and a safe path…
PHP 8: Modern PHP Development
From PHP 8 syntax and types to enums, property hooks, Composer, PDO, security, testing and production deployment with OPcache,…
Python Programming Deep Dive
A structured path from Python syntax to practical software habits, based on the official Python tutorial.
React: From Components to Production
Modern React 19 with TypeScript: components, state and effects, forms and Actions, TanStack Query, React Router, performance and…
Rust Fundamentals: Ownership, Errors and Fearless Concurrency
Learn Rust from your first program to safe parallel code: Cargo, types and control flow, ownership and borrowing, structs and…
Spring Boot: From Basics to Production
Build and run Java 21 services with Spring Boot: dependency injection, REST APIs, validation, Spring Data JPA, Spring Security…
Tailwind CSS in Production
The Tailwind CSS problems real teams hit, each with a live demo and the fix: classes missing from the build, overrides that…
TypeScript Fundamentals: Types, Generics and Real-World Patterns
Learn TypeScript from your first typed program to production patterns: strict mode and inference, objects and interfaces, unions…
Vue 3 and Nuxt
Learn Vue 3 and Nuxt 4 from the ground up: reactivity with ref, reactive, computed and watch; single-file components with props,…
XML in Production
The XML failures that reach production and how to prevent them: namespace changes that silently empty an import, encoding…
Cloud
Cloud Engineering in Production
The cloud incidents that actually happen, AWS first with Azure and Google Cloud equivalents: leaked access keys, public buckets,…
Cloud Networking in Production
The network problems that cause real outages in the cloud: overlapping address ranges, exhausted subnets, NAT port exhaustion,…
DevOps in Production
The DevOps failures that hurt real teams: rollbacks blocked by destructive migrations, secrets left in image layers, floating…
Docker from Basics to Production
Containerize real applications and run them well: production-shaped Dockerfiles for Python and Node.js, a Compose development…
Helm, Kustomize and GitOps with Argo CD
Package and deliver Kubernetes applications safely: values schemas that catch typos, template indentation bugs, upgrades blocked…
Java Serverless on AWS Lambda
Run production Java on AWS Lambda through real failures: event deserialization, where JVM cold-start time goes, SnapStart…
Kubernetes in Production
Run Kubernetes workloads through the failures teams actually hit: errors during deploys, OOMKills and evictions, dropped…
Linux and Bash for Developers
The Linux and Bash skills developers need on real servers, taught through the problems you'll actually meet: disks that stay…
Node.js Serverless on AWS Lambda
Build and run production Node.js and TypeScript services on AWS Lambda through real production problems: async handlers and cold…
Python Serverless on AWS Lambda
Run production Python on AWS Lambda through real failures: leaking module state, native wheels that will not load, slow…
Terraform in Production
Running Terraform safely with a team: locked remote state on AWS, Azure and GCP, secrets kept out of state, drift detection,…
AI
AI Agents and MCP in Production
Build agents that stay bounded, recover from tool failures and can be debugged: the agent loop and its budgets, tool definitions…
Coding with AI Assistants
Use AI coding assistants and agentic coding tools well: what they are good and bad at, giving them project context, asking for…
Forward Deployed Engineering in Practice
What goes wrong when software meets real customers, and how forward deployed engineers fix it: messy production data, corporate…
LLM Evals and Guardrails
Know whether your LLM feature works and keep it safe: eval sets from real traffic, code, model and human graders, LLM-as-judge…
Machine Learning Fundamentals for Engineers
Practical machine learning with scikit-learn for software engineers: the supervised learning workflow and baselines, regression…
Native AI Engineering: LLMs, RAG & Agents
A practical introduction to building applications with large language models, retrieval, and agents, drawing on widely used open…
RAG in Production
Build retrieval-augmented generation that finds the right text and answers faithfully: structure-aware chunking, hybrid search…
Other
Career Growth Foundations
A practical starter course covering job search planning, learning habits, and career confidence.
GitHub Actions: CI/CD Workflows From First Run to Secure Deployments
Learn GitHub Actions the practical way: workflows, events and filters, a real CI workflow with caching, build matrices,…