<?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:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Pragmatic Builder]]></title><description><![CDATA[Swap hype for practical lessons on AI and software architecture to help you build products that people will actually use.]]></description><link>https://pragmaticbuilder.io</link><image><url>https://substackcdn.com/image/fetch/$s_!I7yn!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1745d4a-489c-473c-b8b3-ef4918047a82_576x576.png</url><title>Pragmatic Builder</title><link>https://pragmaticbuilder.io</link></image><generator>Substack</generator><lastBuildDate>Sat, 01 Aug 2026 12:00:29 GMT</lastBuildDate><atom:link href="https://pragmaticbuilder.io/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Milos Solujic]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[pragmaticbuilder@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[pragmaticbuilder@substack.com]]></itunes:email><itunes:name><![CDATA[Milos Solujic]]></itunes:name></itunes:owner><itunes:author><![CDATA[Milos Solujic]]></itunes:author><googleplay:owner><![CDATA[pragmaticbuilder@substack.com]]></googleplay:owner><googleplay:email><![CDATA[pragmaticbuilder@substack.com]]></googleplay:email><googleplay:author><![CDATA[Milos Solujic]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Faster Horses]]></title><description><![CDATA[Most AI programs make you efficient at what you already do. Capability is the game with no ceiling, and it&#8217;s played somewhere your dashboard can&#8217;t see.]]></description><link>https://pragmaticbuilder.io/p/faster-horses</link><guid isPermaLink="false">https://pragmaticbuilder.io/p/faster-horses</guid><dc:creator><![CDATA[Milos Solujic]]></dc:creator><pubDate>Mon, 13 Jul 2026 18:28:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EaIG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbcf886-bdbc-4986-be39-9347a275240b_1535x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A few weeks ago I sat with a team responsible for maintaining and modernizing a core monolith, the kind of system a fintech business actually runs on. They had a mandate from above: make a meaningful impact on product delivery with modern agentic workflows.</p><p>So they built agentic skills. Good ones. Skills that automate creating features on the existing stack: scaffolding, wiring, testing, the whole delivery pipeline for the monolith as it stands today. And it worked. Features that took days now take hours. They were, understandably, proud of it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://pragmaticbuilder.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Pragmatic Builder! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><strong>That was the problem</strong></p><p>They had spent their AI budget making horses faster in the age of electric cars. Every automated feature was a feature built the old way, on the old architecture, deepening the organization&#8217;s commitment to the thing that needs to change. The agents weren&#8217;t modernizing anything. They were pouring concrete around the legacy.</p><p>My proposal in that room: keep the feature-automation skills, but invest in a parallel track of agentic skills that expose the monolith&#8217;s functionality as APIs. Not because APIs are fashionable, but because APIs are what future agents, yours and your partners&#8217;, will build on. One track harvests the current stack. The other makes the stack harvestable.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EaIG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbcf886-bdbc-4986-be39-9347a275240b_1535x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EaIG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbcf886-bdbc-4986-be39-9347a275240b_1535x1024.png 424w, https://substackcdn.com/image/fetch/$s_!EaIG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbcf886-bdbc-4986-be39-9347a275240b_1535x1024.png 848w, https://substackcdn.com/image/fetch/$s_!EaIG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbcf886-bdbc-4986-be39-9347a275240b_1535x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!EaIG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbcf886-bdbc-4986-be39-9347a275240b_1535x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EaIG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbcf886-bdbc-4986-be39-9347a275240b_1535x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dcbcf886-bdbc-4986-be39-9347a275240b_1535x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1450468,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://pragmaticbuilder.io/i/206892038?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbcf886-bdbc-4986-be39-9347a275240b_1535x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EaIG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbcf886-bdbc-4986-be39-9347a275240b_1535x1024.png 424w, https://substackcdn.com/image/fetch/$s_!EaIG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbcf886-bdbc-4986-be39-9347a275240b_1535x1024.png 848w, https://substackcdn.com/image/fetch/$s_!EaIG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbcf886-bdbc-4986-be39-9347a275240b_1535x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!EaIG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcbcf886-bdbc-4986-be39-9347a275240b_1535x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I keep seeing this pattern, so it needs a name. <strong>Faster horses</strong>: using AI to accelerate what you already do, on the structure you already have, and calling it transformation.</p><h2>Efficiency has a ceiling. Capability doesn&#8217;t.</h2><p>The instinct behind faster horses is understandable, because it&#8217;s the instinct we&#8217;ve all been sold: use AI to be more efficient. But efficiency means doing what you already do, quicker. There&#8217;s a ceiling on that, and it&#8217;s low. You can only compress your current work so far, and everyone else is compressing theirs too. Efficiency gains are table stakes with a shelf life.</p><p>Capability is the other game. Not &#8220;how fast can I do my job&#8221; but &#8220;what can I do now that I couldn&#8217;t do before.&#8221; That has no ceiling, and it compounds.</p><p>Helen Edwards and the team at the <a href="https://www.artificialityinstitute.org/about">Artificiality Institute</a> have spent years researching what makes human work irreducible in the age of AI, asking not &#8220;will AI take our jobs&#8221; but &#8220;what is AI doing to us.&#8221; One of their findings deserves more attention than it gets: some of the most defensible human capability is <strong>physically situated</strong>. It lives in bodies, rooms, warehouses, and incident bridges. It never made it into any dataset, which means no model was ever trained on it.</p><p><strong>The takeaway: if it was never digitized, AI can&#8217;t replace it. But AI can now help you act on it.</strong></p><h2>Intuition doesn&#8217;t compress into a dashboard</h2><p>The canonical evidence is thirty years old and still underused. Gary Klein&#8217;s research on fireground commanders, <a href="https://journals.sagepub.com/doi/10.1518/155534310X12844000801203">26 veterans with an average of 23 years of experience, probed across 156 real decisions</a> and found that in fewer than 12% of decision points did commanders compare options at all. They recognized situations through accumulated exposure to patterns and acted. The famous case: a lieutenant pulls his crew out of a burning building seconds before the floor collapses. He couldn&#8217;t articulate why. Nothing in any data feed told him. Years of being there did.</p><p>Klein called it recognition-primed decision-making. I call it the asset your AI program is ignoring.</p><p>Here&#8217;s the loop that turns it into capability, in three moves.</p><p><strong>Situate.</strong> Go where your data is born. If you run supply chains from a dashboard, spend a day in the warehouse and stay until you find the thing the dashboard doesn&#8217;t know: the workaround everyone uses, the rule nobody wrote down.</p><p><strong>Prototype.</strong> This is where AI changes the equation. Describe the problem to a frontier model and build a rough tool the same week. It doesn&#8217;t have to be good; it has to be real enough that the people on the floor can tell you everything wrong with it. That feedback loop, where they poke holes and you fix and repeat, used to require a funded project and a quarter. Now it requires an afternoon and a coding agent.</p><p><strong>Own.</strong> Take the validated fix up the chain. Not softened into options. &#8220;Here&#8217;s what I found, here&#8217;s what we should do, here&#8217;s why,&#8221; with your name on it. Being there becomes owning the decision.</p><p><strong>The takeaway: AI can&#8217;t give you intuition. It can collapse the time between having it and acting on it, from a quarter to a day.</strong></p><h2>Three places the loop pays off in software delivery</h2><p>I promised concrete examples. Here are three patterns with one vivid case each. You&#8217;ll recognize where the same shape appears in your own delivery organization.</p><p><strong>Dashboard blindness.</strong> Your observability stack tells you what it was configured to measure. An engineering leader I know sat in on a week of on-call shifts, not reading postmortems but sitting in the incident channel live, and discovered that half the &#8220;15-minute resolutions&#8221; were actually one senior engineer&#8217;s private runbook of undocumented tribal knowledge. The metric looked healthy; the bus factor was one. The prototype: an agent that drafted runbook entries from incident transcripts, put in front of the on-call rotation for demolition and iteration. The same shape shows up in CI/CD metrics that hide flaky-test roulette, and in DORA numbers that look great because risky changes are quietly batched.</p><p><strong>Undocumented workarounds.</strong> Every delivery process has a shadow version that actually ships the software. Watch a release manager for one afternoon, and you&#8217;ll find the spreadsheet, the Slack DM chain, the &#8220;we always ping Marta first&#8221; step that exists in no process doc. These workarounds are compressed knowledge about where the official process fails. Prototype the workaround into a tool, together with the people who invented it, and you&#8217;ve digitized capability instead of paving over it. Support escalation paths and security exception handling hide the same gold.</p><p><strong>Decision distance.</strong> Product managers who haven&#8217;t watched a real user session in a quarter are running on secondhand reality. One PM I worked with spent two days in actual customer onboarding calls and caught a misunderstanding that no analytics funnel could express: users weren&#8217;t dropping off, they were succeeding at the wrong task. A prototype fix was in front of those same customers within the week. The roadmap debate that had run for a month ended in one demo.</p><p><strong>The takeaway: the highest-leverage AI prototypes come from insights that were never in your data, which means someone has to go get them in person.</strong></p><h2>The executive version: parallel tracks or you&#8217;re decorating the legacy</h2><p>For leaders whose IT capability is the business, in banking, logistics, retail, or healthcare operations, the fintech story from the top is the whole lesson in miniature.</p><p>Most enterprise &#8220;AI transformation&#8221; programs are efficiency programs wearing capability costumes. They automate existing workflows on existing systems and report the hours saved. The numbers are real. They are also faster horses: every automated workflow deepens the organization&#8217;s dependence on the architecture underneath it, and the architecture is precisely what limits what you can become.</p><p>The move that separates capability from decoration is running two tracks in parallel.</p><p>The first track is agentic automation of current workflows on the current stack. This funds itself and buys credibility. Do it, measure it, but don&#8217;t confuse it with transformation.</p><p>The second track is agentic work that exposes core functionality as APIs and well-described services. This is what lets future agents, your own, your partners&#8217;, your customers&#8217;, compose new things on top of your systems. In an agentic economy, the organizations that matter are the ones whose capabilities are addressable. A monolith with no API surface is invisible to that economy, no matter how fast its features ship.</p><p>And apply the situatedness test to your own program: if your AI strategy was written entirely from vendor decks and dashboards, it inherited their blind spots. The five most valuable days an executive sponsor can spend on an AI program are in the warehouse, the branch, the ops floor, finding what the systems don&#8217;t know before deciding what the agents should do.</p><p><strong>The takeaway: the first track makes the horses faster. The second builds the road for electric cars. Fund both, and never report the first as the second.</strong></p><h2>The model math, July 2026, and why you&#8217;ll redo it in October</h2><p>Concreteness cuts both ways: these numbers will age, and that aging is the final lesson.</p><p>As of this writing, the frontier tier for serious agentic coding, the prototype step of the loop, is led by models like Claude Opus 4.8 (around $5 input / $25 output per million tokens, 88.6% on SWE-bench Verified) and GPT-5.5 ($5/$30, 88.7%), with Gemini 3.1 Pro ($2/$12) as the value play in the frontier tier. This is where you want to be when the problem is messy: multi-file refactors, reasoning over half-structured field notes from your warehouse day, turning a fuzzy observation into a working prototype. Frontier models are expensive per token and cheap per discovery.</p><p>The open-weight tier has quietly crossed a threshold. Several open-weight and open-adjacent models now clear 80% on SWE-bench Verified at $0.60 to $2.40 per million output tokens, and DeepSeek&#8217;s V4 family sits as low as $0.14/$0.28. On an identical coding-agent workload, the spread between a frontier model and a budget open-weight one can reach roughly 48x. And if you sustain more than about 500K tokens per day, self-hosting open weights starts beating hosted APIs on cost, with the sovereignty and data-residency benefits that regulated industries care about anyway.</p><p>The smart pattern is not &#8220;pick the cheap one&#8221; or &#8220;pick the best one.&#8221; It&#8217;s this:</p><p><strong>Frontier to discover, open-weight to operationalize.</strong> Use frontier models where ambiguity is high, and the task is novel: the prototyping loop, the gnarly refactor, the first version of anything. Once the insight is validated and the task becomes routine (classification, extraction, the internal tool that now runs every day), route it to an open-weight model at a fraction of the cost. Add caching (frontier providers bill cached reads at roughly 10% of input rates, and DeepSeek&#8217;s cache hits are near-free) and a simple router that escalates only the hard cases, and teams routinely cut inference bills by 60 to 80% without a quality cliff.</p><p>Then put a recurring event in your calendar: <strong>re-price per task, per model, every quarter.</strong> Not per month of spend. Per task. The unit that matters is &#8220;what does one validated prototype cost&#8221; and &#8220;what does one day of the routine workload cost.&#8221; Both numbers have moved by multiples in the last twelve months and will move again. A model choice made in January and never revisited is, by July, just another faster horse.</p><p><em>Prices and benchmarks checked July 2026 against published provider pricing and SWE-bench Verified leaderboards.</em></p><p><strong>The takeaway: the specific numbers expire; the method doesn&#8217;t. Frontier to discover, open-weight to operationalize, re-price quarterly.</strong></p><h2>What survives</h2><p>Twenty-plus years in this industry has taught me that tools change faster than judgment. The builders who survive each wave aren&#8217;t the ones who adopted the tools fastest. They&#8217;re the ones whose judgment about what to build was grounded in something the tools couldn&#8217;t see.</p><p>That&#8217;s what the capability loop protects. Intuition from being there. Prototypes fast enough to test it. Ownership loud enough to matter. AI doesn&#8217;t replace any of the three. It removes the excuse for skipping the middle one.</p><p>So, a challenge for this week: spend half a day where your dashboard&#8217;s data is born. The warehouse, the incident channel, the customer call. Come back with <strong>one</strong> thing the dashboard didn&#8217;t know. Then build the ugliest possible prototype and put it in front of the people who told you.</p><p><em>Don&#8217;t breed a faster horse. Go find out what the road actually needs.</em></p><div><hr></div><p><em>With thanks to Helen Edwards and the Artificiality Institute, whose research on irreducible work and physical situatedness sparked this piece, and whose question &#8220;what is AI doing to us?&#8221; is the right one to keep asking.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://pragmaticbuilder.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Pragmatic Builder! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The machine can’t be held accountable. You still can.]]></title><description><![CDATA[On cognitive sovereignty in the age of AI-assisted development]]></description><link>https://pragmaticbuilder.io/p/the-machine-cant-be-held-accountable</link><guid isPermaLink="false">https://pragmaticbuilder.io/p/the-machine-cant-be-held-accountable</guid><dc:creator><![CDATA[Milos Solujic]]></dc:creator><pubDate>Fri, 12 Jun 2026 13:30:46 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/4cbd48fd-da5d-48c3-b828-372418e388f7_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Why I believe this story is true </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q-o2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aa912c1-5cfe-4fca-ba8e-2c4c7d64f0a4_1457x1800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q-o2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aa912c1-5cfe-4fca-ba8e-2c4c7d64f0a4_1457x1800.png 424w, https://substackcdn.com/image/fetch/$s_!Q-o2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aa912c1-5cfe-4fca-ba8e-2c4c7d64f0a4_1457x1800.png 848w, https://substackcdn.com/image/fetch/$s_!Q-o2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aa912c1-5cfe-4fca-ba8e-2c4c7d64f0a4_1457x1800.png 1272w, https://substackcdn.com/image/fetch/$s_!Q-o2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aa912c1-5cfe-4fca-ba8e-2c4c7d64f0a4_1457x1800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q-o2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aa912c1-5cfe-4fca-ba8e-2c4c7d64f0a4_1457x1800.png" width="1456" height="1799" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0aa912c1-5cfe-4fca-ba8e-2c4c7d64f0a4_1457x1800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1799,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1717105,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://pragmaticbuilder.substack.com/i/201742431?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aa912c1-5cfe-4fca-ba8e-2c4c7d64f0a4_1457x1800.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Q-o2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aa912c1-5cfe-4fca-ba8e-2c4c7d64f0a4_1457x1800.png 424w, https://substackcdn.com/image/fetch/$s_!Q-o2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aa912c1-5cfe-4fca-ba8e-2c4c7d64f0a4_1457x1800.png 848w, https://substackcdn.com/image/fetch/$s_!Q-o2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aa912c1-5cfe-4fca-ba8e-2c4c7d64f0a4_1457x1800.png 1272w, https://substackcdn.com/image/fetch/$s_!Q-o2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0aa912c1-5cfe-4fca-ba8e-2c4c7d64f0a4_1457x1800.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And there are most likely many more like this in the wild. </p><p>This story is worth sitting with, because it&#8217;s not a failure of AI tooling. The tools worked exactly as designed. It&#8217;s a failure of cognitive posture, and it&#8217;s becoming the dominant failure mode of the current moment.</p><p>In the past year, I&#8217;ve built two serious products using Codex, Claude Code, and Cursor. And I can attest that the effort to keep things in check increases significantly when LOC exceeds 100K. Just some of that effort could be outsourced to more powerful models, such as Claude Fable 5, at a cost of (b)millions of tokens, but even that will not guarantee that it is doing the right thing for the project long term.<br>Let us step back for a moment and observe where we are and what to do about it all.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://pragmaticbuilder.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Pragmatic Builder! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div><hr></div><h2>Acceleration and its asterisk</h2><p>The numbers on AI&#8217;s impact on engineering throughput are real. The 2026 AI Engineering Report from Faros AI,  based on two years of telemetry from 22,000 developers across 4,000 teams, found epics completed per developer up 66%, task throughput up 33.7%, and PR merge rate up 16.2%. More features shipped, more initiatives completed, faster cycles. Engineering leaders are right to want more of this.</p><p>But the same dataset carries a different set of numbers that rarely make the headline slide.</p><p>Code churn, the ratio of lines deleted to lines added, is up <strong>861%</strong> under high AI adoption. The probability of a production incident per code change has risen <strong>242.7%</strong>. Bugs per developer are up 54%. And 31.3% more code is merging into production with no review at all.</p><p>The report&#8217;s authors named this &#8220;the Acceleration Whiplash&#8221;: AI has flooded a system built around human-paced development with output it was never designed to absorb. Throughput is up. So are the hidden costs accumulating at every downstream stage.</p><p>Kent Beck, whose fingerprints are on more software development methodologies than almost anyone alive, put the current moment plainly: <em>&#8220;When anyone can build anything, knowing what&#8217;s worth building becomes the skill.&#8221;</em> The 2026 Thoughtworks Deer Valley gathering, attended by Beck, Martin Fowler, and roughly 50 senior engineering leaders, framed the same problem differently: cognitive debt is the new technical debt. When AI generates code nobody fully understands, you accumulate cognitive debt. And it compounds exactly like technical debt.</p><p>&#8220;Velocity without understanding is not sustainable.&#8221;</p><div><hr></div><h2>What you&#8217;re actually outsourcing</h2><p>There is a clarifying distinction that gets lost in the AI productivity conversation: the difference between <em>task execution</em> and <em>reasoning</em>.</p><p>LLMs are extraordinarily good at task execution given sufficient context. Feed them your conventions, your domain model, your existing patterns, a clear specification, and they will generate code faster than any human team. This is genuinely valuable. This is the part worth accelerating.</p><p>Reasoning is different. Reasoning is: <em>why does this component exist? What problem does this architecture solve, and what problems does it create? What happens to this system under load six months from now? Who is responsible when it fails?</em></p><p>LLMs do not reason in this sense. They pattern-match against an enormous corpus and produce plausible next tokens. They have no stake in the outcome. They cannot be paged at 2am. They will not be in the incident post-mortem. They cannot be responsible for anything, which means, if you&#8217;ve delegated the reasoning, <em>you&#8217;ve made yourself responsible for decisions you didn&#8217;t make and don&#8217;t fully understand</em>.</p><p>This is not a critique of the tools. It&#8217;s a structural fact about what they are.</p><p>The Reddit developer&#8217;s codebase wasn&#8217;t broken. It was a liability they didn&#8217;t know they&#8217;d taken on.</p><div><hr></div><h2>The spectrum of exposure</h2><p>The stakes are not uniform across all use cases. A back-office utility processing internal data has a different risk profile than a B2B SaaS product with contractual SLAs. A solo side project has different exposure than a system handling financial transactions. The appropriate response to AI-assisted development scales accordingly.</p><p><strong>If you&#8217;re building with a larger codebase, multiple domains, or multiple contributors:</strong></p><p>Start with documentation, not of the code, but of the reasoning behind it. Your business rules. Regulatory constraints. Architectural principles. Domain boundaries. Not to satisfy a compliance checkbox, but because this is the context that separates purposeful generation from confident hallucination. The better you can articulate <em>why</em> your system is structured the way it is, the more your AI tooling behaves as an accelerator of your intent rather than a substitution for it. The model doesn&#8217;t know that you chose an event-sourced architecture for auditability reasons, or that a particular domain boundary exists because of a regulatory separation requirement. If you don&#8217;t tell it, it will invent something coherent that may contradict everything you&#8217;ve built.</p><p><strong>On security and performance:</strong></p><p>These are the areas where the accountability gap is sharpest. AI-generated code looks syntactically correct. It may pass your tests. It will not announce its own vulnerabilities, and it will not flag the n+1 query problem lurking in the generated data layer. The Opsera 2026 AI Coding Impact Benchmark (250,000+ developers) found senior engineers realise nearly five times the productivity gains of junior engineers from AI tooling, precisely because senior engineers apply judgment to the output. They know what to look for. They know what questions to ask. The tooling amplifies expertise; it doesn&#8217;t substitute for it.</p><p><strong>On review and ownership:</strong></p><p>The 31.3% of code merging without review isn&#8217;t a workflow problem. It&#8217;s a symptom of a posture problem, the implicit assumption that AI-generated code is somehow more trustworthy than human-written code, or that the velocity justifies skipping the check. It isn&#8217;t, and it doesn&#8217;t. Review isn&#8217;t about trust. It&#8217;s about comprehension. If you can&#8217;t explain what the code does and why it&#8217;s correct, you don&#8217;t own it.</p><div><hr></div><h2>Cognitive sovereignty is a practice, not a setting</h2><p>The framing of &#8220;cognitive sovereignty&#8221; is not a call to write everything by hand or reject the tools. The tools are genuinely useful. Claude Code, Copilot, Gemini CLI, used well, they compound your capabilities. The question is whether you&#8217;re using them as amplifiers of your own reasoning, or as replacements for it.</p><p>The test is simple: can you explain every significant decision in your codebase? Not line by line, but at the level of: why this architecture, why this pattern, why this boundary? If there are large regions where the honest answer is &#8220;the AI generated it and it seemed fine,&#8221; you have cognitive debt. It may not surface immediately. It will surface.</p><p>The developer who deleted 70% of their project didn&#8217;t learn that AI tools are bad. They learned that outsourced reasoning has a bill that eventually arrives. Their two-week rewrite produced a codebase half the size, which they understood completely.</p><p>That&#8217;s not a cautionary tale about AI. It&#8217;s a story about what ownership actually costs, and what it&#8217;s worth.</p><div><hr></div><h2>What serious teams actually do differently</h2><p>The Faros data makes one point starkly: there is no correlation, at the organisational level, between AI adoption and performance outcomes. High-AI teams can finish at the top or bottom of the distribution. What separates them is not tool selection. It&#8217;s taste, discipline, and ownership. Teams with strong foundations see AI compound their advantage. Teams without strong foundations see AI compound their dysfunction.</p><p>A few concrete practices that distinguish the former:</p><p><strong>Specs before prompts.</strong> The quality of AI output is bounded by the quality of the specification fed to it. A vague prompt produces confident vagueness. Writing a good spec &#8212; stating what the component must do, what it must not do, what invariants it must maintain  forces the reasoning that turns AI output from plausible to purposeful.</p><p><strong>Tests as a verification layer, not an afterthought.</strong> Kent Beck&#8217;s argument for TDD in the AI era is pragmatic: unit tests are the most reliable way to prevent AI from introducing regressions. When the model generates code, the test suite is the closest thing you have to a specification check. This isn&#8217;t new advice. It&#8217;s newly urgent.</p><p><strong>Architecture Decision Records before architecture changes.</strong> If you can&#8217;t write a three-paragraph ADR explaining why you&#8217;re making a structural change, you haven&#8217;t done the reasoning yet. Let the model write the first draft if you want,  but the reasoning has to be yours before the change merges.</p><p><strong>Don&#8217;t cut the senior engineers.</strong> The Faros report is explicit on this point. The code review bottleneck median time in review is up 441.5% under high AI adoption is not a sign that review is unnecessary. It&#8217;s a sign that the humans absorbing the quality gap from AI-generated code are the most experienced people on the team. Cutting them to realise the productivity gains from AI adoption is exactly the wrong response.</p><div><hr></div><p>The tools are not the problem. Cognitive surrender is the problem. A machine can accelerate your work. It cannot be responsible for it. That responsibility still lives with you, which means the understanding has to live with you, too.</p><p><strong>Accelerate. But stay behind the wheel.<br><br></strong>Do you have some practices, advice, or tools that work for you to help with this problem? Please share in comments or reach out to me.</p><div><hr></div><p><em>Sources: Faros AI Engineering Report 2026 (faros.ai/research/ai-acceleration-whiplash) &#183; Opsera 2026 AI Coding Impact Benchmark &#183; Thoughtworks Deer Valley Retreat, February 2026 &#183; r/ChatGPT, u/Ambitious-Garbage-73<br>Kent Beck Post: https://www.linkedin.com/feed/update/urn:li:activity:7471011017670512640/<br></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://pragmaticbuilder.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Pragmatic Builder! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[10x Output Without the 10x Cognitive Debt]]></title><description><![CDATA[The AI-Native Framework Every Pragmatic Builder Needs]]></description><link>https://pragmaticbuilder.io/p/10x-output-without-the-10x-cognitive</link><guid isPermaLink="false">https://pragmaticbuilder.io/p/10x-output-without-the-10x-cognitive</guid><dc:creator><![CDATA[Milos Solujic]]></dc:creator><pubDate>Tue, 26 May 2026 12:57:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rhoR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F229198ea-62cc-4706-a0f2-b7f8124d0741_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p>The software industry is obsessed with top-line numbers right now. We hear things like &#8220;3/4 of all code at Google is now written by AI,&#8221; and everyone immediately jumps to a flawed conclusion: <em>Software engineering is becoming a pure game of prompting.</em></p><p>That is a dangerous illusion. If you treat AI like a magical slot machine where you just &#8220;vibe-code&#8221; your way to production, you aren&#8217;t accelerating your throughput&#8212;you are just compounding your cognitive debt at an unprecedented velocity.<br></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rhoR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F229198ea-62cc-4706-a0f2-b7f8124d0741_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rhoR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F229198ea-62cc-4706-a0f2-b7f8124d0741_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!rhoR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F229198ea-62cc-4706-a0f2-b7f8124d0741_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!rhoR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F229198ea-62cc-4706-a0f2-b7f8124d0741_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!rhoR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F229198ea-62cc-4706-a0f2-b7f8124d0741_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rhoR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F229198ea-62cc-4706-a0f2-b7f8124d0741_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/229198ea-62cc-4706-a0f2-b7f8124d0741_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1457925,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://pragmaticbuilder.substack.com/i/199317505?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F229198ea-62cc-4706-a0f2-b7f8124d0741_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rhoR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F229198ea-62cc-4706-a0f2-b7f8124d0741_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!rhoR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F229198ea-62cc-4706-a0f2-b7f8124d0741_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!rhoR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F229198ea-62cc-4706-a0f2-b7f8124d0741_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!rhoR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F229198ea-62cc-4706-a0f2-b7f8124d0741_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><br></p><p>As a pragmatic builder, my focus has always been on systems that actually work, scale, and survive in production. And after digesting recent internal data out of Google&#8217;s Developer Intelligence team, a fundamental truth has been validated: <strong>AI doesn&#8217;t erase the need for deep engineering; it aggressively penalizes the lack of it.</strong></p><p>To survive and thrive as builders in this AI-native era, we have to evolve our roles. We aren&#8217;t code-monkeys, nor have we ever been that. We are builders, system architects, orchestrators, and value translators. We need to become <strong>T-Shaped Builders 2.0</strong>.</p><h3>The Paradox of Vibe Coding</h3><p>Google&#8217;s Dora team discovered a massive &#8220;productivity paradox.&#8221; While individual developers feel faster using AI extensions, team-level delivery can actually <em>slow down</em>. Why? Because writing unverified, context-deaf code into a shared repository creates massive evaluation bottlenecks and integration chaos.</p><p>AI is both a mirror and an amplifier. If your engineering practices, system designs, and team cultures are structured, AI magnifies your strength. If your infrastructure is fragile, data is siloed, and processes are broken, AI will just help you build catastrophic technical debt 10 times faster. </p><p>So how do we fix it? We focus on the system, not just the code.</p><pre><code><code>       The AI-Native T-Shaped Developer Framework
  &#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
  &#9474;         AI ENGAGEMENT &amp; ORCHESTRATION            &#9474; &#9668;&#9472;&#9472; (New Core Horizontal Layer)
  &#9500;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9508;
  &#9474; ADJACENT ENGINEERING   &#9474; ADJACENT NON-ENGINEERING&#9474; &#9668;&#9472;&#9472; (Extended Wings: Context)
  &#9474; (Infra, Sec, Ops)      &#9474; (Business, Product, UX) &#9474;
  &#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9524;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
              &#9474;  DEEP DOMAIN &amp; CORE ENGINEERING      &#9474; &#9668;&#9472;&#9472; (The Stem: Precision &amp; Verification)
              &#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
