All projects

backend apis

A schema you can migrate without downtime

Practise the expand-and-contract pattern on a table with live traffic.

advancedJava~26h

Why it matters

Renaming a column in production has taken down more companies than any algorithm question. Knowing the expand-contract dance is directly, obviously employable.

What you build

  • A migration that runs against live traffic
  • The expand and contract phases, separately deployable
  • A backfill that does not lock the table
  • A rollback you have actually tested

If you want more

  • Automate the backfill in batches
  • Add a migration lint rule

Build it 5 steps

  • Both shapes must be valid at once, because both versions of the app will be running.

  • Write to both, read from the old
  • Switch reads to the new column
  • Drop the old column in a later deploy

Material for the whole build

Shows you can evolve a running system, which is most of the job and almost never in a portfolio.

Get a plan built around projects like this