engineering-practice
Engineering Practice
The habits that separate a hobby project from a professional team — testing well, shipping changes safely, and keeping a service healthy in production.
Start track →Start from zero
Before the senior material: what engineering practice even is, and the handful of words the rest of the track assumes you already know.TDD and property-based testing
Test-first is design pressure, not a coverage ritual: red-green-refactor surfaces bad interfaces early, the boundary rule tames test doubles, property tests find edge cases you'd never enumerate, and mutation testing is the honest metric for whether your suite would notice a bug.Contract testing
End-to-end integration testing collapses at scale; consumer-driven contracts make the consumer state the truth, the provider verifies it through a broker, and can-i-deploy turns the verification matrix into a deployment-safety gate — replacing most cross-service e2e for known internal consumers.Code review
Review exists to catch design and intent, not style — automate the mechanical; PR size sets both latency and detection, severity-tagged actionable feedback beats verdicts, and at scale you route ownership, time-box pickup, and sometimes move review continuous or post-commit.Trunk-based development
Why integration frequency is the lever behind elite delivery: merge to trunk daily, hide unfinished work behind flags, gate every merge on green CI, and delete branches and flags as fast as you create them.Feature flags
Coming soon — Engineering practicePostmortems
Coming soon — Engineering practiceOn call
Coming soon — Engineering practiceDebugger mastery
A debugger is a controlled-execution microscope; breakpoints, watchpoints, core dumps and live tracing turn an unreproducible bug into an observable one.Putting it together
Coming soon — Engineering practiceBuild with this track
Guided projects that exercise what you learn here.
Feature-flag service
Build a small flag service with targeting rules, percentage rollouts, and a typed SDK that evaluates flags client-side from a cached ruleset.
Distributed rate limiter
Build a token-bucket limiter that holds across many app instances by keeping the counter in Redis, not in process memory.
Text diff — Myers algorithm
Implement the Myers diff algorithm from scratch: compute the longest common subsequence, backtrack an edit script, prove minimality, and apply patches so any round-trip is byte-perfect.
Topological build scheduler
Build a DAG-based task scheduler — like Make or a CI pipeline — that orders jobs by dependency, detects cycles before they deadlock, and identifies which tasks can run in parallel.
URL shortener at scale
Build a URL shortener that survives real traffic — then run it: deploy it, watch it, and work the incident when one hot link melts your cache.
SQL & PostgreSQL, deep
The SQL language and Postgres internals for senior engineers — joins, windows, CTEs, transactions, the planner.