<?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[Thinking Through AI: Thinking Through AI]]></title><description><![CDATA[My perspective on AI.]]></description><link>https://www.madhunagaraj.com/s/thinking-through-ai</link><image><url>https://www.madhunagaraj.com/img/substack.png</url><title>Thinking Through AI: Thinking Through AI</title><link>https://www.madhunagaraj.com/s/thinking-through-ai</link></image><generator>Substack</generator><lastBuildDate>Wed, 15 Jul 2026 23:57:16 GMT</lastBuildDate><atom:link href="https://www.madhunagaraj.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Madhu Nagaraj]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[madhunagaraj@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[madhunagaraj@substack.com]]></itunes:email><itunes:name><![CDATA[Thinking Through AI]]></itunes:name></itunes:owner><itunes:author><![CDATA[Thinking Through AI]]></itunes:author><googleplay:owner><![CDATA[madhunagaraj@substack.com]]></googleplay:owner><googleplay:email><![CDATA[madhunagaraj@substack.com]]></googleplay:email><googleplay:author><![CDATA[Thinking Through AI]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Agent Cost Stack]]></title><description><![CDATA[What it actually costs to run an AI agent in production.]]></description><link>https://www.madhunagaraj.com/p/the-agent-cost-stack</link><guid isPermaLink="false">https://www.madhunagaraj.com/p/the-agent-cost-stack</guid><dc:creator><![CDATA[Thinking Through AI]]></dc:creator><pubDate>Sun, 05 Apr 2026 08:30:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!H0Ne!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9b61bf-29ee-4a71-8f5d-8ca1d908fe4a_1422x1388.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>2026 is the year AI agents have to prove ROI. The prototypes shipped. Now the question is whether these things actually pay for themselves at scale.</p><p>I did a deep research dive into the economics. I expected the story to be about expensive tokens and infrastructure bills. It is not. The story is about a trap.</p><p>Everything that makes agents cheaper to build is making them more expensive to run.</p><p>I am calling it the Deflation Trap. It runs through every layer of what I have been mapping as the Agent Cost Stack.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!H0Ne!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9b61bf-29ee-4a71-8f5d-8ca1d908fe4a_1422x1388.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H0Ne!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9b61bf-29ee-4a71-8f5d-8ca1d908fe4a_1422x1388.heic 424w, https://substackcdn.com/image/fetch/$s_!H0Ne!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9b61bf-29ee-4a71-8f5d-8ca1d908fe4a_1422x1388.heic 848w, https://substackcdn.com/image/fetch/$s_!H0Ne!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9b61bf-29ee-4a71-8f5d-8ca1d908fe4a_1422x1388.heic 1272w, https://substackcdn.com/image/fetch/$s_!H0Ne!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9b61bf-29ee-4a71-8f5d-8ca1d908fe4a_1422x1388.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H0Ne!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9b61bf-29ee-4a71-8f5d-8ca1d908fe4a_1422x1388.heic" width="1422" height="1388" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fc9b61bf-29ee-4a71-8f5d-8ca1d908fe4a_1422x1388.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1388,&quot;width&quot;:1422,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:75145,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.madhunagaraj.com/i/193236912?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9b61bf-29ee-4a71-8f5d-8ca1d908fe4a_1422x1388.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!H0Ne!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9b61bf-29ee-4a71-8f5d-8ca1d908fe4a_1422x1388.heic 424w, https://substackcdn.com/image/fetch/$s_!H0Ne!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9b61bf-29ee-4a71-8f5d-8ca1d908fe4a_1422x1388.heic 848w, https://substackcdn.com/image/fetch/$s_!H0Ne!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9b61bf-29ee-4a71-8f5d-8ca1d908fe4a_1422x1388.heic 1272w, https://substackcdn.com/image/fetch/$s_!H0Ne!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9b61bf-29ee-4a71-8f5d-8ca1d908fe4a_1422x1388.heic 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 role="img" 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><title></title><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><div><hr></div><h2>The Jevons Layer</h2><p>Per-token costs have dropped roughly 1,000&#215; in three years. GPT-3-equivalent inference fell from $60 to $0.06 per million tokens. The decline runs at roughly 10&#215; per year, faster than Moore&#8217;s Law.</p><p>And yet total AI spending surged 320% in 2025. Average enterprise LLM spending nearly tripled from $2.5 million to $7 million per company.</p><p>This is Jevons paradox applied to intelligence. When inference gets cheaper, usage does not stay flat &#8212; it explodes. Agentic workflows with dozens of reasoning steps per task. AI on every customer interaction. Use cases that were uneconomical last quarter become default this quarter. Demand is super-elastic.</p><p>The math of agentic loops makes it concrete. Agents operate in multi-turn reasoning where every turn reprocesses the entire conversation history. Turn 10 costs 10&#215; what a single generation does. Cumulative spend across 10 turns is 55&#215;. Reasoning models generating thousands of internal thinking tokens can require up to 100&#215; more compute than a single pass. One complex agentic task can burn $5&#8211;$8 in inference alone.</p><p>Mitigations exist. Context caching from major providers cuts input costs 75&#8211;90%. Model routing &#8212; sending most queries to cheap models and only complex ones to frontier &#8212; cuts costs 35&#8211;85%. Semantic caching reduces redundant calls 20&#8211;73%. These make the growth curve manageable. They do not flatten it.</p><p>The cheaper the tokens get, the more tokens get used.</p><div><hr></div><h2>The Infrastructure Layer</h2><p>The floor has collapsed. Serverless vector databases start under $25 a month. Object-storage-first options run at $70 per terabyte versus $1,600&#8211;$3,600 for RAM-based incumbents. Production RAG systems have been documented running for under $10 a month.</p><p>The $7,000&#8211;$21,000 monthly figure in enterprise analyses reflects enterprise procurement, not technical necessity. The actual range by agent complexity:</p><ul><li><p><strong>Simple FAQ or support bot:</strong> $50&#8211;$500/mo</p></li><li><p><strong>RAG-based knowledge agent:</strong> $200&#8211;$2,000/mo</p></li><li><p><strong>Multi-step agent with tool calling:</strong> $500&#8211;$5,000/mo</p></li><li><p><strong>Enterprise multi-agent system with compliance:</strong> $5,000&#8211;$30,000/mo</p></li></ul><p>A collapsed floor means more projects get greenlit. More projects get greenlit means more production systems to maintain. The infrastructure cost per agent went down. The total infrastructure bill went up.</p><p>The trap here is premature optimization &#8212; architecting for scale that does not exist yet. Know the actual volume before committing to architecture.</p><div><hr></div><h2>The Drift Layer</h2><p>This is the layer most teams underestimate because it does not show up in a pricing calculator.</p><p>Agents are nondeterministic. A demo that works 80% of the time is impressive. A production system that fails 20% of the time is a liability. And agents drift. Prompt behavior decays. Model providers ship silent updates that change output quality. In long-lived sessions, system prompts receive roughly 1% of attention weight in large context windows, causing agents to gradually ignore their own instructions. Retrieval accuracy drops 15&#8211;30% as context stretches.</p><p>Budget 10&#8211;20 hours of engineering time per month on prompt tuning and behavior testing. That is $1,000&#8211;$2,500 a month per agent. This cost holds regardless of how cheap the tokens get. Automated evaluation frameworks agree with human judgment at only fair-to-moderate levels &#8212; they are force multipliers for human review, not replacements.</p><p>The cost here is not compute. It is attention. Human attention to a system that will not stay where you put it.</p><div><hr></div><h2>The Migration Layer</h2><p>Between early 2025 and early 2026, major providers executed 15+ distinct model deprecation events. Major agent frameworks shipped multiple architecturally breaking versions. A survey of 1,837 engineering leaders found that 70% of regulated enterprises rebuild their agent stack every three months or faster.</p><p>AI coding tools make individual migrations 10&#8211;20&#215; faster. But migrations now happen quarterly instead of annually. Total maintenance spend stays stubbornly similar. The composition shifts from manual labor to AI tooling costs plus expanded review cycles. And the productivity gains themselves may be illusory: METR&#8217;s randomized controlled trial found that experienced developers using AI coding tools perceived themselves as 20% faster but were actually 19% slower on real-world tasks &#8212; a 39-point perception gap. If the tool that is supposed to make migrations cheap is not actually making them faster, the math gets worse.</p><p>This is where the trap is most visible. More gets built on shifting ground because teams believe AI tools make it cheap to migrate. The per-migration cost feels lower. The number of migrations rises. Net cost: flat at best. Net complexity: up.</p><p>The defense: architect for replaceability from day one. Abstract the model layer. Budget 1&#8211;2 model migrations per year, each consuming 1&#8211;2 engineering weeks.</p><div><hr></div><h2>The Governance Layer</h2><p>The EU AI Act is enforced starting August 2, 2026. It is real. But the cost most teams should worry about is not compliance &#8212; it is paralysis.</p><p>The Act uses a risk-tiered structure. The heavy burden risk management systems, conformity assessments, documentation maintained for ten years applies exclusively to high-risk systems under Annex III: HR screening, credit scoring, healthcare decision support, law enforcement. Only 5&#8211;15% of AI systems qualify. Annual compliance costs for those: roughly &#8364;29,000 per system. A Jira summarizer, a customer support bot, an internal knowledge agent none of these are high-risk.</p><p>Minimal-risk systems face no specific obligations beyond AI literacy. Limited-risk systems, including chatbots and virtual assistants, face only transparency requirements. One requirement is non-negotiable across all tiers: Article 50 requires that any system interacting with people discloses it is AI. A disclosure banner. A first-message label. Low-cost design change, easy fine if you miss it. Bake it in from day one.</p><p>The real governance cost for most teams is not the regulation &#8212; it is the months of delayed launches while legal reviews whether a low-risk agent needs high-risk treatment. If you are building in Annex III domains, budget for governance. If you are not, do not let regulatory anxiety kill a high-ROI project.</p><p>On the US side, govern agents with the same access controls you apply to employees. That principle holds regardless of jurisdiction.</p><div><hr></div><h2>The Pattern</h2><p>The cost stack varies by an order of magnitude depending on agent complexity. A support bot on serverless can run for a few hundred dollars a month. An enterprise multi-agent system with compliance can run $20,000+. But the 65&#8211;75% operational share holds across both. The absolute numbers change. The ratio does not.</p><p>Every reduction in the cost of building creates more systems that need the expensive work of running. Tokens get cheaper, so architectures consume more. Infrastructure gets cheaper, so more projects ship. Migrations get cheaper per instance, so they happen more often.</p><p>Klarna learned this the hard way. The build was a success story. The run was an overcorrection that required hiring humans back. The long tail of nuanced, high-empathy interactions, refund disputes, billing confusion, frustrated customers who needed to feel heard, could not be cost-optimized away. The agent was not the problem. The budget that ignored the run was.</p><div><hr></div><h2>What to Do Before You Build</h2><p>Five things to budget for before writing the first prompt:</p><ol><li><p><strong>Model the run cost, not the build cost.</strong> If 65&#8211;75% of your total spend will be operational, your business case should be mostly about ops &#8212; not the sprint to ship.</p></li><li><p><strong>Measure your actual token volume before optimizing.</strong> Context caching and model routing are powerful, but premature optimization is its own cost. Know the volume first.</p></li><li><p><strong>Budget human hours for drift.</strong> 10&#8211;20 hours per agent per month. Automated evals help. They do not replace the human in the loop.</p></li><li><p><strong>Abstract the model layer on day one.</strong> You will migrate at least twice a year. Make it a configuration change, not a rewrite.</p></li><li><p><strong>Classify your risk tier early.</strong> Five minutes with the Annex III list can save months of legal review. If you are not high-risk, move.</p></li></ol><p>Every efficiency in building is a tax on running. The only way through the Deflation Trap is to budget for the run before you start the build.</p><div><hr></div><p><em>The views expressed here are my own and are not related to or reflective of my work or any organization I am affiliated with.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.madhunagaraj.com/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! 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[Multi-Agent AI Is Slower, Costlier, and Sometimes Finds Better Answers]]></title><description><![CDATA[I built three AI agents to plan a trip and raced them against one.]]></description><link>https://www.madhunagaraj.com/p/multi-agent-ai-is-slower-costlier</link><guid isPermaLink="false">https://www.madhunagaraj.com/p/multi-agent-ai-is-slower-costlier</guid><dc:creator><![CDATA[Thinking Through AI]]></dc:creator><pubDate>Sun, 29 Mar 2026 07:07:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!8Et7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbba8354e-3e3c-4cbb-8db4-b85ac852d3e6_1226x1270.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Disclaimer: The views expressed here are my own and are not related to or reflective of my work or any organization I am affiliated with.</em></p><p>The premise came from a research paper. &#8220;The Orchestration of Multi-Agent Systems&#8221; provides a framework for building coordinated AI systems, and it cites a motivating claim: distributed collectives of smaller, specialized agents often outperform a single all-purpose deployment. Instead of one AI doing everything, you break the problem into parts, give each part to a specialist, and coordinate them through an orchestrator.</p><p>It sounds right. The way a hospital works. The way an engineering team works. Specialization plus coordination equals better outcomes.</p><p>But sounding right is not the same as being right.<br><br>So I tested it.</p><p>Three agents. One finds flights and hotels. One builds the itinerary. One tracks the budget. A deterministic Python orchestrator coordinates them, enforces budget gates, and controls what each agent can see. Real flight prices from web search, not training data. About 1,500 lines of Python, no frameworks, every design decision visible. The point was to understand orchestration by building it.</p><p>The paper formalizes orchestration as seven responsibilities planning, policy, execution, control, state, knowledge, and quality, each mapping to a method or component in the code. The five most important:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;8fe52f92-feb7-437c-87a6-71bb5c19a45d&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">class Orchestrator:
    def plan(self, goal) -&gt; list[Task]:       # Pi: decompose the goal
    def check_policy(self, category, price):   # Phi: enforce constraints
    def _execute_task(self, task, agents):      # E: dispatch to agents
    def _prefetch_search_data(self):           # K: fetch real prices
    def _assemble_plan(self) -&gt; TripPlan:      # Q: validate and assemble</code></pre></div><p>The most important design decision is what each agent can see. One shared notebook, three different windows into it. The notebook is a Pydantic model with a <em>get_view</em> method the paper&#8217;s observation function that returns a typed dataclass per agent.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;2e0524fb-1296-4f55-ba26-8954b8839610&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">class SharedNotebook:
    def get_view(self, agent_name) -&gt; ScoutView | PlannerView | BudgetView:
        if agent_name == "scout":
            return ScoutView(
                budget_limits=...,          # flight/hotel/activity ceilings
                flight_search_results=...,  # raw search data
                hotel_search_results=...,
            )   # does NOT include: itinerary, decisions, other agents' outputs

        elif agent_name == "planner":
            return PlannerView(
                confirmed_bookings=...,     # only APPROVED decisions
                per_day_budget=...,         # remaining &#247; days
                attraction_search_results=...,
            )   # does NOT include: rejected options, raw prices

        elif agent_name == "budget":
            return BudgetView(
                all_prices=...,             # every price from every source
                running_total=...,
                budget_ceiling=...,
            )   # does NOT include: activity names, preferences

        else:
            raise ValueError(f"Unknown agent: {agent_name}")</code></pre></div><p>Scout never sees what the Planner decided. Budget never sees which temples were chosen. Each agent gets only what it needs to do its job.</p><p>Then I built a single-agent version. Same model, same search data, same instructions. One prompt that does everything at once. I ran both systems across three cities (Tokyo, Paris, Bangkok), two runs each, and compared what they found.</p><p>The sample size is small. Two runs per city gives you direction, not proof. But the patterns were consistent enough to be worth sharing.</p><div><hr></div><p>The single agent was faster every time. About 100 seconds versus 130. It used fewer tokens. About 10,000 versus 14,500. On pure efficiency, the generalist wins.</p><p>But then I looked at the flight prices.</p><p>For Paris, both systems found the same $1,199 flight. Dead tie, both runs. The SFO to Paris route has limited options. When the answer is obvious, specialization adds nothing.</p><p>For Tokyo, the single agent found cheaper flights. $946 average versus $1,144. Multi-agent is not always better. My read on why: Tokyo is a well-known route with a moderate number of carriers. The search results contained enough information for a generalist to find the best option without deep analysis. But the multi-agent system&#8217;s rigid pipeline introduced information loss at each handoff. Specifically, a method called <code>_approve_best_options</code> picks <code>flights[0]</code> from Scout&#8217;s sorted list and marks everything else as rejected before Budget ever sees the alternatives. The orchestrator pre-decides the winner. Call it the Lossy Handover problem: if your orchestrator is too rigid, it dumbs down the specialists. The single agent saw everything at once and acted as its own soft orchestrator, weighing all options simultaneously. Structure helped in Bangkok. In Tokyo, it got in the way.</p><p>For Bangkok, the multi-agent system found flights at $293. The single agent picked $885. Consistent across both runs. A $592 difference on a $1,500 budget trip. (All prices are search-reported via Tavily, not verified bookings. The exact numbers will differ if you run this tomorrow. What matters is the gap and what caused it.)</p><p>Bangkok has dozens of carriers, multiple layover options through Asian hubs, and a wide spread of price points. When Scout&#8217;s only job is analyzing flight options, it digs deeper. It found a route the single agent missed entirely. The single agent was juggling flights, hotels, itinerary, and budget at the same time. It picked a reasonable option and moved on.</p><p>That is the pattern.</p><p>Here is the data across all six runs:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PdUK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23e2b830-96c7-4b34-b960-05f72aa8c72a_1182x733.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PdUK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23e2b830-96c7-4b34-b960-05f72aa8c72a_1182x733.png 424w, https://substackcdn.com/image/fetch/$s_!PdUK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23e2b830-96c7-4b34-b960-05f72aa8c72a_1182x733.png 848w, https://substackcdn.com/image/fetch/$s_!PdUK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23e2b830-96c7-4b34-b960-05f72aa8c72a_1182x733.png 1272w, https://substackcdn.com/image/fetch/$s_!PdUK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23e2b830-96c7-4b34-b960-05f72aa8c72a_1182x733.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PdUK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23e2b830-96c7-4b34-b960-05f72aa8c72a_1182x733.png" width="1182" height="733" data-attrs="{&quot;src&quot;:&quot;https://substackcdn.com/image/fetch/$s_!PdUK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23e2b830-96c7-4b34-b960-05f72aa8c72a_1182x733.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:733,&quot;width&quot;:1182,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:70794,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.madhunagaraj.com/i/192482088?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23e2b830-96c7-4b34-b960-05f72aa8c72a_1182x733.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!PdUK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23e2b830-96c7-4b34-b960-05f72aa8c72a_1182x733.png 424w, https://substackcdn.com/image/fetch/$s_!PdUK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23e2b830-96c7-4b34-b960-05f72aa8c72a_1182x733.png 848w, https://substackcdn.com/image/fetch/$s_!PdUK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23e2b830-96c7-4b34-b960-05f72aa8c72a_1182x733.png 1272w, https://substackcdn.com/image/fetch/$s_!PdUK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23e2b830-96c7-4b34-b960-05f72aa8c72a_1182x733.png 1456w" sizes="100vw" loading="lazy"></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 role="img" 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><title></title><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><em>Averages across two runs per city. All prices from Tavily web search, not verified bookings.</em></p><p>The multi-agent system used 40-50% more tokens every time. It was slower every time. But for Bangkok it saved $592 on a $1,500 trip. The token overhead cost maybe fifty cents.</p><p>It is not about task complexity in the abstract. It is about search space. When there are many valid options spread across a large space, a specialist who does nothing but search will find things a generalist misses. When the answer is obvious or the space is small, the overhead is not worth it.</p><div><hr></div><p>There were other findings worth noting.</p><p>Restricting what each agent can see (what multi-agent theory calls the observation function) reduces context size substantially. Budget does not need to process itinerary descriptions. Scout does not need to see rejected options. Less context, smaller prompts, lower cost. I did not run a controlled experiment isolating this variable, but the multi-agent token counts (averaging around 14,500 across all runs) are spread across four sequential calls, each with a focused prompt. A single prompt carrying all the context for all three roles would be larger than any one of them.</p><p>But the cost savings is not the most interesting part. The observation function is also a least-privilege boundary. Budget cannot see which temples were chosen or what the traveler&#8217;s personal interests are. It sees prices. That is all it needs and all it should have. In a system where agents might be backed by different models, different providers, or different trust levels, controlling what each agent can see is not just an optimization. It is a security and privacy decision. The same pattern that reduces token cost also enforces data isolation.</p><p>Here is how state flows through the system.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8Et7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbba8354e-3e3c-4cbb-8db4-b85ac852d3e6_1226x1270.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8Et7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbba8354e-3e3c-4cbb-8db4-b85ac852d3e6_1226x1270.png 424w, https://substackcdn.com/image/fetch/$s_!8Et7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbba8354e-3e3c-4cbb-8db4-b85ac852d3e6_1226x1270.png 848w, https://substackcdn.com/image/fetch/$s_!8Et7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbba8354e-3e3c-4cbb-8db4-b85ac852d3e6_1226x1270.png 1272w, https://substackcdn.com/image/fetch/$s_!8Et7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbba8354e-3e3c-4cbb-8db4-b85ac852d3e6_1226x1270.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8Et7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbba8354e-3e3c-4cbb-8db4-b85ac852d3e6_1226x1270.png" width="1226" height="1270" data-attrs="{&quot;src&quot;:&quot;https://substackcdn.com/image/fetch/$s_!8Et7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbba8354e-3e3c-4cbb-8db4-b85ac852d3e6_1226x1270.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1270,&quot;width&quot;:1226,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:313718,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.madhunagaraj.com/i/192482088?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbba8354e-3e3c-4cbb-8db4-b85ac852d3e6_1226x1270.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!8Et7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbba8354e-3e3c-4cbb-8db4-b85ac852d3e6_1226x1270.png 424w, https://substackcdn.com/image/fetch/$s_!8Et7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbba8354e-3e3c-4cbb-8db4-b85ac852d3e6_1226x1270.png 848w, https://substackcdn.com/image/fetch/$s_!8Et7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbba8354e-3e3c-4cbb-8db4-b85ac852d3e6_1226x1270.png 1272w, https://substackcdn.com/image/fetch/$s_!8Et7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbba8354e-3e3c-4cbb-8db4-b85ac852d3e6_1226x1270.png 1456w" sizes="100vw" loading="lazy"></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 role="img" 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><title></title><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><blockquote><p>A note on the plumbing. The paper specifies two protocols underneath the diagram above. MCP (Model Context Protocol) controls tool access: only the orchestrator calls MCP servers, and agents only analyze data that was pre-fetched for them. A2A (Agent-to-Agent) is the message schema. Every inter-agent communication is a typed Pydantic model with a <code>message_type</code> (TASK_ASSIGN, APPROVE, REJECT), a confidence score, and a provenance chain. When Budget flags a flight, it returns a structured REJECT with confidence 0.95 and a list of reasons, not free text. That structure is what lets the orchestrator make deterministic decisions instead of parsing natural language.</p></blockquote><p>I tested this directly. I injected a fake &#8220;$200 SCAM Air 999&#8221; flight into the search results for a Tokyo trip where real flights cost $800-1,200. The Budget agent flagged it with three warnings: the price was unrealistic for the route, the spending was near category limits, and the carrier name was suspicious. A specialist whose only job is checking numbers catches things a generalist might miss while multitasking. Interestingly, even the single agent did not use the scam price; the LLM had its own sense of realistic pricing. But the multi-agent system caught it earlier, at the budget gate, before it could reach the Planner at all. Defense in depth.</p><p>The paper warns about coordination overhead. I measured it directly in a head-to-head run on the same Tokyo trip:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!clKx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51767916-6632-40b5-9176-168e800607bc_885x403.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!clKx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51767916-6632-40b5-9176-168e800607bc_885x403.png 424w, https://substackcdn.com/image/fetch/$s_!clKx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51767916-6632-40b5-9176-168e800607bc_885x403.png 848w, https://substackcdn.com/image/fetch/$s_!clKx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51767916-6632-40b5-9176-168e800607bc_885x403.png 1272w, https://substackcdn.com/image/fetch/$s_!clKx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51767916-6632-40b5-9176-168e800607bc_885x403.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!clKx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51767916-6632-40b5-9176-168e800607bc_885x403.png" width="885" height="403" data-attrs="{&quot;src&quot;:&quot;https://substackcdn.com/image/fetch/$s_!clKx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51767916-6632-40b5-9176-168e800607bc_885x403.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:403,&quot;width&quot;:885,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:34165,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.madhunagaraj.com/i/192482088?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51767916-6632-40b5-9176-168e800607bc_885x403.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!clKx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51767916-6632-40b5-9176-168e800607bc_885x403.png 424w, https://substackcdn.com/image/fetch/$s_!clKx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51767916-6632-40b5-9176-168e800607bc_885x403.png 848w, https://substackcdn.com/image/fetch/$s_!clKx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51767916-6632-40b5-9176-168e800607bc_885x403.png 1272w, https://substackcdn.com/image/fetch/$s_!clKx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51767916-6632-40b5-9176-168e800607bc_885x403.png 1456w" sizes="100vw" loading="lazy"></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 role="img" 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><title></title><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>The real cost is not in the messages between agents. It is in the latency of four sequential API calls and the context window space used to give each agent its filtered view of the world. The 130% token overhead is the coordination tax. Whether that tax is worth paying depends entirely on what the specialist finds.</p><div><hr></div><p>I expected the premise to be right in a straightforward way. Multi-agent should beat single-agent.</p><p>It does. But only sometimes.</p><p>For Bangkok, the coordination tax was maybe fifty cents in extra tokens. The flight savings was nearly six hundred dollars. For Paris, the multi-agent system added cost and time for zero benefit. For Tokyo, the single agent did better.</p><p>The paper itself is a framework paper, not a benchmark paper. It gives you a vocabulary for decomposing orchestration into planning, policy, execution, control, state, knowledge, and quality. That decomposition is worth learning regardless of whether you end up building multi-agent or not.</p><p>I am not the only one finding this. A Towards Data Science <a href="https://towardsdatascience.com/the-multi-agent-trap/">analysis</a> called it &#8220;The Multi-Agent Trap&#8221;, the tendency to treat every problem as a multi-agent problem when a well-prompted single agent would suffice. GitHub&#8217;s engineering <a href="https://github.blog/ai-and-ml/generative-ai/multi-agent-workflows-often-fail-heres-how-to-engineer-ones-that-dont/">blog</a> put it bluntly: most multi-agent workflow failures come down to missing structure. The pattern I saw in my trip planner, structure helps when the search space is large, hurts when it is not appears to be general.</p><p>But the performance premise that motivates the framework needs a qualifier. Build multi-agent when the search space is large enough that focused attention finds what divided attention misses. When the cost of overlooking the best option exceeds the cost of looking twice.</p><p>For everything else, one agent is enough.</p><div><hr></div><p><em>Paper:  &#8220;<a href="https://arxiv.org/abs/2601.13671">The Orchestration of Multi-Agent Systems</a>.&#8221; arXiv:2601.13671, January 2026.</em></p>]]></content:encoded></item><item><title><![CDATA[What Developers Get Wrong About Building with AI]]></title><description><![CDATA[For the developer who wants to become a founder.]]></description><link>https://www.madhunagaraj.com/p/what-developers-get-wrong-about-building</link><guid isPermaLink="false">https://www.madhunagaraj.com/p/what-developers-get-wrong-about-building</guid><dc:creator><![CDATA[Thinking Through AI]]></dc:creator><pubDate>Sun, 08 Mar 2026 01:23:09 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1498050108023-c5249f4df085?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb2Rpbmd8ZW58MHx8fHwxNzcyODU3OTkzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Disclaimer: The views expressed here are my own and are not related to or reflective of my work or any organization I am affiliated with.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1498050108023-c5249f4df085?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb2Rpbmd8ZW58MHx8fHwxNzcyODU3OTkzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1498050108023-c5249f4df085?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb2Rpbmd8ZW58MHx8fHwxNzcyODU3OTkzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1498050108023-c5249f4df085?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb2Rpbmd8ZW58MHx8fHwxNzcyODU3OTkzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1498050108023-c5249f4df085?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb2Rpbmd8ZW58MHx8fHwxNzcyODU3OTkzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1498050108023-c5249f4df085?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb2Rpbmd8ZW58MHx8fHwxNzcyODU3OTkzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1498050108023-c5249f4df085?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb2Rpbmd8ZW58MHx8fHwxNzcyODU3OTkzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="3882" height="2584" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1498050108023-c5249f4df085?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb2Rpbmd8ZW58MHx8fHwxNzcyODU3OTkzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2584,&quot;width&quot;:3882,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A MacBook with lines of code on its screen on a busy desk&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A MacBook with lines of code on its screen on a busy desk" title="A MacBook with lines of code on its screen on a busy desk" srcset="https://images.unsplash.com/photo-1498050108023-c5249f4df085?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb2Rpbmd8ZW58MHx8fHwxNzcyODU3OTkzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1498050108023-c5249f4df085?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb2Rpbmd8ZW58MHx8fHwxNzcyODU3OTkzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1498050108023-c5249f4df085?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb2Rpbmd8ZW58MHx8fHwxNzcyODU3OTkzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1498050108023-c5249f4df085?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb2Rpbmd8ZW58MHx8fHwxNzcyODU3OTkzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 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 role="img" 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><title></title><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><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@cgower">Christopher Gower</a> on <a href="https://unsplash.com">Unsplash</a></figcaption></figure></div><p>I&#8217;ve been thinking about what it means to build software right now.</p><p>Not the mechanics of it. The models are capable. The tools are there. The barrier to shipping something has never been lower.</p><p>I mean the thinking behind it.</p><p>Because here&#8217;s what I keep coming back to. A generation of talented developers is about to build products shaped entirely by what AI can do today. They will look at the current state of the models, the current interfaces, the current capabilities and build for that. Ship fast, get users, feel the momentum.</p><p>And then the models will evolve. Faster than the roadmap expected. And the product built for today becomes the wrong answer for tomorrow.</p><p>That&#8217;s the trap the moment sets.</p><p><strong>The mistake is building for the model, not the problem</strong></p><p>When you pick up a powerful new tool, the temptation is to build something that shows off what it can do. This isn&#8217;t new. Early mobile apps were just desktop websites made smaller. Early cloud software was just on-premise software moved online.</p><p>The same thing is happening now. Products that are, at their core, a UI around a prompt. Clean. Functional. Sometimes impressive. But the value lives entirely in the model underneath and that model is not yours.</p><p>When the next model ships, and it will ship sooner than you think, what you built becomes a feature someone else offers for free.</p><p>If the model getting stronger makes your product weaker, you were never building a product. You were building a demo.</p><p><strong>Ask a different question before you start</strong></p><p>Most founders start with: what can I build with AI?</p><p>The better question is: what problem gets harder to solve as the world gets more complex and how do I sit in the middle of that in a way that compounds over time?</p><p>That question changes everything.</p><p>It moves you away from the interface and toward the workflow. Away from the feature and toward the process. Toward what the model cannot do alone, which is understand the specific, messy, human context of a particular industry.</p><p>The model knows everything about the average. It knows almost nothing about your specific customer&#8217;s specific situation. That gap is where you build.</p><p><strong>What loses value. What doesn&#8217;t.</strong></p><p>Software that manages lightweight engagement, scheduling, email workflows, basic coordination, is easy to migrate and easy to replace. An AI-native competitor can move that data in days and offer something better on top of it.</p><p>What keeps its value is software sitting inside complex workflows where the data is hard to replicate and built up over years of real operational use. Construction scheduling. Manufacturing supply chains. Property maintenance logs. The kind of data that doesn&#8217;t exist anywhere else because it was never meant to be shared. Because it lived in a process, not a database.</p><p>That&#8217;s the line.</p><p><strong>You already have the advantage</strong></p><p>Here&#8217;s what I think developers underestimate about this moment.</p><p>You already think in systems. You understand how things connect, where things break, what happens at scale. That instinct, applied not just to code but to how an industry actually operates, is exactly what this era needs.</p><p>The most defensible products being built right now are not the most technically impressive. They are the ones where someone understood a domain deeply enough to encode how it actually works. The exceptions. The edge cases. The judgment calls that happen between the steps. Into a system that gets smarter every time someone uses it.</p><p>That is builder&#8217;s work. Not just engineering. Thinking.</p><p><strong>Build something that learns</strong></p><p>Your product is not the features. It is what the system learns as people use it.</p><p>When a user corrects the output, that&#8217;s signal. When the system handles an edge case it hasn&#8217;t seen before, that&#8217;s signal. When a decision gets made inside the platform, that&#8217;s signal. That accumulated understanding of how a specific domain operates, that is the asset. Not the code.</p><p>No foundation model trained on the average of the internet will ever have it.</p><p>Own the workflow where the real work happens. Make your system the place where the truth of the business lives. And then let it learn.</p><p>What you build on day one matters less than what your system knows on day one thousand.</p><p>A generic agent can book the plumber. Only your system knows which plumber showed up last time, what it cost, and whether the problem came back. That memory is the moat. Not the capability.</p><p><strong>The models will get stronger. Build for that.</strong></p><p>A stronger model should make your product more powerful, not obsolete.</p><p>If the AI is the product, if the value is the generation, the summarization, the interface, a stronger model replaces you. That is a fragile position to be in.</p><p>But if the AI is the engine, if the value is the proprietary context, the workflow, the domain knowledge you have built up, a stronger model makes your engine more powerful. You get better without doing anything.</p><p>Build with the model. Not on it.</p><p><strong>Don&#8217;t marry the engine either</strong></p><p>One more thing, because this is where even careful builders get it wrong.</p><p>Treating AI as the engine is right. But don&#8217;t bolt yourself to a single engine.</p><p>The gap between the leading models has narrowed faster than most people expected. OpenAI, Anthropic, Google, they are closer to each other than they have ever been. And open-source models have caught up in ways that also give you something proprietary models don&#8217;t: full control of your data, no dependency on someone else&#8217;s pricing or terms.</p><p>Build a layer between your product logic and the model. Route the right tasks to the right model. Swap them out as the landscape shifts. The ability to always use the best tool at the right cost, without being locked in, is itself a competitive advantage.</p><p>Build the engine room, not the engine.</p><p>And if the inference cost is slowing you down right now, don&#8217;t let it stop you. There is no world where token costs stay this high. Every wave of compute has gotten cheaper faster than anyone expected. Build the right system. The economics will catch up.</p><p><strong>Go where the model was never taught</strong></p><p>The sharper version of &#8220;go where AI adoption is slow&#8221; is this: go where the training data never existed.</p><p>The plant manager who knows which supplier runs late in Q4. The process refined over twenty years on a specific floor. The supply chain nuance that lives in phone calls and institutional memory. That knowledge was never written down, never online, never in any training set.</p><p>The SMB running three shifts has heard of ChatGPT. They just don&#8217;t know how to make it work for their operation. Nobody has built for them. The big platforms are chasing enterprise. The funded startups are chasing legal and healthcare. The manufacturing floor is not in any of those conversations.</p><p>That is the opening. Go there first.</p><p><strong>At the end of it</strong></p><p>You are building something that helps a person simplify a hard process and you are using the most powerful tool in the history of software to do it.</p><p>Keep it that simple in your head.</p><p>Not &#8220;I am building an AI product.&#8221; Not &#8220;I am disrupting a vertical.&#8221; You are making something hard, easier. For a real person. In a specific situation. That the model alone cannot solve.</p><p>And when the AI gets it wrong and it will, your product needs to be the system that&#8217;s accountable. In manufacturing, in property management, in any operation where mistakes have real consequences, the winner isn&#8217;t the smartest model. It&#8217;s the one the customer trusts to own the outcome.</p><p>The developer who stays anchored to that, who doesn&#8217;t get seduced by what the model can do and loses sight of the actual human on the other side, is who builds something that lasts.</p><p>Go build. But build for the person, not the prompt.</p>]]></content:encoded></item><item><title><![CDATA[The Evolving Developer]]></title><description><![CDATA[From Code Producer to Decision-Maker in the Age of AI]]></description><link>https://www.madhunagaraj.com/p/the-evolving-developer</link><guid isPermaLink="false">https://www.madhunagaraj.com/p/the-evolving-developer</guid><dc:creator><![CDATA[Thinking Through AI]]></dc:creator><pubDate>Mon, 23 Feb 2026 05:01:23 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1604964432806-254d07c11f32?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHxkZXZlbG9wZXJ8ZW58MHx8fHwxNzczMDM1MzY1fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p><em>Disclaimer: The views expressed here are my own and are not related to or reflective of my work or any organization I am affiliated with.<br></em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1604964432806-254d07c11f32?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHxkZXZlbG9wZXJ8ZW58MHx8fHwxNzczMDM1MzY1fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1604964432806-254d07c11f32?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHxkZXZlbG9wZXJ8ZW58MHx8fHwxNzczMDM1MzY1fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1604964432806-254d07c11f32?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHxkZXZlbG9wZXJ8ZW58MHx8fHwxNzczMDM1MzY1fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1604964432806-254d07c11f32?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHxkZXZlbG9wZXJ8ZW58MHx8fHwxNzczMDM1MzY1fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1604964432806-254d07c11f32?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHxkZXZlbG9wZXJ8ZW58MHx8fHwxNzczMDM1MzY1fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1604964432806-254d07c11f32?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHxkZXZlbG9wZXJ8ZW58MHx8fHwxNzczMDM1MzY1fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="2448" height="2448" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1604964432806-254d07c11f32?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHxkZXZlbG9wZXJ8ZW58MHx8fHwxNzczMDM1MzY1fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2448,&quot;width&quot;:2448,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;black and white ceramic mug on black table&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="black and white ceramic mug on black table" title="black and white ceramic mug on black table" srcset="https://images.unsplash.com/photo-1604964432806-254d07c11f32?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHxkZXZlbG9wZXJ8ZW58MHx8fHwxNzczMDM1MzY1fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1604964432806-254d07c11f32?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHxkZXZlbG9wZXJ8ZW58MHx8fHwxNzczMDM1MzY1fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1604964432806-254d07c11f32?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHxkZXZlbG9wZXJ8ZW58MHx8fHwxNzczMDM1MzY1fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1604964432806-254d07c11f32?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHxkZXZlbG9wZXJ8ZW58MHx8fHwxNzczMDM1MzY1fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 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 role="img" 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><title></title><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><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@nublson">Nubelson Fernandes</a> on <a href="https://unsplash.com">Unsplash</a></figcaption></figure></div><p><br>AI hasn&#8217;t eliminated the role of the developer.</p><p>It has clarified it.</p><p>For a long time, software development was closely tied to writing code. Progress was measured in features shipped or lines written. AI changes that dynamic. When code can be generated quickly and at scale, the value of the developer shifts upstream, toward thinking, deciding, and guiding.<br><br><strong>Clarity Is Built, Not Found</strong></p><p>When I began working with AI coding agents, I expected speed to be the primary benefit. What stood out instead was how much it forced clarity. Early ideas weren&#8217;t incorrect, but they were often imprecise. When vague intent was passed to an agent, the output reflected that ambiguity immediately.</p><p>Iteration stopped being just a development loop and became a way to refine intent. Each prompt required answering basic questions: what problem is being solved, who it is for, and what &#8220;done&#8221; actually means.</p><p>Clarity wasn&#8217;t a prerequisite to building, it emerged through the process.</p><p>AI doesn&#8217;t replace thinking; it accelerates feedback on unclear thinking.<br><br><strong>Architecture Still Matters (Even More Now)</strong></p><p>As clarity formed, the instinct was to move faster. AI makes experimentation inexpensive. Different stacks and architectures can be explored quickly. But speed does not remove responsibility.</p><p>Decisions still carry tradeoffs across scalability, reliability, maintainability, cost and security. Security, in particular, is a day-zero concern.</p><p>Coding agents made it easier to pressure-test assumptions early: how systems behave at scale, where trust boundaries exist, what fails silently, and what becomes costly over time. Agents can surface options, but judgment remains human.</p><p>Architecture still matters perhaps more now than before because mistakes compound faster.<br><br><strong>Quality Ownership Scales With Output</strong></p><p>Another shift was the increased emphasis on quality. When an agent can generate large volumes of code quickly, blind trust becomes risky. Code review and testing moved from periodic activities to continuous ones.</p><p>Testing stopped feeling like overhead and became a guardrail.</p><p>I&#8217;ve caught more subtle bugs and security issues earlier in the process than I ever did before not because the agent is smarter, but because it forces me to review, question, and validate every assumption.</p><p>Increased output required increased ownership of quality.<br><br><strong>Humans Are Still the Bottleneck</strong></p><p>There is a human constraint that AI does not remove: fatigue.</p><p>AI compresses effort significantly, enabling large amounts of work in a single session. Momentum can be productive, but unmanaged momentum degrades judgment. Agents do not get tired; humans do.</p><p>Knowing when to pause and return with fresh context remains essential. Sustainable velocity matters more than heroic bursts of output.<br><br><strong>Refactoring Without Fear</strong></p><p>At the same time, refactoring became less intimidating.</p><p>When intent is clear, behavior is understood, and tests exist, rewriting becomes transformation rather than reinvention. Switching stacks becomes another iteration rather than a risk.</p><p>Confidence comes from reversible decisions.<br><br><strong>From Code Producer to Decision-Maker</strong></p><p>A conversation with a doctor reinforced this perspective. While AI can suggest multiple treatment options, choosing the appropriate one is where experience matters.</p><p>That distinction mirrors the evolving role of the developer.</p><p>AI can propose architectures and implementations. Determining which option fits the problem, the system, and the users and owning the outcome remains a human responsibility.</p><p>In the age of AI, developers shift from being primarily code producers to decision-makers. AI generates possibilities; it does not choose purpose.<br><br><strong>Critical Thinking Is the Real Skill</strong></p><p>If there is one thing AI can begin to replace, it is unexamined thinking not intelligence, but complacency masquerading as confidence.</p><p>AI executes exactly what is asked. The quality of the outcome is bounded by the quality of the reasoning behind the request.</p><p>This elevates the importance of critical thinking, security awareness, and system-level understanding. Developers become guides and guardians, shaping how systems should be built, not just what gets built. QA and UAT are no longer isolated phases but continuous responsibilities.</p><p>What you ask is what will be built.</p><p>What you clarify is what will be delivered.<br><br><strong>Looking Ahead</strong></p><p>This is still an early stage. What we see today is the current state. The future will evolve further, and some responsibilities may shift again.</p><p>What will not disappear is the need for judgment, context, and critical thinking.</p><p>AI does not replace developers.</p><p>It raises the bar.</p><p>And the developers who adapt, who think clearly, decide deliberately, and guide systems responsibly, will shape what comes next.</p><p><strong>Learn to Learn Fast</strong></p>]]></content:encoded></item></channel></rss>