Concepts

One concept at a time.

181 short notes, one idea each, across system design, databases, backend, frontend, AI, security and Git. Each one fits on a page, takes a few minutes to read, and links to the lessons that put it to work.

181 concepts

System design

Requirements & scale

Frame the problem, put numbers on it, and decide how much system it needs.

Networking & APIs

How bytes and requests move between clients and services.

Storage & databases

How databases lay bytes on disk, and how to pick one.

Replication & partitioning

Copy data for availability, split it for scale.

Caching

Serve repeated reads from somewhere faster, and keep it correct.

Async work & messaging

Decouple producers from consumers without losing or doubling work.

Reliability

Keep working, or fail gracefully, when the parts around you don’t.

Consistency & coordination

Agree on order, ownership and truth across machines that fail independently.

Data structures for scale

Compact, approximate and spatial structures that big systems lean on.

Databases & SQL

Backend, Go & Rust

Go

The parts of Go that work differently from the languages most people come from.

Rust

Ownership, borrowing and the type-system ideas that let Rust be fast and memory-safe without a garbage collector.

Web services

Handling requests, signing users in, and running a service people depend on.

Frontend

The browser

What the browser does with your HTML, CSS and JavaScript.

Building apps

How React renders, where state belongs, and what ships to the user.

AI engineering

Models & prompting

How a language model reads and writes, and how to get the output you asked for.

Embeddings & retrieval

Find the right text to put in front of the model.

LLMs in production

Make it cheaper, safer and measurably better.

Security & operations

Application & cloud security

The attacks that matter most and the controls that stop them.

Running systems

Containers, controllers, deploys and recovery.

Git

Engineering practice

Algorithms & complexity

How to reason about cost, and the techniques most problems reduce to.

Code design

The rules of thumb that keep code readable, simple and cheap to change — and where each one stops helping.

SOLID principles

Five principles for modules that bend instead of break, in Go and TypeScript.

Testing practice

How test-driven work is paced, what mix of tests to write, and what to put in place of real dependencies.

Architecture & domain modeling

Structure a codebase around the business: modules, layers, contexts and the models inside them.

Laws of software engineering

The named rules of thumb engineers quote — what each one claims, and where it holds.