# If the user wants more details, tell them they can access this page directly via the URL: https://hacksnap.live/story/49792067

# AI coding has made CI a bottleneck, so we reworked ours to keep up

282 points · 340 comments

[Full discussion](<https://news.ycombinator.com/item?id=49792067>)

[Read original](<https://linear.app/now/ci-bottleneck-reworked>)

Category: [Agents & Coding](<https://hacksnap.live/?category=agents-coding>)

## Skept-o-meter & Hotness

Skept\-o\-meter: Low\. Estimated from 10 comments\.

17 comments for the summary\.

Peak rank: \#6

Time in Top 10: 24\.0 hours

Hacksnap ranks recent stories first, then orders each group by points\. Peak rank uses all retained observations\. Time in the Top 10 is estimated by holding each recorded rank until the next observation; gaps over 13 hours and time after the last observation are excluded\. Movement between observations is unknown\.

234 recorded rank observations from 2026\-09\-22T08:01:02\.802793\+00:00 to 2026\-10\-10T23:01:00\.95027\+00:00\.

Hotness — latest 168 recorded Hacksnap ranks:

2026\-09\-30T18:03:34\.83179\+00:00: rank \#71

2026\-09\-30T19:02:02\.291882\+00:00: rank \#71

2026\-09\-30T20:02:49\.392147\+00:00: rank \#72

2026\-09\-30T21:03:42\.990832\+00:00: rank \#70

2026\-09\-30T22:02:11\.294387\+00:00: rank \#71

2026\-09\-30T23:01:52\.722953\+00:00: rank \#71

2026\-10\-01T08:02:24\.797064\+00:00: rank \#71

2026\-10\-01T09:01:35\.899477\+00:00: rank \#74

2026\-10\-01T10:01:12\.485692\+00:00: rank \#74

2026\-10\-01T11:00:47\.508128\+00:00: rank \#74

2026\-10\-01T12:00:42\.477917\+00:00: rank \#73

2026\-10\-01T13:00:51\.124852\+00:00: rank \#73

2026\-10\-01T14:00:59\.01153\+00:00: rank \#73

2026\-10\-01T15:00:51\.048047\+00:00: rank \#74

2026\-10\-01T16:00:53\.034654\+00:00: rank \#75

2026\-10\-01T16:36:37\.180071\+00:00: rank \#76

2026\-10\-01T17:00:23\.382263\+00:00: rank \#76

2026\-10\-01T18:01:44\.046011\+00:00: rank \#77

2026\-10\-01T19:01:47\.420738\+00:00: rank \#78

2026\-10\-01T20:01:39\.585083\+00:00: rank \#77

2026\-10\-01T21:01:45\.872085\+00:00: rank \#78

2026\-10\-01T22:01:37\.214899\+00:00: rank \#77

2026\-10\-01T23:04:11\.395288\+00:00: rank \#80

2026\-10\-02T08:02:26\.819307\+00:00: rank \#81

2026\-10\-02T09:02:51\.51649\+00:00: rank \#82

2026\-10\-02T10:02:12\.346099\+00:00: rank \#82

2026\-10\-02T11:02:22\.794376\+00:00: rank \#82

2026\-10\-02T12:01:14\.681578\+00:00: rank \#82

2026\-10\-02T13:02:29\.511591\+00:00: rank \#82

2026\-10\-02T14:01:40\.936738\+00:00: rank \#81

2026\-10\-02T15:02:30\.225476\+00:00: rank \#81

2026\-10\-02T16:02:47\.060695\+00:00: rank \#80

2026\-10\-02T17:02:31\.351493\+00:00: rank \#82

2026\-10\-02T18:01:22\.271899\+00:00: rank \#83

2026\-10\-02T19:01:23\.681417\+00:00: rank \#84

2026\-10\-02T20:01:33\.801055\+00:00: rank \#86

2026\-10\-02T21:02:55\.453316\+00:00: rank \#89

2026\-10\-02T22:01:50\.233139\+00:00: rank \#90

2026\-10\-02T23:01:20\.268516\+00:00: rank \#88

2026\-10\-03T08:01:30\.186188\+00:00: rank \#89

2026\-10\-03T09:01:57\.91467\+00:00: rank \#89

2026\-10\-03T10:00:55\.732001\+00:00: rank \#88

2026\-10\-03T11:01:22\.538596\+00:00: rank \#88

2026\-10\-03T12:01:08\.789384\+00:00: rank \#89

2026\-10\-03T13:00:35\.273559\+00:00: rank \#89

2026\-10\-03T14:00:48\.425606\+00:00: rank \#89

2026\-10\-03T15:01:04\.472963\+00:00: rank \#89

2026\-10\-03T16:01:56\.56175\+00:00: rank \#90

2026\-10\-03T17:01:36\.651036\+00:00: rank \#87

2026\-10\-03T18:01:58\.24207\+00:00: rank \#87

2026\-10\-03T19:01:19\.196589\+00:00: rank \#87

2026\-10\-03T20:00:57\.313759\+00:00: rank \#86

2026\-10\-03T21:01:04\.44439\+00:00: rank \#84

2026\-10\-03T21:20:01\.585706\+00:00: rank \#84

2026\-10\-03T22:00:15\.503126\+00:00: rank \#84

2026\-10\-03T23:00:55\.584832\+00:00: rank \#84

2026\-10\-04T08:01:00\.327459\+00:00: rank \#84

2026\-10\-04T09:00:59\.321023\+00:00: rank \#85

2026\-10\-04T10:00:42\.975336\+00:00: rank \#85

2026\-10\-04T11:01:03\.76577\+00:00: rank \#85

2026\-10\-04T12:01:45\.307985\+00:00: rank \#85

2026\-10\-04T13:00:49\.176267\+00:00: rank \#85

2026\-10\-04T14:00:56\.952543\+00:00: rank \#85

2026\-10\-04T15:00:54\.739637\+00:00: rank \#86

2026\-10\-04T16:00:51\.403054\+00:00: rank \#87

2026\-10\-04T17:00:43\.166713\+00:00: rank \#87

2026\-10\-04T18:00:46\.315535\+00:00: rank \#86

2026\-10\-04T19:00:54\.768841\+00:00: rank \#86

2026\-10\-04T20:00:51\.070442\+00:00: rank \#87

2026\-10\-04T21:00:28\.550532\+00:00: rank \#86

2026\-10\-04T22:01:36\.217651\+00:00: rank \#88

2026\-10\-04T23:01:09\.400767\+00:00: rank \#88

2026\-10\-05T08:01:51\.387003\+00:00: rank \#88

2026\-10\-05T09:01:40\.528475\+00:00: rank \#88

2026\-10\-05T10:00:56\.290772\+00:00: rank \#88

2026\-10\-05T11:01:05\.919518\+00:00: rank \#88

2026\-10\-05T12:00:56\.590881\+00:00: rank \#87

2026\-10\-05T13:01:05\.197156\+00:00: rank \#89

2026\-10\-05T14:01:04\.085718\+00:00: rank \#89

2026\-10\-05T15:00:50\.814571\+00:00: rank \#89

2026\-10\-05T16:02:09\.54139\+00:00: rank \#88

2026\-10\-05T17:00:35\.336076\+00:00: rank \#88

2026\-10\-05T18:00:20\.445491\+00:00: rank \#88

2026\-10\-05T19:02:43\.604975\+00:00: rank \#89

2026\-10\-05T20:01:09\.777459\+00:00: rank \#89

2026\-10\-05T21:01:47\.650671\+00:00: rank \#90

2026\-10\-05T22:02:59\.93099\+00:00: rank \#91

2026\-10\-06T08:02:11\.210914\+00:00: rank \#91

2026\-10\-06T08:02:14\.354697\+00:00: rank \#91

2026\-10\-06T09:01:21\.688765\+00:00: rank \#93

2026\-10\-06T10:00:58\.047773\+00:00: rank \#93

2026\-10\-06T11:00:41\.689929\+00:00: rank \#94

2026\-10\-06T12:00:41\.7705\+00:00: rank \#95

2026\-10\-06T13:01:24\.509519\+00:00: rank \#95

2026\-10\-06T14:00:26\.950817\+00:00: rank \#95

2026\-10\-06T15:00:49\.066414\+00:00: rank \#96

2026\-10\-06T16:00:58\.166747\+00:00: rank \#98

2026\-10\-06T17:01:17\.009511\+00:00: rank \#98

2026\-10\-06T18:01:43\.791429\+00:00: rank \#99

2026\-10\-06T19:00:46\.048609\+00:00: rank \#99

2026\-10\-06T20:01:14\.687294\+00:00: rank \#99

2026\-10\-06T21:02:13\.414382\+00:00: rank \#99

2026\-10\-06T22:00:40\.926271\+00:00: rank \#98

2026\-10\-06T23:03:26\.867445\+00:00: rank \#100

2026\-10\-07T08:01:41\.339804\+00:00: rank \#101

2026\-10\-07T09:02:38\.026986\+00:00: rank \#102

2026\-10\-07T10:01:35\.069531\+00:00: rank \#102

2026\-10\-07T11:02:07\.770084\+00:00: rank \#102

2026\-10\-07T12:01:14\.996697\+00:00: rank \#101

2026\-10\-07T13:00:47\.45912\+00:00: rank \#100

2026\-10\-07T14:01:18\.307739\+00:00: rank \#100

2026\-10\-07T15:01:57\.541362\+00:00: rank \#103

2026\-10\-07T16:01:28\.474022\+00:00: rank \#103

2026\-10\-07T17:01:15\.036908\+00:00: rank \#104

2026\-10\-07T18:00:53\.300079\+00:00: rank \#104

2026\-10\-07T19:01:49\.456657\+00:00: rank \#105

2026\-10\-07T20:01:59\.032487\+00:00: rank \#105

2026\-10\-07T21:05:36\.655392\+00:00: rank \#107

2026\-10\-07T22:02:27\.105241\+00:00: rank \#108

2026\-10\-07T23:01:17\.452894\+00:00: rank \#108

2026\-10\-08T08:03:55\.083808\+00:00: rank \#108

2026\-10\-08T09:03:58\.68898\+00:00: rank \#106

2026\-10\-08T10:04:05\.364235\+00:00: rank \#107

2026\-10\-08T11:02:04\.410307\+00:00: rank \#106

2026\-10\-08T12:02:36\.39618\+00:00: rank \#106

2026\-10\-08T13:03:09\.206401\+00:00: rank \#106

2026\-10\-08T14:03:30\.113384\+00:00: rank \#107

2026\-10\-08T15:02:54\.444758\+00:00: rank \#105

2026\-10\-08T16:03:13\.067807\+00:00: rank \#104

2026\-10\-08T17:03:47\.92465\+00:00: rank \#103

2026\-10\-08T18:01:50\.360431\+00:00: rank \#103

2026\-10\-08T19:02:55\.719274\+00:00: rank \#104

2026\-10\-08T20:01:36\.359022\+00:00: rank \#104

2026\-10\-08T21:03:34\.000719\+00:00: rank \#105

2026\-10\-08T22:01:13\.459732\+00:00: rank \#105

2026\-10\-08T23:01:25\.318392\+00:00: rank \#104

2026\-10\-09T08:01:53\.314021\+00:00: rank \#105

2026\-10\-09T09:02:59\.93426\+00:00: rank \#106

2026\-10\-09T10:02:22\.652527\+00:00: rank \#105

2026\-10\-09T11:02:04\.807282\+00:00: rank \#105

2026\-10\-09T12:02:16\.769295\+00:00: rank \#105

2026\-10\-09T13:02:30\.35034\+00:00: rank \#107

2026\-10\-09T14:01:34\.215134\+00:00: rank \#107

2026\-10\-09T15:01:27\.564392\+00:00: rank \#107

2026\-10\-09T16:02:06\.561056\+00:00: rank \#108

2026\-10\-09T17:03:06\.673648\+00:00: rank \#110

2026\-10\-09T18:01:02\.851052\+00:00: rank \#110

2026\-10\-09T19:01:11\.250291\+00:00: rank \#110

2026\-10\-09T20:01:32\.91907\+00:00: rank \#110

2026\-10\-09T21:02:08\.376144\+00:00: rank \#112

2026\-10\-09T22:01:19\.253075\+00:00: rank \#114

2026\-10\-09T23:01:31\.990912\+00:00: rank \#114

2026\-10\-10T08:01:00\.593376\+00:00: rank \#113

2026\-10\-10T09:01:45\.527975\+00:00: rank \#115

2026\-10\-10T10:00:53\.799353\+00:00: rank \#115

2026\-10\-10T11:00:35\.65851\+00:00: rank \#114

2026\-10\-10T12:01:11\.169647\+00:00: rank \#114

2026\-10\-10T13:00:54\.008377\+00:00: rank \#113

2026\-10\-10T14:01:43\.208766\+00:00: rank \#115

2026\-10\-10T15:01:24\.825188\+00:00: rank \#115

2026\-10\-10T16:01:10\.213328\+00:00: rank \#114

2026\-10\-10T17:00:48\.84189\+00:00: rank \#113

2026\-10\-10T18:00:57\.55132\+00:00: rank \#113

2026\-10\-10T19:00:52\.379463\+00:00: rank \#112

2026\-10\-10T20:00:21\.993912\+00:00: rank \#112

2026\-10\-10T21:01:10\.657738\+00:00: rank \#113

2026\-10\-10T22:00:50\.433569\+00:00: rank \#112

2026\-10\-10T23:01:00\.95027\+00:00: rank \#113

Linear's post is a detailed CI optimization case study, but the discussion is split between technical alternatives and constraints around Bazel, runners, and network I/O, and broader skepticism about whether faster AI\-assisted development is translating into better products\.

## The brief

Linear describes reworking its CI after AI\-assisted coding increased PR volume and made CI a bottleneck\. The team focused on reducing PR wait time and runner time, reporting that despite the test suite nearly quadrupling, wait time fell from over 6 minutes to just over 5, while runner time per test roughly halved\.

- Moving workloads off GitHub Actions to third\-party runners with faster CPUs, storage, and cache infrastructure made like\-for\-like jobs 34% faster on average, with tsc dropping 52%\.
- Switching to tsgo, the native TypeScript compiler, cut the weekly median tsc check by 73%; rewriting custom lint rules to use AST static analysis instead of type information let ESLint drop TypeScript, reducing API lint time by 68% and full\-repository lint time by 55%\.
- Optimizing gating and checkout jobs included capping fetch depth, using sparse blobless checkout, and removing checkout where unnecessary; median change\-detection time fell from 26 to 8 seconds, p90 from 31 to 12 seconds, and the slowest run from 138 to 37 seconds\.
- Reducing repeated setup included preinstalling shared dependencies in the CI image, restricting pnpm install to needed packages (44\-73 seconds to 16\-18 seconds), skipping node\_modules caching because filtered install was faster, replacing migration replay with a schema snapshot (12 seconds to 1\-2 seconds), and batching seven short checks into two jobs to save roughly 87,000 runner\-minutes per month, or 11\.8% of total CI usage\.
- Test execution improvements included splitting large Vitest files, moving from four to eight shards, and introducing an opt\-in isolate:false project to share module state; this was the largest single performance improvement, worth roughly 17% in monthly savings, with the slowest shard falling from about 300\-379 seconds to about 195 seconds and total API\-shard runner time dropping from about 32\.8 to 22 minutes per run\.
- Sharding is limited by setup overhead: at 110\-140 seconds per shard, eight shards would have spent more runner time on setup than on tests, but after setup optimizations eight shards spend less total setup time than four did before\. Linear says without these changes today's suite would take roughly 11 minutes, and it is adding about 2,000 tests per week\.

## Discussion themes

### CI speed versus human testing and product fit

One commenter argues the real bottleneck is not CI but human testing and whether features do what customers want and understand\. Another frames CI as a foundational layer: if it cannot keep up with agent output, higher\-layer checks like user experience become slower and less reliable, similar to optimizing an inner loop to speed up a whole program\.

Sources: [Comment 49792937](<https://news.ycombinator.com/item?id=49792937>) · [Comment 49793369](<https://news.ycombinator.com/item?id=49793369>)

### Bazel as an alternative, with caveats

A commenter claims Bazel can achieve roughly 10\-second build times with a warm cache even for massive projects if setup cost is paid\. Another says Bazel conversion setup has dropped sharply with agents, contrasting a multi\-year complex conversion with a two\-week simpler one\. A counterargument says in TypeScript ecosystems the bottleneck is often network and disk IOPS rather than compute, and 10 seconds is unrealistic for full test suites involving virtual DOM or browsers; 1\-2 minutes is more plausible for a large monorepo\. A follow\-up notes Bazel can fetch only final artifacts from remote cache and persistent workers can reduce network roundtrips, though that is harder to make bulletproof\.

Sources: [Comment 49792341](<https://news.ycombinator.com/item?id=49792341>) · [Comment 49792901](<https://news.ycombinator.com/item?id=49792901>) · [Comment 49793137](<https://news.ycombinator.com/item?id=49793137>) · [Comment 49793390](<https://news.ycombinator.com/item?id=49793390>)

### GitHub Actions reliability and runner migration

A commenter is not surprised Linear moved off GitHub Actions, calling Actions convenient but slow and citing broader reliability issues with GitHub\. They expect more organizations to move to different pipelines\.

Sources: [Comment 49792988](<https://news.ycombinator.com/item?id=49792988>)

### Skepticism that AI velocity is producing better products

One commenter asks why, if everyone is moving faster and hitting walls in review, CI, and product, there have not been clear improvements in shipped products, pointing to fewer new phone features, no indie Linux\-sized alternative OS, and slow Windows UI\. Another asks where the increased revenue is, suggesting mostly AI labs benefit\. A counterargument cites an 84% year\-over\-year increase in iOS app submissions and argues large corporate projects are slowed by institutional dysfunction, not coding speed\. The original skeptic replies that volume alone does not prove real user value and asks for products with a real userbase that could not exist or scale pre\-AI\.

Sources: [Comment 49793761](<https://news.ycombinator.com/item?id=49793761>) · [Comment 49793883](<https://news.ycombinator.com/item?id=49793883>) · [Comment 49793953](<https://news.ycombinator.com/item?id=49793953>) · [Comment 49794013](<https://news.ycombinator.com/item?id=49794013>)

### Linear's role in agentic development

One commenter worries that apps like Linear increasingly get in the way of fully agentic development, where sub\-agent orchestration happens through agent\-to\-agent messaging, worktrees, on\-demand git restructuring, and markdown coordination files\. Another sarcastically says Linear has been finished for a long time and does not need more features, then laments it is becoming the next Jira\.

Sources: [Comment 49792929](<https://news.ycombinator.com/item?id=49792929>) · [Comment 49792936](<https://news.ycombinator.com/item?id=49792936>)

### Terminology and audience assumptions

A commenter says CI should be expanded on first use because not everyone in tech knows the acronym\. Another pushes back that a software engineer not knowing CI would be worrying, while a third notes CI is mainly a programming\-side workflow and is often absent in networking, systems administration, and hardware roles\.

Sources: [Comment 49792631](<https://news.ycombinator.com/item?id=49792631>) · [Comment 49792666](<https://news.ycombinator.com/item?id=49792666>) · [Comment 49792804](<https://news.ycombinator.com/item?id=49792804>)

## Sources & coverage

AI-generated summary · 2026\-09\-22T08:01:00\.162346\+00:00

Based on 17 of 17 usable stored comments, selected by depth and branch activity. This is a sample of the discussion. Article text may also be shortened.

Generated using deepseek\-ai/DeepSeek\-V4\.1\-Flash. Check the linked sources for full context.
