Skip to content
BackendIntermediate

Postgres for Application Developers

Schema, indexes and query plans — enough database to stop the 3am page.

4.7 · 3,115 ratings15.7k learnersUpdated
Tomás LindqvistTaught by Tomás Lindqvist
Overhead view of a person working at a keyboard between two bright light panels in a darkened room
Free preview · 24 min
$79$119
34% off this month
30-day money-back guarantee
Includes
  • 12 hours of video
  • 8 hands-on projects
  • A seeded 5M-row playground database
  • Lifetime access
  • Certificate of completion

47% of the running time is hands-on — projects and quizzes rather than video.

What you'll learn

  • Design a schema that lasts

    Make the decisions that are cheap now and expensive in a year, so you are not migrating every sprint.

  • Read a query plan

    Work through EXPLAIN ANALYZE line by line and find the one that is costing you the request.

  • Pick the right index

    B-tree, GIN, GiST or BRIN — plus how to recognise the four indexes you should delete.

  • Reason about concurrency

    Understand isolation levels well enough to predict a race before it reaches production.

  • Fix N+1 at the query level

    Solve it in SQL rather than in ORM configuration, where the fix tends not to survive a refactor.

What’s inside

Every figure below is summed from the lesson list, not estimated — so the chart and the curriculum can never disagree.

Content mix for Postgres for Application DevelopersHow the 13 hours split between video, hands-on projects and quizzes.53%45%13htotal
Content mix for Postgres for Application Developers
Content typeMinutesShare
Video lessons40652.7%
Hands-on projects35045.4%
Quizzes151.9%

47% of this course is hands-on.

Curriculum

4 sections · 19 lessons · 13h total

Decisions that are cheap now and expensive in a year.

  • VideoNormalising far enough and no furtherFree preview24m
  • VideoKeys, constraints and letting the database say no Premium29m
  • VideoChoosing types: text, numeric, timestamptz, jsonb Premium31m
  • VideoMigrations that do not lock the table Premium27m
  • ProjectProject: model a marketplace Premium1h 20m

Your instructor

Tomás Lindqvist

Tomás Lindqvist

Database engineer · Postgres since 8.4

Tomás has been paged by more Postgres instances than he can count and has written the post-mortem for most of them. He teaches query planning the way a mechanic teaches engines: with the cover off and the thing running.

  1. 2014

    DBA at Kestrel Financial

    Completed

    A 14 TB primary with a four-nine SLA.

  2. 2019

    Consulting practice

    Completed

    Index and plan reviews for 70+ product teams.

  3. 2022

    Contributor

    In progress

    Patches to pg_stat_statements and the EXPLAIN output format.

Reviews

What learners said

3,115 ratings from people who bought this course.

4.7

3,115 ratings

5 stars
76%
4 stars
19%
3 stars
4%
2 stars
1%
1 star
0%
Idris Mahmoud
Idris Mahmoud

The two-terminal isolation demo is the first time transaction isolation has ever made sense to me, and I have read the docs three times. Tomás just shows you the anomaly happening.

Clara Bergström
Clara Bergström

I am a frontend engineer who kept getting handed slow endpoints. I can now read a plan and tell the backend team exactly which index is missing. Worth every hour.

Yusuf Demir
Yusuf Demir

Content is excellent but the playground database took me most of an evening to get running on Windows. The Docker path in the notes is the one to use — I wish that were said up front.

Learners also took

Same category first, then whatever pairs well with it.

A laptop and an external monitor on a bright white desk, both showing an open code editorFull-stack

Ship It: Next.js 16 from Zero to Production

Build and deploy a real application on the App Router — async request APIs, streaming, caching and the deploy that follows.

Maya OkonkwoMaya Okonkwo
4.7 (3.6k)
18.4k learners
15h25 lessonsIntermediate
A close-up, sharply angled view of syntax-highlighted source code on a dark screenFrontend

TypeScript for Teams

Types that catch real bugs and stay out of the way — for codebases with more than one author.

Dev RaghunathanDev Raghunathan
4.7 (5.4k)
24.3k learners
10h18 lessonsIntermediate
A laptop screen filled with nested component markup in a dark editorFrontend

React Server Components, Properly

The boundary, the payload and the render — what actually happens between the server and the browser.

Maya OkonkwoMaya Okonkwo
4.7 (2k)
9.6k learners
10h16 lessonsAdvanced

Browse the full course catalogue, or see how this page is put together on Built with VivekUI.