One Engineering Team Cut Their CI Pipeline From 60 Minutes to 22 — Here’s Exactly How They Did It
Slow CI pipelines are a tax on your entire engineering team. Every developer waiting an hour to find out if their code passes is an hour of context-switching, lost focus, and mounting frustration. One team just published a detailed breakdown of how they cut that tax by 64% — while simultaneously growing their test suite by 90%.
The numbers: they went from a 60-minute Merge Train pipeline down to 22 minutes. CI health improved from 82% to above 90%. Infrastructure costs rose about 10%. And they estimate they recovered over 1,300 engineer hours that were previously eaten by waiting and retries.
That’s not a theoretical optimization. That’s a real productivity recovery with a real dollar value attached.
What They Actually Changed
Two changes drove most of the improvement, and neither required rewriting tests or rearchitecting the entire pipeline.
First: they upgraded their CI hardware. Specifically, moving to faster Intel-based runners. This is the boring answer nobody wants to hear, but faster machines mean faster builds. If your organization is running CI on the cheapest instances available to save money, you may be paying that savings back ten times over in engineer time.
Second: they separated service tests from browser-based tests. This is the insight that deserves real attention.
Browser tests — the kind that spin up a headless browser and simulate user clicks — are slow by nature. They’re also necessary. But they don’t need to block the same pipeline as unit tests and integration tests. By moving the browser suite into a separate stage that runs after the merge decision is made, the critical path gets shorter. Engineers get fast feedback on what matters most, quickly.
Why This Pattern Works
The core principle is simple: not all tests are equal, and they shouldn’t be treated as if they are.
Unit tests are fast. They check a single function or module and return a result in milliseconds. Integration tests are slower — they verify that different parts of your system work together. Browser tests are the slowest — they need a full application environment, a rendered interface, and time to simulate real user behavior.
Lumping all of these into one sequential pipeline means every merge waits for the slowest test in the pile. That’s a design choice, and it’s one you can change.
A better model: run your fast, high-confidence tests first. Fail quickly when there’s an obvious problem. Run your slower, broader tests in parallel or after the fast checks pass. Engineers find out about real blockers in minutes, not an hour.
What This Costs to Ignore
If your CI pipeline runs 50 merges per week and each developer waits 30 minutes per merge, that’s 25 hours of idle time per week — just from waiting. Scale that across a 10-person team over a year and you’re looking at thousands of hours of lost productivity baked invisibly into your process.
Slow pipelines also erode quality indirectly. When feedback is slow, developers batch changes to avoid waiting. Larger batches mean harder-to-debug failures. The whole feedback loop degrades.
The 1,300 hours this team recovered weren’t bonus capacity. They were time that had been silently draining from engineering output every week.
The Takeaway
You don’t need a massive refactor to fix a slow pipeline. Audit what’s actually on the critical path. Separate fast tests from slow ones. Give your runners enough hardware to move quickly. Those three changes, applied deliberately, compound fast.
Want to explore how CI/CD optimization could speed up your development workflow and recover engineering hours? Let’s talk.