</code></code></pre><h3>1. The Core Stem: Precision Engineering Over Intellectual Passivity</h3><p>The horizontal bar of a traditional T-shaped engineer is expanding, but the stem&#8212;the deep, specialized engineering knowledge&#8212;has never been more critical.</p><p>When code is generated instantly, <strong>verification becomes your ultimate bottleneck.</strong> If you accept machine output wholesales because it &#8220;sounds confident,&#8221; you are practicing intellectual passivity. Pragmatic builders delegate <em>tasks</em>, never <em>judgment</em>.</p><p><strong>How to stay sharp:</strong></p><ul><li><p><strong>Reimplementation loops:</strong> Don&#8217;t just accept the first draft. Force the AI to tear it down and rebuild it differently. Ask it to explain why it made alternate trade-offs.</p></li><li><p><strong>Trace walkthroughs:</strong> Spend time walking through agent decision traces or &#8220;alien code&#8221; (code you didn&#8217;t write) to keep your mental model of the system intact.</p></li></ul><h3>2. Shifting Left on Intent (Spec-Driven Development)</h3><p>Traditionally, &#8220;shifting left&#8221; meant moving security or testing to an earlier stage in the pipeline. Today, shifting left means <strong>capturing structured intent.</strong></p><p>The fundamental source of truth is moving away from the code itself and toward upfront specification files. If you let an agent workforce build without rigid specifications, you build a prototype nobody understands.</p><ul><li><p><strong>The Spec is the Deliverable:</strong> Spend your cognitive energy upfront debating constraints, business logic, and user requirements. Treat your <code>.spec</code> or skill files like real code&#8212;versioned, observed, and fiercely protected.</p></li></ul><h3>3. Moving from Conductor to System Orchestrator</h3><p>The era of chatting with a single AI companion is over. The future belongs to asynchronous multi-agent architectures.</p><p>Instead of asking one LLM to write a complex migration, modern teams build systems of reasoning. For instance, Google tackled delicate TensorFlow migrations by deploying a strict three-agent architecture:</p><ol><li><p><strong>A Planner Agent</strong> to map verifiable steps.</p></li><li><p><strong>An Orchestrator Agent</strong> to group and route execution.</p></li><li><p><strong>A Coder Agent</strong> to execute the changes within defined style guides.</p></li></ol><p>As the human engineer, you sit <em>above</em> this loop. You build the environment, set the guardrails, and track agent performance traces.</p><h3>4. Becoming a Value Translator</h3><p>Since AI handles the routine execution of <em>how</em> to code, the pragmatic builder&#8217;s real value shifts up the abstraction stack to the <em>what</em> and the <em>why</em>.</p><p>When a product request asks to &#8220;improve database performance,&#8221; a weak prompt results in a generic refactor loop. A <strong>Value Translator</strong> looks at metrics, asks &#8220;Performance for <em>which</em> user segment under <em>what</em> context?&#8221; and guides the agent network to optimize the critical paths that move the business needle.</p><h3>The Leadership Mandate: Protect the Struggle</h3><p>If you are managing or leading teams, remember W. Edwards Deming&#8217;s classic phrase: <em>&#8220;A bad system will beat a good person every time.&#8221;</em> You cannot demand a 10x output if it means crushing your developers under 10x cognitive load and constant agent context-switching. To prevent burnout, leaders must make three immediate shifts:</p><ol><li><p><strong>Stop measuring lines of code or PR volume.</strong> (hope you never did that) Reward outcomes and met business requirements.</p></li><li><p><strong>Protect the &#8220;productive struggle.&#8221;</strong> Carve out dedicated time for devs to whiteboard systems, audit infrastructure, and experiment with tooling.</p></li><li><p><strong>Build absolute psychological safety.</strong> Agentic systems will fail. If your culture punishes failure, engineers will retreat to old, slow, safe ways of working.</p></li></ol><h3>Stepping Up, Not Stepping Aside</h3><p>The craft of software engineering isn&#8217;t vanishing; it&#8217;s stepping up to its highest and most powerful altitude. We are moving from hand-crafting bricks to precision-engineering the ecosystem that safely allows buildings to exist.</p><p>Let&#8217;s stop vibe coding. Let&#8217;s start system designing.</p><p><em>What does your agent-orchestration stack look like today? <br>Do you have something worth sharing that works nicely for your team?</em></p><p><em>Drop your thoughts in the comments.</em></p>]]></content:encoded></item><item><title><![CDATA[And just like that… the age of subsidized AI coding tools is ending]]></title><description><![CDATA[What GitHub Copilot&#8217;s pricing shift really means for builders, SMBs, and the future of the AI coding divide]]></description><link>https://pragmaticbuilder.io/p/and-just-like-that-the-age-of-subsidized</link><guid isPermaLink="false">https://pragmaticbuilder.io/p/and-just-like-that-the-age-of-subsidized</guid><dc:creator><![CDATA[Milos Solujic]]></dc:creator><pubDate>Tue, 28 Apr 2026 15:30:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!d8j9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63d7fd1-82af-4b1c-bb64-7224408b3690_1408x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!d8j9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63d7fd1-82af-4b1c-bb64-7224408b3690_1408x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!d8j9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63d7fd1-82af-4b1c-bb64-7224408b3690_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!d8j9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63d7fd1-82af-4b1c-bb64-7224408b3690_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!d8j9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63d7fd1-82af-4b1c-bb64-7224408b3690_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!d8j9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63d7fd1-82af-4b1c-bb64-7224408b3690_1408x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!d8j9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63d7fd1-82af-4b1c-bb64-7224408b3690_1408x768.png" width="1408" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b63d7fd1-82af-4b1c-bb64-7224408b3690_1408x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2468501,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://pragmaticbuilder.substack.com/i/195759487?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63d7fd1-82af-4b1c-bb64-7224408b3690_1408x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!d8j9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63d7fd1-82af-4b1c-bb64-7224408b3690_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!d8j9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63d7fd1-82af-4b1c-bb64-7224408b3690_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!d8j9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63d7fd1-82af-4b1c-bb64-7224408b3690_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!d8j9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb63d7fd1-82af-4b1c-bb64-7224408b3690_1408x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And just like that, the honeymoon seems to be over, and the money started flying &#8212; except this time, it&#8217;s yours.</p><p>I&#8217;ve been writing software professionally for over twenty years. I&#8217;ve watched the dot-com bubble inflate and burst, the mobile revolution, the cloud transition, the NoSQL hype cycle, the microservices gold rush. Each of those moments felt significant in its own way. But I&#8217;ll be honest &#8212; this one feels different. What&#8217;s happening right now in AI tooling is genuinely unprecedented. The pace, the stakes, the way it&#8217;s touching every layer of the stack simultaneously. And within that larger story, this week&#8217;s GitHub Copilot pricing announcement is a small but telling moment. A signal flare, not a firework.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://pragmaticbuilder.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Pragmatic Builder! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The honeymoon was fun. Frontier model access for $10 a month, unlimited completions, agentic sessions running wild on your codebase. Nobody was really looking at the bill because the bill looked fine. It looked fine because someone else was quietly covering most of it. That era is ending now, and the transition is worth understanding clearly &#8212; not because it&#8217;s catastrophic, but because the builders who understand it earliest will make better decisions than those who don&#8217;t.</p><p>Let me explain what actually changed, why it matters more than the headlines suggest, and what you should concretely do about it if you&#8217;re a builder, an engineering lead, or someone running a small software business.</p><div><hr></div><p><strong>What GitHub actually announced</strong></p><p>Starting June 1, 2026, all GitHub Copilot plans move from a flat request-based model to usage-based billing. The old system counted &#8220;premium request units&#8221; &#8212; each interaction with a premium model consumed some number of PRUs from your monthly allowance. The new system replaces PRUs with GitHub AI Credits, where 1 credit equals $0.01, and your usage is calculated based on actual token consumption: input tokens, output tokens, and cached tokens, priced at the published API rate for whichever model you used.</p><p>Plan prices are not changing on paper. Copilot Pro stays at $10/month, Pro+ at $39, Business at $19/user, Enterprise at $39/user. But here&#8217;s what is changing and what the headline writers mostly glossed over: each plan now includes a monthly credit allotment equal in dollar value to its price. So a Business subscriber paying $19/month gets $30 in pooled AI credits. When those credits are gone, you either buy more or you stop.</p><p>And critically &#8212; unlike the old system, where exhausting your PRUs would quietly fall back to a cheaper model and let you keep working &#8212; under the new model, there is no fallback. When the credits run out, the well is dry. For a lot of developers, Copilot has functioned as an always-available background tool, something you barely had to think about. That cognitive simplicity ends on June 1.</p><div><hr></div><p><strong>The math that makes this concrete</strong></p><p>Abstract talk about &#8220;token-heavy workflows&#8221; doesn&#8217;t land until you put real numbers on it. So here they are.</p><p>Claude Opus 4.7 &#8212; one of the frontier models available in Copilot &#8212; costs $5 per million input tokens and $25 per million output tokens at published API rates. A moderately sized agentic session on a real codebase might consume 50,000 input tokens and 8,000 output tokens. That&#8217;s a single session costing roughly $0.45. If you&#8217;re a developer running five of those sessions a day, five days a week, you&#8217;ve burned through your entire monthly Business credit allotment in about a week. Then you&#8217;re buying more, switching to a cheaper model, or waiting until next month.</p><p>GPT-5.4, the other heavy hitter, charges $2.50 per million input tokens and $15 per million output. Still non-trivial at scale &#8212; and Copilot code review sessions and agentic workflows pile these costs up fast, often invisibly, because the tool is sending context you didn&#8217;t explicitly choose to include.</p><p>This is the part that the flat-rate model was hiding from you. Token-based billing doesn&#8217;t change the underlying cost of inference &#8212; it just makes the bill legible. In some ways, that&#8217;s actually healthy. But it does require you to start thinking about something most developers have never had to think about before: the economics of their own prompting habits.</p><div><hr></div><p><strong>Why this happened: the unit economics broke</strong></p><p>GitHub&#8217;s own Chief Product Officer described this change as &#8220;an important step toward a sustainable, reliable Copilot business.&#8221; That word &#8212; sustainable &#8212; is the tell. Leaked internal documents earlier this month revealed that the week-over-week cost of running GitHub Copilot had nearly doubled since January 2026. Doubled. In four months.</p><p>The culprit is agentic usage. When Copilot was primarily an autocomplete tool, the token math was manageable. When it became an agentic platform &#8212; running multi-step coding sessions, reviewing entire pull requests, spinning up cloud agents that hold large context windows open for extended periods &#8212; the cost per user exploded. GitHub paused new individual plan signups on April 20th, framing it as investigating &#8220;high abuse through trials.&#8221; The real explanation is that the flat-rate model became financially unviable under agentic load, and they needed to stop the bleeding before fixing the model.</p><p>This isn&#8217;t unique to GitHub. Anthropic made similar moves with Claude Code. OpenAI moved Codex to token-based credits. The whole industry ran the same experiment &#8212; subsidized flat-rate access to frontier models to drive adoption &#8212; and the whole industry hit the same wall at roughly the same time. IDC has forecast that large enterprises will underestimate their AI infrastructure costs by 30% through 2027. That gap is going to be expressed through pricing changes exactly like this one, from every major vendor, over the next 18 months. GitHub is just the most visible domino to fall this week.</p><div><hr></div><p><strong>How the developer community actually reacted</strong></p><p>The GitHub community discussion thread is worth reading in full because it&#8217;s more honest than most analysis. One developer wrote: &#8220;This is removing the one real advantage GHCP had over Claude Code et al.&#8221; Another: &#8220;I would much rather you jacked up the price per premium request by 30-50x than switch to token-based pricing where agents can nuke your supply of credits in very little time.&#8221; A third, more bluntly: &#8220;Request-based billing is user oriented. Token-based billing is not user oriented.&#8221;</p><p>That last one cuts to something real. The flat-rate model wasn&#8217;t just financially convenient &#8212; it was cognitively convenient. You knew what you had. You knew roughly when it would run out. Token consumption is invisible, variable, and highly dependent on decisions &#8212; model choice, context window size, session length &#8212; that most developers don&#8217;t think about explicitly while they&#8217;re actually working. The anxiety in that thread isn&#8217;t primarily about money. It&#8217;s about the loss of predictability. GitHub&#8217;s answer to its own FAQ question &#8212; &#8220;this just wiped GitHub&#8217;s value moat, why should I stay?&#8221; &#8212; was essentially: &#8220;because we think we&#8217;re still the best experience.&#8221; That may well be true. But it&#8217;s a harder sell when using the product responsibly now requires a working knowledge of token economics.</p><div><hr></div><p><strong>Are open-weight models a real alternative?</strong></p><p>Yes. More than most enterprise developers currently acknowledge.</p><p>The common misconception is that open-weight means worse. That was true two years ago. It&#8217;s increasingly not true for the category of tasks that make up the majority of a working developer&#8217;s day: autocomplete on familiar patterns, boilerplate generation, test scaffolding for well-defined functions, documentation drafts, simple refactors. For these tasks, a well-quantized Qwen2.5-Coder-32B running locally is competitive with GPT-4 class inference. Not identical &#8212; but competitive. The difference becomes meaningful at the edges: novel architectural reasoning, subtle cross-file bug diagnosis, deeply understanding a codebase it&#8217;s never encountered with minimal prompting.</p><p>The models worth knowing right now:</p><p><strong>Qwen2.5-Coder-32B</strong> (Alibaba): The current benchmark leader for self-hosted coding assistance. Runs on a single consumer GPU with 24GB VRAM at full quality &#8212; an RTX 4090 or NVIDIA RTX 6000 Pro handles it well. On a Mac with an M3 Max or M4 Max and 128GB unified memory, you can run it via Ollama with solid performance. Setup is genuinely simple: install Ollama, pull the model (<code>ollama pull qwen2.5-coder:32b</code>), configure Continue.dev to point at your local endpoint. Three config lines. You&#8217;re done.</p><p><strong>DeepSeek Coder V2</strong>: Mixture-of-experts architecture that delivers strong performance on reasoning-heavy tasks at lower effective inference cost. Particularly good for debugging sessions where it needs to hold a lot of context without drifting.</p><p><strong>Continue.dev as the harness</strong>: this is the piece that makes local models usable in daily IDE work. It sits inside VS Code or JetBrains, provides Copilot-like UX, and routes to any OpenAI-compatible endpoint &#8212; your local Ollama instance, a direct API call, or both depending on task type. You get the experience without the Copilot billing event.</p><p>The honest limitation: if your work involves frequent large-context, multi-file architectural sessions &#8212; the kind of heavy lifting where frontier models genuinely earn their cost &#8212; local models will frustrate you at the margins. Use them for the 70-80% of tasks that don&#8217;t require that. Reserve frontier API calls for the work that actually warrants them.</p><div><hr></div><p><strong>Smarter harnesses: routing as a professional skill</strong></p><p>The shift to token-based billing makes explicit something that good engineers should have been doing anyway: matching model capability to task complexity. The flat-rate era made this unnecessary. The new era makes it advantageous.</p><p>Think in three tiers.</p><p>Tier one is local and free: inline completions, next-line suggestions, boilerplate for patterns you already understand well. Run a quantized open-weight model via Ollama. Sub-100ms latency in most setups, zero marginal cost, no billing event, no context leaving your machine.</p><p>Tier two is mid-range API: chat for moderate reasoning tasks, test generation for complex functions, documentation for non-trivial modules. A smaller Claude or GPT-4.1-class model via direct API. The critical discipline here is context window hygiene &#8212; the single biggest driver of unnecessary token spend is sending more context than the task actually requires. Scope your prompts. Reference specific files. Don&#8217;t dump the whole repository into context for a question about one function.</p><p>Tier three is frontier, used deliberately: security analysis, architectural review, complex multi-file reasoning where correctness matters more than cost per session. You already know when you need this level of capability. The problem has been that most tooling defaulted to frontier models for everything, including tasks that didn&#8217;t need them. Token-based billing will enforce better habits here, even if the forcing mechanism is uncomfortable.</p><p>One practical note: GitHub is launching a preview billing dashboard in early May, available through your Billing Overview page on github.com. Check it before June 1, not after. It will show you your projected costs under the new model based on your actual recent usage. If the number surprises you, you still have time to adjust before it becomes a line item on a real invoice.</p><div><hr></div><p><strong>The new divide: governance as competitive moat</strong></p><p>Here&#8217;s the angle that most coverage has underplayed, and I think it&#8217;s actually the most consequential part of this story long-term.</p><p>The shift to pooled credits with admin budget controls isn&#8217;t just a billing change &#8212; it&#8217;s a governance change, and it structurally advantages large organizations in a way that compounds over time.</p><p>Under the new Business and Enterprise model, unused credits pool across the whole organization rather than expiring per-seat. Admins can set budgets at the enterprise, cost center, and individual user level &#8212; deciding which teams get access to which models at what spend limits. A 500-person engineering organization can route expensive frontier model credits toward senior architects doing novel, high-stakes work, and restrict junior developers to mid-tier models for routine tasks. They can centrally optimize AI spend in a way that&#8217;s genuinely sophisticated. That&#8217;s a real operational capability that requires organizational scale to use effectively.</p><p>A freelancer or a five-person startup has $10-19/month in credits, no pooling, no budget controls, and no organizational buffer for an unexpectedly expensive month. The gap isn&#8217;t just financial &#8212; it&#8217;s the gap between having a CFO-grade view of your AI spend and getting a surprise on your credit card statement.</p><p>The best AI coding tools have always favored those with the resources to deploy them well. Token-based billing sharpens that asymmetry considerably, even if it didn&#8217;t create it. This is the part of the story that the &#8220;prices are unchanged&#8221; headline obscures entirely.</p><div><hr></div><p><strong>What SMBs and individual builders should actually do</strong></p><p>First and most urgently: go look at the May preview billing dashboard when it drops. Don&#8217;t skip this. Your intuitions about your own usage patterns are probably wrong. Many developers will discover they&#8217;re primarily inline completion users and their actual credit exposure is low &#8212; inline completions and Next Edit suggestions remain unlimited across all paid plans and don&#8217;t consume credits at all. Others will discover they&#8217;ve been running frontier model sessions that cost significantly more than they assumed. Know which camp you&#8217;re in before making any decisions.</p><p>If you&#8217;re on an annual Copilot plan, you have some buffer &#8212; PRU-based pricing continues until your plan expires. But model multipliers are increasing for annual subscribers on June 1, so it&#8217;s not cost-neutral even in the interim. Worth running the math before assuming you&#8217;re insulated.</p><p>Seriously evaluate whether Copilot&#8217;s harness is the right one for your workflow. Copilot&#8217;s genuine differentiator is deep GitHub integration &#8212; repo-aware context, PR-native code review, cloud agent tied to your CI/CD workflow. If you&#8217;re using heavy Copilot Chat but not actually leveraging those GitHub-native features, you may be paying for integration you&#8217;re not using. A direct API setup through Continue.dev might deliver 90% of your daily value at lower cost with more model flexibility and no vendor lock-in on billing structure.</p><p>Invest two hours in setting up local model infrastructure. Not as an experiment you&#8217;ll abandon, but as a parallel environment that runs alongside your existing tools. Ollama plus Continue.dev plus Qwen2.5-Coder-32B is a real setup that real developers are using in production workflows today. Run it for a month on your routine tasks and measure whether the quality is adequate for your actual work. The answer will be different for different people and different codebases &#8212; but you can&#8217;t know until you run the experiment properly.</p><p>Finally, develop the explicit habit of asking one question before opening any frontier model session: does this task actually require this level of capability? Could a scoped prompt to a lighter model do the job? This isn&#8217;t about being cheap. It&#8217;s about being precise &#8212; and precision in how you use these tools is a compounding skill regardless of what they cost.</p><div><hr></div><p><strong>The bigger picture</strong></p><p>Twenty years in this industry gives you a particular kind of calibration. You get better at distinguishing the moments that are genuinely structural shifts from the ones that merely feel like it. This period &#8212; right now, 2025 into 2026 &#8212; feels like a real one. Not because the tools are magic, but because the economics of software development are being restructured in ways that will take years to fully understand. The rate of change is unlike anything I&#8217;ve seen before, and I&#8217;ve seen a few cycles.</p><p>The subsidy era made sense as a land-grab strategy. Vendor-subsidized access to frontier inference lowered adoption barriers, seeded habits, and built switching costs. It worked exactly as designed. Enterprises are hooked enough that GitHub knows they&#8217;ll absorb usage-based billing. That&#8217;s not a criticism &#8212; it&#8217;s how technology markets mature. But for the builders who aren&#8217;t enterprises, the question now is whether they can maintain meaningful access to tools that close the productivity gap, or whether those tools become structurally reserved for organizations that can run them at scale.</p><p>The pragmatic answer isn&#8217;t despair. It&#8217;s building the judgment to route intelligently &#8212; knowing when local is enough, knowing when the credits are worth spending, understanding the economics of your own workflow. The developers who compound the most value from AI tooling over the next three years won&#8217;t be the ones who used it most indiscriminately during the subsidy era. They&#8217;ll be the ones who developed genuine judgment about when and how to use it.</p><p>The honeymoon is over. The money is flying. Might as well understand exactly where it&#8217;s going.</p><div><hr></div><p><em>pragmaticBuilder is where I write about software development without the hype. If this was useful, forward it to someone who&#8217;s about to get a surprise on their June Copilot bill.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://pragmaticbuilder.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Pragmatic Builder! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Welcome]]></title><description><![CDATA[To Pragmatic Builder Community.]]></description><link>https://pragmaticbuilder.io/p/coming-soon</link><guid isPermaLink="false">https://pragmaticbuilder.io/p/coming-soon</guid><dc:creator><![CDATA[Milos Solujic]]></dc:creator><pubDate>Wed, 01 Jan 2025 15:35:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aIwf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f982907-1162-4c49-b7b1-818d41ff55ed_1068x1008.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aIwf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f982907-1162-4c49-b7b1-818d41ff55ed_1068x1008.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aIwf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f982907-1162-4c49-b7b1-818d41ff55ed_1068x1008.png 424w, https://substackcdn.com/image/fetch/$s_!aIwf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f982907-1162-4c49-b7b1-818d41ff55ed_1068x1008.png 848w, https://substackcdn.com/image/fetch/$s_!aIwf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f982907-1162-4c49-b7b1-818d41ff55ed_1068x1008.png 1272w, https://substackcdn.com/image/fetch/$s_!aIwf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f982907-1162-4c49-b7b1-818d41ff55ed_1068x1008.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aIwf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f982907-1162-4c49-b7b1-818d41ff55ed_1068x1008.png" width="1068" height="1008" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f982907-1162-4c49-b7b1-818d41ff55ed_1068x1008.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1008,&quot;width&quot;:1068,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1670270,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://pragmaticbuilder.substack.com/i/153908059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f982907-1162-4c49-b7b1-818d41ff55ed_1068x1008.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aIwf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f982907-1162-4c49-b7b1-818d41ff55ed_1068x1008.png 424w, https://substackcdn.com/image/fetch/$s_!aIwf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f982907-1162-4c49-b7b1-818d41ff55ed_1068x1008.png 848w, https://substackcdn.com/image/fetch/$s_!aIwf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f982907-1162-4c49-b7b1-818d41ff55ed_1068x1008.png 1272w, https://substackcdn.com/image/fetch/$s_!aIwf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f982907-1162-4c49-b7b1-818d41ff55ed_1068x1008.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Few words about me:</p><p>I started programming in the early 90s on a Commodore 64. For the past 20 years I&#8217;ve been doing it professionally &#8212; building scalable products, leading teams, and working as a solutions architect in fintech.</p><p>But 2026 feels different. AI tools have genuinely changed <em>how</em> I build things &#8212; and I&#8217;ve been in the trenches with Claude Code, Codex, and Cursor long enough to separate the hype from what actually works.</p><p><strong>PragmaticBuilder</strong> is where I share what I&#8217;ve learned. Practical insights on building products effectively. Honest takes on which AI tools actually move the needle and how to use them without wasting your time. No fluff, no tool-of-the-week hype &#8212; just the stuff that works, from someone still doing it every day.</p><p>If you&#8217;re a developer, a founder, or just curious about where software is going &#8212; this is for you.</p><p>Let&#8217;s build something worth building.</p></blockquote><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://pragmaticbuilder.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://pragmaticbuilder.io/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item></channel></rss>