A small engineering team with a working CI/CD pipeline ships faster and with fewer incidents than a larger team without one. Setting it up takes about a week. Shipping without it costs that week in manual deployment effort every time you push to production.
Version control + pull requests: Git with GitHub or GitLab. Automated tests on every PR. Automated deployment to staging on merge to main. Manual trigger for production: at early stage, production deploys should be an intentional decision.
Linting and formatting: run on every commit — takes two hours to set up and eliminates an entire category of code review comment forever. Unit tests: run on every PR; if tests fail, the PR cannot be merged. Deployment to staging: automatic on merge to main means staging is always current.
Every infrastructure resource should be defined in code from the first day. Terraform is the most common choice. Any engineer can reproduce the full production environment from scratch by running one command.
Application errors from day one: Sentry catches errors before users report them. Response time tracking: p50 and p95 response times before users complain about performance. Uptime monitoring: Uptime Robot costs $7/month and sends a Slack alert when your service goes down.
Tests do not need to cover 100 percent of the codebase to provide value. One test per critical business path catches the failures that cause incidents.
Axented sets up DevOps pipelines and platform infrastructure as part of our engineering engagements. → axented.com/platform-infrastructure