Continuous integration
Merge often, keep main green, and fail fast — the habits that make later delivery possible.
CI fails when branches live for weeks and “integration” is a weekend event. Seniors optimize for small, verified merges.
Keep main releasable
Protect the default branch: required checks, no force-push, short-lived branches. A red main blocks everyone — treat it as a production incident for the engineering system.
Fail fast, fail locally when you can
Order jobs so cheap signal comes first: format, unit tests, compile. Expensive integration and e2e later. Developers should run the same core checks locally (or via a thin wrapper) without inventing a second pipeline.
Merge strategy with intent
Squash vs merge commits is team taste; unfinished feature flags and trunk-based flow matter more. Long-lived feature branches recreate big-bang integration under a friendlier name.
Flaky tests are pipeline debt
Quarantine or fix flakes. A suite people ignore teaches the organization that red means “retry.” That culture kills CI.
Ownership
The team that owns the service owns its CI health. Platform may provide templates; product owns green builds for their repo.