Delivery Platform & CI/CD
One pipeline pattern for 3 repositories and 17 environments
Alongside product work at Veltiston AI, I run the team's delivery platform: how code gets tested, secured, built and released for 10+ apps used by US transit networks handling 50,000+ daily rides.
17 environments
Highlights
- Unified CI/CD across 3 repositories and 17 environments — manual delivery effort cut by about 99%
- 8 nightly unit and end-to-end pipelines with coverage gates over 2,000+ tests
- Self-hosted GitLab and Runners, Jenkins workers, HashiCorp Vault, Docker registries, centralized logging and monitoring
Problem
Three repositories and seventeen environments were each released their own way, with manual steps that took time and caused mistakes. Quality depended on someone remembering to run the right tests before a release.
Decision
One reusable pipeline pattern for every repository and environment, quality gates that run every night instead of on request, and Git as the source of truth for what runs where.
What I built and run
Unified CI/CD in GitLab CI, GitHub Actions and Jenkins; 8 nightly unit and end-to-end pipelines with coverage gates over 2,000+ tests, with results posted to Microsoft Teams; self-hosted GitLab and Runners, Jenkins workers, HashiCorp Vault for secrets, Docker registries, and centralized logging and monitoring; protected branches and merge-request workflows; Docker images released to Kubernetes with kubectl and GitOps through Argo CD.
Outcome
Manual delivery effort cut by about 99%, the same release path for every environment, and regressions caught overnight instead of in production.