core practice · system design prompt
Design exercise: CI/CD & Developer Environments
Hermetic builds, reproducible environments, test gates, artifacts, previews, progressive delivery, and rollback. Implement designOutline() returning non-empty values for: reproducibleBuild, qualityGates, rollback. Each value must name a concrete mechanism or decision.
The mechanism
A delivery pipeline converts source into a traceable artifact through reproducible gates. Promotion should move the same artifact, not rebuild it differently in each environment.
Expected evidence
A design outline with reproducibleBuild, qualityGates, rollback plus an explicit failure mode or trade-off.
Try this drill in the practice workspace →
Hints when you need them
- Name the failure mode before selecting the mechanism.
Check the sources
- Build Systems and Build Philosophy — Software Engineering at Google, Ch. 18
- DORA — Capabilities: Trunk-based development
- Google Testing Blog — Hermetic Servers
- USENIX SREcon25 EMEA — Making Reproducible Builds Faster with Docker Bake
- DORA — Capabilities: Continuous integration
- Continuous Integration — Software Engineering at Google, Ch. 23
- GitHub Actions Documentation