<?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]]></title><description><![CDATA[Thinking Through AI]]></description><link>https://www.madhunagaraj.com</link><image><url>https://www.madhunagaraj.com/img/substack.png</url><title>Thinking Through AI</title><link>https://www.madhunagaraj.com</link></image><generator>Substack</generator><lastBuildDate>Mon, 13 Apr 2026 16:47:27 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 Agentic Mindset]]></title><description><![CDATA[How to make yourself 10x with AI.]]></description><link>https://www.madhunagaraj.com/p/the-agentic-mindset</link><guid isPermaLink="false">https://www.madhunagaraj.com/p/the-agentic-mindset</guid><dc:creator><![CDATA[Thinking Through AI]]></dc:creator><pubDate>Sat, 11 Apr 2026 14:12:53 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f1270144-a20b-46a0-a16f-bb76b42f5119_2400x2302.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I missed something that mattered to someone I care about because I forgot to put it on the calendar.</p><p>It was in a text message. I was heads-down on something else. By the time I remembered, it was too late. You know the feeling. It stays with you.</p><p>I didn&#8217;t have a system. I had intentions. I had apps. I had to-do lists I reorganized every Sunday, a ritual that made me feel productive without actually making me productive.</p><p>I&#8217;ve been using AI for a long time. When agentic AI started becoming real, I started using it as a thinking partner for research, planning, working through ideas. That changed how I think. It brought clarity to how I approach problems. I&#8217;m still figuring things out, but the trajectory is clear.</p><p>Over time I layered more on. A weekend coaching ritual. A research workflow. Each started as an experiment. Each stuck because it solved something real.</p><p>Then last week I connected NanoClaw, a lightweight open-source personal AI agent, to a Google Calendar MCP server. Set it up on a Mac Mini. Named the agent Jarvis. Now my family schedules appointments by messaging WhatsApp.</p><p>I used Claude Code to set up NanoClaw. An AI agent helped me configure another AI agent. The system was proving the thesis before it was even running.</p><p>That&#8217;s when something shifted. I wasn&#8217;t reaching for AI anymore. I was surrounded by it. Calendar, briefings, research, coaching, planning, all running through interfaces I already use every day. WhatsApp for family. Slack for reading what AI prepares for me. Google Tasks for what needs to get done.</p><p>I&#8217;ve started calling it the agentic mindset. Not using AI as a tool you pick up. Living with AI as a partner that&#8217;s always running.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Sf6N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61659082-cc44-4284-8005-5c30e4a196a7_2400x2302.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Sf6N!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61659082-cc44-4284-8005-5c30e4a196a7_2400x2302.heic 424w, https://substackcdn.com/image/fetch/$s_!Sf6N!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61659082-cc44-4284-8005-5c30e4a196a7_2400x2302.heic 848w, https://substackcdn.com/image/fetch/$s_!Sf6N!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61659082-cc44-4284-8005-5c30e4a196a7_2400x2302.heic 1272w, https://substackcdn.com/image/fetch/$s_!Sf6N!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61659082-cc44-4284-8005-5c30e4a196a7_2400x2302.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Sf6N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61659082-cc44-4284-8005-5c30e4a196a7_2400x2302.heic" width="1456" height="1397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/61659082-cc44-4284-8005-5c30e4a196a7_2400x2302.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1397,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:148185,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.madhunagaraj.com/i/193889765?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61659082-cc44-4284-8005-5c30e4a196a7_2400x2302.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_!Sf6N!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61659082-cc44-4284-8005-5c30e4a196a7_2400x2302.heic 424w, https://substackcdn.com/image/fetch/$s_!Sf6N!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61659082-cc44-4284-8005-5c30e4a196a7_2400x2302.heic 848w, https://substackcdn.com/image/fetch/$s_!Sf6N!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61659082-cc44-4284-8005-5c30e4a196a7_2400x2302.heic 1272w, https://substackcdn.com/image/fetch/$s_!Sf6N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61659082-cc44-4284-8005-5c30e4a196a7_2400x2302.heic 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></p><div><hr></div><p>I get curious about things. How multi-agent systems actually work. Whether the premise that specialized agents outperform a single generalist holds up in practice. How orchestration patterns from a research paper translate into real code.</p><p>This used to come with a cost. Fifteen tabs open. A paper too dense to finish. Jargon that loses me by page three. I have a bookmarks folder called &#8220;Read Later&#8221; with over 200 links in it. I&#8217;ve read maybe twelve.</p><p>The cost of exploring was high enough that I mostly didn&#8217;t. Which means I was operating on what I already knew, not what I could know.</p><p>Here&#8217;s a specific example. I found a paper on arXiv called &#8220;The Orchestration of Multi-Agent Systems.&#8221; Dense, academic, full of formal notation. Old me would have bookmarked it and moved on. Instead, I dropped it into an AI conversation and asked for a structured breakdown: what&#8217;s the core framework, what are the seven orchestration responsibilities, and what would it take to build this.</p><p>AI broke it down in minutes. I understood the architecture. Then I built it. Three agents, a deterministic orchestrator, real flight data. 1,500 lines of Python. I raced the multi-agent system against a single agent across three cities and found that multi-agent only wins when the search space is large enough that focused attention finds what divided attention misses. I published the whole thing on my Substack.</p><p>The arc from &#8220;interesting paper&#8221; to &#8220;working code&#8221; to &#8220;published essay&#8221; happened in a fraction of the time it would have taken before. That&#8217;s the shift. <strong>AI didn&#8217;t do the thinking for me. It removed the friction that used to stop me from thinking at all.</strong></p><div><hr></div><p>I have tried every productivity system. GTD. The 3-2-1 method. Time blocking. Pomodoro. Bullet journals. Each one works for a week, maybe two, then falls off. Not because the method is bad. Because there&#8217;s no one on the other side keeping me honest.</p><p>So I built an AI coach. I gave it my weekends.</p><p>Every weekend, twenty minutes. What got done around the house, what I promised my family, what I kept putting off for myself. The side project I said I&#8217;d start. The reading I never got to. The errand that&#8217;s been on the list for three weeks. Then we plan the next week around what actually matters to the people in my life, including me. It doesn&#8217;t list my tasks. It challenges me.</p><p>&#8220;You said you&#8217;d start that project three weekends ago. What&#8217;s actually stopping you?&#8221;</p><p>&#8220;You have a free Saturday morning. Are you protecting it or letting it fill up?&#8221;</p><p>&#8220;Is this actually important to you or are you avoiding the harder thing?&#8221;</p><p>By Sunday evening I&#8217;ve already thought about the week. I know what matters. I start Monday in motion, not scrambling.</p><div><hr></div><p>I used to miss appointments because every one required a context switch. Leave WhatsApp, open the calendar app, type the details, go back. The real cost was never the thirty seconds. It was that my brain left whatever I was doing. Every time I thought &#8220;I&#8217;ll add that later,&#8221; it became one more thing occupying mental RAM.</p><p>Now I message Jarvis on WhatsApp. &#8220;There&#8217;s an appointment on April 14 at Chandler. Add that to the family calendar.&#8221; Jarvis confirms, adds it, asks if I know the time. Done. My brain never leaves the conversation.</p><p>My whole family uses the same system. Anyone can message Jarvis, ask what&#8217;s happening this weekend, add something. One shared calendar. No bottleneck.</p><p>Jarvis also nudges. Tax filing deadline coming up? &#8220;April 15 is 13 days away, have you carved out time to file yet?&#8221; I didn&#8217;t ask for that. Jarvis knew it mattered.</p><p>Every morning, Jarvis drops a news summary into WhatsApp. Three to five items. This morning: a cybersecurity model finding thousands of zero-day vulnerabilities, a major revenue milestone at Anthropic, Google releasing a new open-source model. Two minutes to read. Caught up before my coffee was done.</p><div><hr></div><p>These pieces feed each other. That&#8217;s the part I didn&#8217;t expect.</p><p>The weekend coaching review looks at my Google Tasks and calendar, finds the open gaps where real thinking can happen, and helps me protect them before the week fills up. The briefings keep me informed without consuming my morning. The research partner accelerates my learning without the tab-explosion. The calendar handles the logistics without the context switching.</p><p>None of this is about getting more done. It&#8217;s about creating space to think.</p><p>During a recent weekend review, my AI coach pointed out that I&#8217;d committed to writing three times in the past month but only followed through once. I hadn&#8217;t noticed the pattern. I thought I was busy each time. But seeing it laid out, three commitments, one delivery, I realized I wasn&#8217;t protecting time for writing. I was hoping time would appear. The next week I blocked two hours on Sunday morning before anything else. That&#8217;s where this essay came from.</p><p>Before all of this, I spent roughly an hour a day on operational overhead: scrolling for news, managing calendars, reorganizing task lists, trying to remember what I was supposed to focus on. Now that&#8217;s down to minutes. The hour didn&#8217;t disappear. It turned into thinking time. Over a month, that&#8217;s thirty hours back. Not for more tasks. For clarity.</p><div><hr></div><p>Since I started, Jarvis has quietly grown. (The name is a clich&#233;, I know. But when your family already calls it Jarvis, you stop fighting it.) It reads photos now, so my family can send receipts and they land in Notion automatically. It transcribes voice notes locally, so the kids can talk to it without typing. It runs a small local model alongside Claude for the cheap tasks, which cut my costs without cutting quality. And last week I added something that still surprises me: a meta-tool that lets Jarvis build its own tools on the fly. When someone asks for something it can&#8217;t do yet, a weather lookup, a currency conversion, it finds an API, writes itself a tool, tests it, and uses it. Next time anyone asks, the tool is already there. I didn&#8217;t build any of those capabilities. Jarvis did.</p><p>It also breaks. The meta-tool once hallucinated an API endpoint that didn&#8217;t exist, built a tool around it, and confidently returned wrong weather data for a week before anyone noticed. A container crashed mid-calendar sync and duplicated every event for a Tuesday. The plumbing I described earlier isn&#8217;t a one-time cost. It&#8217;s ongoing. Things fail, and when they fail quietly, you don&#8217;t find out until someone shows up to the wrong appointment.</p><p>That&#8217;s the honest version of &#8220;it keeps building itself.&#8221; It keeps building itself, and sometimes it builds the wrong thing. The system is not finished. I&#8217;m not sure it ever will be. That might be the point.</p><div><hr></div><p>A few things I want to be honest about.</p><p>The plumbing took grit. WhatsApp API configuration, MCP server setup, container permissions. If you&#8217;re comfortable in a terminal, the barrier is surprisingly low for what you get back. If you&#8217;re not, this is a weekend project with some frustration built in.</p><p>NanoClaw runs on the Claude Agent SDK, so there&#8217;s a dependency on Anthropic. The codebase is small enough to adapt, and people have swapped in other models, but I want to be straightforward about that.</p><p>It&#8217;s not free. API calls cost money. But there&#8217;s no monthly subscription to a platform that owns your workflows. The cost scales with usage, and the system is yours to modify.</p><p>The agent logic runs on my home hardware. My Mac Mini, my house. It connects to services I already use and trust: Google Calendar, WhatsApp, Claude&#8217;s API. There&#8217;s no additional third-party collecting my family&#8217;s data in between. I chose the services. I control the wiring. In 2026, there&#8217;s a particular peace of mind in knowing your family&#8217;s WhatsApp messages aren&#8217;t sitting in some startup&#8217;s database, training the next model.</p><div><hr></div><p>Everything I&#8217;ve described here, I figured out for myself. One person. My own friction points.</p><p>What I keep thinking about is what happens when more people operate this way. The same patterns, briefings, coaching, removing friction, applied beyond one person. The implications are massive. I&#8217;ll write more about that.</p><p>If you want to start without building anything: every Saturday or Sunday, spend twenty minutes with any AI reviewing your week. What you planned, what actually happened, what you&#8217;re carrying forward. Do this for four weekends. The pattern recognition alone will change how you operate.</p><div><hr></div><p>I started by missing something that mattered. I ended up rethinking how I learn, how I stay focused, and how I spend my days.</p><p>The question isn&#8217;t whether AI can do this. It can. Today.</p><p><strong>The question is who you become when you stop managing your life and start designing it.</strong></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>]]></content:encoded></item><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[Words for the Long Road]]></title><description><![CDATA[For when I'm not there to say it]]></description><link>https://www.madhunagaraj.com/p/words-for-the-long-road</link><guid isPermaLink="false">https://www.madhunagaraj.com/p/words-for-the-long-road</guid><dc:creator><![CDATA[Thinking Through AI]]></dc:creator><pubDate>Sun, 01 Mar 2026 15:24:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tHgM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97dde172-b56b-4762-980c-794cadd815f3_1024x608.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_!tHgM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97dde172-b56b-4762-980c-794cadd815f3_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tHgM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97dde172-b56b-4762-980c-794cadd815f3_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!tHgM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97dde172-b56b-4762-980c-794cadd815f3_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!tHgM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97dde172-b56b-4762-980c-794cadd815f3_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!tHgM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97dde172-b56b-4762-980c-794cadd815f3_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tHgM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97dde172-b56b-4762-980c-794cadd815f3_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/97dde172-b56b-4762-980c-794cadd815f3_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&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="" srcset="https://substackcdn.com/image/fetch/$s_!tHgM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97dde172-b56b-4762-980c-794cadd815f3_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!tHgM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97dde172-b56b-4762-980c-794cadd815f3_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!tHgM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97dde172-b56b-4762-980c-794cadd815f3_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!tHgM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97dde172-b56b-4762-980c-794cadd815f3_1024x608.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 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">Words for the long road</figcaption></figure></div><p></p><p>I&#8217;ve been carrying these words for a while now. Things I&#8217;ve learned, things I wish someone had told me, things I don&#8217;t want lost if I&#8217;m not around to say them. So I&#8217;m writing them down. Not because I have it all figured out. But because what I do know is worth passing along.</p><p>If I could give you one thing to carry from the start, it would be this: become someone you can respect.</p><p>You&#8217;re going to feel everything. Anger, jealousy, the urge to win, the need to be right. We all do. Those instincts have been with us long before we built values and intellect around them. The instincts don&#8217;t make you weak. Everyone feels them. What defines your character is the moment you recognize them and choose how to act. That choice is yours alone. It&#8217;s what makes you, you.</p><p>The world you&#8217;re growing up in is loud. It will constantly show you what success is supposed to look like. Not everything that shines is valuable. Companies spend billions making you feel like you need what they&#8217;re selling. Learn the difference between what you actually need and what someone is working hard to make you want.</p><p>You&#8217;ll meet people from different cultures, different upbringings, different ways of seeing the world. That&#8217;s a good thing. How someone was raised shapes how they think, what they value, how they show up. Not everyone will see life the way you do, and that doesn&#8217;t make them wrong. Try to see things from where they stand. That&#8217;s where the real learning happens.</p><p>Our family won&#8217;t always be perfect. We&#8217;ll disagree. There will be days you think we don&#8217;t understand you, and days we&#8217;ll feel the same about you. But we will always be there. No matter what. That&#8217;s not something you earn. It&#8217;s something you were born into. We will love you unconditionally, and sometimes that love will sound like things you don&#8217;t want to hear. Trust it anyway.</p><p>If you make a mistake, own it. If you hurt someone, say so. Not because the world demands it, but because you should demand it of yourself. The people worth keeping in your life will respect you more for your honesty than your perfection.</p><p>Not every friend will be the same kind of friend. Some will stay with you regardless of what you can offer them. Those are the real ones. Others will be around when it&#8217;s convenient. You&#8217;ll learn to tell the difference. And some friends are tied to a time and place. That doesn&#8217;t make them less real, just different. People grow, people change, and sometimes that means growing apart. Don&#8217;t hold it against them. But be careful who you keep closest. You become the best or worst version of yourself based on the people you surround yourself with. And whoever is in your life, be someone worth keeping around.</p><p>Your body is the only asset you can never replace. I wish I had understood this earlier. Your body runs on a rhythm. When you sleep, when you eat, how you move, it all connects. Sleep controls your weight, your mood, how clearly you think. Exercise isn&#8217;t about looking good. It&#8217;s how your body was built to function. Learn what a balanced meal actually looks like, not from ads or trends, but from understanding what your body needs. When you&#8217;re young none of this feels urgent. By the time it does, you&#8217;re already paying for the years you didn&#8217;t.</p><p>Learn how money works before you need to. I learned this the hard way. Wealth isn&#8217;t what you spend. It&#8217;s what you don&#8217;t. The car you didn&#8217;t buy, the upgrade you skipped, the money you kept instead of showing it off. That restraint is what builds freedom. The kind that lets you walk away from what&#8217;s wrong and wait for what&#8217;s right, without panic deciding for you.</p><p>Work hard. There is no substitute for it. Nothing meaningful was ever built without effort, and most of what you want in life will cost more of it than you expect. But work on what matters. There&#8217;s a difference between being busy and being productive. One fills your day, the other builds your life. And you will fail. I can promise you that. It won&#8217;t mean you&#8217;re not good enough. It will mean you tried. The only real mistake is failing and learning nothing from it. And know this: luck plays a part. It always does. But the harder you work and the more prepared you are, the bigger your surface for luck to land on.</p><p>Be resourceful. Don&#8217;t wait for perfect conditions or someone to hand you the answer. The people who build something real aren&#8217;t always the most talented. They&#8217;re the ones who refused to stay stuck.</p><p>Stay curious. Ask questions even when you think you should already know the answer. Read, watch, listen, not just to confirm what you believe, but to challenge it. Go deep. The world respects people who truly understand what they&#8217;re talking about, not those who pretend to. Surface knowledge fools no one worth impressing. The people who keep growing are the ones who never stop learning. Knowledge doesn&#8217;t come to you. You have to go after it.</p><p>When you were young, there was something that pulled your attention without anyone telling it to. A subject, a craft, a question you couldn&#8217;t let go of. As you got older, the noise got louder and that voice got harder to hear. Try to find it again. That&#8217;s your purpose. It doesn&#8217;t have to be grand. It just has to be yours. Life gets better once you find it. Not easier, but clearer. The noise quiets down. Decisions get simpler. You stop drifting and start building.</p><p>See the world. Not just for the photos, but because nothing rearranges the way you think faster than being somewhere unfamiliar. Talk to strangers. Sit with people who grew up nothing like you. Books will teach you what&#8217;s possible. Experience will teach you what&#8217;s true.</p><p>And spend time in nature. Not because someone told you it&#8217;s good for you, but because it&#8217;s the one place that doesn&#8217;t ask you to perform. No notifications, no expectations, no one measuring you. Just quiet. There&#8217;s something out there that resets you in a way the city and the screen never will. Go often. Stay long enough to hear yourself think.</p><p>And rest when you need to. I mean it. Your mind and body need recovery the way soil needs seasons.</p><p>There&#8217;s real power in doing good without expecting anything back. Choosing honesty when it would be easier not to. That&#8217;s where self-respect is forged. Not in what you achieve, but in how you carry yourself when no one is watching.</p><p>I don&#8217;t expect you to be perfect. I only hope that as you grow, you choose to live in a way that matches your values. Even when it&#8217;s hard. Even when no one&#8217;s looking. This is what I know so far. I&#8217;m still learning too. And when I learn more, I&#8217;ll pass that along as well.</p><p>Because the road is long. And along the way, everything will change. Your circumstances, your status, the people around you. But one thing stays with you the entire way. The person you see in the mirror. Make sure that&#8217;s someone you respect.</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><item><title><![CDATA[Becoming Someone You Don’t Lose]]></title><description><![CDATA[A reflection on finding yourself, protecting your peace, and honoring real connection]]></description><link>https://www.madhunagaraj.com/p/the-last-step-of-becoming-an-adult</link><guid isPermaLink="false">https://www.madhunagaraj.com/p/the-last-step-of-becoming-an-adult</guid><dc:creator><![CDATA[Thinking Through AI]]></dc:creator><pubDate>Sun, 22 Feb 2026 22:50:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aZKg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997bde25-a978-478a-8f9f-d5d59dbb093c_1024x608.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_!aZKg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997bde25-a978-478a-8f9f-d5d59dbb093c_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aZKg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997bde25-a978-478a-8f9f-d5d59dbb093c_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!aZKg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997bde25-a978-478a-8f9f-d5d59dbb093c_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!aZKg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997bde25-a978-478a-8f9f-d5d59dbb093c_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!aZKg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997bde25-a978-478a-8f9f-d5d59dbb093c_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aZKg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997bde25-a978-478a-8f9f-d5d59dbb093c_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/997bde25-a978-478a-8f9f-d5d59dbb093c_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&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="" srcset="https://substackcdn.com/image/fetch/$s_!aZKg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997bde25-a978-478a-8f9f-d5d59dbb093c_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!aZKg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997bde25-a978-478a-8f9f-d5d59dbb093c_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!aZKg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997bde25-a978-478a-8f9f-d5d59dbb093c_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!aZKg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997bde25-a978-478a-8f9f-d5d59dbb093c_1024x608.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 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">Becoming Someone You Don&#8217;t Lose</figcaption></figure></div><p>I&#8217;m writing this because some truths don&#8217;t leave you alone until you say them&#8212;and because no one really teaches you how easy it is to lose yourself while trying to belong. For a long time, I&#8217;ve wanted to put this into words. If you allow people to define who you are, you slowly lose yourself along the way. Authenticity isn&#8217;t optional&#8212;it&#8217;s survival.</p><p>There will always be people who accept you exactly as you are, and those relationships last because they are built on truth. Then there are others who need to feel superior. They undermine, diminish, and refuse to acknowledge you&#8212;not because of who you are, but because acknowledging you would threaten how they feel about themselves. Those relationships don&#8217;t last.</p><p>This isn&#8217;t about big or small, strong or weak. It&#8217;s about pride. Some people feed theirs by bending others, and that only works if you allow it. The same truth applies inward: if you expect someone to be a certain way instead of accepting who they are, you&#8217;re doing the same thing. Everyone is unique. No one exists to fit your expectations.</p><p>Don&#8217;t beat yourself up trying to be perfect when you&#8217;re young. These experiences will happen&#8212;and they&#8217;re supposed to. Becoming an adult takes time, and understanding who you are takes even longer. The confusion, the mistakes, the disappointments, the wrong people&#8212;those aren&#8217;t failures. They&#8217;re necessary. Without them, you don&#8217;t discover yourself.</p><p>At some point, you stop trying to win people over. You stop explaining yourself. You stop rehearsing conversations in your head. Not because you don&#8217;t care, but because you finally understand what costs too much. Peace becomes more important than being right. Clarity matters more than approval.</p><p>That&#8217;s when you keep your eyes on what truly matters. You move past the noise and find your purpose. You ask yourself what excites you and what you want to keep doing for the rest of your life. You surround yourself with people who cheer for your success, and you become someone who genuinely celebrates the growth of others. You show up for your friends selflessly, without keeping score or expecting anything in return.</p><p>As you grow older, everything changes&#8212;your finances, your status, your circumstances. What doesn&#8217;t change are authentic relationships. The people who are real will see you in both growth and fall, and they will stay. No matter how high you rise or how hard you fall, those people remain.</p><p>I&#8217;m deeply grateful for the people who have been part of my life through both my lowest moments and my growth. I know they will be there for the rest of my life. There are also friends you lose&#8212;not because of conflict, but because life creates distance and time slips away. Yet if those relationships were built on truth, they don&#8217;t disappear. They exist exactly as they are, regardless of how long it&#8217;s been since you last saw each other.</p><p>Sometimes, all it takes is one bad intention to disturb you deeply. When that happens, let it go. Ground yourself in what actually matters&#8212;your family, your health, and your mental peace.</p><p>But part of protecting that peace is recognizing what threatens it.</p><p>There are people who manipulate to escape the truth, who twist stories to hide what they&#8217;ve done. There are also people who support that manipulation because it makes them feel bigger, protects their pride, and serves their own interests&#8212;they hide behind a version of reality and use it when it&#8217;s convenient to fulfill their agenda. Whether they are right or wrong matters less than this: they must believe they are justified. That makes them dangerous to be around. They think they&#8217;re smart enough to get away with it&#8212;but the other side sees everything. They choose not to react. Not because they&#8217;re fooled, but because they refuse to lower themselves to play that game. It&#8217;s choosing dignity over drama. Recognizing this is part of protecting yourself.</p><p>And then there are people who genuinely care. They cheer for you. They show up without questioning your worth. But once trust is given, it shouldn&#8217;t be endlessly tested. Trust, once damaged, changes everything.</p><p>If you&#8217;re around people where you have to keep your guard up, limit what you share, or shrink yourself to feel safe, you&#8217;re with the wrong people. If someone takes advantage of you to fulfill their own agenda&#8212;even knowing it will harm you&#8212;that&#8217;s toxic. Walking away isn&#8217;t selfish. It&#8217;s self-respect. You don&#8217;t owe access to anyone who costs you your peace.</p><p>Misunderstandings happen. People miss each other. That&#8217;s human. But in any real relationship, there has to be conversation. If honesty isn&#8217;t possible, the relationship no longer exists in a meaningful way.</p><p>Be humble. Be helpful. Care deeply. But if your kindness is being given to the wrong people&#8212;walk away.</p><p>This is what becoming an adult ultimately means: choosing purpose over noise, peace over pride, and people who let you be yourself.</p>]]></content:encoded></item></channel></rss>