← All courses

🐘 PostgreSQL

The engine most teams land on — types that go far beyond the standard, five index kinds and when each earns its keep, extensions, PL/pgSQL and full-text search. Then TimescaleDB and Supabase, which are both Postgres wearing different clothes.

No lessons published yet — this is the roadmap, so you can see exactly what the course will cover before it lands.

Before you start: Learn SQL — Series 1 and Series 2. This track starts where Learn SQL stops. You need to be able to write a join, a GROUP BY and a window function before any of it is useful, because none of that is taught again here — the subject is what Postgres does that other engines do not.

Short on time? The 16 episodes marked core are the shortest path to being productive at work. Start there and pick up the rest whenever a job asks for them.


Series 1 · PostgreSQL Essentials

the client, the types, and what Postgres has that the standard does not

  1. 01

    psql — The Client You Get on a Server With No GUI

    coreintermediatecoming soon
  2. 02

    Types — numeric, text, and Why timestamptz Is Not timestamp

    coreintermediatecoming soon
  3. 03

    JSONB — Storing and Querying Documents Inside a Relational Table

    coreintermediatecoming soon
  4. 04

    Arrays, Ranges and Enums — Column Types Other Engines Do Not Have

    intermediatecoming soon
  5. 05

    Schemas and search_path — Which Table You Actually Hit

    coreintermediatecoming soon
  6. 06

    Sequences, IDENTITY and RETURNING — Generated Keys and the Gaps in Them

    coreintermediatecoming soon
  7. 07

    ON CONFLICT, MERGE and UPDATE ... FROM — Writes the Standard Does Not Give You

    coreintermediatecoming soon
  8. 08

    Extensions — CREATE EXTENSION and What Ships With Postgres

    coreintermediatecoming soon
  9. 09

    pg_dump and pg_restore — Taking a Copy You Can Actually Restore

    coreintermediatecoming soon
  10. 10

    Project — Take a Generic Schema and Make It Properly Postgres

    coreintermediate#projectcoming soon

Series 2 · Indexes and the Planner

five index kinds, and why the planner ignored yours

  1. 01

    EXPLAIN (ANALYZE, BUFFERS) — Reading a Postgres Plan Tree

    coreadvancedcoming soon
  2. 02

    B-tree Indexes — Composite Keys and the Leading Column Rule

    coreadvancedcoming soon
  3. 03

    GIN and GiST — Indexing JSONB, Arrays, Text Search and Ranges

    coreadvancedcoming soon
  4. 04

    Partial, Expression and BRIN Indexes — Smaller Indexes That Do More

    advancedcoming soon
  5. 05

    Statistics — Why the Planner Estimated 3 Rows and Got 300,000

    coreadvancedcoming soon
  6. 06

    Declarative Partitioning — Splitting a Big Table and Pruning at Query Time

    advancedcoming soon
  7. 07

    Project — Take a Slow Query and Make It Fast, With Evidence

    coreadvanced#projectcoming soon

Series 3 · Beyond Queries

functions, triggers, search and change feeds

  1. 01

    Functions and PL/pgSQL — Logic That Lives in the Database

    advancedcoming soon
  2. 02

    Triggers — Audit Trails, Derived Columns and What They Cost on a Bulk Load

    advancedcoming soon
  3. 03

    Full-Text Search — tsvector, Ranking, and Fuzzy Matching With pg_trgm

    advancedcoming soon
  4. 04

    LISTEN/NOTIFY — Telling an Application Something Changed

    advancedcoming soon
  5. 05

    Logical Replication — Publications, Slots and the Feed CDC Tools Read

    advancedcoming soon
  6. 06

    Foreign Data Wrappers — Querying Another Database as a Table

    advancedcoming soon
  7. 07

    Project — A Searchable Table That Tells You When It Changes

    advanced#projectcoming soon

Series 4 · TimescaleDB

the same Postgres, reshaped for time-series

  1. 01

    Hypertables — Automatic Partitioning for Time-Series Tables

    advancedcoming soon
  2. 02

    time_bucket and Gapfill — The Questions Time-Series Data Is Always Asked

    advancedcoming soon
  3. 03

    Continuous Aggregates — A Rollup That Maintains Itself

    advancedcoming soon
  4. 04

    Compression and Retention — Shrinking Old Chunks and Dropping Them Whole

    advancedcoming soon
  5. 05

    Project — A Metrics Table That Stays Fast for a Year

    advanced#projectcoming soon

Series 5 · Supabase

Postgres with an API generated from your schema

  1. 01

    Supabase — Hosted Postgres Where the Schema Generates the API

    advancedcoming soon
  2. 02

    Row-Level Security — Policies as the Only Thing Between Your Table and the Internet

    coreadvancedcoming soon
  3. 03

    The Generated API — Tables, Views and Functions as Endpoints

    advancedcoming soon
  4. 04

    Realtime — Logical Replication Delivered to a Browser, With RLS Still Applied

    advancedcoming soon
  5. 05

    Storage and Edge Functions — Where Files and Server-Side Work Fit

    advancedcoming soon
  6. 06

    Project — A Multi-Tenant Schema Nobody Can Read Across

    coreadvanced#projectcoming soon

Where this leads


Not here, on purpose

  • SQL itself — SELECT, JOIN, GROUP BY, CTEs and window functions — covered in Learn SQL. Here you already write them, and the question is what Postgres adds
  • Keeping the server up — failover, replication operations, pooling, VACUUM tuning, connection limits — covered in Data Ops, Series 2, which is ten episodes on running PostgreSQL in production. In this course, Series 1 · 37 covers pg_dump and pg_restore because a developer types them weekly; PITR and physical backup are operations and stay there
  • Running a migration against a live table without locking it — covered in Data Ops, Series 2 · 35. In this course, Series 1 · 30 is only how an extension or a type change is applied
  • Deciding what the tables and keys should be — covered in Data Modeling. Here the schema exists and the question is which Postgres type and index to give it
  • Loading data in from other systems — covered in ETL & Data Pipelines. In this course, Series 1 · 05 covers COPY only as the client command you will actually type
  • pgvector and embeddings — covered in AI for Data, Series 2, where the embeddings that go in it are also explained