Three Series-B SaaS companies, three different stacks, one pattern: cloud bill growing faster than revenue and nobody owning it. Here is what worked, in the order we did it.
Week one: instrument. Tag every resource. Cost allocation by team, environment and product line. If you cannot answer 'which team owns this $40k a month' in five minutes, you cannot do FinOps.
Week two: kill the obvious waste. Idle dev environments after hours. Forgotten staging clusters. Untagged S3 buckets growing 12% a month. We routinely find 5–8% just by turning things off.
Week three: rightsize and modernize. Most workloads are over-provisioned because somebody once had a bad day. Re-baseline against actual usage. Move long-running batch off on-demand and onto Spot or savings plans.
Week four: architectural levers. Reserved capacity contracts on the steady-state spine. Caching layers in front of expensive read paths. Storage tiering for cold data.
Week six onwards: behavior. Cost dashboards in the same Slack channel as deploys. A weekly FinOps standup. Cost as a non-functional requirement on every architecture review. The $/feature conversation becomes routine, not a fire drill.
The number we report monthly is not 'savings' — savings disappear over 18 months as new features ship. We report cost per active user, cost per transaction, cost per request. Those are the numbers that survive growth.
A Series-B company that started this in January was at 38% lower spend by April with 40% more traffic. A peer company that did not put the same discipline in place was at 23% higher spend with the same traffic. The work is not glamorous. It is just consistent.
