<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[The Pragmatic Engineer]]></title><description><![CDATA[Observations across the software engineering industry.]]></description><link>https://blog.pragmaticengineer.com/</link><image><url>https://blog.pragmaticengineer.com/favicon.png</url><title>The Pragmatic Engineer</title><link>https://blog.pragmaticengineer.com/</link></image><generator>Ghost 6.54</generator><lastBuildDate>Tue, 21 Jul 2026 14:13:50 GMT</lastBuildDate><atom:link href="https://blog.pragmaticengineer.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[The Pulse: What can we learn from Bun’s rapid Rust rewrite with AI?]]></title><description><![CDATA[To a sceptic, spending $165K to migrate Bun from Zig to Rust sounds very expensive. But to a realist, shortening a 1-2 year migration down to 11 days opens amazing new opportunities for devs. However, a thoroughly-tested project is required to pull it off.]]></description><link>https://blog.pragmaticengineer.com/the-pulse-what-can-we-learn-from-buns-rapid-rust-rewrite-with-ai/</link><guid isPermaLink="false">6a58cdde676a90000149edb3</guid><dc:creator><![CDATA[Ivan Klaric]]></dc:creator><pubDate>Thu, 16 Jul 2026 16:50:20 GMT</pubDate><content:encoded><![CDATA[<p><em>Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one out of four topics of </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-what-can-we-learn-from?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em>last week&apos;s The Pulse issue</em></a><em>. Full subscribers received the article below seven days ago. If you&#x2019;ve been forwarded this email, you can </em><a href="https://newsletter.pragmaticengineer.com/about?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em>subscribe here</em></a><em>.</em></p><p>Last week in San Francisco, I met Jarred Sumner, creator of JavaScript runtime, Bun, and was keen to learn more about the rewrite of Bun from Zig to Rust. But at the time, Jarred didn&#x2019;t want to say too much, as the tool used for the migration, Fable, was out of action due to the US government imposing export controls.&#xA0;</p><figure class="kg-card kg-image-card"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/data-src-image-e6450cb0-ef41-4b2a-9217-6bcdd2c7a816.png" class="kg-image" alt loading="lazy" width="2000" height="1347" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/07/data-src-image-e6450cb0-ef41-4b2a-9217-6bcdd2c7a816.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/07/data-src-image-e6450cb0-ef41-4b2a-9217-6bcdd2c7a816.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1600/2026/07/data-src-image-e6450cb0-ef41-4b2a-9217-6bcdd2c7a816.png 1600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/data-src-image-e6450cb0-ef41-4b2a-9217-6bcdd2c7a816.png 2048w" sizes="(min-width: 720px) 720px"></figure><p><em>Jarred and I at Anthropic&#x2019;s HQ, last week</em></p><p>Fortunately, the situation is now resolved and Fable is available globally, and Jarred has published a detailed <a href="https://bun.com/blog/bun-in-rust?ref=blog.pragmaticengineer.com"><u>post about the project.</u></a> Before we get into the migration, some context:</p><p><strong>Bun is a complex project, with lots of production software depending on it. </strong>Bun itself does many things:</p><ul><li>JavaScript, TypeScript and CSS <a href="https://stackoverflow.com/questions/44931479/compiling-vs-transpiling?ref=blog.pragmaticengineer.com"><u>transpiling</u></a>, <a href="https://en.wikipedia.org/wiki/Minification_(programming)?ref=blog.pragmaticengineer.com"><u>minifying</u></a> and bundling</li><li>A test runner</li><li>A package manager (npm-compatible)</li><li>Other things: module resolution, a WebSocket client, Node.js implementations and many modules</li></ul><p>Today, Bun has 22 million monthly downloads, and software like Claude Code and OpenCode depend on it, while hosting providers like Vercel, Railway and DigitalOcean do first-party support for Bun.</p><h3 id="why-a-rewrite">Why a rewrite?&#xA0;</h3><p>Zig is not a memory safe language, and memory-related bugs occurred continuously.<strong> </strong>Jarred <a href="https://bun.com/blog/bun-in-rust?ref=blog.pragmaticengineer.com"><u>lists</u></a> memory-related bugs in the latest version of Bun: memory leaks, crashes due to memory issues, heap-out-of-bounds writes, and so on. This was after the Bun team patched the Zig compiler to reduce memory-related issues, and put end-to-end memory leak tests in place. As Jarred says:</p><p>&#x201C;Our bugfix list felt bad and I was tired of going to sleep worrying about crashes in Bun. I don&apos;t blame Zig for that - other users of Zig don&apos;t have the bugs we had, and mixing GC with manually-managed memory is an uncommon enough thing for software to need that no language really designs for it. (...)</p><p>For Bun, correctly handling the lifetimes of garbage-collected values and manually-managed values has been a major source of stability issues - most often small memory leaks and occasionally crashes. Every memory allocation has to be meticulously reviewed. Where do these bytes get freed? How do we ensure it only gets freed once? Did we check for JavaScript exceptions properly? Is this garbage-collected pointer visible to the conservative stack scanner? Is this garbage collected memory or manually managed memory?&#x201D;</p><p>Moving to a memory-safe, yet performant language could eliminate such errors, and Rust is one such language that fitted the bill. Jarred:</p><p>&#x201C;A large percentage of bugs from that list are use-after-free, double-free, and &quot;forgot to free&quot; in an error path. In safe Rust, these are compiler errors and RAII-like automatic cleanup with Drop. Compiler errors are a better feedback loop than a style guide.&#x201D;</p><p>However, doing a <em>full</em> rewrite on Rust has always been a terrible idea. Or at least, it used to be, because of how unbearably long it would have taken:</p><p><strong>There are two problems with rewrites: they take too long, and they take waaaay too long. </strong>A dev who has done rewrites probably knows how things tend to go:</p><ol><li>Make an educated guess about how long it will take; say, nine months.</li><li>Nine months later, there&#x2019;s still another ~6 months to go because new functionality is added to the <em>original</em> codebase, and now that new functionality needs to be added in!</li><li>By 15 months in, there&#x2019;s still months left to go for the same reason!</li><li>In the end, you manage to mandate a &#x201C;feature freeze&#x201D; for two months and finish the rewrite in ~18 months, if lucky. The original nine-month estimate can end up taking 2+ years.</li></ol><p>Jarred likened rewriting Bun in Zig to this:</p><p>&#x201C;Historically, rewrites are a terrible idea. Excluding comments, Bun is 535,496 lines of Zig.&#xA0;</p><p><strong>A rewrite in another language would take a small team of engineers a full year.</strong></p><p>A year of zero user-facing impact is not a realistic option we could consider. So, enforcement through code-style to fix stability issues was our best bet, and was our plan when we added Rust-inspired smart pointers to Bun&apos;s codebase.</p><p>But honestly, I didn&apos;t want to do it. Homegrown smart pointers offer worse ergonomics than Rust, with none of the guarantees.</p><p>What if, instead, I spend a week testing if Anthropic&apos;s new model [Fable] can rewrite Bun in Rust?&#x201D;</p><h3 id="rewriting-bun-with-fable">Rewriting Bun with Fable</h3><p>Unsurprisingly, the rewrite was not as simple as typing a prompt like: &#x201C;Claude, rewrite Bun in Rust. Make zero mistakes.&#x201D; Instead, this is how Jarred did it:</p><p><strong>Step #1: Prep work.</strong> Three hours of intense prep work with Claude, explained<strong> </strong>Jarred:</p><p>&#x201C;Before writing any code, I spent about 3 hours talking to Claude about how to map patterns from our Zig codebase closely to Rust. Claude serialized this discussion into a <a href="https://github.com/oven-sh/bun/commit/46d3bc29f270fa881dd5730ef1549e88407701a5?ref=blog.pragmaticengineer.com"><u>PORTING.md</u></a> document, which ended up <a href="https://news.ycombinator.com/item?id=48016880&amp;ref=blog.pragmaticengineer.com"><u>on Hacker News</u></a> [as the Zig &#x2192; Rust porting guide]&#x201D;</p><p>This guide is a 600-line file with instructions like:</p><p>Ground rules:</p><ul><li>No <strong>tokio</strong>, <strong>rayon</strong>, <strong>hyper</strong>, <strong>async-trait</strong>, <strong>futures</strong>. No std::fs, std::net, std::process. Bun owns its event loop and syscalls. (Rust core/std slice, iter, mem, fmt, and core::ffi are fine &#x2014; only the I/O-touching modules are banned.)</li><li>No <strong>async fn</strong>. Everything is callbacks + state machines, same as the Zig.</li><li><strong>Borrow-checker reshaping is allowed.</strong> When matching Zig flow yields overlapping &amp;mut, capture the needed scalar (.len(), index) into a local, drop the borrow, then re-borrow. Do NOT reach for raw pointers just to silence borrowck; leave // PORT NOTE: reshaped for borrowck so Phase B diff readers aren&apos;t confused.</li></ul><p>It&#x2019;s a series of instructions that makes sense to someone who&#x2019;s expert in Rust.<em> If you want to learn more, we cover </em><a href="https://newsletter.pragmaticengineer.com/p/why-rust-is-different-with-alice?ref=blog.pragmaticengineer.com"><em><u>Rust basics and why Rust is different, with Alice Ryhl.</u></em></a></p><p><strong>Step #2: Trial run + adversarial review. </strong>Asking Claude to rewrite three files out of 1,448 total number of files. After the rewrite, Jarred ran two separate adversarial reviews with Claude to critique the result, in separate sessions than the one that Claude made the changes in.</p><p><strong>Step #3: split up the work across 64 AI agents. </strong>Jarred split up the job so that agents worked on files independent from one another, in parallel.</p><p><strong>Step #4: iron out issues with the run (~1 day). </strong>When Jarred attempted to run all this, agents kept getting in each other&#x2019;s way:</p><p>&#x201C;I asked Claude to loop the workflow on all 1,448 .zig files, and about 2 minutes in, one Claude ran git stash before committing. Another ran git stash pop. And then git reset HEAD --hard. They were stepping on each other! And if I put each Claude into a separate worktree, I would run out of disk space because Bun&apos;s git repository is too big and eventually the changes will need to be compiled and seen together.</p><p>So, I asked Claude to edit the workflow to instruct Claude to never run git stash or git reset or any git command that doesn&apos;t commit a specific file at once. No cargo either. No slow commands at all.</p><p>Then, Claude resumed the workflows. And it was working! Too slowly, so I split it into just 4 workflow shards each with their own worktree (4 worktrees total), each running 16 Claudes committing and pushing files.&#x201D;</p><p><strong>Step #5: have it run and wait ~2 days. </strong>The parallel agents went to work, and completed the rewrite of 535,496 lines of Zig code over the course of two days. Each commit was checked by two adversarial reviews, before being committed.</p><p><strong>Step #7: fix ~1,600 compiler errors (~12 hours).</strong> The rewrite was completed, but nothing compiled. Going crate-by-crate (&#x2018;crate&#x2019; is Rust&#x2019;s concept of a top-level compilation unit), Jarred had Claude fix compiler errors. <em>This alone would be a herculean task for an engineer, but not for Claude</em>:</p><p>&#x201C;Fixing the cyclical dependencies revealed about 16,000 compiler errors. A massive number for 1 human, but not a crazy number for 64 Claude&#x2019;s at once.</p><p>To maximize parallelism, the workflow looped over each crate.</p><ul><li>For each crate, run cargo check, group the output by file and save the errors to a file</li><li>Fix all the compiler errors within that crate</li><li>2 adversarial reviewers for the crate&apos;s changes</li><li>1 fixer applies the fixes&#x201D;</li></ul><figure class="kg-card kg-image-card"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/data-src-image-cd28edee-cd89-4840-b174-c33834d838df.png" class="kg-image" alt loading="lazy" width="1656" height="1200" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/07/data-src-image-cd28edee-cd89-4840-b174-c33834d838df.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/07/data-src-image-cd28edee-cd89-4840-b174-c33834d838df.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1600/2026/07/data-src-image-cd28edee-cd89-4840-b174-c33834d838df.png 1600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/data-src-image-cd28edee-cd89-4840-b174-c33834d838df.png 1656w" sizes="(min-width: 720px) 720px"></figure><p><em>Visualizing fixing of errors, one by one, done by the agents. Source: </em><a href="https://bun.com/blog/bun-in-rust?ref=blog.pragmaticengineer.com"><em><u>Anthropic</u></em></a></p><p>The enjoyable thing about this phase of the migration was that the agents ran from midnight until 11:30am, fixing compiler bugs on their own &#x2013; when Jarred and the team were getting some sleep.</p><p><strong>Step #8: run tests locally (~2 days). </strong>Bun has a large test suite. The next step was to get these tests to <em>run </em>without compilation errors.&#xA0;</p><p><strong>Step #9: get the test suite to pass CI (~3 days). </strong>Once the tests were running (and failing), the next step was to fix the code, so that the tests could pass. This took two days.</p><p><strong>Step #10: Done in 11 days! </strong>After all the tests passed and Jarred verified that everything worked as expected, he merged the changes. The whole process took 11 days, from planning to the finish.</p><figure class="kg-card kg-image-card"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/data-src-image-15c365dd-95ef-4cf9-a4f3-0f0e6f7e6312.png" class="kg-image" alt loading="lazy" width="1746" height="1084" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/07/data-src-image-15c365dd-95ef-4cf9-a4f3-0f0e6f7e6312.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/07/data-src-image-15c365dd-95ef-4cf9-a4f3-0f0e6f7e6312.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1600/2026/07/data-src-image-15c365dd-95ef-4cf9-a4f3-0f0e6f7e6312.png 1600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/data-src-image-15c365dd-95ef-4cf9-a4f3-0f0e6f7e6312.png 1746w" sizes="(min-width: 720px) 720px"></figure><p><em>The rewrite: porting ~550K lines of code, in 6,500 commits, over 11 days, with 64 agents</em></p><h3 id="how-repeatable-is-this-process">How repeatable is this process?</h3><p><strong>The rewrite cost a whopping $165,000 with API pricing. </strong>With Fable&#x2019;s API prices, the rewrite consumed 5.9 billion uncached input tokens, 690 million output tokens, and 72 billion cached input token reads. Anthropic sells API tokens at a margin as its business, so the cost of the rewrite for it was lower. It&#x2019;s a large amount: the equivalent of the annual base salary for a software engineer at a mid-tier company in the US!</p><p>But then again, could have an engineer done <em>all this work </em>in a year? Probably not, and Mitchell Hashimoto <a href="https://x.com/mitchellh/status/2075244791571611753?s=20&amp;ref=blog.pragmaticengineer.com"><u>says the same</u></a>:</p><p>&#x201C;On the cost, I think $165,000 at API pricing for Fable (didn&#x2019;t verify) is an incredible deal. There&#x2019;s absolutely no way an engineer with that salary would&#x2019;ve been able to achieve the milestones Claude did in 11 days. No way. (Even if you break it down to N engineers paid $165K total in 11 days it doesn&#x2019;t math out)</p><p>This does, however, also reconfirm my own biases which is that Fable in particular is most excellent at hard, focused tasks with clear reward functions. I&#x2019;ve been tweeting about this recently.&#x201D;</p><p><strong>What if AI enables rewrites and migrations that wouldn&#x2019;t have been considered before? </strong>The idea of rewriting Bun in Rust without AI was impractical, admits Jarred:</p><p>&#x201C;By hand, I think this would&apos;ve taken three engineers with full context on the codebase about a year, during which time we wouldn&apos;t be able to improve Node.js compatibility, fix bugs, fix security issues or implement new features. We never would&apos;ve done that. The realistic alternative was to do nothing and keep fixing the bugs at the top of this post forever.&#x201D;</p><p>A rewrite or migration taking months or years is why so many of these projects never happen. Let&#x2019;s take aside the cost for a minute and consider this question: if AI can shorten a one-year rewrite to a week: would you do it?&#xA0;</p><p>If the answer is &#x201C;hell, yes:&#x201D; a blueprint now exists in the form of the Bun migration on how to do it. There are some caveats not detailed in the post, though:</p><ol><li>You need an engineer who is <em>very</em> motivated and knows the codebase very well</li><li>You need an <em>extremely</em> robust test suite, so when the test suite passes, you know it works</li><li>You need to be willing to invest a lot in tokens, not knowing how well it all will work</li></ol><p>In fairness, #3 is the weakest point because we know LLMs are pretty good at &#x201C;mundane&#x201D; work like code migrations. With a good test suite (#2) and a motivated engineer to iron out things (#1), you&#x2019;ll more likely than not succeed.</p><p>The remaining question is how much can be spent. It will likely not be $165K: and costs can be reduced with a simpler project, or by being thoughtful about model usage. For example, do high-level planning with the most expensive model, and cheaper ones for coding and review tasks.</p><p>Migrations with AI are surely speeding up, but only when projects are well-engineered like Bun&#x2019;s has been.</p><hr><p>Read the full issue of <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-what-can-we-learn-from?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><strong>The Pulse this excerpt is from</strong></a>, or check out <a href="https://newsletter.pragmaticengineer.com/s/the-pulse?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><strong>the latest The Pulse</strong></a> from today. <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-groks-cli-caught-uploading?ref=blog.pragmaticengineer.com" rel="noreferrer">Today&#x2019;s issue</a> covers:</p><ol><li>Grok&#x2019;s CLI uploaded all your local files to the cloud, then got caught.</li><li>New trend: concern about massive increase in code review load.</li><li>Are more devs at enterprises upset about enterprise pricing by AI labs &#x2013; and does it matter?</li><li>Linux creator: AI &#x201C;clearly useful.&#x201D;</li></ol><p><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-groks-cli-caught-uploading?ref=blog.pragmaticengineer.com" rel="noreferrer"><em>Read the full issue here</em></a></p>]]></content:encoded></item><item><title><![CDATA[The Pulse: Interesting AI coding stats from Cursor]]></title><description><![CDATA[Power users generate 10x as many lines of code vs the median, most of the AI spend is coming from input tokens not output ones, and almost half of AI changes are accepted without manual review by devs (!!)]]></description><link>https://blog.pragmaticengineer.com/the-pulse-interesting-ai-coding-stats-from-cursor/</link><guid isPermaLink="false">6a4fd7106171aa00016f1eab</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Thu, 09 Jul 2026 17:20:34 GMT</pubDate><content:encoded><![CDATA[<p><em>Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one out of four topics </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-a-trend-of-trying-to-cut?ref=blog.pragmaticengineer.com" rel="noreferrer"><em>a past <u>The Pulse issue</u></em></a><em>. Full subscribers received the article below five weeks ago. If you&#x2019;ve been forwarded this email, you can</em><a href="https://newsletter.pragmaticengineer.com/about?ref=blog.pragmaticengineer.com"><em> <u>subscribe here</u></em></a><em>.</em></p><p>Cursor has just released a new report based on two years of its aggregated usage data, and there are some interesting findings:</p><h3 id="power-users-generate-10x-as-many-lines-of-code-vs-the-median">Power users generate 10x as many lines of code vs the median</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/image.png" class="kg-image" alt loading="lazy" width="1456" height="815" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/07/image.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/07/image.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/image.png 1456w" sizes="(min-width: 720px) 720px"><figcaption><i><em class="italic" style="white-space: pre-wrap;">Source: </em></i><a href="https://cursor.com/insights?ref=blog.pragmaticengineer.com" target="_blank" rel="noopener noreferrer nofollow"><i><em class="italic" style="white-space: pre-wrap;">Cursor</em></i></a></figcaption></figure><p>The median dev using Cursor (the p50) generates about 700 lines of code per week with it, while for the 90th percentile, it&#x2019;s closer to 9,000 lines.</p><h3 id="top-1-of-users-create-incredible-volume-of-code">Top 1% of users create incredible volume of code</h3><p>The p99 data is pretty stunning:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/image-2.png" class="kg-image" alt loading="lazy" width="1456" height="774" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/07/image-2.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/07/image-2.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/image-2.png 1456w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">The top 1% of Cursor users (p99) vs the top 10% (p90)</span></figcaption></figure><p>The top 1% of users generate around 30-40K lines of code <strong>per week</strong>! That&#x2019;s the equivalent of what ~45 &#x201C;median&#x201D; devs generate in the same period.</p><p>It&#x2019;s worth asking how these top 1% of users are different. Are they writing a lot more greenfield code, do they have a bias for not using libraries, are they tokenmaxxing to get to the top of leaderboards? Do they generate 45x as many bugs, and importantly: are they adding a lot of business value with the software they ship?</p><h3 id="cursor-consumes-10x-more-input-tokens-than-it-generates-in-output-tokens">Cursor consumes 10x more input tokens than it generates in output tokens</h3><p>This is surprising: 90% of Cursor&#x2019;s token usage is input tokens! This means that most of the tokens used are for reading the existing codebase and documentation. Outputting of code is a minority usage:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/image-3.png" class="kg-image" alt loading="lazy" width="1456" height="811" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/07/image-3.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/07/image-3.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/image-3.png 1456w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Input tokens (Cursor reading the codebase) is the bulk of token usage</span></figcaption></figure><p>In some ways, this usage makes sense: as devs, we always spent far more time on reading the code, compared to lines of code we typed out. The &#x201C;10:1 read-to-write&#x201D; ratio is a classic. Here&#x2019;s Robert. C. Martin (aka &#x201C;uncle Bob&#x201D;) sharing this observation in 2008, in his book, Clean Code:</p><blockquote>&#x201C;<strong>Indeed, the ratio of time spent reading versus writing is well over 10 to 1.</strong> We are constantly reading old code as part of the effort to write new code&#x2026; [Therefore] making it easy to read, makes it easier to write.&#x201D;</blockquote><p>I find it amusing that we&#x2019;re now seeing this 10:1 read / write ratio for token usage with AI agents!</p><h3 id="input-tokens-become-the-main-ai-token-cost">Input tokens become the main AI token cost</h3><p>Input tokens are priced at a fraction of output tokens: for example, Opus 4.7 charges 5x more for output tokens than for input tokens ($5 per 1 million input tokens and $25 per 1 million output tokens). Still, thanks to input tokens dominating token usage, Cursor is seeing input tokens account for closer to 70% of the cost of AI coding agents:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/image-4.png" class="kg-image" alt loading="lazy" width="1456" height="807" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/07/image-4.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/07/image-4.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/image-4.png 1456w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Input tokens dominate Cursor costs</span></figcaption></figure><h3 id="without-caching-context-token-cost-would-be-10x-higher">Without caching context, token cost would be 10x higher</h3><p>Cursor does smart caching of context, to avoid re-generating old context with more new input tokens. When taking cache usage into account, Cursor only spends 0.6% of tokens on output tokens. The remaining 99% is split between cache read (90%), cache write (2.5%), and input tokens (7%):</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/image-5.png" class="kg-image" alt loading="lazy" width="1456" height="793" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/07/image-5.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/07/image-5.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/image-5.png 1456w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Output tokens are only 0.6% of token usage when considering cache reads &amp; writes</span></figcaption></figure><p><strong>I wonder if context reuse and caching will be a key AI efficiency component in the future? </strong>AI tokens are expensive to generate, so any form of reuse will make a lot of sense, especially in workflows like coding where a lot of existing context is reused.</p><p>Of course, Cursor sharing this detail also makes sense, as they remind everyone that building an efficient AI agent harness is far from trivial. Indeed, if you roll your own agent harness, you also need to put an efficient caching layer in place to match the efficiency of tools like Cursor.</p><h3 id="opus-is-the-most-expensive-model-could-hurt-anthropic">Opus is the most expensive model &amp; could hurt Anthropic</h3><p>At the time of publishing, Opus 4.7 was still considered the most capable coding model. However, it&#x2019;s also very expensive, and Cursor&#x2019;s own data shows it&#x2019;s close to 10x more expensive than its own Composer 2.5 model:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/image-6.png" class="kg-image" alt loading="lazy" width="1456" height="782" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/07/image-6.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/07/image-6.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/image-6.png 1456w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Opus 4.7 is twice as expensive as GPT-5.5 &amp; nearly 10x more than Composer 2.5</span></figcaption></figure><p>It&#x2019;s significant that Cursor compares the cost of a single agent request; it&#x2019;s not a direct token-to-token comparison. And it&#x2019;s worth noting this benchmark is being shared by Cursor, which has an incentive for its Composer model to appear the lowest-cost.</p><p>Still, assuming you can get similar-enough results with a 10x cheaper model, it is a saving that&#x2019;s hard to ignore, especially for mid-sized and above companies. I would not be surprised if more tech companies find ways for devs to use less capable &#x2013; but cheaper &#x2013; models for less critical work.</p><h3 id="more-expensive-models-result-in-higher-acceptance-rates">More expensive models result in higher acceptance rates</h3><p>An interesting metric Cursor shares is cost-per-line-added, per model:</p><figure class="kg-card kg-image-card"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/image-7.png" class="kg-image" alt loading="lazy" width="1456" height="759" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/07/image-7.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/07/image-7.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/image-7.png 1456w" sizes="(min-width: 720px) 720px"></figure><p>This metric is a more realistic cost because it correlates to output: &#x201C;smart&#x201D; models that are expensive, but which produce code that is frequently accepted, are penalized by the cost-per-agent-request metric, but they&#x2019;re not here.</p><p>Indeed, Opus 4.7 has the same cost-per-line-accepted as GPT 5.5 at half the cost per agent request. In this comparison, Cursor&#x2019;s Composer model is &#x201C;only&#x201D; 5x as efficient.</p><p>Missing from both lists are Google&#x2019;s Gemini models, a strange omission by Cursor. I reached out to Cursor and they told me that Gemini was left out simply because they see very little usage of this model on their platform, similar to the sparsely used Grok model.</p><h3 id="almost-half-of-ai-changes-accepted-without-manual-review-by-devs">Almost half of AI changes accepted without manual review by devs</h3><p>I&#x2019;ve left the most interesting part of this report to last: in just a month, among devs using Cursor, it has gone from 10% who let AI agents create commits without a manual step, to around 40% of devs who no longer personally check the code:</p><figure class="kg-card kg-image-card"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/image-8.png" class="kg-image" alt loading="lazy" width="1456" height="746" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/07/image-8.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/07/image-8.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/07/image-8.png 1456w" sizes="(min-width: 720px) 720px"></figure><p>The jump correlates with Opus 4.7 and GPT-5.5 being released, and around the time when many devs seem to have <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-160-why-its-so-dramatic?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">concluded that writing code by hand is dying</a> after experiencing this generation of models&#x2019; capability at generating code.</p><p>Check out <a href="https://cursor.com/insights?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">the full report from Cursor</a> for more details. Thanks to the team for releasing this data!</p><hr><p>Read the full issue of <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-a-trend-of-trying-to-cut?ref=blog.pragmaticengineer.com" rel="noreferrer">The Pulse this excerpt is from</a>, or check out <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-what-can-we-learn-from?ref=blog.pragmaticengineer.com" rel="noreferrer">the latest The Pulse</a> from today. Today&apos;s issue covers:</p><ul><li>Bun&#x2019;s Rust rewrite with Fable: what can we learn?</li><li>Anthropic&#x2019;s Fable, OpenAI&#x2019;s GPT-5.6 Sol, Cursor&#x2019;s Grok 4.5, Meta&#x2019;s Muse</li><li>North Korean hackers keep trying to infiltrate full-remote companies</li><li>Industry Pulse: Meta&#x2019;s key logging exposed sensitive data, massive cuts at Xbox, Meta could not buy enough AI capacity from Google, Qualcomm acquires Modular, and memory price hikes hit Apple products.</li></ul>]]></content:encoded></item><item><title><![CDATA[The Pulse: a new trend, smart model routing]]></title><description><![CDATA[Are there any ‘intelligent’ router solutions out there which select the right model for the right task? I looked into it, and there are a few options.]]></description><link>https://blog.pragmaticengineer.com/the-pulse-a-new-trend-smart-model-routing/</link><guid isPermaLink="false">6a46b160d2d7770001b1479c</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Thu, 02 Jul 2026 18:46:24 GMT</pubDate><content:encoded><![CDATA[<p><em>Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one out of four topics from a previous </em><a href="https://newsletter.pragmaticengineer.com/p/did-anthropics-new-model-just-boost?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em>The Pulse issue</em></a><em>. Full subscribers received the article below three weeks ago. If you&#x2019;ve been forwarded this email, you can</em><a href="https://newsletter.pragmaticengineer.com/about?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em> subscribe here</em></a><em>.</em></p><p>Two weeks ago, I covered a <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-a-trend-of-trying-to-cut?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">trend of companies trying to reduce spending on AI within their engineering departments</a>. While talking to my sources about this, one head of engineering at a larger company told me that they wished there was an &#x2018;intelligent&#x2019; router that picks the right model for the right task.</p><p>The reason for such a wish is clear; prices for tokens vary greatly per model, and there can easily be a 10-20x difference between a cheap, average model, and a state-of-the-art one.</p><p>I did some digging into whether any solutions like this currently exist because the benefits look obvious, and what I found is listed below. <em>Usual disclaimer: I have no affiliation with these vendors, and have not been paid to mention any of them!</em></p><p><strong>Vendors:</strong></p><ul><li><a href="https://factory.ai/news/factory-router?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><strong>Factory Router</strong></a>: automatically selecting the right model per session, claiming 20-25% cost savings. <a href="https://factory.ai/news/factory-router?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">More details</a>.</li><li><a href="https://www.notdiamond.ai/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><strong>Not Diamond</strong></a>: auto-selection of coding models, claiming around 30% cost savings. Used by OpenRouter, under the hood. <a href="https://www.notdiamond.ai/blog?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">More details</a>.</li><li><a href="https://vercel.com/ai-gateway?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><strong>Vercel AI gateway</strong></a>. Hundreds of AI models, smart routing and billing in one place.&#xA0;<a href="https://vercel.com/ai-gateway?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">More details</a>.</li><li><a href="https://www.augmentcode.com/blog/augment-prism-model-routing-to-reduce-cost-and-maintain-quality?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><strong>Prism</strong></a><strong> </strong>by Augment Code. Choosing the &#x201C;best&#x201D; model automatically for coding tasks. <a href="https://www.augmentcode.com/blog/augment-prism-model-routing-to-reduce-cost-and-maintain-quality?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">More details</a>.</li><li><a href="https://docs.morphllm.com/sdk/components/router?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><strong>Model Router</strong></a> by Morph. An API to suggest model selection for a prompt, based on a list of models. <a href="https://docs.morphllm.com/sdk/components/router?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">More details</a></li><li><a href="https://weaverouter.com/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><strong>Weave router</strong></a>: a token router that works inside Codex, Claude Code and Cursor. &#x201C;Hard&#x201D; requests stay on frontier models, while &#x201C;easy&#x201D; ones go to open source ones. <a href="https://weaverouter.com/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">More details</a></li></ul><p><strong>AI gateways with routing built in.</strong> API gateways are popular ways to use LLMs in workplaces.</p><ul><li><a href="https://openrouter.ai/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><strong>OpenRouter</strong></a>: comes with &#x201C;auto router&#x201D; functionality where, after analyzing the prompt, the best one is selected. Uses Not Diamond under the hood.<strong> </strong><a href="https://openrouter.ai/docs/guides/routing/routers/auto-router?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">More details</a></li><li><a href="https://kilo.ai/gateway?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><strong>Kilo Gateway</strong></a>: route requests the model considered the best price-per-value. Supports using your own model keys, and using the service only as a router. <a href="https://kilo.ai/gateway?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">More details</a></li><li><a href="https://www.requesty.ai/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><strong>Requestly.ai</strong></a>: automatically route requests to the right model based on cost, latency, and availability, and tons of configuration. <a href="https://www.requesty.ai/solution/llm-routing?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">More details</a></li><li><a href="https://www.litellm.ai/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><strong>LiteLLM</strong></a>: define routing rules that automatically select the best model, based on input content with the &#x201C;auto routing&#x201D; functionality. The setup is more manual, but you get more control than with many other AI gateways. <a href="https://docs.litellm.ai/docs/proxy/auto_routing?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">More details</a></li><li><a href="https://github.com/envoyproxy/ai-gateway?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><strong>Envoy AI Gateway</strong></a>: an open source gateway that offers <em>some</em> routing configuration, though it feels that the routing engine focuses more on availability, not cost optimization and smart model routing. <a href="https://aigateway.envoyproxy.io/docs/capabilities/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">More details</a></li></ul><p>Cursor and GitHub Copilot also have an &#x201C;Auto&#x201D; model selection that does automatic model selection. For Cursor, it&#x2019;s a <a href="https://cursor.com/docs/models-and-pricing?ref=blog.pragmaticengineer.com#usage-pools" rel="noopener noreferrer nofollow">fixed-price model</a> where any savings made are for Cursor: they are not passed on to customers, but the model is cheaper than most others. For Copilot, the <a href="https://docs.github.com/en/copilot/concepts/models/auto-model-selection?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">Auto mode</a> results in intelligent model selection &#x2013; but I&#x2019;ve not heard much positive feedback about this mode from the few devs I asked about it. For Pro plans, Copilot supports pretty old models: GPT-5.5 and Opus 4.8 are not available. These are, however, available on the Pro+ and above plans.</p><p>Demand seems to be extremely high for intelligent routing. I asked <a href="https://x.com/matanSF?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">Matan Grinberg</a>, cofounder and CEO at Factory AI, who told me:</p><blockquote>&#x201C;Demand has been off the charts, especially from the enterprise [from large companies.] I&#x2019;ve met with practically every bank CEO since we launched this offering, because they want a layer to control spend, while still generating high-quality code.<br><br><strong>Pretty much everyone in tech is starting to see that open models are often sufficient. </strong>We&#x2019;re seeing open model usage strictly increasing the last six months. My guess is that hosted open models are sufficient in performance for around 60% of coding-related work, in terms of token spend.&#x201D;</blockquote><p>It feels to me that &#x201C;intelligent routing&#x201D; will become table stakes, and so we can expect pretty much all AI vendors to build some version of it, and many new vendors to offer this kind of functionality.</p><p>If you know of any additional vendors not listed, you can add a comment <a href="https://newsletter.pragmaticengineer.com/p/did-anthropics-new-model-just-boost?ref=blog.pragmaticengineer.com" rel="noreferrer">on the original The Pulse article</a>, and see more options there.<br><br><em>Read the full issue </em><a href="https://newsletter.pragmaticengineer.com/p/did-anthropics-new-model-just-boost?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em>The Pulse that this excerpt was from</em></a><em>, or check out </em><a href="https://newsletter.pragmaticengineer.com/s/the-pulse?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em>all The Pulse issues.</em></a></p>]]></content:encoded></item><item><title><![CDATA[Pollen tried to remove my article about CEO Callum Negus-Fancey and CTO Bradley Wright, and Google is assisting with it]]></title><description><![CDATA[<p>In 2022, I wrote about the damning fall of events tech company Pollen. The <a href="https://blog.pragmaticengineer.com/pollen/" rel="noreferrer">short of it:</a></p><blockquote>Pollen seemed to have pulled off the improbable feat of building a business in the notoriously low margin industry of events, surviving Covid-19, and building a solid software engineering organization. In April</blockquote>]]></description><link>https://blog.pragmaticengineer.com/pollen-tried-to-remove-my-article-about-callum-negus-fancey-and-google-is-assisting-to-it/</link><guid isPermaLink="false">6a4069be08e0e1000161f830</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Sun, 28 Jun 2026 00:40:25 GMT</pubDate><media:content url="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/Screenshot-2022-09-19-at-19.32.45.png" medium="image"/><content:encoded><![CDATA[<img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/Screenshot-2022-09-19-at-19.32.45.png" alt="Pollen tried to remove my article about CEO Callum Negus-Fancey and CTO Bradley Wright, and Google is assisting with it"><p>In 2022, I wrote about the damning fall of events tech company Pollen. The <a href="https://blog.pragmaticengineer.com/pollen/" rel="noreferrer">short of it:</a></p><blockquote>Pollen seemed to have pulled off the improbable feat of building a business in the notoriously low margin industry of events, surviving Covid-19, and building a solid software engineering organization. In April this year, the company announced it had raised another $150M in fresh funding.<br><br>But just three weeks later, Pollen&#xA0;<a href="https://newsletter.pragmaticengineer.com/p/the-scoop-11?ref=blog.pragmaticengineer.com">laid off</a>&#xA0;about 200 people, a third of staff. Leadership assured employees all was well. However, from that point on, things got worse. Leadership later pulled the plug on Slack, employees were not paid wages, pension contributions went missing, and vendors were not paid. Some vendors took matters into their own hands; on 9 August 2022, JIRA was suspended when Atlassian tired of the company&#x2019;s failure to pay.<br><br>On 10 August 2022, Pollen went bankrupt, collapsing into administration.</blockquote><p>The article looked bad on Pollen&apos;s founder, Callum Negus-Fancey. He was ultimately responsible for lying to staff, not paying salaries, the missing pension contributions, and the unpaid health insurance for US employees. The story was so bad that the BBC created a documentary titled <a href="https://www.bbcselect.com/watch/festival-fail/?ref=blog.pragmaticengineer.com" rel="noreferrer"><em>Crashed: $800M Festival Fail</em></a><em>.&#xA0;</em></p><p>And then there was the $3.2M double charge for customers, manually initiated by CTO Bradley Wright, detailed extensively in the documentary <a href="https://www.bbc.co.uk/iplayer/episode/m001n327/crashed-800m-festival-fail?ref=blog.pragmaticengineer.com">Crashed: $800M Festival Fail</a>. That double charge would have been trivial to reverse, but the reversal never happened, customers never got their money back, and the postmortem of the incident was never released to staff.<br><br><strong>Four years later, Pollen and Callum Negus-Fancey are attempting to erase this shameful story from the public record. </strong>The article is my original writing, and thus I am the copyright holder of it. So imagine my surprise when I was notified that Google removed the article from its search results thanks to a copyright infringement claim it received:</p><figure class="kg-card kg-image-card"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/Screenshot-2026-06-27-at-17.33.43.png" class="kg-image" alt="Pollen tried to remove my article about CEO Callum Negus-Fancey and CTO Bradley Wright, and Google is assisting with it" loading="lazy" width="1184" height="872" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/06/Screenshot-2026-06-27-at-17.33.43.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/06/Screenshot-2026-06-27-at-17.33.43.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/Screenshot-2026-06-27-at-17.33.43.png 1184w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/Screenshot-2026-06-27-at-17.34.13.png" class="kg-image" alt="Pollen tried to remove my article about CEO Callum Negus-Fancey and CTO Bradley Wright, and Google is assisting with it" loading="lazy" width="1250" height="1362" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/06/Screenshot-2026-06-27-at-17.34.13.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/06/Screenshot-2026-06-27-at-17.34.13.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/Screenshot-2026-06-27-at-17.34.13.png 1250w" sizes="(min-width: 720px) 720px"></figure><p><strong>It seems that anyone can file a bogus copyright claim to get an article they don&apos;t like removed from Google&apos;s search index. </strong>This happened in this case. I have no information on who filed the copyright claim. Even less so on who claims to be the copyright owner? Because I am the only possible copyright owner!</p><p>And Google has gone ahead and removed my article about <a href="https://blog.pragmaticengineer.com/pollen/" rel="noreferrer">Pollen&apos;s shameful collapse</a> from its search results.</p><p>I have the option to appeal, which I have done so.</p><p><strong>Google&apos;s copyright removal system is clearly being abused, to a comical degree. </strong>Someone doesn&apos;t like that I went into extreme detail about the events at Pollen - all of which are facts. And, for some reason, bogus copyright requests can be weaponized to remove information like this from Google&apos;s search index.</p><p>I managed to find <a href="https://lumendatabase.org/notices/88811436?ref=blog.pragmaticengineer.com" rel="noreferrer">the bogus DMCA complaint</a> submission, after Google removed my site from search results. It is absolute BS: it claims that my original article is a copy of a The New York Post article. Which is absolute nonsense! </p><figure class="kg-card kg-image-card"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/Screenshot-2026-06-27-at-21.19.04.png" class="kg-image" alt="Pollen tried to remove my article about CEO Callum Negus-Fancey and CTO Bradley Wright, and Google is assisting with it" loading="lazy" width="2000" height="1365" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/06/Screenshot-2026-06-27-at-21.19.04.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/06/Screenshot-2026-06-27-at-21.19.04.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1600/2026/06/Screenshot-2026-06-27-at-21.19.04.png 1600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/Screenshot-2026-06-27-at-21.19.04.png 2122w" sizes="(min-width: 720px) 720px"></figure><p>This &quot;Ellie Piee&quot; claimed that this 1998 article titled <a href="https://nypost.com/1999/01/01/band-leader-hits-winning-chord/?ref=blog.pragmaticengineer.com" rel="noreferrer">Band Leader Hits Winning Chord</a> was copied by my article <a href="https://blog.pragmaticengineer.com/pollen/" rel="noreferrer">Inside Pollen&#x2019;s Collapse: &#x201C;$200M Raised&#x201D; but Staff Unpaid - Exclusive</a>. The two do not even share a single sentence!</p><p><strong>The fake DMCA is made by a fake profile from a country with zero inhabitants. </strong>The removal requests by this &quot;Ellie Piee&quot; are made from the country called Bouvet Island, an <em>uninhabited</em> Norwegian dependent territory in the South Atlantic/Southern Ocean near Antarctica. It has zero inhabitants, and is referred to as the &quot;<a href="https://www.lifeinnorway.net/bouvet-island/?ref=blog.pragmaticengineer.com" rel="noreferrer">world&apos;s most remote island.</a>&quot;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/image-9.png" class="kg-image" alt="Pollen tried to remove my article about CEO Callum Negus-Fancey and CTO Bradley Wright, and Google is assisting with it" loading="lazy" width="1536" height="864" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/06/image-9.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/06/image-9.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/image-9.png 1536w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Bouvet Island. No inhabitants, and yet Google accepted a fake DMCA takedown request from a fake person claiming to reside here. What a joke</span></figcaption></figure><p><strong>Why does Google allow fraudulent DMCA notices to be filed with no penalty? </strong>My own speculation is that it is clear enough that either Pollen, or its former CEO Callum Negus-Fancey, or its cofounder and COO Liam Negus-Fancey or someone else related to the company hired reputation firms to remove Pollen articles from Google. This firm then files the most bogus requests under fake names supposedly residing in uninhabited regions of the world, and Google complies.</p><p>I never thought I would have to revisit the shameful history of Pollen, but someone at the company felt the need to prompt me to do so. </p><p><strong>Lawsuits are still ongoing against Pollen, by the way. </strong>Now that someone from Pollen tried to erase the record of this story, I got a bit of renewed interest in what has happened since. In California, the <a href="https://www.courtlistener.com/docket/67107563/tayler-ulmer-v-streetteam-software-llc/?ref=blog.pragmaticengineer.com" rel="noreferrer">lawsuit Tayler Ulmer vs Pollen is still in progress</a>, summarized as:</p><ul><li>Tayler Ulmer and five other named former employees, on behalf of themselves and &#x201C;all similarly situated employees&#x201D; claim to have been laid off without paid wages and benefits, plus claiming possible fraud</li><li>The filing says that Pollen executives Callum Negus&#x2011;Fancey, Liam Negus&#x2011;Fancey, and James Ellis are personally liable in this lawsuit </li><li>The lawsuit wants to reclaim unpaid wages, unpaid severance, restoration of lost 401(k) contributions, and a uling that all the named entities and individuals are jointly liable, including successor entities, so employees can collect regardless of how Pollen shuffled assets and dissolved subsidiaries</li></ul><p>I am wishing best of luck to the claimants - former Pollen employees - and we will see how the judge rules in this lawsuit. The more Pollen wants to silence me writing about this, the more I&apos;ll likely pay attention.</p><p>Pollen executives should have read what the <a href="https://en.wikipedia.org/wiki/Streisand_effect?ref=blog.pragmaticengineer.com" rel="noreferrer">Streinsand effect</a> means!</p>]]></content:encoded></item><item><title><![CDATA[Reliability fail: No automated zone failover for Coinbase’s global trading service]]></title><description><![CDATA[<p><em>Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one out of four topics from </em><a href="https://newsletter.pragmaticengineer.com/p/did-anthropics-new-model-just-boost?ref=blog.pragmaticengineer.com" rel="noreferrer"><em><u>this past The Pulse issue</u></em></a><em>. Full subscribers received the</em></p>]]></description><link>https://blog.pragmaticengineer.com/coinbase-fail/</link><guid isPermaLink="false">6a3ab42d341dfc0001969c22</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Tue, 23 Jun 2026 16:30:59 GMT</pubDate><content:encoded><![CDATA[<p><em>Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one out of four topics from </em><a href="https://newsletter.pragmaticengineer.com/p/did-anthropics-new-model-just-boost?ref=blog.pragmaticengineer.com" rel="noreferrer"><em><u>this past The Pulse issue</u></em></a><em>. Full subscribers received the article below two weeks ago. If you&#x2019;ve been forwarded this email, you can</em><a href="https://newsletter.pragmaticengineer.com/about?ref=blog.pragmaticengineer.com"><em> <u>subscribe here</u></em></a><em>.</em></p><p>On the evening of Thursday, 7 May, trading at Coinbase went offline and stayed that way for nearly 10 hours (!!). Customers could not buy, sell, deposit, receive, or withdraw. Basically, the core services of Coinbase were unavailable.</p><p>The outage coincided with a regional AWS outage. But no other company suffered a global outage; the most I observed was a few infra companies like Datadog noting that some regions had issues, and were failing over to a healthy region.</p><p>It&#x2019;s weird that Coinbase &#x2013; a $40B company! &#x2013; told customers to monitor AWS&#x2019;s status pages for recovery. This made it pretty clear that the company fully depends on a single AWS zone. Unusually, Coinbase deleted this information from its status page, but I got a screenshot first:</p><p><a href="https://substackcdn.com/image/fetch/$s_!iItF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d501e6f-08e4-4d20-82da-6756c6f437d2_1862x1000.png?ref=blog.pragmaticengineer.com"></a></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/image-6.png" class="kg-image" alt loading="lazy" width="1456" height="782" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/06/image-6.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/06/image-6.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/image-6.png 1456w" sizes="(min-width: 720px) 720px"><figcaption><i><em class="italic" style="white-space: pre-wrap;">Out in the open: Coinbase shifts blame for outage to a cloud provider</em></i></figcaption></figure><p><strong>Coinbase later confirmed that it does indeed have a single-availability zone dependency.&#xA0;</strong>From&#xA0;<a href="https://www.coinbase.com/en-gb/blog/a-postmortem-of-our-may-7-2026-outage?ref=blog.pragmaticengineer.com">its postmortem</a>:</p><blockquote>&#x201C;Our matching engine was pinned to a single building. The Coinbase Exchange matching engine runs as a Raft-based replicated cluster inside an AWS Cluster Placement Group. We make this choice deliberately. A matching engine that meets the latency and throughput demands of a serious market cannot tolerate inter-zone network hops between voting cluster members. The physics of distributed consensus and the economics of running a fair, liquid order book point to the same answer, which is co-location.&#x201D;</blockquote><p>A quick recap on the difference between an availability zone (AZ) and region:</p><ul><li><strong>Availability zone:</strong>&#xA0;One or more data centers (in the case of AWS, it is usually several data centers) located close enough to have low latency between them. Data centers in different AZs must be independently resilient. In the same AZ, there is no such requirement.</li><li><strong>Region:</strong>&#xA0;Within AWS, this consists of at least three isolated, physically separated AZs, usually 10-30 miles apart. It&#x2019;s unlikely they&#x2019;ll go down simultaneously, even in extreme circumstances.</li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/image-7.png" class="kg-image" alt loading="lazy" width="1138" height="1052" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/06/image-7.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/06/image-7.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/image-7.png 1138w" sizes="(min-width: 720px) 720px"><figcaption><i><em class="italic" style="white-space: pre-wrap;">From deepdive,&#xA0;</em></i><a href="https://newsletter.pragmaticengineer.com/p/three-cloud-providers-three-outages?ref=blog.pragmaticengineer.com"><i><em class="italic" style="white-space: pre-wrap;">Three Cloud Providers, Three Outages, Three Different Responses</em></i></a></figcaption></figure><p>Coinbase is saying that running from more than one availability zone (AZ) (building) would introduce too much latency to their product. This makes sense for low-latency activities like trading. But what about preparing for a failover as and when the AZ goes down? After all, an AZ is not guaranteed to have high uptime!</p><p>Turns out, Coinbase did not prepare for a failover for an AZ. Also from&#xA0;<a href="https://www.coinbase.com/en-gb/blog/a-postmortem-of-our-may-7-2026-outage?ref=blog.pragmaticengineer.com">its postmortem</a>&#xA0;(emphasis mine):</p><blockquote>&#x201C;We lacked an automated ability to fail over to another availability zone. When AWS terminated EC2 instances inside our placement group at 9:29 PM ET, three of five matching-engine nodes went down and we lost quorum.&#xA0;<strong>There was no automated cross-zone failover.</strong>&#xA0;Recovery required an emergency code change shipped during the incident to remove a startup assumption that all five cluster nodes were resolvable, the creation of a new node group outside the impaired placement group, and a careful sequence to restore a 3-of-5 quorum. This allowed us to reopen markets: first cancel-only, then auction mode, and finally full trading.&#x201D;</blockquote><p><strong>Having no automated failovers is incredibly amateurish for an operation of Coinbase&#x2019;s scale.&#xA0;</strong>Coinbase moves about 5.2&#xA0;<em>trillion&#xA0;</em>dollars per year, and is valued at around $40B. The outage interrupted around $7 billion-worth of financial activity, based on my napkin math.</p><p>Back in 2016, Uber was valued at roughly as much as Coinbase, and handled circa $40-50B yearly. It had two data centers on the east and west coasts, and operated more as if it ran out of two zones. I worked at Uber at the time and there were regular failover drills to another data center (another region), in preparation should a region go down. Uber&#x2019;s business, in terms of the financial figures, was a fraction of Coinbase&#x2019;s!</p><p>My impression of Coinbase&#x2019;s engineering culture has sunk after this incident, and it&#x2019;s almost comical that CEO Brian Armstrong is&#xA0;<a href="https://x.com/brian_armstrong/status/2051616759145185723?s=20&amp;ref=blog.pragmaticengineer.com">boasting</a>&#xA0;that non-technical teams now ship production code, thanks to AI. This feels like the wrong thing to focus on when Coinbase&#x2019;s infrastructure basics seem to be in far worse shape in 2026 than Uber&#x2019;s were a decade ago in 2016!</p><p><strong>It seems Coinbase did not learn lessons after getting burned by previous regional AWS outages.&#xA0;</strong>In October 2025, the company suffered a three-hour-long global trading outage due to issues with AWS&#x2019;s DynamoDB service. Following that outage, Coinbase engineering&#xA0;<a href="https://www.coinbase.com/en-gb/blog/Retrospective-AWS-Outage-Impact-and-Coinbase-Next-Steps?ref=blog.pragmaticengineer.com">said</a>&#xA0;(emphasis mine):</p><blockquote>&#x201C;To be better prepared in the future, we are exploring all options,&#xA0;<strong>including reviewing our regional deployment strategy</strong>&#xA0;to implement immediate and long-term fixes to reduce the impact of these types of outages.&#x201D;</blockquote><p>That process of reviewing the regional deployment strategy evidently missed or ignored the risk of a single-zone dependency of the heart of the business, with no cross-zone failover.</p><p>Read <a href="https://newsletter.pragmaticengineer.com/p/did-anthropics-new-model-just-boost?ref=blog.pragmaticengineer.com" rel="noreferrer">the full The Pulse</a> issue.</p>]]></content:encoded></item><item><title><![CDATA[The Pulse: a trend of trying to cut back on AI spend within eng departments?]]></title><description><![CDATA[<p><em>Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one out of four topics from </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-a-trend-of-trying-to-cut?ref=blog.pragmaticengineer.com" rel="noreferrer"><em><u>The Pulse issue</u></em></a><em> from two weeks ago. Full subscribers</em></p>]]></description><link>https://blog.pragmaticengineer.com/the-pulse-a-trend-of-trying-to-cut-back-on-ai-spend-within-eng-departments/</link><guid isPermaLink="false">6a2ae21f4eaa560001de7fde</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Thu, 11 Jun 2026 16:31:42 GMT</pubDate><content:encoded><![CDATA[<p><em>Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one out of four topics from </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-a-trend-of-trying-to-cut?ref=blog.pragmaticengineer.com" rel="noreferrer"><em><u>The Pulse issue</u></em></a><em> from two weeks ago. Full subscribers received the article below fourteen days ago. If you&#x2019;ve been forwarded this email, you can</em><a href="https://newsletter.pragmaticengineer.com/about?ref=blog.pragmaticengineer.com"><em> <u>subscribe here</u></em></a><em>.</em></p><p><em>The below The Pulse is interesting, as a week after the original was sent it out, OpenAI CEO Sam Altman </em><a href="https://www.businessinsider.com/ai-bubble-heads-doomers-sam-altman-ai-costs-huge-issue-2026-6?ref=blog.pragmaticengineer.com" rel="noreferrer"><em>also said</em></a><em> how AI budgeting is a huge issue for some companies &#x2013; echoing findings from this analysis.</em></p><hr><p>In mid-May, Uber president, Andrew McDonald, was on the&#xA0;<a href="https://www.youtube.com/watch?v=y_mQ6xLcKyc&amp;ref=blog.pragmaticengineer.com">Rapid Response podcast</a>&#xA0;for a conversation about the ridesharing giant with host Bob Safian, who raised the lack of hoped-for efficiency leverage from AI, citing the language learning app, Duolingo.</p><blockquote>&#x201C;When you hear companies talking about 25% of code commits over the last quarter were AI-driven, or how their token usage went from X to Y percentage of employees: all these numbers are amazing. I think it&#x2019;s a massive transformation of society&#x201D;, McDonald said.<br><br>&#x201C;But, then you go and you talk to your senior engineering leaders, and you&#x2019;re asking: &#x201C;how many projects that were &#x201C;on the cutting room floor&#x201D; got moved above the line [of being done] because of the productivity gains? Because 25% of our code commits were via Claude Code last quarter.&#x201D;<br><br><strong>That link [of improved productivity thanks to AI] is not there yet.</strong>&#xA0;I mean,&#xA0;<em>maybe</em>&#xA0;implicitly there&#x2019;s more that is getting shipped, but it&#x2019;s very hard to draw a line between one of those stats and more useful consumer features.<br><br>Over the coming quarters and years, maybe that will become clearer. But today it&#x2019;s hard, even if some of the underlying metrics are trending in a really astronomical direction.<br><br>Our CTO, Praveen, went viral because he said in an interview that we had blown through our AI budget for 2026 and it was the middle of March. We&#x2019;re going to have to start talking about token consumption and the associated cost versus headcount, and making tradesoffs on that as an engineering organization.<br><br><strong>If you&#x2019;re not able to draw a direct line to [how many] useful features and functionality you&#x2019;re shipping to your users, that tradeoff [on AI spend] becomes harder to justify because AI is not free.</strong><br><br>If you&#x2019;re just a user [of AI tools] sitting there and coming up with interesting use cases, and you don&#x2019;t pay the bill, it can feel [like AI is free]. But somebody&#x2019;s paying the bill&#x201D;.</blockquote><p>My hunch is that pretty much every company is starting to, or will do soon, ask questions about the massive growth in AI spend; starting with AI coding tools. I talked with a few folks at larger and smaller companies about it:</p><ul><li><strong>OpenCode: customer demand for optimizing spend is spiking.&#xA0;</strong>Yesterday, on the podcast episode with OpenCode creator, Dax Raad, he said demand for OpenCode&#x2019;s hosted inference service (<a href="https://opencode.ai/docs/zen/?ref=blog.pragmaticengineer.com">OpenCode Zen</a>) surpassed all expectations because larger companies want cheaper, but still capable, AI models. He revealed that over the past month,&#xA0;<em>every single</em>&#xA0;inbound enterprise request was about optimizing spend. So, there&#x2019;s some widespread concern about AI bills.</li><li><strong>Companies with cutting-edge AI bite the bullet with model routing.&#xA0;</strong>I talked with a CTO and a Head of Engineering at two cutting-edge tech companies. They also do not have an obvious return on investment (ROI) as yet. Still, they feel they have no choice but to pay the &#x201C;intelligence premium&#x201D; for state-of-the-art models or increase the number of bugs shipped. To reduce costs, both are considering &#x201C;smart&#x201D; model routing based on use case and prompt.<em>&#xA0;These places pay top-of-market for the best engineers, so similarly, there are expectations of access to the best tools and models.</em></li><li><strong>DoorDash: More knowledge-sharing sessions and responsibility for devs.&#xA0;</strong>The leading food delivery company gives responsibility for spending to devs: everyone has a high monthly token usage limit. To exceed it, you need to justify why, and also share the plan for being more efficient next month. Many regular in-house knowledge-sharing sessions are about efficient AI use.</li><li><strong>Traditional company: monthly limits and dumb-model downgrades.&#xA0;</strong>One month ago, one of the largest retirement-savings companies in the US updated its AI usage policy for all devs, a current engineer told me, imposing a monthly GitHub Copilot token limit. Once gone, devs must use the less capable &#x201C;0x&#x201D; models on Copilot, which are not charged extra: GPT&#x2011;5 mini, GPT&#x2011;4.1, and Grok Code Fast 1.</li><li><strong>Startups: signing up for multiple Claude / Codex Max subscriptions.&#xA0;</strong>I talked with several smaller startups that are generating meaningful revenue, and don&#x2019;t want to pay expensive API prices. So, they&#x2019;ve made it a practice for devs to get subsidized Claude Code Max or Codex Max subscriptions.</li></ul><p><strong>There&#x2019;s a new bottom-up focus on AI efficiency.&#xA0;</strong>Most tech companies do a variety of internal knowledge-sharing things like regular team demos, lunch-and-learn sessions, and engineering all-hands. I&#x2019;ve been noticing more AI efficiency-focused sessions in the past couple of months, coming from engineers: no top-down mandate!</p><p>Engineering all-hands, CTOs, and even CEOs have started to raise concerns about increasing AI token costs, and now more engineers are experimenting with cheaper models for simpler tasks, model routing, more efficient token usage, etc.</p><p>I&#x2019;d expect that during the next performance review and promotion cycles, engineers who helped save on token costs might be rewarded, like two years ago, when engineering teams were rewarded for saving on third-party vendor bills.</p><p>For an engineer, the best way to show impact in your work is to translate it to money: revenue generated, or costs saved. With AI spending as high as (or higher than) on observability, it should be straightforward to show massive savings with smart optimizations. There&#x2019;s a touch of irony in how any savings &#x2013; for which there might be promotions and pay rises &#x2013; will come from the places that actually did the rocketing spending.</p><hr><p>Read the full issue in the <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-a-trend-of-trying-to-cut?ref=blog.pragmaticengineer.com" rel="noreferrer">previous The Pulse</a>. Or check out this week&apos;s The Pulse: <a href="https://newsletter.pragmaticengineer.com/p/did-anthropics-new-model-just-boost?ref=blog.pragmaticengineer.com" rel="noreferrer">Did Anthropic&#x2019;s new model just boost rival Codex&#x2019;s market share?</a></p>]]></content:encoded></item><item><title><![CDATA[The Pulse: Antigravity 2.0 takes ‘IDE’ out of its new IDE]]></title><description><![CDATA[Feedback about the redesigned IDE is overwhelmingly negative due to bugs, poor UX & model support, and eating through Gemini token quotas. Also: a clue that Antigravity’s own devs use other tools for their work?]]></description><link>https://blog.pragmaticengineer.com/the-pulse-antigravity-2-0-takes-ide-out-of-its-new-ide/</link><guid isPermaLink="false">6a2ae0124eaa560001de7f72</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Thu, 11 Jun 2026 16:22:16 GMT</pubDate><content:encoded><![CDATA[<p><em>Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one out of four topics from </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-antigravity-20-takes-ide?ref=blog.pragmaticengineer.com" rel="noreferrer"><em><u>The Pulse</u></em> issue</a><em> from 21 May 2026. Full subscribers received the article below three weeks days ago. If you&#x2019;ve been forwarded this email, you can</em><a href="https://newsletter.pragmaticengineer.com/about?ref=blog.pragmaticengineer.com"><em> <u>subscribe here</u></em></a><em>.</em></p><p>Yesterday, Google launched a full redesign of its flagship AI IDE, Antigravity 2.0. The &#x201C;original&#x201D; Antigravity came out&#xA0;<a href="https://newsletter.pragmaticengineer.com/p/the-pulse-154?ref=blog.pragmaticengineer.com">in November 2025</a>, as pretty much a clone of Windsurf, the IDE whose team Google acquired for $2.4B&#xA0;<a href="https://newsletter.pragmaticengineer.com/i/168569875/3-windsurf-sale-a-complicated-story-of-openai-microsoft-google-and-cognition?ref=blog.pragmaticengineer.com">last July.</a></p><p>Google has turned Antigravity into two distinct applications, &#x201C;Antigravity IDE&#x201D; (its former incarnation) and &#x201C;Antigravity 2.0&#x201D;. This new version itself resembles a clone of Codex&#x2019;s desktop app. When you install Antigravity 2.0, there are two different applications. From&#xA0;<a href="https://antigravity.google/blog/introducing-google-antigravity-2-0?ref=blog.pragmaticengineer.com">Google&#x2019;s launch post</a>:</p><blockquote>&#x201C;If you already have installed the Antigravity IDE, when that application next updates, it will automatically update to Antigravity 2.0. At this point, you will be asked if you would like to still keep the Antigravity IDE, which is recommended for developers:</blockquote><p><a href="https://substackcdn.com/image/fetch/$s_!8g3M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53f91dec-ad34-4544-ad1e-5dda28d62b21_1288x810.png?ref=blog.pragmaticengineer.com"></a></p><figure class="kg-card kg-image-card"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/image.png" class="kg-image" alt loading="lazy" width="1288" height="810" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/06/image.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/06/image.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/image.png 1288w" sizes="(min-width: 720px) 720px"></figure><p>My sense is that the team at Google may have struggled to decide whether to keep supporting &#x201C;original&#x201D; Antigravity while investing in the Codex-like experience, and so kept both. Whatever the reasoning, it has created confusing naming, and it feels to me like the team&#x2019;s true focus is 2.0.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/image-1.png" class="kg-image" alt loading="lazy" width="1400" height="1466" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/06/image-1.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/06/image-1.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/image-1.png 1400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Big change: Antigravity 2.0 throws out the IDE and adds a conversational interface</span></figcaption></figure><p><strong>The upgrade feels rushed, sloppy, and poorly thought out.&#xA0;</strong>I had Antigravity on my machine, and installed Antigravity 2.0 separately. I wanted to use them side-by-side, but when I tapped &#x201C;Restart to update&#x201D; on Antigravity 1.0, it upgraded itself to Antigravity 2.0 (the non-IDE version). Suddenly, I had two applications with different names, but neither is an IDE:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/image-2.png" class="kg-image" alt loading="lazy" width="1236" height="436" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/06/image-2.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/06/image-2.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/image-2.png 1236w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Testing times: Two apps but no IDE version on my machine, due to lack of testing</span></figcaption></figure><p><strong>Google has introduced an &#x201C;Agent Manager&#x201D; concept that feels unintuitive, and perhaps suitably, its creator struggles to&#xA0;</strong><a href="https://antigravity.google/blog/introducing-google-antigravity-2-0?ref=blog.pragmaticengineer.com"><strong>explain</strong></a><strong>&#xA0;it</strong>&#xA0;(emphasis mine:)</p><blockquote>&#x201C;When we launched the Google Antigravity IDE in November 2025, there was no agent-first GUI surface in the market. We wanted to prove that such a surface worked, at least for software development. So, while the core of the Antigravity IDE was a familiar agent-powered IDE, we introduced the Agent Manager, a second surface that stripped away much of the &#x201C;IDE&#x201D; UI. This allowed users to focus on the agent conversations themselves, the artifacts the agents produced, and multi-agent management.<br><br>Even without this separation, we have been pleasantly surprised how many people have adopted the Agent Manager in the Antigravity IDE for such non-development tasks,&#xA0;<strong>but it is not particularly intuitive&#x201D;.</strong></blockquote><p>The &#x201C;Agent Manager&#x201D; is basically a way to launch several agents, and the most intuitive interfaces for doing so are inside Claude and Codex desktop apps and Claude CoWork. Antigravity 2.0 copies them by starting new agent tasks on the right hand of the UI, and keeping track of them.</p><p><strong>Google looks indecisive about what to do with the IDE part of Antigravity</strong>. The&#xA0;<a href="https://antigravity.google/blog/introducing-google-antigravity-2-0?ref=blog.pragmaticengineer.com">release announcement</a>&#xA0;suggests they&#x2019;ll keep on confusing users (emphasis mine:)</p><blockquote>&#x201C;Although Antigravity 2.0 is the future, we won&#x2019;t disrupt your workflows right away. For now, both the Antigravity IDE application itself and the Agent Manager in the Antigravity IDE will remain available.&#xA0;<strong>In an upcoming release, we will remove the Agent Manager from the Antigravity IDE, turning the IDE into a purely agent-powered IDE.</strong>&#x201D;</blockquote><p>Basically, the Antigravity IDE (not &#x201C;the future&#x201D; in Google&#x2019;s vision) will become more limited over time. It&#x2019;s unclear what a &#x201C;purely&#x201D; agent-powered IDE will be once agentic functionality is removed, especially as Antigravity IDE is&#xA0;<em>not</em>&#xA0;the future, as per Google.</p><p>Not only that, but the announcement also encourages devs to use Antigravity 2.0 with other IDEs! From&#xA0;<a href="https://antigravity.google/blog/introducing-google-antigravity-2-0?ref=blog.pragmaticengineer.com">the launch post</a>&#xA0;(emphasis mine):</p><blockquote>&#x201C;We recommend dual-wielding Antigravity 2.0 with your IDE of choice, whether it is the Antigravity IDE or otherwise.&#xA0;<strong>Googlers have already been dual wielding Antigravity 2.0 with a whole host of IDEs!&#xA0;</strong>We will have compatible extensions and plugins into other popular IDEs shortly&#x201D;.</blockquote><p>To me, this suggests Google will retire Antigravity IDE and recommend VS Code, JetBrains, Cursor, or Zed, with Antigravity. Then again, why would Cursor or Zed support Antigravity? The messaging is extremely confusing: Google&#x2019;s still the king of opacity.</p><p><strong>Feedback on Antigravity 2.0 has been negative due to bugs, poor UX and model support, more bugs, and eating up Gemini token quotas rapidly.&#xA0;</strong>Antigravity does not support state-of-the-art Anthropic or OpenAI models (no Opus 4.7 or GPT 5.5). Not supporting OpenAI&#x2019;s models like this is sensible as they&#x2019;re competitors, but Google is an investor in Anthropic, so not supporting Opus 4.7 (while supporting the legacy 4.6 model) is a bit odd.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/image-3.png" class="kg-image" alt loading="lazy" width="1182" height="466" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/06/image-3.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/06/image-3.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/image-3.png 1182w" sizes="(min-width: 720px) 720px"><figcaption><i><em class="italic" style="white-space: pre-wrap;">Models which Antigravity 2.0 supports</em></i></figcaption></figure><p>Gemini 3.5 Flash is Google&#x2019;s cutting-edge model, but it gets&#xA0;<a href="https://x.com/robinebers/status/2056928512364400805?s=20&amp;ref=blog.pragmaticengineer.com">lots of complaints</a>&#xA0;from devs for editing files without asking, and seems like an inefficient model. Another&#xA0;<a href="https://x.com/ZackKorman/status/2056843880843096580?s=20&amp;ref=blog.pragmaticengineer.com">common complaint</a>&#xA0;is that Antigravity uses up the $100/month Ultra subscription daily quota in minutes. Basically, it seems like a poor-quality product that wasn&#x2019;t polished due to lack of time or inclination.</p><p>In context, it&#x2019;s embarrassing for there to be a &#x201C;Codex&#x201D; folder in the launch video if it suggests that Google&#x2019;s own Antigravity devs are using Codex for day-to-day work. It also suggests that the launch video was not reviewed properly, otherwise this obvious detail would presumably have been caught and fixed:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/image-4.png" class="kg-image" alt loading="lazy" width="1200" height="603" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/06/image-4.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/06/image-4.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/image-4.png 1200w" sizes="(min-width: 720px) 720px"><figcaption><i><em class="italic" style="white-space: pre-wrap;">Codex folder in Documents suggests Antigravity devs are users of it. Source:&#xA0;</em></i><a href="https://x.com/GergelyOrosz/status/2057054276266885590?s=20&amp;ref=blog.pragmaticengineer.com"><i><em class="italic" style="white-space: pre-wrap;">Antigravity 2.0 launch video</em></i></a></figcaption></figure><p><strong>To upset devs even more, Google is replacing its open source Gemini CLI with the closed source Antigravity CLI.&#xA0;</strong>There are a few issues with this move:</p><ul><li>Antigravity CLI does not support Google&#x2019;s own&#xA0;<a href="https://geminicli.com/docs/cli/acp-mode/?ref=blog.pragmaticengineer.com">Agent Client Protocol (ACP)</a>, used for programmatic control, primarily for IDE and other developer tool integrations. This is protocol which IDEs like JetBrains and Zed have adopted, so Antigravity CLI becomes incompatible with them</li><li>Google offers no migration path from Gemini CLI settings/skills/MCPs into Antigravity.&#xA0;<em>Figure it out on your own!</em></li><li>Devs using Gemini models are&#xA0;<em>forced</em>&#xA0;to move as Google has removed support for Gemini 3.5 Flash model from Gemini CLI. It can only be used from Antigravity CLI. Clearly, this was done to force a move.&#xA0;<em>Why not offer a migration path?</em></li></ul><p><strong>My sense is the Antigravity team is moving fast, breaking things, and shipping a broken product.&#xA0;</strong>It feels like the Antigravity 2.0 and Antigravity CLI products have been rushed to meet the annual Google conference (Google I/O) deadline, this week. Google deprecates existing products to attempt to get users to switch to the new version. But the new one is broken.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/image-5.png" class="kg-image" alt loading="lazy" width="1430" height="1056" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/06/image-5.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/06/image-5.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/06/image-5.png 1430w" sizes="(min-width: 720px) 720px"><figcaption><i><em class="italic" style="white-space: pre-wrap;">What&#x2019;s changed?&#xA0;</em></i><a href="https://goomics.net/50?ref=blog.pragmaticengineer.com"><i><em class="italic" style="white-space: pre-wrap;">Manu Cornet</em></i></a><i><em class="italic" style="white-space: pre-wrap;">&#xA0;penned this cartoon in 2011</em></i></figcaption></figure><p>And this is a big reason why I don&#x2019;t believe Google will become a serious player in the dev tools space &#x2013; not even with AI dev tools. Every six to twelve months they remind devs who onboarded to their dev tools that it was a mistake to do so. I would expect the majority of Google CLI and Antigravity users to go and try products from other vendors &#x2013; be that Cursor, Anthropic, OpenAI, GitHub, or others &#x2013; and for few to stick around after their workflows are broken.</p>]]></content:encoded></item><item><title><![CDATA[The Pulse: Forward deployed engineering heats up again]]></title><description><![CDATA[Massive demand for the role at Google, OpenAI, and Anthropic. The latest version of the FDE role looks like the consultant / solution architect role done by many early-junior engineers.]]></description><link>https://blog.pragmaticengineer.com/the-pulse-forward-deployed-engineering-heats-up-again/</link><guid isPermaLink="false">6a0f3a9025c8da0001c931d1</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Sun, 24 May 2026 20:35:11 GMT</pubDate><content:encoded><![CDATA[<p><em>Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one out of five topics from </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-forward-deployed-engineering?ref=blog.pragmaticengineer.com" rel="noreferrer"><em><u>last week&#x2019;s The Pulse</u></em></a><em> issue. Full subscribers received the article below seven days ago. If you&#x2019;ve been forwarded this email, you can</em><a href="https://newsletter.pragmaticengineer.com/about?ref=blog.pragmaticengineer.com"><em> <u>subscribe here</u></em></a><em>.</em></p><p>Last August, we covered a sudden trend of&#xA0;<a href="https://newsletter.pragmaticengineer.com/p/forward-deployed-engineers?ref=blog.pragmaticengineer.com">high demand</a>&#xA0;for forward deployed engineers (FDEs), and now there are signs demand is increasing more.</p><h3 id="google-fde-recruitment-spike">Google: FDE recruitment spike</h3><p>Google is doubling down on FDEs and making the interview process much simpler. Google Cloud CEO, Thomas Kurian, has&#xA0;<a href="https://www.linkedin.com/posts/thomas-kurian-469b6219_today-we-announced-a-new-ai-focused-organization-share-7460023646418489344-5xWp?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAIk0KwBsmE3oBadWSg2ettxmEyKbqZKG34">announced</a>&#xA0;a new, AI-focused organization within the Go-To-Market team, and is hiring a bunch of FDEs for it.</p><p>I&#x2019;m hearing the hiring process&#xA0;<a href="https://x.com/sanjeed_i/status/2054418365159178371?ref=blog.pragmaticengineer.com">has been shortened</a>&#xA0;from 4-6 interviews held over the course of weeks, to as few as two interviews in just two days. It looks like Google is unusually eager (desperate?) to fill this job.</p><h3 id="openai-outsources-fde-hiring-spree">OpenAI outsources FDE hiring spree</h3><p>On Monday (11 May), OpenAI&#xA0;<a href="https://openai.com/index/openai-launches-the-deployment-company/?ref=blog.pragmaticengineer.com">announced</a>&#xA0;The OpenAI Deployment Company, a standalone entity&#xA0;<a href="https://openai.com/index/openai-launches-the-deployment-company/?ref=blog.pragmaticengineer.com">funded by</a>&#xA0;$4 billion of private equity from TPG, Advent, and others at a $14B valuation. It appears OpenAI is not an investor and holds a partner role.</p><p>The announcement mentions FDEs and says their job will be to &#x201C;work closely with business leaders, operators, and frontline teams to identify where AI can make the biggest impact, redesign organizational infrastructure and critical workflows around it, and turn those gains into durable systems&#x201D;.</p><p>Based on that, the FDEs will play an important role in OpenAI&#x2019;s enterprise sales activity by ensuring the company&#x2019;s AI systems work and deliver value for customers. Outsourcing this to the new Deployment Company should also free up OpenAI to focus on developing better AI models, while the partner company and its FDEs take care of the customer-facing side of things.</p><p>In a related development, OpenAI has acquired Tomoro, a UK-headquartered AI company founded in 2023, which employs 150 FDEs across the UK, Asia, and Australia. Tomoro is the first acquisition of the OpenAI Deployment Company.</p><h3 id="anthropic-plans-outsourced-fde-recruitment">Anthropic plans outsourced FDE recruitment</h3><p>Anthropic is doing the same by creating its own distinct FDE consulting company. Last Monday (May 4), Anthropic issued&#xA0;<a href="https://www.anthropic.com/news/enterprise-ai-services-company?ref=blog.pragmaticengineer.com">an unusually hand-wavy announcement</a>&#xA0;about the new business without a name and with few investment details mentioned.</p><p>Investors are Anthropic, Blackstone, Hellman &amp; Friedman, and Goldman Sachs, and the new business will work with &#x201C;mid-sized companies across sectors to bring Claude into their most important operations.&#x201D;</p><p>Anthropic&#x2019;s approach seems to be the same as OpenAI&#x2019;s: create a standalone company with external funding, in which FDEs integrate Claude into enterprises that will then presumably start purchasing more Claude tokens than ever.</p><h3 id="fde-or-a-consultant">FDE or a consultant?</h3><p>These FDE roles seem very similar to those of an external consultant or a systems integrator. A year ago, I talked with FDEs at OpenAI and Ramp whose jobs seemed a genuine mix of platform engineering &#x2013; with an FDE contributing back to the platform &#x2013; software engineering, in that they built new solutions, and also solutions engineering: integrating into customers&#x2019; services.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-9.png" class="kg-image" alt loading="lazy" width="1202" height="684" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/05/image-9.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/05/image-9.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-9.png 1202w" sizes="(min-width: 720px) 720px"><figcaption><i><em class="italic" style="white-space: pre-wrap;">The FDE role as I visualized it in mid-2025</em></i></figcaption></figure><p>But today, it looks like the role is about to become indistinguishable from a solutions architect or consultant, especially given that these new FDE jobs are in quasi-external companies and separate organizations from where AI products are built.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-10.png" class="kg-image" alt loading="lazy" width="1456" height="1338" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/05/image-10.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/05/image-10.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-10.png 1456w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">The reality of the FDE role: an AI-focused solutions architect or consultant</span></figcaption></figure><p>Job adverts are increasingly clear about the role, but it still helps to read between the lines. Here&#x2019;s one for&#xA0;<a href="https://www.google.com/about/careers/applications/jobs/results/77713823254880966-forward-deployed-engineer/?ref=blog.pragmaticengineer.com">an FDE at Google Cloud</a>. At first glance, it&#x2019;s impressive (emphasis mine):</p><blockquote><strong>&#x201C;You are an embedded builder who bridges the gap between frontier AI products and production-grade reality within customers.</strong>&#xA0;Unlike traditional advisory roles, you function as an &#x201C;innovator-builder,&#x201D; moving beyond high-level architecture to code, debug, and jointly ship bespoke agentic solutions directly within the customer&#x2019;s environment. Your role is designed for high-agency engineers with a founder&#x2019;s mindset. You will address blockers to production, including solving the integration complexities, data readiness issues, and state-management challenges that prevent AI from reaching enterprise-grade maturity. By embedding with strategic accounts, you serve a dual purpose: providing &#x201C;white glove&#x201D; deployment of complex AI systems and acting as a critical feedback loop, transforming real-world field insights into Google Cloud&#x2019;s future product roadmap.&#x201D;</blockquote><p>Translated into plain English:</p><blockquote><strong>You are a contractor who codes at a customer&#x2019;s office.&#xA0;</strong>The actual job is around ~25% coding-related, 50% integration/plumbing, 25% meetings and customer hand-holding. Anything else will be assorted admin and internal process-related stuff.</blockquote><p>Here&#x2019;s what I reckon some of the terms in Google&#x2019;s job advert will add up to on the job:</p><ul><li>&#x201C;Founder&#x2019;s mindset&#x201D;. No one will provide a spec, and scope creep is your problem to deal with. If your project doesn&#x2019;t ship, that&#x2019;s also your problem</li><li>&#x201C;High-agency&#x201D;. There are no resources besides your own</li><li>&#x201C;White glove&#x201D;. Do not say &#x201C;no&#x201D; to anything the customer suggests, even when they should probably listen to your feedback about whatever it is</li><li>&#x201C;Critical feedback loop transforming real-world field insights into Google Cloud&#x2019;s future product roadmap&#x201D;. You will file tickets and a few PMs at Google may read some of them</li></ul><p>But in all fairness, this FDE job looks like a great fit for some folks:</p><ul><li>Those at the early-career stage who want Google on their resumes, but who might struggle to land a software engineering job with the tech giant</li><li>Those who enjoy shipping end-to-end, can work well with ambiguity (&#x201C;founder&#x2019;s mindset&#x201D; is spot on!) and will own outcomes</li></ul><p>On the other hand, I suspect this FDE role will not be a good fit for those who:</p><ul><li>Like to build well-engineered systems and value the time to do it well</li><li>Like building greenfield systems</li><li>Prefer longer-term projects and working with other software engineers</li></ul><p><strong>In the cases of OpenAI and Anthropic, the outsourcing of FDEs is even clearer.&#xA0;</strong>Google at least hires FDEs to the company, and they will be issued some stock as part of their compensation package. But at OpenAI and Anthropic, new FDEs will be hired to a standalone company, and if they get stock, it will likely not be OpenAI or Anthropic stock. So, if OpenAI or Anthropic benefit greatly from FDEs&#x2019; work, then the FDEs won&#x2019;t see the upside!</p><p>Putting it more simply: FDEs hired in these external companies will not be seen as &#x201C;core&#x201D;. If they were, then the companies would hire more FDEs, as in the past.</p><h3 id="opportunity-for-new-grads">Opportunity for new grads?</h3><p>As mentioned above, the new FDE roles could be a great opportunity for early-career software engineers entering the industry,&#xA0;<a href="https://x.com/levie/status/2054729966630441007?ref=blog.pragmaticengineer.com">according to</a><strong>&#xA0;</strong>Box CEO, Aaron Levie:</p><blockquote>&#x201C;If I were a college career counselor or in career services, I&#x2019;d quickly be figuring out how to get students to understand these forward deployed engineer jobs exist and how to get them.<br><br>The requirements are a mix of deep technical skills, often CS majors or minors. You must be great at understanding problem solving, how to have systems thinking, and have a strong business acumen. The kicker, of course, is to make sure you&#x2019;re very deep in AI agents; you need to have fluency in coding agents, MCP, CLIs, Skills, and so on.<br><br>Hundreds (thousands?) technology companies will be hiring for these roles, same with any consulting and IT services company, and the vast majority of mid-size and large enterprises will be hiring for this talent internally as well.&#x201D;</blockquote><p>Historically, tech consultancies hired many new grads for consultant roles, which are not so attractive to experienced engineers, but are great, real-world, paid learning opportunities for more junior ones. With product companies hiring fewer new grads, new grads will increasingly find FDE roles that they have a chance at getting.</p><p><strong>All things considered, I expect demand for FDE roles to increase, industry-wide.&#xA0;</strong>They speed up AI rollouts, which several parties have an interest in doing:</p><ul><li>AI labs: the faster that AI solutions roll out, the more revenue they make!</li><li>AI vendors: any company selling AI products will, similarly, want FDEs to help integrate the software with customers, so they can sell more</li><li>Non-AI companies: these will want to hire FDEs for an &#x201C;AI transformation&#x201D; and to integrate AI into workflows and products</li><li>Non-AI vendors: even SaaS companies that don&#x2019;t sell AI products will be able to close larger clients if they hire FDEs who can roll out their software faster, and for more use cases, inside enterprises they work with.</li></ul><p>FDE was the hottest tech role in 2025 and this trend seems set to continue this year. Demand for this role is high and rising, but it&#x2019;s likely to stay unattractive to experienced devs for whom being a consultant may feel like a step down &#x2013; especially after you&#x2019;ve learned to love building products!</p><p><em>Read the full issue of </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-forward-deployed-engineering?ref=blog.pragmaticengineer.com" rel="noreferrer"><em><u>last week&#x2019;s The Pulse</u></em></a><em>, or check out </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-antigravity-20-takes-ide?ref=blog.pragmaticengineer.com" rel="noreferrer"><em><u>this week&#x2019;s The Pulse</u></em></a><em>. This week&#x2019;s issue covers:</em></p><ol><li><strong>Antigravity 2.0 takes the &#x2018;IDE&#x2019; out of its new IDE.&#xA0;</strong>Feedback about the redesigned IDE is overwhelmingly negative due to bugs, poor UX &amp; model support, and eating through Gemini token quotas. Also: a clue that Antigravity&#x2019;s own devs use other tools for their work?</li><li><strong>Why is Google&#x2019;s product ecosystem chaotic?&#xA0;</strong>The range of products on display at the Google I/O conference made a messy, incoherent impression. But Google&#x2019;s &#x201C;let a thousand flowers bloom&#x201D; approach might be giving the search giant an underrated advantage in the AI race that no other Big Tech giant has.</li><li><strong>Meta cuts 8,000 jobs.&#xA0;</strong>Morale is very low inside the social media giant as thousands lose their jobs, just as revenue and profits hit record levels. Meanwhile, those assigned to dull data labeling work are spared the axe.</li><li><strong>Industry pulse.&#xA0;</strong>Anthropic pays $15B/year for SpaceX compute, SpaceX&#x2019;s financials and IPO filing, more woes for GitHub, court dismisses Elon Musk&#x2019;s &#x201C;hypocritical&#x201D; OpenAI lawsuit, and Spain may stop blocking its internet during La Liga football games.</li><li><strong>How to get a job at a frontier lab in 2026.&#xA0;</strong>A Distinguished Engineer at Google recommends focusing on developing particular skills</li></ol><p>Read <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-antigravity-20-takes-ide?ref=blog.pragmaticengineer.com" rel="noreferrer">the full The Pulse</a>.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Google Cloud deletes Australian trading fund’s infra]]></title><description><![CDATA[A $124B fund in Australia would have lost all data stored with Google Cloud, had they not relied on a third-party backup. A rare blunder from GCP, where regional replication did not stop the deletion – and a just as rare statement from Google Cloud’s CEO taking the blame.]]></description><link>https://blog.pragmaticengineer.com/google-cloud-deletes-australian-trading-funds-infra/</link><guid isPermaLink="false">6a0d707867d99e0001f62c84</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Wed, 20 May 2026 08:31:08 GMT</pubDate><content:encoded><![CDATA[<p><em>A $124B fund in Australia would have lost all data stored with Google Cloud, had they not relied on a third-party backup. A rare blunder from GCP, where regional replication did not stop the deletion &#x2013; and a just as rare statement from Google Cloud&#x2019;s CEO taking the blame.</em></p><p><em>The below is an excerpt from </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-93?ref=blog.pragmaticengineer.com" rel="noreferrer"><em>The Pulse #93: OpenAI makes Google dance</em></a><em>, originally published on 16 May, 2024. I am republishing it because on 20 May 2026 Google Cloud has done it again: they took offline cloud infra provider Railway by </em><a href="https://x.com/Railway/status/2056873075401007338?s=20&amp;ref=blog.pragmaticengineer.com" rel="noreferrer"><em>blocking Railway&apos;s Google Cloud account</em></a><em>. The below is a warning: if you are on GCP, have a plan B, should GCP delete your account and data, or block your account.</em></p><p>Following on from Google Cloud being a distant third among cloud providers, a recent event could cement its reputation as the least reliable of the top three.&#xA0;</p><p>UniSuper is one of the largest retirement savings accounts in Australia, used by 615,000 citizens, that&#x2019;s also known as a &#x201C;superannuation fund.&#x201D; UniSuper has $124B of assets under management and is one of the biggest in the country.</p><p>On 29 April, the service suffered an outage. Members could not log into their online accounts, or manage their funds until two weeks later, on 15 May.</p><p>The reason was that Google Cloud accidentally deleted UniSuper&#x2019;s subscription, which also deleted all data associated with the subscription. UniSuper had set up replication across two regions in Google Cloud to protect from a regional failure, but Google Cloud deleted the replica as well!</p><p><strong>UniSuper could only avoid data loss thanks to having a backup on another service provider outside Google.&#xA0;</strong>In a surprising admission, UniSuper would have lost all data with Google thanks to the failure of the cloud provider. The only reason UniSuper could restore services was by having another provider with whom they&#x2019;d backed up the data. Basically, UniSuper not trusting Google&#x2019;s replication across two regions turned out to be a 100% correct assumption. Whoever pushed through the decision to spend additional resources in &#x201C;a backup in case Google fails&#x201D; saved the day at the retirement fund.</p><p>The incident is incredibly embarrassing for Google. UniSuper seems to have forced Google Cloud&#x2019;s hand by issuing a joint statement with Google Cloud CEO Thomas Kurian, in which Google Cloud&#xA0;<a href="https://www.unisuper.com.au/contact-us/outage-update?ref=blog.pragmaticengineer.com">takes all the blame</a>&#xA0;for this failure. In my experience, the situation is rarely this black-and-white, as it usually takes two parties to cause such a major outage. I would not be shocked if it turned out UniSuper&#x2019;s staff played a role in this failure, but Google Cloud made enough mistakes that the press release could dump all blame on it.&#xA0;<em>I asked Google Cloud if the press release really was a joint release, and if they had more to add. The company confirmed the press release is correct and added nothing else.</em></p><p>Whoever was at fault, two weeks of downtime is still very long for a major fund. As I understand, the damage to UniSuper is mainly reputational because the funds are safe and secure.&#xA0;</p><p>Users could not see their balances for a few weeks, and were told Google Cloud had messed things up. This means there are up to 615,000 Australians in whose minds UniSuper and Google Cloud are indelibly linked with unreliability.</p><p>I keep seeing that Google Cloud has no apparent strategy for what it wants its cloud to offer. A few months ago, we dived into how&#xA0;<a href="https://newsletter.pragmaticengineer.com/p/three-cloud-providers-three-outages?ref=blog.pragmaticengineer.com">AWS, Azure and GCP respond to regional outages</a>, and I concluded it&#x2019;s hard to see a strategy at GCP beyond following processes, while doing the least impressive job of all three cloud providers. It&#x2019;s hard to gain market share if you remain the slowest to respond to regional outages, and the provider for whom a zone outage takes down a region, or which loses all customers&#x2019; data, despite regional replication, by deleting it.</p><p><strong>This incident is a reminder you shouldn&#x2019;t fully trust your cloud provider.&#xA0;</strong>UniSuper was smart to have backups elsewhere for its data in Google Cloud. And while it&#x2019;s tempting to point fingers at Google Cloud: there are no definite assurances that another vendor would not make a similarly unprecedented mistake in the future!</p><p>The learning is that if you have really valuable data, keep a backup somewhere else. If you use any cloud provider, use&#xA0;<em>another</em>&#xA0;cloud, on-prem backups, or something else.</p><p><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-93?ref=blog.pragmaticengineer.com" rel="noreferrer"><strong>Read the full The Pulse issue</strong></a></p>]]></content:encoded></item><item><title><![CDATA[The Pulse: Did capacity shortages turn Anthropic hostile to devs?]]></title><description><![CDATA[For the past few weeks, Anthropic has continually upset devs with its “dumber” model, and by removing Claude Code access from some paid accounts. After securing lots of compute from SpaceX, could the reason have been to conceal capacity issues?]]></description><link>https://blog.pragmaticengineer.com/the-pulse-did-capacity-shortages-turn-anthropic-hostile-to-devs/</link><guid isPermaLink="false">6a05f20bbfd90c000141d3d3</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Thu, 14 May 2026 16:10:59 GMT</pubDate><content:encoded><![CDATA[<p><em>Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one out of five topics from </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-did-capacity-shortages?ref=blog.pragmaticengineer.com" rel="noreferrer"><em><u>last week&#x2019;s The Pulse</u></em></a><em> issue. Full subscribers received the article below seven days ago. If you&#x2019;ve been forwarded this email, you can</em><a href="https://newsletter.pragmaticengineer.com/about?ref=blog.pragmaticengineer.com"><em> <u>subscribe here</u></em></a><em>.</em></p><p>Last week, we reported on Anthropic <a href="https://newsletter.pragmaticengineer.com/i/196004322/2-anthropics-speed-run-to-break-peoples-goodwill?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">seemingly being on a speed run</a> to break devs&#x2019; goodwill by silently &#x201C;nerfing&#x201D; Claude Code, banning corporate accounts without warning, and a weird growth experiment involving revoking Claude Code and then restoring it. This week, a dev on the $20/month Pro plan had Claude Code removed just days into their subscription:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-7.png" class="kg-image" alt loading="lazy" width="1182" height="960" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/05/image-7.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/05/image-7.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-7.png 1182w" sizes="(min-width: 720px) 720px"><figcaption><i><em class="italic" style="white-space: pre-wrap;">Claude Code turned out to be a trial for seven days for some paying customers. Source: </em></i><a href="https://x.com/jgeigerm/status/2051142221702087149?s=20&amp;ref=blog.pragmaticengineer.com" target="_blank" rel="noopener noreferrer nofollow"><i><em class="italic" style="white-space: pre-wrap;">Jaime Geiger</em></i></a></figcaption></figure><p><strong>This week, Anthropic announced a big data center expansion, and relaxing previous usage limitations, </strong>while<strong> </strong>Elon Musk&#x2019;s SpaceX / xAI ( a single company after a merger) is renting its complete Colossus 1 data center to Anthropic. From <a href="https://x.ai/news/anthropic-compute-partnership?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">the announcement:</a></p><blockquote>&#x201C;Colossus 1 features over 220,000 NVIDIA GPUs, including dense deployments of H100, H200, and next-generation GB200 accelerators. The cluster delivers extreme parallel performance for large language models, multimodal systems, scientific simulations, and generative AI at frontier scale.<br><br>Anthropic plans to use this additional compute to directly improve capacity for Claude Pro and Claude Max subscribers.&#x201D;</blockquote><p>In parallel with this release, Anthropic <a href="https://x.com/ClaudeDevs/status/2052064938840228237?s=20&amp;ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">announced</a>:</p><ul><li>Doubling Claude Code&#x2019;s current 5-hour limits for Pro, Max, Team, and seat-based Enterprise plans</li><li>Removing peak hours limit reduction on Claude Code for Pro and Max plans</li><li>Substantially raising API rate limits for Opus models</li></ul><p><strong>Is it possible that capacity issues are what led Anthropic to make Claude worse? </strong>It&#x2019;s confirmed the company has struggled with capacity for months. Conveniently, Claude Code being &#x201C;nerfed&#x201D; led to lower compute load, while removing Claude Code access from cheap plans could look like rate limiting. Even the banning of corporate accounts could be seen as scaling back at a time when the business has struggled to serve existing growth. Yesterday, (6 May), at the Code with Claude event hosted by Anthropic, CEO, Dario Amodei, said:</p><blockquote>&#x201C;We originally planned for 10x growth, and we&#x2019;ve seen something more like 80x growth in revenue and usage over the last period of time.&#x201D;</blockquote><p><strong>SpaceX / xAI renting a good chunk of its capacity to Anthropic is ironic, </strong>considering that xAI (Musk&#x2019;s AI startup) builds Grok, a frontier model and direct rival of Claude, and also in January, Anthropic banned xAI developers from Claude. As <a href="https://newsletter.pragmaticengineer.com/i/184676515/xai-devs-used-claude-for-coding-and-got-cut-off?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">covered at the time:</a></p><blockquote>&#x201C;It&#x2019;s common for an AI lab to not allow another AI lab to use its model, like at OpenAI, Anthropic, and Google. On the other side, there&#x2019;s also the pertinent question of why a leading AI lab would even want to use a rival for its own day-to-day work?<br><br>Turns out, xAI (Elon Musk&#x2019;s AI lab) was relying on Cursor to write code, which we know because they got cut off.&#x201D;</blockquote><p>Anthropic likely banned xAI to stop Claude from being potentially <a href="https://labelbox.com/guides/model-distillation/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">distilled</a> while it tried to improve Grok&#x2019;s coding capability. Meanwhile, Musk <a href="https://x.com/FredLambert/status/2052166477818839416?s=20&amp;ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">called</a> Anthropic &#x201C;misanthropic and evil&#x201D; earlier this year, and said the new tenant &#x201C;hates Western civilization&#x201D;. But both parties seem happy to put that behind them and strike a deal, so perhaps there&#x2019;s something else at play.</p><p><strong>Could SpaceX / xAI be checking out of the frontier-AI model wars? </strong>Leasing a good chunk of its data center capacity might suggest that.<strong> </strong>SpaceX / xAI has two data centers: Colossus 1 and Colossus 2. Colossus 1 represents somewhere <a href="https://x.com/tanayj/status/2052078899744714908?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">around</a> 45% of current SpaceX / xAI capacity, and 20-25% of planned total capacity.</p><p>Giving up as much capacity as this might indicate a lack of demand, or capacity sitting idle. It also means Grok is losing out in market share to Claude, ChatGPT, and other leading models. <em>In </em><a href="https://newsletter.pragmaticengineer.com/i/189777574/3-popular-models?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em>February&#x2019;s AI tooling survey</em></a><em> we found scarce mention of Grok, which lagged in usage behind open models like DeepSeek and Qwen.</em></p><p>To be fair, unlike Anthropic and OpenAI, Grok never had a B2C nor B2B business that took off. The biggest consumer use case for Grok seems to be its integration into the social media platform, X; at least, I don&#x2019;t know of any tech company using the model for serious work.</p><p><strong>&#x201C;The enemy of my enemy is my friend&#x201D;, says the maxim, </strong>and if there&#x2019;s one company Musk hates, it&#x2019;s OpenAI. He is currently suing OpenAI, claiming it betrayed its founding nonprofit mission to develop safe AGI for humanity&#x2019;s benefit by shifting to a profit-driven model backed by Microsoft. Musk also claims that despite investing about $40M, he has no ownership of the company.</p><p>He wants $150B in damages, the removal of Sam Altman and Greg Brockman, and for OpenAI to return to a full nonprofit, as per when he invested in the company. <em>We covered more about OpenAI&#x2019;s own ethical challenges between nonprofit and for-profit right after the firing of Sam Altman in 2023, in the deepdive </em><a href="https://newsletter.pragmaticengineer.com/p/what-is-openai?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em>What is OpenAI, really?</em></a></p><p>Similarly, Anthropic may well have an issue with OpenAI, if CEO Dario Amodei&#x2019;s failure to join hands with Sam Altman while sharing a stage with the Prime Minister of India earlier this year is anything to go by.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-8.png" class="kg-image" alt loading="lazy" width="1280" height="853" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/05/image-8.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/05/image-8.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-8.png 1280w" sizes="(min-width: 720px) 720px"><figcaption><i><em class="italic" style="white-space: pre-wrap;">(Most) AI leaders join hands at the AI Impact Summit with India&#x2019;s Prime Minister. Source: </em></i><a href="https://fortune.com/2026/02/19/openai-anthropic-sam-altman-dario-amodei-refused-to-hold-hands-ai-super-bowl-ad-war-ceos-big-tech-conflict/?ref=blog.pragmaticengineer.com" target="_blank" rel="noopener noreferrer nofollow"><i><em class="italic" style="white-space: pre-wrap;">Fortune</em></i></a></figcaption></figure><p>Capacity issues hurting Anthropic would benefit OpenAI, and so by offering significant capacity to Anthropic, Musk is making it harder for OpenAI to win the market. That would be ironic, given he&#x2019;s a former investor.</p><p><em>Read the full issue of </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-did-capacity-shortages?ref=blog.pragmaticengineer.com" rel="noreferrer"><em><u>last week&#x2019;s The Pulse</u></em></a><em>, or check out </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-forward-deployed-engineering?ref=blog.pragmaticengineer.com" rel="noreferrer"><em><u>this week&#x2019;s The Pulse</u></em></a><em>. This week&#x2019;s issue covers:</em></p><ol><li><strong>Forward deployed engineering heats up again.&#xA0;</strong>Massive demand for the role at Google, OpenAI, and Anthropic. The latest version of the FDE role looks like the consultant / solution architect role done by many early-junior engineers.</li><li><strong>Why are layoffs spiking?&#xA0;</strong>Tech job cuts are higher than since early 2023 for various reasons: smaller teams prompt reorgs and reduce the need for middle management. Meanwhile, poorly performing companies make layoffs without the influence of AI.</li><li><strong>New trend: self-reporting 100% AI generated code at Microsoft.&#xA0;</strong>With mid-year performance reviews looming, some managers advise their reports to claim they use AI for everything.</li><li><strong>Industry Pulse.&#xA0;</strong>Tokenmaxxing at Amazon, too, SaaS companies grow faster than before &#x2013; perhaps partly due to AI, Bun rewritten in Rust with AI works well, Anthropic overtakes OpenAI in enterprise spend, and more.</li><li><strong>Vibe coding &amp; agentic engineering get uncomfortably close</strong>. A relatable observation by software engineer, Simon Willison, about reviewing AI agents&#x2019; code less than would be ideal.</li></ol>]]></content:encoded></item><item><title><![CDATA[TechPays has been acquired by Levels.fyi]]></title><description><![CDATA[<p><em>tl;dr:</em><a href="https://techpays.com/?ref=blog.pragmaticengineer.com"><em> <u>TechPays</u></em></a><em> is joining</em><a href="https://www.levels.fyi/?ref=blog.pragmaticengineer.com"><em> <u>Levels.fyi</u></em></a><em>: so the leading tech salary site in Europe gets the love and care it deserves. Thanks to</em><a href="https://www.linkedin.com/in/rzsombor/?ref=blog.pragmaticengineer.com"><em> <u>Zsombor</u></em></a><em> for building this project with me for so many years.</em></p><p>Pay transparency has always been an issue in tech, <em>especially</em> in Europe. For a while,</p>]]></description><link>https://blog.pragmaticengineer.com/techpays-has-been-acquired-levels-fyi/</link><guid isPermaLink="false">6a0348f9c21cab000134339f</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Tue, 12 May 2026 16:06:08 GMT</pubDate><content:encoded><![CDATA[<p><em>tl;dr:</em><a href="https://techpays.com/?ref=blog.pragmaticengineer.com"><em> <u>TechPays</u></em></a><em> is joining</em><a href="https://www.levels.fyi/?ref=blog.pragmaticengineer.com"><em> <u>Levels.fyi</u></em></a><em>: so the leading tech salary site in Europe gets the love and care it deserves. Thanks to</em><a href="https://www.linkedin.com/in/rzsombor/?ref=blog.pragmaticengineer.com"><em> <u>Zsombor</u></em></a><em> for building this project with me for so many years.</em></p><p>Pay transparency has always been an issue in tech, <em>especially</em> in Europe. For a while, I assumed that the most that a senior+ software engineer could make in London or Amsterdam would be in the realm of &#xA3;100K / &#x20AC;100K. Once you reach that level, you&apos;ve made it. You&#x2019;re now at the very top of the market! <em>Or are you?</em></p><p>So when I was making  &#xA3;93K in London, working as a principal engineer at Skyscanner in 2016, I was not expecting that I could be compensated meaningfully better. Pay surveys kept confirming that I&apos;m well above the median, and into the 90th percentile of pay grades.</p><p>Imagine my surprise when I got an offer from Uber, in Amsterdam, that effectively doubled by compensation, into the realm of around &#x20AC;220-250K ($260-295K). By year four, I made &#x20AC;283K ($332K):</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/Screenshot-2026-05-12-at-17.46.16.png" class="kg-image" alt loading="lazy" width="1210" height="1358" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/05/Screenshot-2026-05-12-at-17.46.16.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/05/Screenshot-2026-05-12-at-17.46.16.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/Screenshot-2026-05-12-at-17.46.16.png 1210w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">My total compensation at Uber, per year, 2016-2019. Blue is base salary, yellow is equity, green is cash bonus. Note how by year 5 (2020), my compensation dropped to below year 2, thanks to hitting my 4-year vesting cliff for the initial equity grant.</span></figcaption></figure><p><strong>It felt like I discovered a &quot;secret, upper-tier&quot; of the market that no one else knew about. </strong>When I became a manager at Uber, and started hiring for my team, several strong software engineers were hesitant to move forward with the process, because they <em>assumed</em> that they were at the very top of the market &#x2013; but they still made ~half of what we would have offered! I had no way of telling them &quot;your data is wrong, this place pays a lot more!&quot; and so several of them just never bothered to interview, assuming the most raise they would get would be 5-10%. When they could have potentially doubled their compensation&#x2026;</p><p><strong>I saw first-hand that not having good compensation information works against us, developers, and decided to try and change this. </strong>I collected data points from closer to 200 engineers working in the Netherlands, and explained that there&apos;s a third, &quot;hidden&quot; tier of compensation in <a href="https://blog.pragmaticengineer.com/software-engineering-salaries-in-the-netherlands-and-europe/" rel="noreferrer">The Trimodal Nature of Software Engineering Salaries in the Netherlands and Europe</a>.</p><figure class="kg-card kg-image-card"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-6.png" class="kg-image" alt loading="lazy" width="1600" height="1026" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/05/image-6.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/05/image-6.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-6.png 1600w" sizes="(min-width: 720px) 720px"></figure><p>After the success of the article, I decided to &quot;open source&quot; compensation data points I collected, and thus <a href="https://techpays.com/?ref=blog.pragmaticengineer.com" rel="noreferrer">TechPays</a> was born:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/Screenshot-2026-05-12-at-17.53.55.png" class="kg-image" alt loading="lazy" width="2000" height="1318" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/05/Screenshot-2026-05-12-at-17.53.55.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/05/Screenshot-2026-05-12-at-17.53.55.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1600/2026/05/Screenshot-2026-05-12-at-17.53.55.png 1600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/Screenshot-2026-05-12-at-17.53.55.png 2336w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">TechPays</span></figcaption></figure><p>I built this site together with <a href="https://www.linkedin.com/in/rzsombor/?ref=blog.pragmaticengineer.com" rel="noreferrer">Zsombor Erd&#x151;dy-Nagy</a>. We paid attention to support compensation anonymization, capture freelancer compensation, and break down how compensation packages were put together. We&apos;ve received so many heart-warming stories on how you&apos;ve been able to negotiate better compensation packages, thanks to having access to this information. </p><p>Knowing that we&apos;re making a difference kept us going for a few years, as a side project. However, over time, both Zsombor and I got busier with other projects. For me, it was <a href="https://newsletter.pragmaticengineer.com/about?ref=blog.pragmaticengineer.com"><u>The Pragmatic Engineer</u></a> taking up more of my time. We wanted to find a way to keep TechPays running, and get the care it deserves.</p><p><strong>Levels.fyi will be taking over operating TechPays</strong> &#x2013; and taking learnings about European compensation packages, and integrating into their global pay transparency platform. I&apos;ve known Levels.fyi founders <a href="https://www.linkedin.com/in/zuhayeer/?ref=blog.pragmaticengineer.com" rel="noreferrer">Zuhayeer</a> and <a href="https://www.linkedin.com/in/zmohiuddin/?ref=blog.pragmaticengineer.com" rel="noreferrer">Zaheer</a> for years, and we share our drive to make compensation as transparent as possible, across the tech industry.</p><p>With TechPays, there are no changes: you get to browse the data, as before. And expect even more, high-quality data points on Levels.fyi, for Europe, and globally.</p><p>To get more details on compensation, check out Levels.fyi. And read the <a href="https://newsletter.pragmaticengineer.com/p/trimodal?ref=blog.pragmaticengineer.com"><u>Trimodal nature of tech compensation in the US, UK and India</u></a>, based on Levels.fyi data points:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/data-src-image-fb8866c5-3b41-45b6-a0b9-1ebf281adf7d.png" class="kg-image" alt loading="lazy" width="739" height="712" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/05/data-src-image-fb8866c5-3b41-45b6-a0b9-1ebf281adf7d.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/data-src-image-fb8866c5-3b41-45b6-a0b9-1ebf281adf7d.png 739w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">From the deepdive </span><a href="https://newsletter.pragmaticengineer.com/p/trimodal?ref=blog.pragmaticengineer.com"><u><span class="underline" style="white-space: pre-wrap;">The trimodal nature of tech compensation in the US, UK and India</span></u></a></figcaption></figure>]]></content:encoded></item><item><title><![CDATA[The Pulse: AI load breaks GitHub – why not other vendors?]]></title><description><![CDATA[GitHub’s leadership blames the 3.5x increase in service load as the cause of degradation – or it might be self-inflicted.]]></description><link>https://blog.pragmaticengineer.com/the-pulse-ai-load-breaks-github/</link><guid isPermaLink="false">69fccc856562a30001f428bb</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Thu, 07 May 2026 17:33:18 GMT</pubDate><content:encoded><![CDATA[<p><em>Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one out of four topics from </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-github-breaks?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em>last week&#x2019;s The Pulse</em></a><em> issue. Full subscribers received the article below seven days ago. If you&#x2019;ve been forwarded this email, you can</em><a href="https://newsletter.pragmaticengineer.com/about?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em> subscribe here</em></a><em>.</em></p><p>GitHub&#x2019;s reliability has been beyond unacceptable recently: last month, third party measurements pinned it at <a href="https://newsletter.pragmaticengineer.com/i/192229275/1-does-github-still-merit-top-git-platform-for-ai-native-development-status?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">one nine</a> (right at 90%). This month, reliability has been down to <em>zero</em> nines &#x2013; 86% &#x2013; as per <a href="https://mrshu.github.io/github-statuses/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">a third-party tracker</a>, and last week, things got even worse: a frankly embarrassing data integrity incident, more outages, and a partial explanation from GitHub, eventually.</p><h3 id="data-integrity-incident">Data integrity incident</h3><p>Last Thursday (23 April), <a href="https://www.githubstatus.com/incidents/zsg1lk7w13cf?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">this happened</a>: PRs merged via the merge queue using the squash merge method produced incorrect merge commits, when the merge group contained more than one PR. Commits were reverted from subsequent merges: basically, commits were &#x201C;lost&#x201D; in the code that was merged!</p><p>Thanks to <a href="https://www.githubstatus.com/incidents/zsg1lk7w13cf?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">a bug</a> GitHub introduced, the service broke its integrity promise that pull requests would be merged as expected when using <a href="https://docs.gitlab.com/user/project/merge_requests/squash_and_merge/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">squash merge</a>, which is a technique typically used to merge multiple small commits into a single, meaningful commit. This is a big deal: as data integrity promises are some of the most important ones, for services like GitHub.</p><p>A total of 2,092 pull requests were impacted, and companies hit by the outage included Modal and Zipline. Effectively, GitHub pushed a bunch of work on affected customers who had to manually untangle and recover lost commits, which GitHub could offer zero assistance with.</p><p>Customers had to manually go through their git history and restore missing code. After following manual recovery steps (reverting the squash commit and re-applying commits one by one), all commits should have been recovered.</p><p>GitHub <a href="https://x.com/davidxia_/status/2047642368724120043?s=20&amp;ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">later emailed</a> the list of affected commits to customers, but it&#x2019;s odd that GitHub executives seemed to downplay the nature of this outage. After all, an outage that messes with data integrity is a much bigger deal than something like a fall in availability where no data is corrupted.</p><p>Can Duruk, software engineer at Modal, <a href="https://x.com/can/status/2047823390342324572?s=20&amp;ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">was unhappy</a> about GitHub&#x2019;s muted response to the outage:</p><blockquote>&#x201C;The COO going out of their way to find a huge denominator to make the impact appear small feels very dishonest; versus a sincere apology about how this invalidates their entire promise to their customers. We had to dig into their status page about this to even realize they just casually f***ed up our repo.&#x201D;</blockquote><h3 id="outages-don%E2%80%99t-stop">Outages don&#x2019;t stop</h3><p>On Monday (27 April), pull requests and issues disappeared from GitHub&#x2019;s web UI:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image.png" class="kg-image" alt loading="lazy" width="1456" height="788" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/05/image.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/05/image.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image.png 1456w" sizes="(min-width: 720px) 720px"><figcaption><i><em class="italic" style="white-space: pre-wrap;">Pull requests go missing. Source: </em></i><a href="https://x.com/badlogicgames/status/2048803113683788138?s=20&amp;ref=blog.pragmaticengineer.com" target="_blank" rel="noopener noreferrer nofollow"><i><em class="italic" style="white-space: pre-wrap;">Mario Zechner</em></i></a></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-1.png" class="kg-image" alt loading="lazy" width="1198" height="298" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/05/image-1.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/05/image-1.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-1.png 1198w" sizes="(min-width: 720px) 720px"><figcaption><i><em class="italic" style="white-space: pre-wrap;">Issues also not to be found. Source: </em></i><a href="https://x.com/zeeg/status/2048810616849355252?s=20&amp;ref=blog.pragmaticengineer.com" target="_blank" rel="noopener noreferrer nofollow"><i><em class="italic" style="white-space: pre-wrap;">David Cramer</em></i></a></figcaption></figure><p>This had to do with an Elasticsearch outage on GitHub&#x2019;s backend: the cluster became overloaded and went down. So, while pull requests, issues, and projects didn&#x2019;t vanish altogether, they also didn&#x2019;t show up during <a href="https://www.githubstatus.com/incidents/ql942tw29yl6?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">the 6-hour-long outage.</a></p><p>There were other outages this week:</p><ul><li><a href="https://www.githubstatus.com/incidents/x69zbgdyfzg0?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">Some pull requests not showing up</a> (Tuesday, 28 April)</li><li><a href="https://www.githubstatus.com/incidents/dbypmw7h77l5?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">Problems with some GitHub Actions</a> (the same day)</li><li><a href="https://www.githubstatus.com/incidents/x69zbgdyfzg0?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">Incomplete pull requests in repositories</a> (Wednesday, 29 April)</li></ul><p>Also on Tuesday (28 April), security firm Wiz <a href="https://www.wiz.io/blog/github-rce-vulnerability-cve-2026-3854?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">disclosed a critical security issue</a>, where a bad actor could get access to all repositories on GitHub and GitHub Enterprise server by using only a <em>git push</em> command. <em>GitHub fixed the issue on GitHub.com within six hours, but GitHub Enterprise servers that were not updated remain vulnerable.</em></p><h3 id="famous-open-source-contributor-quits-github-in-frustration">Famous open source contributor quits GitHub in frustration</h3><p>On Tuesday, Mitchell Hashimoto, founder of HashiCorp, creator of Ghostty, announced GitHub was unfit for professional work and that he was moving off to Ghostty, the open source terminal that&#x2019;s his main focus. Mitchell&#x2019;s reasoning <a href="https://mitchellh.com/writing/ghostty-leaving-github?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">was dead simple</a>: being on GitHub makes him unproductive (emphasis mine:)</p><blockquote>&#x201C;The past month I&#x2019;ve kept a journal where I put an &#x201C;X&#x201D; next to every date where a GitHub outage has negatively impacted my ability to work. Almost every day has an X. On the day I am writing this post, I&#x2019;ve been unable to do any PR review for ~2 hours because there is a GitHub Actions outage. <strong>This is no longer a place for serious work if it just blocks you out for hours per day, every day.</strong><br><br>It&#x2019;s not a fun place for me to be anymore. I want to be there, but it doesn&#x2019;t want me to be there. I want to get work done and it doesn&#x2019;t want me to get work done. I want to ship software and it doesn&#x2019;t want me to ship software.<br><br>I want it to be better, but I also want to code. And I can&#x2019;t code with GitHub anymore. I&#x2019;m sorry. After 18 years, I&#x2019;ve got to go. I&#x2019;d love to come back one day, but this will have to be predicated on real results and improvements, not words and promises.&#x201D;</blockquote><p>Mitchell&#x2019;s experience suggests that GitHub&#x2019;s official status page is inaccurate from the point of view of a heavy user like himself. The third-party &#x201C;<a href="https://mrshu.github.io/github-statuses/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">missing GitHub status page</a>&#x201D; is likely to be a better estimation: where GitHub&#x2019;s reliability is at zero nines: at 85.51% uptime. That means that a part of GitHub was down for 2-3 hours, per day, on average, for the last 90 days (!!)</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-2.png" class="kg-image" alt loading="lazy" width="1456" height="516" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/05/image-2.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/05/image-2.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-2.png 1456w" sizes="(min-width: 720px) 720px"><figcaption><i><em class="italic" style="white-space: pre-wrap;">Reliability woes: GitHub &#x201C;not a place for serious work.&#x201D; Source: </em></i><a href="https://mrshu.github.io/github-statuses/?ref=blog.pragmaticengineer.com" target="_blank" rel="noopener noreferrer nofollow"><i><em class="italic" style="white-space: pre-wrap;">The Missing GitHub Status Page</em></i></a></figcaption></figure><p>Mitchell&#x2019;s complaint sounds straightforward:</p><ol><li>As a professional software engineer, it&#x2019;s important to have tools that help you get work done</li><li>For months, GitHub has got in the way of his work on open source projects via a flood of outages</li><li>It makes no sense to use a product unfit for professional work.</li><li>As GitHub shows no signs of improvement, it&#x2019;s worthwhile to move to a different solution which <em>just</em> <em>works</em></li></ol><h3 id="cto-blames-ai-agent-fuelled-load-spike">CTO blames AI agent-fuelled load spike</h3><p>GitHub CTO, Vlad Fedorov, <a href="https://github.blog/news-insights/company-news/an-update-on-github-availability/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">shared an update</a> on why reliability has been terrible for months at GitHub. He identified the load from agents being much bigger than expected as the culprit. Charts illustrating this were shared by GitHub:</p><figure class="kg-card kg-image-card"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-3.png" class="kg-image" alt loading="lazy" width="1200" height="671" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/05/image-3.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/05/image-3.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-3.png 1200w" sizes="(min-width: 720px) 720px"></figure><p>This chart looks eye-catching &#x2013; but there&#x2019;s just one tiny issue: no Y axis! So, while it tells the story of the load going up slowly and then very fast, we&#x2019;re not told by how much. However, I managed to get data from GitHub, and below is the chart showing the actual load increase over two years:</p><figure class="kg-card kg-image-card"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-4.png" class="kg-image" alt loading="lazy" width="1456" height="913" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/05/image-4.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/05/image-4.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-4.png 1456w" sizes="(min-width: 720px) 720px"></figure><p><strong>A load increase of ~3.5x, spread across two years, doesn&#x2019;t seem so brutal at first glance. </strong>It is nothing like a load increase of 10x in a month, and a good chunk of it occurred in recent months. So, why can&#x2019;t GitHub handle it? In a blog post, Fedorov said:</p><blockquote>&#x201C;A pull request can touch Git storage, mergeability checks, branch protection, GitHub Actions, search, notifications, permissions, webhooks, APIs, background jobs, caches, and databases. At large scale, small inefficiencies compound: queues deepen, cache misses become database load, indexes fall behind, retries amplify traffic, and one slow dependency can affect several product experiences.&#x201D;</blockquote><p>Here&#x2019;s how the per-second load numbers from January 2023 and today compare:</p><figure class="kg-card kg-image-card"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-5.png" class="kg-image" alt loading="lazy" width="1456" height="633" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/05/image-5.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/05/image-5.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/05/image-5.png 1456w" sizes="(min-width: 720px) 720px"></figure><p>GitHub took 15 years to achieve the 2023 numbers, and maybe it expected to continue growing in a comparable way in the future. If so, some engineering decisions about long-term infrastructure improvements would have been made obsolete by the arrival of AI agents.</p><p><strong>To add to GitHub&#x2019;s challenges, the company is in the midst of a migration from its own data centers &#x2192; Azure. </strong>In October last year, GitHub <a href="https://thenewstack.io/github-will-prioritize-migrating-to-azure-over-feature-development/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">started to</a> move over to Azure &#x2013; a project expected to take 12 months &#x2013; because it already had constraints on its own data center capacity.</p><p>Such large-scale infrastructure migrations are hard enough when the load on a service is relatively stable; just making sure nothing breaks takes a lot of effort. But moving at a time when load is spiking means that bugs can cause more visible outages. Of course, GitHub can secure a lot more compute capacity on Azure, now they know what to expect.</p><p><strong>But other major companies prepared for a 10x increase in infra load, so why not Microsoft / GitHub? </strong>A year ago, I did research on how Big Tech was preparing to respond to the impact of AI on their business. Google was improving its internal systems to accommodate for a 10x increase in load. As we covered in The Pragmatic Engineer, <a href="https://newsletter.pragmaticengineer.com/i/167269400/google?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">in July last year:</a></p><blockquote>&#x201C;Google is preparing for 10x more code to be shipped. A former Google Site Reliability Engineer (SRE) told me:<br><br>&#x201C;What I&#x2019;m hearing from SRE friends is that they are preparing for 10x the lines of code making their way into production.&#x201D;<br><br>If any company has data on the likely impact of AI tools, it&#x2019;s Google. 10x as much code generated will likely also mean 10x more: code review, deployments, feature flags, source control footprint and, perhaps, even bugs and outages, if not handled with care.&#x201D;</blockquote><p>Predicted enormous load increases were not secret knowledge within the industry, yet it seems GitHub was blissfully ignorant of their potential size. According to Vlad, GitHub did <em>eventually</em> plan for a need to increase capacity by 10x, but this was in October 2025, months later. In February 2026, the company is now adjusting that expectation to 30x. <a href="https://github.blog/news-insights/company-news/an-update-on-github-availability/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">He wrote</a>:</p><blockquote>&#x201C;We started executing our plan to increase GitHub&#x2019;s capacity by 10X in October 2025 with a goal of substantially improving reliability and failover. By February 2026, it was clear that we needed to design for a future that requires 30X today&#x2019;s scale.&#x201D;</blockquote><p>There&#x2019;s also the question of whether GitHub miscalculated how much time it had to prepare for explosive load growth, and whether it was caught off guard when that growth materialized months sooner than expected at the start of this year.</p><p><strong>Given GitHub only started to prepare for a major load increase in October, its current problems are unsurprising. </strong>At the scale of GitHub, it&#x2019;s common enough for each team owning a service to plan a year ahead on how much load their service will have, and hardware resources like storage, VMs, and networking are allocated accordingly. Load planning can account for up to half of the preparations, and when reality doesn&#x2019;t conform to plans, some systems can struggle to scale up.</p><p>So, on one hand, dealing with a 3.5x increase in load over 2 years should not be such a big deal for most services; especially not ones which can be horizontally scaled (when there&#x2019;s not much state, and scaling is achieved simply by adding new nodes.) But GitHub probably stores a lot more state with pull requests, workflows, projects, etc. This probably makes scaling more tricky when it comes to databases and systems running workflows.</p><p><strong>GitHub also has 18 years of tech debt on its hands, and thousands of staff to align as &#x201C;organizational overhead.&#x201D; </strong>As its service load grows faster than before, responding is harder due to all that accumulated &#x201C;debt&#x201D;:</p><ul><li>Tech debt: many systems at the company are 10+ years old and are likely patched up, making them more difficult and risky to change</li><li>Organizational debt: around 4,000 people work at GitHub, of whom 1,000 are engineers. Teams have dependencies with each other, and even seemingly simple work can require dozens of engineers to work together</li><li>Customer expectations: GitHub cannot break customer workflows, even if doing so would mean changes to systems happen faster</li></ul><p>GitHub finds itself in the &#x2018;innovator&#x2019;s dilemma&#x2019;: the company became successful because it built developer workflows that made sense, pre-AI, and it used to be able to accurately forecast service load changes. But now that engineering teams&#x2019; workflows include AI agents, GitHub&#x2019;s own workflows are not necessarily the best fit, and the company failed to forecast service-level changes.</p><h3 id="other-vendors-floored-by-ai-load-not-really">Other vendors floored by AI load? Not really</h3><p>One thing that doesn&#x2019;t add up about the situation is that other vendors who are presumably experiencing similar load spikes don&#x2019;t appear to be suffering with reliability issues as much. Vercel, Linear, Resend, Railway, Sentry, and other infra providers see record-level growth thanks to AI, but keep up with the load.</p><p>Yes, it&#x2019;s true that AI vendors like Anthropic, OpenAI, and Cursor have some reliability issues, but it&#x2019;s not at the scale of GitHub&#x2019;s. GitHub&#x2019;s direct competitors, GitLab and Bitbucket, presumably see load going up similarly, but they&#x2019;re not going down as much.</p><p><strong>An obvious question is how much of GitHub&#x2019;s pain is self-inflicted? </strong>With Microsoft as owner, it has more resources at its disposal than any competitor or startup, and yet failed to predict load increases and is too big to respond with the nimbleness of a startup.</p><p>It&#x2019;s undeniable that solving for a major load increase is a hard challenge; it&#x2019;s when the difference between average and standout engineering teams is apparent. GitHub hasn&#x2019;t been responding like a world-class engineering org.</p><h3 id="github-alternatives">GitHub alternatives?</h3><p>Every regular user of GitHub feels the pain of ongoing outages. As a dev, you can either hope Microsoft will <em>eventually</em> improve reliability, or seek alternatives. As covered above, Mitchell has chosen to quit and is currently deciding where to take Ghostty.</p><p>The obvious alternatives are GitHub&#x2019;s biggest competitors, GitLab, and Bitbucket. Each offers Git hosting, and neither comes with the uptime woes that GitHub is suffering from.</p><p><strong>Self-hosted </strong>solutions are also an option, like self-hosting your git repo, or going with a <strong>self-hosted forge </strong>like <a href="https://tailscale.com/blog/self-hosted-git-server-tailscale-forgejo?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">Forgejo</a>, which is an open source, local-first GitHub alternative.</p><p>I also suspect that, soon enough, we&#x2019;ll see startups offering GitHub-like code hosting capabilities, while offering more robust uptime and being architected to handle the 30x-or-more scale which GitHub hopes one day to support.</p><p><em>Read the full issue of </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-github-breaks?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em>last week&#x2019;s The Pulse</em></a><em>, or check out </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-did-capacity-shortages?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em>this week&#x2019;s The Pulse</em></a><em>. This week&#x2019;s issue covers:</em></p><ol><li>Did Anthropic turn hostile on devs because capacity was running low?</li><li>Amazon finally allows Claude Code and Codex usage</li><li>Meta forcefully assigns engineers to data labelling ahead of job cuts</li><li>New trend: small &#x201C;AI-forward&#x201D; teams</li><li>Industry Pulse: why Meta tracks employees&#x2019; computer activity, OpenAI starts to move off Datadog, Apple lets slip it uses Claude Code, GitHub &#x2192; Xbox transfers at Microsoft, VS Code inserted &#x201C;coathored by Copilot&#x201D; even when Copilot did nothing, analysis of the Coinbase layoffs</li></ol>]]></content:encoded></item><item><title><![CDATA[The Pulse: token spend breaks budgets – what next?]]></title><description><![CDATA[In the past 2-3 months, spending on AI agents has exploded at many tech companies, Details from 15 of them, including the different ways they are coping with this realization.]]></description><link>https://blog.pragmaticengineer.com/the-pulse-token-spend-breaks-budgets-what-next/</link><guid isPermaLink="false">69f36c81ac26b70001aa306d</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Thu, 30 Apr 2026 14:52:36 GMT</pubDate><content:encoded><![CDATA[<p><em>Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one out of three topics from </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-ai-token-spending-out-of?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em>last week&#x2019;s The Pulse</em></a><em> issue. Full subscribers received the article below seven days ago. If you&#x2019;ve been forwarded this email, you can</em><a href="https://newsletter.pragmaticengineer.com/about?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em> subscribe here</em></a><em>.</em></p><p>Last week, we covered <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-tokenmaxxing-as-a-weird?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">the slightly perverse trend of &#x201C;tokenmaxxing&#x201D;</a> across the industry, where devs run agents with the sole aim of boosting their personal &#x201C;token stats&#x201D; in an effort to rank higher on internal token leaderboards, and not be seen as a Luddite who doesn&#x2019;t use AI tools enough compared to peers.</p><p>This week, I spoke with a software engineer at a large company and another at a seed-stage place. Both shared almost identical stories: at their latest all-hands, company leadership expressed concerns about the fast-rising costs of tokens. At both places, token spend has increased by ~10x in the last six months &#x2013; with no signs of slowing down.</p><p>I wanted to find out about this trend, so I talked to devs at 15 businesses. Below is what I learned about what&#x2019;s happening in workplaces of all sizes. Names are anonymized.</p><h2 id="large-companies">Large companies</h2><h4 id="setting-the-default-model-to-a-cheaper-one-10000-person-saas-company-offices-on-all-continents">Setting the default model to a cheaper one: 10,000+ person SaaS company, offices on all continents</h4><p>Inside a large SaaS company, most devs use an internal background coding tool for coding. This model defaults to Claude Sonnet, which is the cheaper Claude version. Model selection is not persisted, so devs who prefer working with Opus, for instance, must reselect it on every subsequent startup.</p><p>This tool supports all major frontier models such as Sonnet, Opus, GPT, and Gemini. Devs at the company whom I talked to are very heavy users of the tool and have not encountered usage limitations.</p><h4 id="fintech-company-us-series-d-8000-people-staff-engineer">Fintech company, US, Series D, ~8,000 people. Staff engineer:</h4><blockquote>&#x201C;The cost in token spend is off the charts &#x2013; and leadership has shared this trend with us. They have not said anything beyond showing growth in spend, and mentioning that this won&#x2019;t be sustainable. So, nothing specific yet, but my sense is that something will have to change. Limits or prioritizing cheaper models, cutting back on hiring? Who knows.&#x201D;</blockquote><h4 id="infra-company-us-publicly-traded-5000-people-engineering-director">Infra company, US, publicly traded, ~5,000 people. Engineering Director:</h4><blockquote><strong>&#x201C;We&#x2019;re monitoring but not restricting.</strong> We are spot checking the heaviest users, but we are seeing the business cases working out.<br><br>We are offering some guidance on model selection - e.g., turn off the new high-effort setting in Claude. Some users are trying open source models &#x2013; but open source model usage is a bottom-up initiative, not a top-down one.&#x201D;</blockquote><h4 id="information-technology-us-10000-people-director-of-engineering">Information technology, US, 10,000+ people. Director of Engineering:</h4><blockquote>&#x201C;We have already had to raise our API budget limits multiple times in April. We recently switched to a much higher-effort level for Claude, which significantly increased the cost per PR.<br><br><strong>One reason for the cost spike is using state-of-the-art models for demanding tasks.</strong> We are using that high-effort setting even for fairly trivial tasks that could have been handled by much cheaper models, or even by lower-effort Claude loops. Despite a few of us pointing this out, leadership has basically said budget is not the concern right now.<br><br>I sense that the budget increase has not been forecasted, and we&#x2019;re in for a reckoning.<strong> </strong>I suspect the attitude changes once finance and other cost-conscious parts of the org realize we are spending hundreds of dollars per day, per highly-engaged developer. For now, fear of missing out and not wanting to fall behind seems to be outweighing cost discipline.&#x201D;</blockquote><h4 id="games-studio-useurope-5000-people-senior-developer">Games studio, US+Europe, ~5,000 people. Senior developer:</h4><blockquote>&#x201C;What budget increase? It&#x2019;s very hard to get a budget for AI here! Claude Code is still not rolled out because $200/month/dev is seen as too high a cost. I talk with people at startups where $1,000/month in spending is totally normal, and it&#x2019;s night and day here.&#x201D;</blockquote><h4 id="fintech-company-useurope-late-stage-5000-people-staff-engineer">Fintech company, US+Europe, late stage, ~5,000 people. Staff engineer:</h4><blockquote><strong>&#x201C;Some developers are now spending $500 a day (!!) on Claude Code.</strong> Practically speaking, this means that employee costs have doubled. Productivity has increased, in my view, but now the bottleneck is code reviews. AI can spit out code quite quickly, but we still have human reviews in place. Leadership encourages using AI for code review, but my team will not blindly trust AI.<br><br>The push from AI is coming from the top. This year&#x2019;s performance review had a section on AI, rating devs by how well they used AI, so this is another reason everyone just uses it as much as they can.&#x201D;</blockquote><h2 id="mid-sized-companies">Mid-sized companies</h2><h4 id="saas-industry-us-2000-people-dev-productivity-lead">SaaS industry, US, ~2,000 people. Dev Productivity Lead:</h4><blockquote>&#x201C;Model routing helped keep our costs growing less dramatically. For example, changing the default model reduced cost by 30%. This is our strategy with AI spend, summarized:<strong>Short term: spend, spend, spend!</strong> Experiment and use whatever models make sense.<strong>Measure the impact</strong>. Measure key outcomes and report on spend, monthly.<strong>When spend vs results diverge: adjust. </strong>When our spend increases dramatically, but outcomes don&#x2019;t follow: see what we can do to adjust the delta. More spend should mean better outcomes. If not, we are doing something wrong.&#x201D;</blockquote><h4 id="finance-industry-us-2000-people-vp-of-ai">Finance industry, US, ~2,000 people. VP of AI:</h4><blockquote>&#x201C;We have Cursor and Claude Desktop, both of which have around 800-1,200 total users. Token usage is growing somewhat unexpectedly. Estimates are being adjusted on the fly; the initial plan to have strict limits (say, $100 per user) is breaking when reality hits, and people exhaust them in 3-5 working days.<br><br>Using expensive models is a problem. In regards to Cursor, many devs are defaulting to the most expensive models without realizing that going with Opus gives single percentage gains in intelligence compared to Sonnet, for example, while exhausting their budgets almost immediately.<br><br><strong>We are working on blocking/managing out the most expensive models [with Cursor]</strong>, as going into thousands of dollars per user, per month is not sustainable on our scale. Cursor is a good partner and we&#x2019;re working with them to switch to a &#x201C;pooled spend&#x201D; model where heavy users can tap into a pool of extra spend.<br><br>Claude is a similar story. We were at $100 of Claude Desktop limit for everyone, but as we are moving forward, I can see that we would need to go much higher, especially for business-critical use cases.&#x201D;</blockquote><h4 id="infra-company-us-late-stage-700-people-founder">Infra company, US, late-stage, ~700 people. Founder:</h4><blockquote>&#x201C;We haven&#x2019;t had much of an issue. Most folks police themselves for runaway costs; for example, we had someone hit like $10K in a week because they messed up caching, but it was caught and they corrected their harness.<br><br><strong>For the most part, we don&#x2019;t see our high-end folks spending more than ~$1K/week.</strong> Now, to be clear, this is not a small amount! BUT it&#x2019;s already a small subset of the population.<br><br>We&#x2019;re just factoring it into engineering costs at this point: if it&#x2019;s, say, $2K/month per employee, that&#x2019;s $24K per year.<br><br>Who cares, then, when engineers already cost $200-400K/year in cash comp? Okay, so what if it&#x2019;s $5K/month. That&#x2019;s $60K/year.<br><br><strong>Our bet is that token costs will stabilize and we&#x2019;ll eventually end up with local-ish models.</strong><br><br>Now, it could be five years before they stabilize, but overall, spend today isn&#x2019;t that insane to me.<br><br>There&#x2019;s a lot of people who are just dumb about it, but most legit execs push back on this. Take the <a href="https://newsletter.pragmaticengineer.com/i/183931240/ralph-mania?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">Ralph loops</a> or other insanity where someone spends $1K/day, $5K/week or stuff like this. That&#x2019;s all just people being fools thinking they&#x2019;re doing &#x201C;R&amp;D,&#x201D; or somehow that they&#x2019;re smarter than everyone else, but they&#x2019;re just producing junk that never ships or is not useful.<br><br><strong>We saw a bit of &#x201C;stupid overspend&#x201D; in the first couple months, but that&#x2019;s all gone now. </strong>Costs could go up even more if we would &#x201C;crack the whip&#x201D; in wanting to see even more output, but we&#x2019;re not doing that.&#x201D;</blockquote><h4 id="healthcare-industry-us-500-people-senior-engineering-manager">Healthcare industry, US, ~500 people. Senior engineering manager:</h4><blockquote>&#x201C;<strong>We are not holding back on spend, and have a monthly spend leaderboard.</strong> And we WANT devs to spend more on tokens! For example, one of my engineers spent $1,400 on a long Claude Code session in a single day.<br><br><strong>We are seeing massive leverage, and we do more with the same number of people. </strong>This is why we are okay with our spending spiking. Our traffic is growing more than 10x, year-on-year, and we have managed to keep things running with the same team, and these AI tools.<br><br>Engineering is now blocked on Product and Design &#x2013; which never happened before! This is how fast execution has become. We now have Staff+ engineers writing Product PRDs so we can move faster.<br><br>I&#x2019;ve been in tech for close to 15 years and I never saw dramatic change like this. I just came back after a 3-month break, and every single thing is different in my day! I feel these AI agents are the biggest change in the industry since high-level languages became widespread.&#x201D;</blockquote><h4 id="e-commerce-company-us-europe-2000-devs-head-of-engineering">E-commerce company, US &amp; Europe, ~2,000 devs. Head of Engineering:</h4><blockquote>&#x201C;The increase in spend is INSANE. It&#x2019;s about usage going up, with no signs of stopping. Usage is off the charts.<br><br>We currently do not have limits in place, and are not pausing now. Our CEO is AI-pilled and won&#x2019;t let us slow down.<br><br><strong>We do buy tokens at a discount. </strong>They start from 5% and go up with usage with the vendors we use (the usual suspects.)<br><br>We don&#x2019;t let devs use anything lower than Opus 4.7 for coding. Cheaper models might work better, but a slight error pushed to prod would result in hours of toil.&#x201D;</blockquote><h2 id="small-companies">Small companies</h2><h4 id="series-a-us-50-people-principal-engineer">Series A, US, ~50 people. Principal Engineer:</h4><blockquote>&#x201C;About 15 devs are heavy users of AI and costs are rising very fast. Almost everyone uses Claude and Claude Code. We are considering four potential options:<strong>Increase AI budget, and start measuring more</strong>. Continue doing what we are, but allow devs to use more tokens instead of hiring limits. The precise ROI is hard to quantify, but we&#x2019;ll start to measure and track both AI adoption and impact.<strong>Optimize token consumption. </strong>Use cheaper models for simpler tasks, review token usage, and see where we can cut usage. Downside: this approach could become one with diminishing returns, fast.<strong>Integrate more AI providers in the company.</strong> Find wrappers to abstract LLMs. The problem is: how do you replace Claude Code, for instance?<strong>Pivot to local models:</strong> such as Kimi, Qwen, and so on. The problem is it&#x2019;s a big investment in high-end hardware or cloud GPUs. Upside: it offers better long-term cost control, once done.<br><br>We are likely to go with option #1: increase spend BUT maintain momentum and put the right measurements in place. We can do #2, #3 and #4 later. But if we kill AI usage momentum inside the company, the outcome will probably be worse.&#x201D;</blockquote><h4 id="ai-infra-us-seed-stage-15-people-founder">AI infra, US, seed stage, ~15 people. Founder:</h4><blockquote>&#x201C;<strong>We saw a 15x increase in 6 months:</strong>Six months ago our spend per developer was ~$200/monthToday, it&#x2019;s around $3,000/developer/month, for our seven devs<br>We&#x2019;re not slowing usage, especially as we are building an AI infra product. The increase was much faster than expected, though.&#x201D;</blockquote><h4 id="small-bootstrapped-company-europe-founding-engineer">Small, bootstrapped company, Europe. Founding engineer:</h4><blockquote>&#x201C;Our current strategy in dealing with the increase in costs is to switch to a cheaper model; unfortunately, from Opus to Sonnet in our case. That said, Sonnet is quite decent.&#x201D;</blockquote><h3 id="how-businesses-manage-token-spend">How businesses manage token spend</h3><p>Regardless of company size, there seems to be two strategies for how companies deal with increased spending. A summary:</p><p><strong>Strategy #1: &#x201C;let it rip and start measuring.&#x201D; </strong>Around half of respondents say AI spend is rising dramatically, and they have decided to do nothing about it. They <em>want</em> devs to use AI as much as it makes sense to, and to help the work as much as possible.</p><p>However, because the cost is rising dramatically, these companies are now starting to measure usage and attempting to measure the impact of their AI tools.</p><p>There&#x2019;s a few companies where the impact seems to be very positive, already. Smaller startups whose business is exploding in numbers of customers, load, and revenue, see that they don&#x2019;t need to hire more staff because existing engineers can keep supporting the growth with AI tools.</p><p><strong>Strategy #2: curb spending.</strong> Commonly mentioned cost-saving approaches:</p><ul><li>Use cheaper models for simpler tasks</li><li>Set default models to less capable ones</li><li>Set a spending cap and make it hard for engineers to exceed it, or require consent for doing so</li></ul><p>Most companies using strategy #1 have briefly considered going with this approach, but threw it away, because they see this approach as optimizing on the wrong thing: cutting costs before the productivity impact of using state-of-the-art tools is even known!</p><p><strong>Discounts exist when the spend is in the millions of dollars. </strong>I asked several people if they are getting discounts from vendors when buying tokens at scale. There were no exact numbers, but this is what I gathered in aggregate about possible custom agreements:</p><ul><li><strong>Cursor: open to discounts above a few million dollars in spend. </strong>Companies have negotiated discounts with Cursor after crossing $1M of spending. Some companies negotiated tiered discounts from this level, starting at 5% and going higher as their spend goes up.</li><li><strong>Anthropic: no discounts. </strong>I talked with companies spending $5M+ per year on Claude which have received no discounts. If Anthropic offers discounts, it will likely be at a much higher tier.</li><li><strong>All discounts are custom, so try to negotiate &#x2013; it&#x2019;s free! </strong>Pricing discounts are on a per-customer basis, and highly custom. The easiest way to see if a discount is available is to ask the vendors!</li></ul><p><em>&#x2014;-</em></p><p><em>Read the full issue of </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-ai-token-spending-out-of?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em>last week&#x2019;s The Pulse</em></a><em>, or check out </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-github-breaks?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em>this week&#x2019;s The Pulse</em></a><em>. This week&#x2019;s issue covers:</em></p><ol><li><strong>Load from AI breaks GitHub &#x2013; but why not other vendors? </strong>GitHub&#x2019;s reliability is less than one nine, and getting worse. Prolific open source contributor, Mitchell Hashimoto, is quitting GitHub because he thinks it&#x2019;s not suited for professional work. GitHub&#x2019;s leadership blames the 3.5x increase in service load as the cause of degradation &#x2013; or it might be self-inflicted.</li><li><strong>Anthropic&#x2019;s speedrun to destroy trust.</strong> Anthropic could do no wrong until recently, but in the past month, that&#x2019;s all changed. Silently nerfing Claude Code, banning companies from Claude, and baffling price rises all add to a sense that Anthropic is in its &#x201C;extraction&#x201D; era of generating more revenue for the same or worse service.</li><li><strong>Industry pulse. </strong>Dramatic price increases at GitHub Copilot, explosive growth at Codex, Google scrambling to build a good coding model, Cursor might be bought by SpaceX, AI agent deletes car business, and more.</li><li><strong>Mitchell Hashimoto &amp; the &#x201C;building block economy</strong>.<strong>&#x201D; </strong>Ghostty&#x2019;s creator finds that open source &#x201C;building blocks&#x201D; are the best way to win massive adoption by software components &#x2013; but it&#x2019;s got harder to build a business on top of open building blocks.</li></ol>]]></content:encoded></item><item><title><![CDATA[The Pulse: ‘Tokenmaxxing’ as a weird new trend]]></title><description><![CDATA[At Meta, Microsoft, Salesforce and other large companies, devs are purposefully burning tokens (and money!) to inflate their AI usage and hit AI usage metrics which they treat as targets.]]></description><link>https://blog.pragmaticengineer.com/the-pulse-tokenmaxxing-as-a-weird-new-trend/</link><guid isPermaLink="false">69ea4ef45d681300012e37e5</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Thu, 23 Apr 2026 16:55:40 GMT</pubDate><content:encoded><![CDATA[<p><em>Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one out of four topics from </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-tokenmaxxing-as-a-weird?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em>last week&#x2019;s The Pulse</em></a><em> issue. Full subscribers received the article below seven days ago. If you&#x2019;ve been forwarded this email, you can</em><a href="https://newsletter.pragmaticengineer.com/about?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em> subscribe here</em></a><em>.</em></p><p>Inside Meta, an engineer created a &#x201C;token leaderboard&#x201D; that ranks employees by token usage. Last week, The Information <a href="https://www.theinformation.com/articles/meta-employees-vie-ai-token-legend-status?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">reported</a>:</p><blockquote>&#x201C;Employees at Meta Platforms who want to show off their AI superuser chops are competing on an internal leaderboard for status as a &#x201C;Session Immortal&#x201D;&#x2014; or, even better, &#x201C;Token Legend.&#x201D;<br><br>The rankings, set up by a Meta employee on its intranet using company data, measure how many tokens &#x2014; the units of data processed by AI models &#x2014; employees are burning through. Dubbed &#x201C;Claudeonomics&#x201D; after the flagship product of AI startup Anthropic, the leaderboard aggregates AI usage from more than 85,000 Meta employees, listing the top 250 power users.<br><br>The practice is emblematic of Silicon Valley&#x2019;s newest form of conspicuous consumption, known as &#x201C;tokenmaxxing,&#x201D; which has turned token usage into a benchmark for productivity and a competitive measure of who is most AI native. Workers are maximizing their prompts, coding sessions and the number of agents working in parallel to climb internal rankings at Meta and other companies and demonstrate their value as AI automates functions such as coding.&#x201D;</blockquote><p>I spoke with a few engineers at Meta about what&#x2019;s happening, and this is what they said:</p><ul><li><strong>Massive waste. </strong>Plenty of devs are running an OpenClaw-like internal agent that burns massive amounts of tokens for little to no outcome.</li><li><strong>Outages caused by AI overuse. </strong>A dev mentioned that some SEVs were caused by what looked like careless AI code generation; almost like a dev behind the SEV was more concerned with churning out massive amounts of code with AI than with product quality.</li><li><strong>Gamified leaderboard. </strong>Those at the top of the leaderboard produce throwaway, wasteful work. This is painfully clear to anyone who checks Trajectories (AI prompts), which can be viewed.</li></ul><p>As per The Information, Meta employees used a total of 60.2 trillion AI tokens (!!) in 30 days. If this was charged at Anthropic&#x2019;s API prices, it would cost $900M. Of course, Meta is likely purchasing tokens at a discount, but that could still come in at $100M+ &#x2013; in large part from senseless &#x201C;tokenmaxxing&#x201D;.</p><p><strong>After backlash on social media, Meta abolished the internal leaderboard last week. </strong>One day after The Information revealed details about the incredible tokenmaxxing numbers, I confirmed that Meta has taken down its leaderboard; perhaps they realized that the incentive created enormous and unnecessary waste. If so, it&#x2019;s a bit surprising that it took media coverage for the social media giant to reach that conclusion.</p><p><strong>One engineer at Meta told me they think Meta had a different goal with the token leaderboard. </strong>A long-tenured engineer suspects increasing AI usage actually was the real goal. They said:</p><blockquote>&#x201C;Putting a leaderboard in place was always going to incentivize much more AI usage. And more AI usage means producing a lot more real-world traces. These traces can then be used to train Meta&#x2019;s next-generation coding model better.<br><br>I believe this was the goal, even if no one said it out loud.<br><br>It&#x2019;s an expensive way to generate data for training, but if any company has the means to do so, it&#x2019;s Meta.&#x201D;</blockquote><h3 id="microsoft-full-force-tokenmaxxing"><strong>Microsoft: full-force tokenmaxxing</strong></h3><p>Similarly, Microsoft has had an internal token leaderboard like Meta&#x2019;s since January, and it started pretty well, as I reported back at the time: there&#x2019;s an internal token dashboard that displays the individuals who use the most tokens in order to promote the use of tokens and experimentation with LLMs. At the Windows maker, this leaderboard is interesting:</p><ul><li>Very senior engineers &#x2013; distinguished-level folks &#x2013; are in the top 5 across the whole company, despite the fact that this group generally wrote little code in the past.</li><li>VP-level folks make the top 10 and top 20, despite often being in meetings for most of the day and rarely writing code.</li></ul><p>However, what starts as a metric for performance reviews or promotions can quickly become a target for devs. I talked with a software engineer at the Windows maker who admitted they&#x2019;re full-on &#x201C;tokenmaxxing&#x201D; &#x2013; not to get on the leaderboard, but rather because they don&#x2019;t want to be seen as using too few tokens:</p><blockquote>&#x201C;We have internal dashboards and metrics tracking AI usage, token usage, percentage of code written by AI vs hand-written code.<br><br>I am conscious of not wanting to be seen as &#x201C;uses too little AI,&#x201D; and I&#x2019;m not ashamed to say I need to do tokenmaxxing to do this. Things I do to inflate my token usage metrics:Ask AI questions about the code already in the documentation. The AI pulls up the documentation, processes it, and gives me results 10x slower, but while burning lots of tokens. I could use &#x201C;readthedocs&#x201D; [an internal product], but then my token numbers would be lowerAsk the AI to prototype a feature that I have no intention of working on. Prompt it a few more times, then throw the whole thing awayDefault to always using the agent, even when I know I could do the work by hand much faster. Then watch it fail&#x201D;</blockquote><p>This engineer is relatively new at the company, so is concerned about job security, and is playing this game to avoid being tagged as insufficiently &#x201C;AI-native&#x201D; by burning far more tokens than necessary.</p><h3 id="salesforce-burning-tokens-to-hit-%E2%80%9Cminimum%E2%80%9D-%E2%80%9Cideal%E2%80%9D-targets"><strong>Salesforce: burning tokens to hit &#x201C;minimum&#x201D; &amp; &#x201C;ideal&#x201D; targets</strong></h3><p>Elsewhere, Salesforce has created &#x201C;tokenmaxxing&#x201D; incentives, as well.<strong> </strong>Talking with an engineer there, I learned that the company built two tools that effectively incentivize excessive spending on tokens:</p><ol><li><strong>&#x201C;Minimum&#x201D; incentives with a tracking tool.</strong> There&#x2019;s a Mac widget that shows your own spend, updated every 15 minutes. It also displays minimum expected spend. Last week, the target was $100 on Claude Code, and $70 on Cursor.</li><li><strong>Showing everyone&#x2019;s spend. </strong>A web-based tool to see the token spend of any colleague. It&#x2019;s used to check where team mates&#x2019; usage is at.</li><li><strong>&#x201C;Maximum&#x201D; spend limits that can be exceeded. </strong>Up to a week ago, there was also a <em>maximum</em> monthly limit of $250 for Claude Code and $170 for Cursor. <em>However, this can be exceeded with the simple press of a button if the limit is reached. I&#x2019;ve learned that last week, some engineering organisations at Salesforce had their &#x201C;maximum&#x201D; limit removed in order to &#x201C;remove any friction from the development process.&#x201D;</em></li></ol><p>The message Salesforce sends to staff is clear: &#x201C;use a minimum of $170/month tokens or be flagged.&#x201D; Who wants to get flagged for using too few tokens? The outcome is somewhat wasteful token spend:</p><ul><li><strong>Burning tokens for nothing. </strong>Devs ask Claude or Cursor: &#x201C;build me X,&#x201D; where X is a project or product with nothing to do with their work, and not something they&#x2019;d ever ship. It&#x2019;s just a way to burn tokens</li><li><strong>Calibrating token spend to be above average. </strong>Plenty of devs browse peers&#x2019; token spend to figure out the slightly-above average point, then use the tokens needed to hit that mark</li></ul><h3 id="shopify-an-example-on-how-to-avoid-tokenmaxxing"><strong>Shopify: an example on how to avoid tokenmaxxing</strong></h3><p>The first-ever token leaderboard that I&#x2019;m aware of was built by Shopify in 2025. And it worked well! Last June, the Head of Engineering at Shopify, Farhan Thawar, told me <a href="https://newsletter.pragmaticengineer.com/p/how-ai-is-changing-software-engineering?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">on The Pragmatic Engineer Podcast</a>:</p><blockquote>&#x201C;We have a leaderboard where we actively celebrate the people who use the most tokens because we want to make sure they are [celebrated] if they&#x2019;re doing great work with AI.<br><br>[And for the top people on the leaderboard,] I want to see why they spent say $1,000 a month in credits for Cursor. Maybe that&#x2019;s because they&#x2019;re building something great and they have an agent workforce underneath them!&#x201D;</blockquote><p>I asked Farhan for details on how it&#x2019;s gone since. Here&#x2019;s what he told me:</p><blockquote>&#x201C;We have since renamed the token leaderboard to usage dashboard: for obvious reasons, as we don&#x2019;t want to encourage &#x201C;competing&#x201D; to make it to the top of this board. We have token spend on our internal wiki profile as well as on the usage dashboard.<br><br><strong>We also have circuit breakers to catch &#x201C;runaway agents.&#x201D;</strong> So if personal spend spikes within a day, we can cut off access immediately, and you can renew if the usage spike was deliberate, or if it was a runaway agent. The circuit breaker worked well for us: we&#x2019;ve not only caught runaway agents, but found bugs in our infra this way!&#x201D;</blockquote><p>Shopify&#x2019;s approach seems to have worked for a few reasons:</p><ul><li><strong>The usage dashboard served as a &#x201C;push&#x201D; for devs to use AI tools, early-on. </strong>Last year, devs were mostly experimenting with AI tools because they were not as performant as today. The usage dashboard encouraged developers to try new tools, and highlighted power users.</li><li><strong>Circuit breakers helped.</strong> Cutting off spend when usage spikes helped catch &#x201C;runaway agents.&#x201D;</li><li><strong>High usage is looked at.</strong> Farhan checks-in with top-spending individuals to understand the use cases. Any tokenmaxxing would likely have been spotted at this stage, which would have been a bit embarrassing for the user!</li></ul><p>One more interesting learning Farhan shared with me: it&#x2019;s more interesting to not look at &#x201C;who spent the most in <em>overall</em> token cost?&#x201D; but instead, &#x201C;whose <em>tokens</em> cost the most?&#x201D; Devs who generate tokens that come out as expensive have turned out to do in-depth work that was interesting to learn about!</p><h3 id="tokenmaxxing-great-for-ai-vendors-bad-for-everyone-else"><strong>Tokenmaxxing: great for AI vendors, bad for everyone else</strong></h3><p>I see very few rational reasons why incentivizing tokenmaxxing makes sense for any company. It results in increasing AI spend &#x2013; by a lot! &#x2013; in return for little to no value. Heck, in some cases it actually incentivises slower work &#x2013; as shown by devs using the AI to answer questions when documentation is readily available &#x2013; and encouraging &#x2018;busywork&#x2019; where devs prompt projects that they don&#x2019;t even want to ship. Tokenmaxxing seems to push devs to focus on stuff that makes no difference to a business.</p><p>It feels to me that a good part of the industry is using token count numbers similarly to how the lines-of-code-produced metric was used years ago. There was a time when the number of lines written daily or monthly was an important metric in programmer productivity, until it became clear that it&#x2019;s a terrible thing to focus on. A lines-of-code metric can easily be gamed by writing boilerplate or throwaway code. Also, the best developers are not necessarily those who write the most code; they&#x2019;re the ones who solve hard problems for the business quickly and reliably with &#x2013; or without &#x2013; code!</p><p>Similarly, the number of tokens a dev generates can easily be gamed, and if this metric is measured then devs will indeed game it. But doing so generates a massive accompanying AI bill!</p><p><em>&#x2014;-</em></p><p><em>Read the full issue of </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-tokenmaxxing-as-a-weird?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em>last week&#x2019;s The Pulse</em></a><em>, or check out </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-ai-token-spending-out-of?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em>this week&#x2019;s The Pulse</em></a><em>. This week&#x2019;s issue covers:</em></p><ol><li><strong>New trend: token spend breaks budgets &#x2013; what next? </strong>In the past 2-3 months, spending on AI agents has exploded at many tech companies, and the ramifications of this are starting to dawn on engineering leaders. We&#x2019;ve sourced details from 15 companies, including the different ways they are coping with this realization.</li><li><strong>New trend: more AI vendors can&#x2019;t keep up with demand. </strong>Related to massively increased spending, GitHub Copilot and Anthropic are starting to limit less-profitable individual users, so they can serve business users whose spend has easily 10x&#x2019;d in the last few months. The exception is OpenAI and Codex.</li><li><strong>Morale at Meta hits all-time low? </strong>Business is booming but devs at Meta are furious and worried due to looming layoffs, and an invasive tracking program rolled out to all US employees.</li></ol>]]></content:encoded></item><item><title><![CDATA[The Pulse: is GitHub still best for AI-native development?]]></title><description><![CDATA[Availability has dropped to one nine (~90% – !!), partly due to not being able to handle increased traffic from AI coding agents. There’s also no CEO and an apparent lack of direction.]]></description><link>https://blog.pragmaticengineer.com/the-pulse-is-github-still-best-for-ai-native-development/</link><guid isPermaLink="false">69cfc72da95ab10001e47e0c</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Fri, 03 Apr 2026 15:03:38 GMT</pubDate><content:encoded><![CDATA[<p><em>Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one out of four topics from </em><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-is-github-still-best-for?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em>last week&#x2019;s The Pulse</em></a><em> issue. Full subscribers received the article below eight days ago. If you&#x2019;ve been forwarded this email, you can</em><a href="https://newsletter.pragmaticengineer.com/about?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><em> subscribe here</em></a><em>.</em></p><p>We&#x2019;re used to highly reliable systems which target four-nines of availability (99.99%, meaning about 52 minutes of downtime per year), and for it to be embarrassing to barely hit three nines (around 9 hours of downtime per year.) And yet, in the past month, GitHub&#x2019;s reliability is down to one nine!</p><p>Here&#x2019;s data from the third-party, &#x201C;<a href="https://mrshu.github.io/github-statuses/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">missing GitHub status page</a>&#x201D;, which was built after GitHub stopped updating its own status page due to terrible availability. Recently, things have looked poor:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/04/image.png" class="kg-image" alt loading="lazy" width="1456" height="399" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/04/image.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/04/image.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/04/image.png 1456w" sizes="(min-width: 720px) 720px"><figcaption><i><em class="italic" style="white-space: pre-wrap;">GitHub down at one nine. Source: </em></i><a href="https://mrshu.github.io/github-statuses/?ref=blog.pragmaticengineer.com" target="_blank" rel="noopener noreferrer nofollow"><i><em class="italic" style="white-space: pre-wrap;">The Missing GitHub Status Page</em></i></a></figcaption></figure><p>This means that for every 30 days, GitHub had issues on 3 days, or issues/degradations for 2.5 hours daily (around 10% of the time.)</p><p><strong>GitHub seems unable to keep up with the massive increase in infra load from agents. </strong>One software engineer built a clever website called &#x201C;<a href="https://www.claudescode.dev/?window=90d&amp;ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">Claude&#x2019;s Code</a>&#x201D; that tracks Claude Code bot contributions across GitHub. Growth in the past three months has been enormous:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/04/image-1.png" class="kg-image" alt loading="lazy" width="1456" height="909" srcset="https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w600/2026/04/image-1.png 600w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/size/w1000/2026/04/image-1.png 1000w, https://storage.ghost.io/c/39/f8/39f85cc7-8637-40fc-a57c-f45754453717/content/images/2026/04/image-1.png 1456w" sizes="(min-width: 720px) 720px"><figcaption><i><em class="italic" style="white-space: pre-wrap;">Load from Claude Code has 6x&#x2019;d in 3 months. Source: </em></i><a href="https://www.claudescode.dev/?window=90d&amp;ref=blog.pragmaticengineer.com" target="_blank" rel="noopener noreferrer nofollow"><i><em class="italic" style="white-space: pre-wrap;">Claude&#x2019;s Code</em></i></a></figcaption></figure><h3 id="stream-of-github-outages-from-infra-overload">Stream of GitHub outages from infra overload</h3><p>GitHub&#x2019;s CTO, Vladimir Fedorov, addressed availability issues <a href="https://github.blog/news-insights/company-news/addressing-githubs-recent-availability-issues-2/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">in a blog post</a> and covered three major incidents:</p><ul><li><a href="https://www.githubstatus.com/incidents/xwn6hjps36ty?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">2 February</a>: security policies unintentionally blocked access to virtual machine metadata</li><li><a href="https://www.githubstatus.com/incidents/lcw3tg2f6zsd?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">9 February</a>: a database cluster got overloaded</li><li><a href="https://www.githubstatus.com/incidents/g5gnt5l5hf56?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">5 March</a>: writes failed on a Redis cluster</li></ul><p>Software engineer Lori Hochstein did <a href="https://surfingcomplexity.blog/2026/03/12/quick-thoughts-on-github-ctos-post-on-availability/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">a helpful analysis</a> of these outages and the CTO&#x2019;s response, and has interesting observations:</p><ul><li><strong>Saturation</strong>: the database cluster incident (9 Feb) was a case of the database getting saturated, due to higher-than-expected usage. Databases are harder to scale up than stateless services. GitHub also underestimated how much additional traffic there would be.</li><li><strong>Failover + telemetry gap</strong>: the 2 Feb incident was a combination of an infra issue in one region failing over to a healthy region, and making things worse with a telemetry gap (incorrect security policies were applied in the new regions which blocked access to VM metadata)</li><li><strong>Failover + configuration issue</strong>: the 5 March incident was uncannily similar: after a failover, a configuration issue blocked writes on a Redis cluster</li></ul><p>It is certainly nice to get details from GitHub on these outages. It feels to me that infra strains are causing more infra issues &#x2192; they trigger constraints faster &#x2192; failovers are not as smooth as they should be. Could it be because GitHub keeps changing their existing systems?</p><h3 id="startup-shows-github-how-it%E2%80%99s-done">Startup shows GitHub how it&#x2019;s done</h3><p>While GitHub struggles to keep up with the increase in load from AI agents generating more code and pull requests, a new startup called Pierre Computer claims to have built an &#x201C;AI-native&#x201D; solution for AI agents pushing code, which scales far beyond what GitHub can do. Pierre was founded by <a href="https://www.linkedin.com/in/jacob-thornton-13a6a5162/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">Jacob Thornton</a>: formerly an engineer at Coinbase, Medium, and Twitter, and also the creator of the once-very popular <a href="https://getbootstrap.com/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">Bootstrap</a> CSS library.</p><p>Here&#x2019;s what Pierre supports, which GitHub does not:</p><blockquote>&#x201C;In October [2025], Github shared they were averaging ~230 new repos per minute.<br><br>Last week we [at Pierre Computer] hit a sustained peak of &gt; 15,000 repos per minute for 3 hours.<br><br>And in the last 30 days customers have created &gt; 9M repos&#x201D;</blockquote><p>These are incredible numbers &#x2013; if also self-reported &#x2013; and something that GitHub clearly cannot get close to, at least not today! There are few details about customers, while the product &#x2013; called <a href="https://code.storage/?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">Code.storage</a> &#x2013; seems to be in closed beta.</p><p>Still, this is the type of &#x201C;git for AI agents&#x201D; that GitHub has failed to build, and the type of infrastructure it needs badly.</p><h3 id="has-github-lost-focus-and-purpose">Has GitHub lost focus and purpose?</h3><p>GitHub&#x2019;s reliability issues are acute enough that, if it keeps up, teams will start giving alternatives like small startups such as Pierre a try, or perhaps even consider self-hosting Git. But how did the largest Git host in the world neglect its customers, and fail to prepare its infra for an increase in code commits and pull requests?</p><p>Mitchell Hashimoto, founder of Ghostty, and a heavy user of GitHub himself, had advice on what he would do if he was in charge of GitHub, after growing frustrated with the state of its core offering. He <a href="https://x.com/mitchellh/status/2036866220449030168?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">writes</a> (emphasis mine)</p><blockquote>&#x201C;Here&#x2019;s what I&#x2019;d do if I was in charge of GitHub, in order:<br><br><strong>1. Establish a North Star plan around being critical infrastructure for agentic code</strong> lifecycles and determine a set of ways to measure that.<br><br><strong>2. Fire everyone who works on or advocates for Copilot and shut it down.</strong> It&#x2019;s not about the people, I&#x2019;m sure there&#x2019;s many talented people; you&#x2019;re just working at the wrong company.<br><br><strong>3. Buy Pierre and launch agentic repo hosting as the first agentic product.</strong> Repos would be separate from the legacy web product to start, since they&#x2019;re likely burdened with legacy cross product interactions.<br><br><strong>4. Re-evaluate all product lines and initiatives against the new North Star. </strong>I suspect 50% get cut (to make room for different ones).<br><br>The big idea is all agentic interactions should critically rely on GitHub APIs. Code review should be agentic but the labs should be building that into GH (not bolted in through GHA like today, real first class platform primitives). GH should absolutely launch an agent chat primitive, agent mailboxes are obviously good. GH should be a platform and not an agent itself.<br><br>This is going to be very obviously lacking since I only have external ideas to work off of and have no idea how GitHub internals are working, what their KPIs are or what North Star they define, etc.<br><br>But, with imperfect information, this is what I&#x2019;d do.&#x201D;</blockquote><p>My sense is that GitHub has three concurrent problems:</p><ul><li><strong>GitHub and Copilot are entangled with Microsoft&#x2019;s internal politics. </strong>GitHub&#x2019;s Copilot in 2021 was the first massively successful &#x201C;AI product.&#x201D; Microsoft took the &#x201C;Copilot&#x201D; brand and used it across all of their product lines, creating low-quality AI integrations. Simultaneously, internal Microsoft orgs like Azure and Microsoft AI were trying to get their hands on GitHub, which is one of the most positive developer brands at Microsoft.</li><li><strong>GitHub has no leader, seemingly by design. </strong>GitHub&#x2019;s last CEO was Thomas Dohmke, who stepped down voluntarily, and Microsoft never backfilled the CEO role; instead carrying out a reorg to make GitHub part of Microsoft&#x2019;s AI group and stripping its independence. It seems the &#x201C;Microsoft AI&#x201D; side won that battle.</li><li><strong>GitHub has no focus, and is stuck chasing Copilot as a revenue source. </strong>GitHub has no CEO and is caught up in internal politics, so, what can GitHub teams do? The safest bet is to increase revenue and the best way to do that is by investing more into GitHub Copilot, and ignoring long-term issues like reliability.</li></ul><p>I agree with Mitchell: GitHub has no &#x201C;North Star&#x201D; and we see a large org being dysfunctional. That lack of vision &#x2013; and CEO &#x2013; is hitting hard:</p><ul><li>GitHub Copilot went from the most-used AI agent in 2021, to be overtaken by Claude Code, and is soon to be overtaken by Cursor.</li><li>As a platform, GitHub has no vision for how to evolve to support AI agents. Sure, GitHub has an MCP server, but it has no &#x201C;AI-native git platform&#x201D; that can handle the massive load AI agents generate.</li><li>GitHub keeps shipping small features and improvements without direction. For example, in October 2025, they <a href="https://x.com/jaredpalmer/status/1980619222918262842?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">started to work on</a> stacked diffs. However, when it ships, the stacked diffs workflow might be mostly obsolete &#x2013; at least with AI agents!</li></ul><p>It&#x2019;s easy to win a market when you do one thing better than anyone else in the world. Right now, GitHub is doing too many things and doing a subpar job with Copilot, its platform, and AI infra.</p><hr><p>Read the full issue of <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-is-github-still-best-for?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">last week&#x2019;s The Pulse</a>, or check out <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-industry-leaders-return?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow">this week&#x2019;s The Pulse</a>.</p><p>Catch up with recent The Pragmatic Engineer issues:</p><ul><li><a href="https://newsletter.pragmaticengineer.com/p/scaling-uber-with-thuan-pham-ubers?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><strong>Scaling Uber with Thuan Pham</strong></a> (Uber&#x2019;s first CTO &#x2014; podcast). We went into topics like scaling Uber from constant outages to global infrastructure, the shift to microservices and platform teams, and how AI is reshaping engineering.</li><li><a href="https://newsletter.pragmaticengineer.com/p/building-whatsapp-with-jean-lee?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><strong>Building WhatsApp with Jean Lee</strong></a> (podcast): Jean Lee, engineer #19 at WhatsApp, on scaling the app with a tiny team, the Facebook acquisition, and what it reveals about the future of engineering.</li><li><a href="https://newsletter.pragmaticengineer.com/p/the-pulse-what-will-the-staff-engineer?ref=blog.pragmaticengineer.com" rel="noopener noreferrer nofollow"><strong>What will the Staff Engineer role look like in 2027 and beyond</strong></a><strong>?</strong> What happens to the Staff engineer role when agents write more code? Actually, they could be more in demand than ever!</li></ul>]]></content:encoded></item></channel></rss>