7 seasons
2018–2024 of F1 timing data ingested end to end.
149 races
Every lap decomposed and verified against the additive identity.
72 dbt models
620 tests enforce the pipeline on every build.
5 ML models
XGBoost trained, exported to ONNX, running live in the browser.
30 app features
Interactive visualizations, zero server, sub-10ms queries.
0ms server
DuckDB-Wasm + ONNX Runtime Web run the whole stack client-side.
1. A CI-enforced mathematical invariant
Every lap is decomposed into seven physically-grounded components that sum to the measured pace delta by construction:assert_additive_identity fails the build if any lap’s terms miss closure by more than 0.0001 s. An enforced invariant is worth more than a stated one.
Proof: The seven-term identity explains the maths; Identity closure is the CI gate that holds it to zero.
2. A medallion warehouse, not a pile of scripts
Raw timing data flows through a staging → intermediate → mart warehouse (bronze → silver → gold): 60 dbt models, 443 tests, every model a singleSELECT with dbt resolving the dependency graph. Lineage is a contract, not a diagram drawn after the fact.
Proof: Transform layer overview maps the eight model families and the DAG; the Model Reference documents every model and column.
3. Zero-server economics
DuckDB-Wasm and ONNX Runtime Web run the entire analytics stack inside the browser tab. Nothing computes at request time, so serving 30 interactive features costs nothing per user. The trade-off is stated, not hidden: a larger initial download and no row-level auth, in exchange for free, offline-capable serving.Proof: App architecture shows the in-browser pipeline; ADR-002 / ADR-003 record the decision and its cost; Performance holds the bundle to a budget.
4. Train/serve parity
Every XGBoost booster round-trips to ONNX and is re-scored against the native model withinatol=1e-5, enforced by tests. The model that trains is provably the model that serves: no silent drift between Python training and in-browser inference.
Proof: ONNX export covers the round-trip; Parity and schema is the gate.
5. Reproducible drift gates
Silent data regressions are caught before they ship. A byte-stability oracle hashes every model output build-over-build, a profile diff compares table-level statistics against a committed baseline, and a post-publish verify step rolls back automatically if the live CDN disagrees with what was built.Proof: Data pipeline describes the staged DAG and verify/rollback; The CI Contract lists the structural and regression gates.
6. Out-of-sample honesty
Models are trained on 2018–2024 with a season-groupedTimeSeriesSplit; the most recent fold stands in as a holdout, and the 2025 season is reserved as a reproducible out-of-sample check against now-public data. Paired with an explicit, written limitations section. No varnish.
Proof: Validation shows the holdout protocol; Limitations states what the decomposition cannot do.
7. Calibrated uncertainty, not point guesses
The degradation model ships a quantile trio (p10 / p50 / p90), and the interval is checked for empirical coverage rather than assumed: nominal 0.80 coverage lands at 0.80 on held-out laps. A prediction interval that actually covers is rarer than a point estimate that looks plausible.Proof: Calibration reports the coverage and reliability curves.
8. Infrastructure as code and real observability
The cloud footprint is codified, not clicked: Terraform provisions the GCS bucket, Workload Identity Federation, and a billing budget. Production has Sentry error tracking, web-vitals RUM, Playwright E2E against the live bundle, and written SLOs.See it answer a real question
Highlights are claims about the build. The São Paulo 2021 case study is the payoff: the same decomposition splits Hamilton’s win into 2.91 s of strategy and 1.60 s of driver skill on the overtake lap, in seconds, fromfct_lap_residuals. It is the clearest single demonstration of what the whole pipeline exists to produce.
Skills demonstrated
The competency map: each data-engineering skill linked to its evidence in the repo.
How it clears a production bar
The hiring-manager checklist: contracts, drift gates, lineage, orchestration, SLOs, cost.