<?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[MacroStack]]></title><description><![CDATA[A place where engineers see the big picture — across code, systems, and career.]]></description><link>https://macrostack.dev</link><image><url>https://substackcdn.com/image/fetch/$s_!UZAz!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22a5bd59-2664-4e4f-8140-639c638e801f_256x256.png</url><title>MacroStack</title><link>https://macrostack.dev</link></image><generator>Substack</generator><lastBuildDate>Thu, 16 Apr 2026 03:14:49 GMT</lastBuildDate><atom:link href="https://macrostack.dev/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Irwan Setiawan]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[macrostackdev@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[macrostackdev@substack.com]]></itunes:email><itunes:name><![CDATA[Irwan Setiawan]]></itunes:name></itunes:owner><itunes:author><![CDATA[Irwan Setiawan]]></itunes:author><googleplay:owner><![CDATA[macrostackdev@substack.com]]></googleplay:owner><googleplay:email><![CDATA[macrostackdev@substack.com]]></googleplay:email><googleplay:author><![CDATA[Irwan Setiawan]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[They Vibe-Coded an Enterprise App. It Lasted Five Minutes.]]></title><description><![CDATA[AI built the product. Nobody checked if it would survive deployment.]]></description><link>https://macrostack.dev/p/they-vibe-coded-an-enterprise-app</link><guid isPermaLink="false">https://macrostack.dev/p/they-vibe-coded-an-enterprise-app</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Thu, 09 Apr 2026 00:37:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YWth!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c35905-5b61-4c82-9fa6-d8ee5f227809_1376x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I watched a founder deploy an enterprise application built entirely with AI coding tools. No technical co-founder. No architecture review. No one in the room who&#8217;d ever shipped production software.</p><p>The demo looked incredible. Clean UI, smooth flows, everything wired up. He hit deploy.</p><p>Five minutes later, he rolled it back.</p><p>The tool didn&#8217;t fail him. The architecture did. Dependencies were tangled in ways that only surfaced under real conditions. The structure that looked solid in a demo environment collapsed the moment it touched production.</p><p>And here&#8217;s what stuck with me: no AI was going to tell him that. Because AI builds what you ask for. It doesn&#8217;t tell you what you should have asked for instead.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YWth!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c35905-5b61-4c82-9fa6-d8ee5f227809_1376x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YWth!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c35905-5b61-4c82-9fa6-d8ee5f227809_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!YWth!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c35905-5b61-4c82-9fa6-d8ee5f227809_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!YWth!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c35905-5b61-4c82-9fa6-d8ee5f227809_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!YWth!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c35905-5b61-4c82-9fa6-d8ee5f227809_1376x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YWth!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c35905-5b61-4c82-9fa6-d8ee5f227809_1376x768.png" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/46c35905-5b61-4c82-9fa6-d8ee5f227809_1376x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2148898,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/193440988?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c35905-5b61-4c82-9fa6-d8ee5f227809_1376x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YWth!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c35905-5b61-4c82-9fa6-d8ee5f227809_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!YWth!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c35905-5b61-4c82-9fa6-d8ee5f227809_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!YWth!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c35905-5b61-4c82-9fa6-d8ee5f227809_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!YWth!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46c35905-5b61-4c82-9fa6-d8ee5f227809_1376x768.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></figure></div><h2>The Dangerous Illusion</h2><p>The vibe coding wave is real, and I want to be honest: the tools are genuinely powerful. I use them every day. I&#8217;ve built entire products with AI in days that would have taken a team weeks.</p><p>But they&#8217;ve created a dangerous illusion for non-technical founders. The illusion is that <em>building</em> software is the hard part.</p><p>It&#8217;s not. Building is the easy part now. The hard part is knowing whether what you built will hold up under real users, real data, and real integrations. Whether your dependency chain will survive an update. Whether your architecture can handle the load when your first enterprise client goes live.</p><p>The numbers back this up. Fixing a broken AI-built product costs roughly <strong>3x more</strong> than building it right the first time. Researchers found a <strong>37.6% increase in critical vulnerabilities</strong> after just five rounds of AI-assisted iteration. And across enterprise AI projects broadly, <strong>95% of pilots</strong> never make it to production.</p><p>AI gives you speed. It doesn&#8217;t give you judgment.</p><h2>What the Tools Are Good At (And What They&#8217;re Not)</h2><p>I&#8217;m not writing this to bash AI tools. That would be dishonest, I build with them constantly.</p><p>Here&#8217;s what they&#8217;re extraordinary at: prototyping, validation, moving from idea to working demo at a speed that was impossible three years ago. For testing whether an idea has legs, there&#8217;s nothing better.</p><p>Here&#8217;s what they&#8217;re not good at: knowing your business constraints. Designing for the scale you&#8217;ll actually need. Understanding how dependency chains interact across enterprise systems. Telling you &#8220;this architecture won&#8217;t survive your first 100 concurrent users.&#8221;</p><p>The gap isn&#8217;t capability. It&#8217;s judgment. The kind of judgment that comes from having shipped systems that broke, maintained codebases that rotted, and debugged failures at 2am enough times to recognize the warning signs before deployment, not after.</p><h2>The Vibe Code Audit</h2><p>When I look at an AI-built product, there are five things I check. I call it the Vibe Code Audit, because vibe coding deserves a vibe check before it goes live.</p><p><strong>1. Dependencies.</strong> Is this built on a house of cards? AI tools pull in packages freely, often without checking if they&#8217;re maintained, if versions conflict, or if you&#8217;re three layers deep in a dependency that one maintainer abandoned last year. A single broken link in the chain takes everything down.</p><p><strong>2. Architecture.</strong> Is there real separation of concerns, or is everything duct-taped together? Can a human developer read this code and understand what each piece does? AI-generated code often <em>looks</em> clean but has no consistent design philosophy underneath. Every file works, but nothing works <em>together</em>.</p><p><strong>3. Data.</strong> Schema design, migration strategy, backup plan. AI-generated schemas are often structurally correct but operationally fragile. They&#8217;ll handle your demo data perfectly and fall apart when a real user enters something unexpected.</p><p><strong>4. Security.</strong> Authentication, input validation, exposed secrets. One study found over <strong>2,000 vulnerabilities and 400 exposed API keys</strong> in a sample of vibe-coded applications. AI &#8220;handles&#8221; security the way autocomplete &#8220;handles&#8221; grammar. It gets most of it right. The part it gets wrong can ruin you.</p><p><strong>5. Scalability.</strong> Can this serve 10x your current users without a rewrite? AI optimizes for &#8220;working now,&#8221; not &#8220;working at scale.&#8221; That&#8217;s fine for a prototype. It&#8217;s a time bomb for a product you&#8217;re selling.</p><h2>The Real Cost of Skipping the Review</h2><p>The founder I watched didn&#8217;t save the cost of a technical review. He created a problem that now costs more to fix than the review would have cost.</p><p>That&#8217;s the pattern I keep seeing. The rebuild tax isn&#8217;t just a technical expense. It&#8217;s a business one. Delayed launches. Lost customer confidence. Developer hours spent untangling AI-generated spaghetti instead of building new features. Months of momentum, gone.</p><p>The most expensive technical decision a non-technical founder makes isn&#8217;t choosing the wrong stack. It&#8217;s shipping without anyone checking whether the foundation can hold what they&#8217;re building on top of it.</p><h2>When to Bring Someone In</h2><p>I&#8217;m not saying &#8220;hire a CTO.&#8221; I&#8217;m not saying &#8220;stop using AI tools.&#8221; The tools are incredible, and the founders using them to validate ideas quickly are doing exactly the right thing.</p><p>What I am saying: before you deploy anything that touches real users or real money, get a technical review from someone who doesn&#8217;t have a stake in your tech stack. Not the AI vendor. Not the agency that built it. Someone independent who can look at the five areas above and give you an honest answer.</p><p>One conversation. A few hours. It&#8217;s the cheapest insurance in tech.</p><p>Before you ship, ask yourself: has anyone who understands systems, not just tools, looked at what you built?</p><p>If the answer is no, that&#8217;s not a gap in your product. It&#8217;s a gap in your process. And it&#8217;s the easiest one to fix.</p><p><em>I write about technology decisions, building products, and the intersection of engineering and business every week at MacroStack. If this resonated, subscribe for more.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Struggle Was the Point]]></title><description><![CDATA[You weren't built by the answers. You were built by the search.]]></description><link>https://macrostack.dev/p/the-struggle-was-the-point</link><guid isPermaLink="false">https://macrostack.dev/p/the-struggle-was-the-point</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Tue, 07 Apr 2026 06:28:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Z5-y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43b7ebc-c51c-4228-af75-f6f990d74bd9_1376x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve spent 17 years learning to build things the hard way. Debugging at 2am. Rewriting code that kept breaking in ways I didn&#8217;t understand. Shipping products that failed and rebuilding them from scratch.</p><p>Last month, I realized I hadn&#8217;t done any of that in six months.</p><p>Not because the problems got easier. Because I stopped sitting with them long enough to solve them myself. I&#8217;d hit a wall, reach for AI, and the wall would disappear. Fifteen seconds. No friction. No frustration. No learning.</p><p>I love AI. I co-founded an AI company. I build with it every day. And I&#8217;m telling you: something is slipping. Not just for me. Probably for you too.</p><h2>What the Research Actually Shows</h2><p>This isn&#8217;t just a feeling. It&#8217;s being measured.</p><p><a href="https://arxiv.org/abs/2506.08872">MIT Media Lab researchers</a> hooked participants up to EEG monitors while they wrote essays, some with ChatGPT, some with a search engine, some with nothing. The AI group showed the weakest brain connectivity. Worse: when they tried to work independently afterward, their brains failed to reactivate to previous levels. The researchers coined a term for it: <strong>&#8220;cognitive debt.&#8221;</strong> Short-term efficiency creating long-term cognitive costs. Over four months, LLM users consistently underperformed at neural, linguistic, and behavioral levels.</p><p>A <a href="https://www.microsoft.com/en-us/research/publication/the-impact-of-generative-ai-on-critical-thinking-self-reported-reductions-in-cognitive-effort-and-confidence-effects-from-a-survey-of-knowledge-workers/">Microsoft and Carnegie Mellon study</a> analyzed 936 real-world AI-assisted tasks across 319 knowledge workers. The finding that stuck with me: <strong>people who trusted AI the most engaged in the least critical thinking.</strong> Higher confidence in the tool, lower confidence in themselves.</p><p>But the study that stopped me cold came from <a href="https://www.thelancet.com/journals/langas/article/PIIS2468-1253(25)00133-5/abstract">The Lancet</a>. Nineteen experienced doctors, each with over 2,000 colonoscopies, used AI-assisted polyp detection. When the AI was removed, their detection rate dropped from 28.4% to 22.4%. These weren&#8217;t beginners. They were experts who got measurably worse at their job after relying on AI. Researchers called it <strong>the &#8220;Google Maps effect.&#8221;</strong></p><p>Paul Graham put it plainly in <em><a href="https://paulgraham.com/writes.html">Writes and Write-Nots</a></em>: &#8220;A world divided into writes and write-nots is more dangerous than it sounds. It will be a world of thinks and think-nots.&#8221;</p><p>This isn&#8217;t speculation. These are measured outcomes. The pattern is consistent: delegate the thinking, lose the capacity to think.</p><h2>This Isn&#8217;t About Skill Decay. It&#8217;s About Identity.</h2><p>Here&#8217;s the thing: those 2am debugging sessions didn&#8217;t just teach me debugging. They taught me patience. Systems thinking. The ability to hold a problem in my head for hours without reaching for a shortcut.</p><p>The terrible first drafts I wrote for years didn&#8217;t just make me a better writer. They taught me to think clearly, to know what I actually believe versus what sounds good.</p><p>The startups that failed didn&#8217;t just teach me product. They taught me who I am under pressure, and who I&#8217;m not.</p><p>Every skill you&#8217;re proud of was forged in something uncomfortable. Remove the discomfort and you don&#8217;t get the same person. You get someone with the output but without the understanding. Researchers call this <strong>&#8220;productive struggle&#8221;</strong>, the confusion that precedes understanding, the false starts that teach what doesn&#8217;t work, the repetition that builds fluency. It&#8217;s not an obstacle to learning. It IS learning.</p><p>And here&#8217;s the question I can&#8217;t stop asking myself: <em>if I&#8217;d had AI when I was 22, would I be the same person?</em></p><p>I don&#8217;t think I would. And that&#8217;s the part that scares me.</p><h2>My Children Will Never Know a World Without AI</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Z5-y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43b7ebc-c51c-4228-af75-f6f990d74bd9_1376x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Z5-y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43b7ebc-c51c-4228-af75-f6f990d74bd9_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!Z5-y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43b7ebc-c51c-4228-af75-f6f990d74bd9_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!Z5-y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43b7ebc-c51c-4228-af75-f6f990d74bd9_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!Z5-y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43b7ebc-c51c-4228-af75-f6f990d74bd9_1376x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Z5-y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43b7ebc-c51c-4228-af75-f6f990d74bd9_1376x768.png" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d43b7ebc-c51c-4228-af75-f6f990d74bd9_1376x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1812659,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/193431634?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43b7ebc-c51c-4228-af75-f6f990d74bd9_1376x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Z5-y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43b7ebc-c51c-4228-af75-f6f990d74bd9_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!Z5-y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43b7ebc-c51c-4228-af75-f6f990d74bd9_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!Z5-y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43b7ebc-c51c-4228-af75-f6f990d74bd9_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!Z5-y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd43b7ebc-c51c-4228-af75-f6f990d74bd9_1376x768.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>My children are five and seven. They&#8217;re learning to read, to add numbers, to sound out words they don&#8217;t recognize. Last week, my oldest was stuck on a math problem. She sat there for ten minutes, frustrated, erasing, trying again. She eventually got it. You should have seen her face.</p><p>That moment, the frustration and the breakthrough, is where she&#8217;s becoming herself.</p><p><a href="https://www.psychologytoday.com/us/blog/the-algorithmic-mind/202603/adults-lose-skills-to-ai-children-never-build-them">Psychology Today reported</a> something in March that I haven&#8217;t been able to shake: <strong>&#8220;Adults lose skills to AI. Children never build them.&#8221;</strong></p><p>Adults experience atrophy. We lose what we had. But children growing up surrounded by AI experience something worse: absence. They never build the neural pathways in the first place.</p><p>The <a href="https://www.weforum.org/stories/2026/03/our-children-risk-learning-to-be-human-from-a-machine/">World Economic Forum warned</a> the same month that children risk &#8220;learning to be human from machines.&#8221; The tasks we automate, writing, reasoning, creating, struggling, are the building blocks they need to become thoughtful adults.</p><p>My children will never know a world without AI. The struggles that built me into who I am? They might never experience them. Not because anyone took those struggles away. Because nobody thought to protect them.</p><h2>What I&#8217;m Actually Doing About It</h2><p>I&#8217;m not deleting AI. That would be dishonest. It&#8217;s my livelihood. I co-founded an AI company. I write with AI, build with AI, think alongside AI. I love what it makes possible.</p><p>But some friction is sacred. Not all struggle is wasted time. Some of it is the whole point.</p><p>Here&#8217;s what that looks like in practice.</p><h3>For Myself</h3><p><strong>First drafts without AI.</strong> Architecture decisions. Strategy docs. Emails that matter. The thinking happens in the drafting. The MIT study showed brains don&#8217;t activate the same way when AI does the initial pass. So the first pass is mine. AI refines later.</p><p><strong>Debug before I ask.</strong> When something breaks, I give myself 15 minutes before reaching for help. That&#8217;s where the instinct forms, the pattern recognition that separates a senior engineer from someone who just has the title. The instinct only builds through repetition of the struggle.</p><p><strong>The &#8220;why&#8221; check.</strong> One question before reaching for AI: am I delegating drudgework, or am I avoiding thinking? Formatting a document is drudgework. Structuring an argument is thinking. Generating boilerplate code is drudgework. Designing the architecture is thinking. The <a href="https://www.microsoft.com/en-us/research/publication/the-impact-of-generative-ai-on-critical-thinking-self-reported-reductions-in-cognitive-effort-and-confidence-effects-from-a-survey-of-knowledge-workers/">Microsoft/CMU study</a> found the workers who trusted AI the most checked it the least. Know the difference.</p><p><strong>Own the architecture.</strong> AI can write the code. I design the system. Architecture is judgment, and judgment is the sum of every wrong decision I made and learned from. You can&#8217;t outsource the formation of judgment. Only the output it already produced.</p><p><strong>Unplugged reps.</strong> Once a week, I work without AI for an hour. Code a feature. Write a post. Solve a problem end to end. <a href="https://addyo.substack.com/p/avoiding-skill-atrophy-in-the-age">Addy Osmani calls this essential</a>: &#8220;Keep honing your debugging instincts and system thinking even if an AI gives you a shortcut.&#8221; Think of it like a musician who still practices scales. The performance uses technology. The skill is built without it.</p><h3>For My Children</h3><p><strong>Protect the struggle window.</strong> When they&#8217;re stuck on homework, I don&#8217;t reach for my phone. Ten minutes of confusion before any help. That confusion isn&#8217;t the obstacle to learning. It IS the learning.</p><p><strong>Ask questions, not answers.</strong> &#8220;What have you tried?&#8221; and &#8220;What do you think?&#8221; before solving anything. The <a href="https://www.psychologytoday.com/us/blog/the-algorithmic-mind/202603/adults-lose-skills-to-ai-children-never-build-them">Psychology Today research</a> showed that when children never form independent reasoning, AI&#8217;s reasoning becomes theirs. The antidote is showing them their own thinking matters.</p><p><strong>Protect the analog.</strong> Drawing by hand. Building with blocks. Writing on paper. Playing outside with no screen. These aren&#8217;t nostalgic luxuries. They build neural pathways that screens can&#8217;t replicate. For a five and seven-year-old, these experiences are literally building their brains.</p><p><strong>Co-use, never solo-use.</strong> When they eventually use AI, we&#8217;ll do it together. &#8220;Do you think the AI got this right? How would you check?&#8221; The habit of questioning is the habit of thinking.</p><p><strong>Celebrate the effort, not just the result.</strong> Not just the correct answer. The 20 minutes they spent stuck on problem 3 before figuring it out. Make struggle feel valuable, not wasteful.</p><p>Because the research is clear, and honestly, so is my gut: the struggle was never the obstacle. The struggle was the point.</p><div><hr></div><p>The things that built you weren&#8217;t efficient. They were hard and slow and frustrating.</p><p>And they were yours.</p><p>Don&#8217;t outsource that. Not from yourself. Not from the people you&#8217;re raising.</p><p><em>What&#8217;s one thing you&#8217;ve stopped struggling with that you wish you hadn&#8217;t? And if you&#8217;re raising kids, what struggle are you protecting for them?</em></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[You're Renting AI. Here's How to Own It.]]></title><description><![CDATA[Most people only know one way to pay for AI. There's another &#8212; and it changes everything.]]></description><link>https://macrostack.dev/p/youre-renting-ai-heres-how-to-own</link><guid isPermaLink="false">https://macrostack.dev/p/youre-renting-ai-heres-how-to-own</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Wed, 01 Apr 2026 00:43:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!plgU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7004c44b-10a0-4b03-9f01-65051821ac25_5305x3537.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every meetup, every tech conversation, every Slack thread: tokens, tokens, tokens. &#8220;<em>How much does Claude cost?</em>&#8221; &#8220;<em>GPT-4 is expensive</em>.&#8221; &#8220;<em>My agent burned through $200 last week.</em>&#8221;</p><p>Nobody asks the obvious question: what if you didn&#8217;t pay per token at all?</p><p>Most people only know one way to use AI. You sign up, you get an API key, and a meter starts running. Every prompt, every response, every agent loop, billed by the token. You&#8217;ve accepted this like it&#8217;s the only option.</p><p>It&#8217;s not.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://macrostack.dev/subscribe?"><span>Subscribe now</span></a></p><h2>You&#8217;re Taking Taxis Everywhere</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!plgU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7004c44b-10a0-4b03-9f01-65051821ac25_5305x3537.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!plgU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7004c44b-10a0-4b03-9f01-65051821ac25_5305x3537.jpeg 424w, https://substackcdn.com/image/fetch/$s_!plgU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7004c44b-10a0-4b03-9f01-65051821ac25_5305x3537.jpeg 848w, https://substackcdn.com/image/fetch/$s_!plgU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7004c44b-10a0-4b03-9f01-65051821ac25_5305x3537.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!plgU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7004c44b-10a0-4b03-9f01-65051821ac25_5305x3537.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!plgU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7004c44b-10a0-4b03-9f01-65051821ac25_5305x3537.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7004c44b-10a0-4b03-9f01-65051821ac25_5305x3537.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1241424,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/192739015?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7004c44b-10a0-4b03-9f01-65051821ac25_5305x3537.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!plgU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7004c44b-10a0-4b03-9f01-65051821ac25_5305x3537.jpeg 424w, https://substackcdn.com/image/fetch/$s_!plgU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7004c44b-10a0-4b03-9f01-65051821ac25_5305x3537.jpeg 848w, https://substackcdn.com/image/fetch/$s_!plgU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7004c44b-10a0-4b03-9f01-65051821ac25_5305x3537.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!plgU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7004c44b-10a0-4b03-9f01-65051821ac25_5305x3537.jpeg 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><p>Think of per-token AI like a taxi. Meter running from the moment you get in. Surge pricing when demand is high. The driver profits from taking the long route, and you can&#8217;t really tell if the route is long because you&#8217;re in the back seat staring at your phone.</p><p>That&#8217;s the token economy. Every API call goes through someone else&#8217;s infrastructure, metered per mile. The more your agent thinks, the higher the fare. And you have no say in the route.</p><p>The alternative is owning a car. Upfront cost, sure. And yes, you still pay for petrol. But petrol costs the same per litre whether you&#8217;re driving to work or across the country. There&#8217;s no surge. No one profits from the longer route. You control the keys, the route, and the pace.</p><p>Most people don&#8217;t realize they can buy the car.</p><h2>Why This Matters More Than You Think</h2><p>Here&#8217;s the thing: the token model worked fine when AI was a toy. You asked ChatGPT a question, got an answer, moved on. A few cents here, a few cents there.</p><p>But we&#8217;re not in that world anymore. Agentic AI burns tokens autonomously. Your coding agent doesn&#8217;t ask one question, it asks fifty in a loop. It reads files, generates code, tests it, iterates, reads more files, generates more code. One task can consume thousands of tokens without you ever hitting enter.</p><p>The economics flip fast. Enterprise AI cloud spend tripled from $11.5B to $37B in a single year. Inference, the cost of actually running AI, now eats 55% of all AI infrastructure spending, surpassing training for the first time. And here&#8217;s the part nobody mentions: OpenAI currently spends $1.35 for every $1 it earns. Current API prices are <em>subsidized</em>. When those subsidies end, and they will, your bill goes up.</p><p>The provider has no incentive to make your agent think less. Token greed is baked into the model. The longer the route, the higher the fare.</p><h2>The Car Nobody Told You About</h2><p>Open-source models have gotten remarkably good. Qwen handles coding tasks. Llama covers general reasoning. Flux 2 generates images. These aren&#8217;t hobby projects or research demos. They&#8217;re production-grade models you can run yourself.</p><p>Where do you run them? On your own hardware, like an NVIDIA GB10 sitting on your desk. Or on cloud GPU instances, like an AWS g5. Either way, you&#8217;re paying for compute time, not tokens. No meter running. Your agent can think as long as it needs to, and the fare doesn&#8217;t change.</p><p>The numbers are real: open-source models achieve roughly 80% of proprietary model coverage at 86% lower cost. Once you cross about 100 million tokens per day with consistent utilization, self-hosting saves 40-60% compared to API pricing.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7W_B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93150e55-eabc-4da1-a19e-9f1ed6f6ade7_3832x2156.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7W_B!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93150e55-eabc-4da1-a19e-9f1ed6f6ade7_3832x2156.jpeg 424w, https://substackcdn.com/image/fetch/$s_!7W_B!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93150e55-eabc-4da1-a19e-9f1ed6f6ade7_3832x2156.jpeg 848w, https://substackcdn.com/image/fetch/$s_!7W_B!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93150e55-eabc-4da1-a19e-9f1ed6f6ade7_3832x2156.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!7W_B!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93150e55-eabc-4da1-a19e-9f1ed6f6ade7_3832x2156.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7W_B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93150e55-eabc-4da1-a19e-9f1ed6f6ade7_3832x2156.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/93150e55-eabc-4da1-a19e-9f1ed6f6ade7_3832x2156.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;With Nvidia's GB10 Superchip, I'm Running Serious AI Models in My Living  Room. You Can, Too | PCMag&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="With Nvidia's GB10 Superchip, I'm Running Serious AI Models in My Living  Room. You Can, Too | PCMag" title="With Nvidia's GB10 Superchip, I'm Running Serious AI Models in My Living  Room. You Can, Too | PCMag" srcset="https://substackcdn.com/image/fetch/$s_!7W_B!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93150e55-eabc-4da1-a19e-9f1ed6f6ade7_3832x2156.jpeg 424w, https://substackcdn.com/image/fetch/$s_!7W_B!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93150e55-eabc-4da1-a19e-9f1ed6f6ade7_3832x2156.jpeg 848w, https://substackcdn.com/image/fetch/$s_!7W_B!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93150e55-eabc-4da1-a19e-9f1ed6f6ade7_3832x2156.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!7W_B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93150e55-eabc-4da1-a19e-9f1ed6f6ade7_3832x2156.jpeg 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><figcaption class="image-caption">DELL Pro Max GB10</figcaption></figure></div><h2>When to Hail a Cab, When to Buy the Car</h2><p>I&#8217;m not saying delete your API keys. The smart play is both.</p><p><strong>Keep hailing cabs when:</strong></p><ul><li><p>You&#8217;re experimenting with a new use case</p></li><li><p>Volume is low and unpredictable</p></li><li><p>You need frontier intelligence (the absolute best reasoning)</p></li></ul><p>Below 50 million tokens per day, APIs are almost always cheaper. The overhead of managing your own infrastructure isn&#8217;t worth it for the occasional ride.</p><p><strong>Buy the car when:</strong></p><ul><li><p>Your workload is stable and predictable</p></li><li><p>Volume is high and growing</p></li><li><p>Data sensitivity matters</p></li><li><p>You want your agent to think without a cost ceiling</p></li></ul><p>I run a hybrid setup. Frontier models for exploration and complex reasoning. Self-hosted models for the production workloads where the pattern is known and the volume is steady. The difference in my monthly costs isn&#8217;t marginal, it&#8217;s dramatic.</p><h2>Who Is AI Actually Working For?</h2><p>This is the question underneath all the token math.</p><p>When you pay per token, your AI works for the provider first and you second. Every efficiency improvement they make goes to their margin, not your savings. Your data flows through their systems. Your agent&#8217;s behavior is shaped by their rate limits, their policies, their pricing changes.</p><p>When you self-host, the AI works for you. No cost anxiety when your agent needs to think harder. No external dependency deciding what your models can and can&#8217;t do. No surprise pricing changes at the worst possible time.</p><p>Token-metered AI means renting intelligence. Self-hosted AI means owning it.</p><h2>The Question Worth Asking</h2><p>The inference market exceeds $50 billion in 2026. Most of that money flows from people who never stopped hailing cabs.</p><p>Next time someone at a meetup talks about token costs, ask them: have you considered not paying per token at all?</p><p>The car is parked outside. The keys are on the table. The only question is whether you&#8217;re ready to drive.</p><p><em>I run a hybrid setup across frontier APIs and self-hosted models. If you want the full breakdown, the exact models, the hardware, the real monthly costs, and when I use which, I share that with MacroStack subscribers. Subscribe if you want it.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[93% of Engineers Use AI. Productivity Went Up 10%. Something Doesn't Add Up.]]></title><description><![CDATA[Everyone's diagnosing why AI only gives 10%. Nobody's explaining why the top quartile gets 2x.]]></description><link>https://macrostack.dev/p/engineers-use-ai-productivity-went-up-something-doesnt-add-up</link><guid isPermaLink="false">https://macrostack.dev/p/engineers-use-ai-productivity-went-up-something-doesnt-add-up</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Thu, 19 Mar 2026 02:45:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!27vm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9414e2-c862-4251-91d6-2a3a8a089736_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Jellyfish just analyzed 20 million pull requests across 400 engineering teams. AI tool usage is up 65%. PR throughput? Up 9.97%.</p><p>That&#8217;s not a rounding error. That&#8217;s a signal.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!27vm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9414e2-c862-4251-91d6-2a3a8a089736_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!27vm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9414e2-c862-4251-91d6-2a3a8a089736_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!27vm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9414e2-c862-4251-91d6-2a3a8a089736_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!27vm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9414e2-c862-4251-91d6-2a3a8a089736_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!27vm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9414e2-c862-4251-91d6-2a3a8a089736_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!27vm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9414e2-c862-4251-91d6-2a3a8a089736_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c9414e2-c862-4251-91d6-2a3a8a089736_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:144238,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/191436946?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9414e2-c862-4251-91d6-2a3a8a089736_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!27vm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9414e2-c862-4251-91d6-2a3a8a089736_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!27vm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9414e2-c862-4251-91d6-2a3a8a089736_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!27vm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9414e2-c862-4251-91d6-2a3a8a089736_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!27vm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c9414e2-c862-4251-91d6-2a3a8a089736_1920x1080.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></figure></div><p>The industry spent two years telling you AI would change everything. Billions in tool subscriptions. Every IDE has a copilot now. Every team has a ChatGPT tab open somewhere. And the aggregate result across 20 million PRs is... ten percent.</p><p>But here&#8217;s what makes the data interesting. The top-quartile AI adopters in the same study see <strong>2x throughput</strong>. Same tools. Same models. Wildly different outcomes. So the question isn&#8217;t whether AI works. It clearly does, for some. The question is why most engineers aren&#8217;t getting there.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://macrostack.dev/subscribe?"><span>Subscribe now</span></a></p><p></p><h2><strong>The 39-Point Perception Gap</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tHEi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b97751e-afd6-4b66-95da-aa8a4260d4ec_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tHEi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b97751e-afd6-4b66-95da-aa8a4260d4ec_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!tHEi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b97751e-afd6-4b66-95da-aa8a4260d4ec_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!tHEi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b97751e-afd6-4b66-95da-aa8a4260d4ec_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!tHEi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b97751e-afd6-4b66-95da-aa8a4260d4ec_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tHEi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b97751e-afd6-4b66-95da-aa8a4260d4ec_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b97751e-afd6-4b66-95da-aa8a4260d4ec_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:137679,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/191436946?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b97751e-afd6-4b66-95da-aa8a4260d4ec_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tHEi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b97751e-afd6-4b66-95da-aa8a4260d4ec_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!tHEi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b97751e-afd6-4b66-95da-aa8a4260d4ec_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!tHEi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b97751e-afd6-4b66-95da-aa8a4260d4ec_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!tHEi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b97751e-afd6-4b66-95da-aa8a4260d4ec_1920x1080.png 1456w" sizes="100vw"></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>Here&#8217;s the uncomfortable part. A controlled study gave experienced open-source developers real tasks with and without AI assistance. The developers using AI were 19% <em>slower</em>. But when asked? They said they were 20% faster.</p><p>That&#8217;s a 39-point gap between perception and reality. It might be the most important number in this entire conversation.</p><p>It explains why nobody&#8217;s panicking. You <em>feel</em> faster. The autocomplete fires. The chat gives you answers. Code appears on screen. You&#8217;re moving. But the Faros AI data across 10,000 developers tells a different story: teams with high AI adoption merged 98% more pull requests, but review time increased 91% and bugs went up 9%. DORA metrics? Flat. More PRs, bigger PRs, slower reviews, more bugs, same throughput.</p><p>More code is not more output.</p><h2><strong>A 2026 Tool With a 2023 Workflow</strong></h2><p>Most engineers bolted AI onto an unchanged workflow. That&#8217;s the pattern behind the 10%.</p><p>Using AI as autocomplete, tab-completing lines of code slightly faster. Still reading every line. Still the bottleneck. Saved keystrokes, not hours. Copy-pasting code into a chat window and asking &#8220;what&#8217;s wrong with this?&#8221; No codebase context. No architecture awareness. The AI gives generic answers because it received a generic question.</p><p>And the biggest one: prompting without structure. No project conventions. No architectural constraints. No patterns to follow. It&#8217;s like handing a contractor a blank sheet of paper and expecting production-quality work on day one. You wouldn&#8217;t do that to a junior developer. But most engineers do it to AI every single session.</p><p>Gergely Orosz wrote about this two days ago. Uber built twelve internal systems just to deal with the quality problems from AI-generated code. When the tool generates more code without the right context, you don&#8217;t get productivity. You get cleanup.</p><p>The problem isn&#8217;t that AI doesn&#8217;t work. It&#8217;s that most teams are using a 2026 tool with a 2023 workflow.</p><h2><strong>What the Top Quartile Does Differently</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UMYS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbca5d39b-3595-44d0-89dc-8ef57d86d887_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UMYS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbca5d39b-3595-44d0-89dc-8ef57d86d887_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!UMYS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbca5d39b-3595-44d0-89dc-8ef57d86d887_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!UMYS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbca5d39b-3595-44d0-89dc-8ef57d86d887_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!UMYS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbca5d39b-3595-44d0-89dc-8ef57d86d887_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UMYS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbca5d39b-3595-44d0-89dc-8ef57d86d887_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bca5d39b-3595-44d0-89dc-8ef57d86d887_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:178243,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/191436946?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbca5d39b-3595-44d0-89dc-8ef57d86d887_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UMYS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbca5d39b-3595-44d0-89dc-8ef57d86d887_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!UMYS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbca5d39b-3595-44d0-89dc-8ef57d86d887_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!UMYS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbca5d39b-3595-44d0-89dc-8ef57d86d887_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!UMYS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbca5d39b-3595-44d0-89dc-8ef57d86d887_1920x1080.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 Jellyfish study has another finding that most coverage is ignoring: centralized codebases with structured context see <strong>4x productivity gains</strong>. Distributed architectures with scattered context? Near zero.</p><p>Context is the multiplier. And the engineers getting 2x aren&#8217;t using different tools. They&#8217;re operating differently.</p><p>They treat context as infrastructure. Not a prompt you type each time, but an architecture document the AI reads every session. Project conventions, patterns, constraints, all front-loaded. The AI starts every conversation already knowing how the codebase works. Most engineers skip this entirely and wonder why the output feels generic.</p><p>They decompose before they delegate. Instead of handing AI one big task and getting one mediocre result, they break work into focused, parallelizable units. Four agents, four isolated branches, each with a clear scope. The decision of <em>what</em> to parallelize matters more than the parallelism itself. One vague task produces vague output. Four focused tasks produce four solid results.</p><p>They shift from coder to architect. They review outcomes, not keystrokes. They validate that the system behaves correctly instead of reading every line the AI wrote. This is the hardest mental shift for engineers. We built our identities around writing code. The top quartile is building their identity around designing systems that write code.</p><p>And they compound their workflows. Every solved problem becomes a reusable pattern. Templates, skills, conventions that the AI can reference next time. Most engineers start from zero each session. Top performers build institutional knowledge into their AI setup. The AI doesn&#8217;t get better because the model improves. It gets better because the context improves.</p><p>Anthropic&#8217;s own research found that 27% of AI-assisted work consists of tasks that wouldn&#8217;t have been done otherwise. The top quartile isn&#8217;t just doing old work faster. They&#8217;re doing new work that wasn&#8217;t possible before.</p><h2><strong>One Data Point</strong></h2><p>I&#8217;ve been operating this way for over a year now. 5.1 billion tokens processed in two months. 587 sessions. Three companies running on this operating model. I&#8217;ve written about the specific workflow before, the parallel agents, the skills system, the compounding context. If you want the tactical depth, it&#8217;s there.</p><p>This isn&#8217;t a pitch for my setup. It&#8217;s a recognition that the setup matters more than the subscription.</p><p>And it&#8217;s not perfect. Agents go in circles on complex architectural decisions. Long sessions drift as context degrades. Sometimes I spend more time correcting output than it would&#8217;ve taken to write it myself. Customer conversations, product strategy, the ground work, that&#8217;s still entirely human. Maybe always will be.</p><p>But the difference between my results and the industry average isn&#8217;t talent. It&#8217;s the operating model.</p><h2><strong>The AI Operating Model Gap</strong></h2><p>Here&#8217;s the takeaway. AI doesn&#8217;t make you faster. Your operating model makes AI faster.</p><p>Most engineers upgraded the tool and kept the workflow. The top quartile upgraded the workflow.</p><p>The 93% adoption rate isn&#8217;t the story. The 10% gain isn&#8217;t the story. <strong>The gap between 10% and 2x is the story.</strong> And that gap has a name: the AI Operating Model Gap.</p><p>If you&#8217;re getting 10% from AI right now, you&#8217;re not doing it wrong. You&#8217;re just running new hardware on old software.</p><p>Next week, I&#8217;m writing the operating model blueprint, how to audit your current AI workflow and upgrade it step by step. This piece was the why. That one&#8217;s the playbook.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Do It Anyways]]></title><description><![CDATA[Three words that built every startup, survived every failure, and got me through every 2AM decision]]></description><link>https://macrostack.dev/p/do-it-anyways</link><guid isPermaLink="false">https://macrostack.dev/p/do-it-anyways</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Thu, 12 Mar 2026 00:25:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!lq7p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36acaff-e8d6-41cf-9a7e-880b1de72b43_1376x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You&#8217;ve been waiting for the right time.</p><p>The right time to start that side project. To have that hard conversation with your manager. To finally take the leap on the idea you&#8217;ve been sketching in your notes app for months. You&#8217;re waiting for the calendar to clear, the savings to hit a number, the kids to get a little older, the market to stabilize.</p><p>Here&#8217;s the truth: <strong>the right time doesn&#8217;t exist.</strong> It never has. And every week you spend waiting is a week someone less qualified, less prepared, and less talented than you is out there building the thing you keep postponing.</p><p>The only people who build anything meaningful are the ones who start before they&#8217;re ready.</p><p>Do it anyways. Three words. That&#8217;s the entire operating 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_!lq7p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36acaff-e8d6-41cf-9a7e-880b1de72b43_1376x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lq7p!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36acaff-e8d6-41cf-9a7e-880b1de72b43_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!lq7p!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36acaff-e8d6-41cf-9a7e-880b1de72b43_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!lq7p!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36acaff-e8d6-41cf-9a7e-880b1de72b43_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!lq7p!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36acaff-e8d6-41cf-9a7e-880b1de72b43_1376x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lq7p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36acaff-e8d6-41cf-9a7e-880b1de72b43_1376x768.png" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f36acaff-e8d6-41cf-9a7e-880b1de72b43_1376x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1653545,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/190676701?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36acaff-e8d6-41cf-9a7e-880b1de72b43_1376x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lq7p!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36acaff-e8d6-41cf-9a7e-880b1de72b43_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!lq7p!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36acaff-e8d6-41cf-9a7e-880b1de72b43_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!lq7p!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36acaff-e8d6-41cf-9a7e-880b1de72b43_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!lq7p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff36acaff-e8d6-41cf-9a7e-880b1de72b43_1376x768.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></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://macrostack.dev/subscribe?"><span>Subscribe now</span></a></p><p></p><h2><strong>The Engineer&#8217;s Trap</strong></h2><p>You know why this hits engineers harder than anyone? We&#8217;re trained to optimize. We design systems for reliability. We refactor before shipping. We wait for the right architecture, the right stack, the right abstraction.</p><p>That instinct is brilliant for code. It&#8217;s devastating for life.</p><p>Because life doesn&#8217;t have a staging environment. There&#8217;s no dry run for starting a company, no rollback for the years you spent thinking about it instead of doing it. The optimization mindset that makes you a great engineer is the same mindset that keeps you stuck in a loop of &#8220;not yet.&#8221;</p><p>You&#8217;re not being careful. You&#8217;re being comfortable. And comfortable doesn&#8217;t build anything.</p><h2><strong>What &#8220;Anyways&#8221; Actually Looks Like</strong></h2><p><strong>2021</strong>. I had a toddler, a newborn, an Executive MBA program at Quantic, and a full-time engineering leadership role at Criteo. My co-founder called and said, &#8220;Let&#8217;s build this.&#8221;</p><p>Every logical bone in my body said wait. The timing was objectively terrible.</p><p>I did it anyways.</p><p>We bootstrapped with personal capital, hired 5 developers on day one, made every first-time founder mistake in the book. By month three we&#8217;d scaled down to 2 developers and rebuilt from scratch around what customers actually needed. In roughly 18 months, we hit a seven-figure annual run rate. Eventually acquired.</p><p>But here&#8217;s the part people don&#8217;t talk about. That wasn&#8217;t a single moment of courage. It was a decision I had to make again every single morning. Ship the feature when you&#8217;re exhausted. Take the customer call at midnight. Choose the startup over sleep, over rest, over the easy path.</p><p><em>Do it anyways</em> isn&#8217;t a one-time act. It&#8217;s a repeating operating principle.</p><h2><strong>The Pattern That Keeps Showing Up</strong></h2><p>That same principle followed me everywhere.</p><p>When my current startup needed to pivot, not once, not twice, but three times in six months, from an AI journal to a home collaboration tool to an AI calendar, every pivot meant admitting the previous version wasn&#8217;t working. Every pivot felt like starting over.</p><p>I did it anyways. Each time.</p><p>The people who build things aren&#8217;t braver than you. They&#8217;re not smarter, more connected, or more ready. They just decided that feeling uncertain doesn&#8217;t get a vote.</p><h2><strong>The Cost Is Real</strong></h2><p>I&#8217;m not going to romanticize this.</p><p>The TinyWhale years were brutal. I missed moments with my kids. I skipped dinners. I asked my family to carry weight they didn&#8217;t sign up for. The sacrifice wasn&#8217;t theoretical. It was bedtimes I wasn&#8217;t there for and weekends that disappeared into Slack threads.</p><p>If someone tells you this path is painless, they&#8217;re lying to you.</p><p>But here&#8217;s what I know: the alternative is worse. Not because waiting is lazy. Because waiting while knowing you should act is its own kind of suffering. It&#8217;s slow, it&#8217;s quiet, and it accumulates. That voice in the back of your head asking <em>what if I had just started?</em> never goes away.</p><p>The cost of action is real. The cost of inaction is invisible, but it compounds.</p><h2><strong>This Isn&#8217;t Hustle Culture</strong></h2><p>Let me be clear: &#8220;do it anyways&#8221; is not &#8220;grind until you break.&#8221; That&#8217;s a different conversation, and a toxic one.</p><p>This is about <strong>agency</strong>. The ability to decouple action from feeling.</p><p>You will feel scared. You will feel unprepared. You will look at your calendar, your bank account, your responsibilities, and think <em>this is not the time.</em></p><p>Feel all of it. Then do it anyways.</p><p>Not because feelings don&#8217;t matter. Because feelings are terrible project managers. They&#8217;ll always find a reason to delay. They&#8217;ll always flag a risk that hasn&#8217;t materialized. They&#8217;ll always recommend waiting for more data.</p><p>You don&#8217;t need more data. You need a first commit.</p><h2><strong>The Question You Already Know the Answer To</strong></h2><p>What&#8217;s the thing you&#8217;ve been telling yourself you&#8217;ll start &#8220;when the time is right&#8221;?</p><p>The startup. The side project. The conversation. The career move. The thing that lives in your notes app, your late-night browser tabs, the shower thoughts you never act on.</p><p>You already know what it is.</p><p>The timing will never be perfect. The conditions will never align. The risk will never fully disappear.</p><p>Do it anyways.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Side Income Ideas That Actually Work for Engineers]]></title><description><![CDATA[Not dropshipping. Not crypto. Not another generic SaaS tutorial.]]></description><link>https://macrostack.dev/p/side-income-ideas-that-actually-work</link><guid isPermaLink="false">https://macrostack.dev/p/side-income-ideas-that-actually-work</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Thu, 05 Mar 2026 00:25:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!x82L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6153790f-54ca-49db-ae91-cfb29cca520d_1376x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every time I see &#8220;side income ideas for developers&#8221; content, it&#8217;s the same list. Build a SaaS. Sell a course. Start dropshipping. I tried none of that. Instead, I&#8217;m going to share the three paths that actually worked for me, from a side project that grew into a seven-figure company, to consulting that evolved into products, to a newsletter that opened doors I didn&#8217;t expect.</p><p>None of it came from following trends. It came from solving problems I could already see.</p><p>Here&#8217;s the thing: engineers have an advantage most people don&#8217;t. You build things. You see how systems break. You understand which problems are worth solving. Your day job isn&#8217;t just a paycheck. It&#8217;s a research lab for your next income stream.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!x82L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6153790f-54ca-49db-ae91-cfb29cca520d_1376x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!x82L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6153790f-54ca-49db-ae91-cfb29cca520d_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!x82L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6153790f-54ca-49db-ae91-cfb29cca520d_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!x82L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6153790f-54ca-49db-ae91-cfb29cca520d_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!x82L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6153790f-54ca-49db-ae91-cfb29cca520d_1376x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!x82L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6153790f-54ca-49db-ae91-cfb29cca520d_1376x768.png" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6153790f-54ca-49db-ae91-cfb29cca520d_1376x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1714280,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/189882275?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6153790f-54ca-49db-ae91-cfb29cca520d_1376x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!x82L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6153790f-54ca-49db-ae91-cfb29cca520d_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!x82L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6153790f-54ca-49db-ae91-cfb29cca520d_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!x82L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6153790f-54ca-49db-ae91-cfb29cca520d_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!x82L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6153790f-54ca-49db-ae91-cfb29cca520d_1376x768.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></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://macrostack.dev/subscribe?"><span>Subscribe now</span></a></p><p></p><h2><strong>It Doesn&#8217;t Have to Be a Leap</strong></h2><p>Most engineers I talk to think starting something on the side means eventually going all-in. Quitting the job, the whole founder arc. That thought alone is enough to kill the idea before it starts.</p><p>But that&#8217;s not how it worked for me. The real path looks more like this: <strong>you notice a problem, you build something small, it starts generating value, and then you decide how far to take it.</strong> Side project becomes side income. Side income becomes a side company. And if you want, the side company becomes the main thing. It&#8217;s not a cliff. It&#8217;s a drift. You choose where you stop.</p><h2><strong>Path 1: The Side Project That Becomes a Company</strong></h2><p>While I was still at Criteo, a colleague and I kept noticing the same gap in how educators, teachers, and coaches operate their education business. Teachers and students needed better tools, and nobody was building them well. We weren&#8217;t planning to start a company. We just started building something that solved it.</p><p>That became TinyWhale, an edtech platform. It started small, stayed small for a while, then grew into a real company with a seven-figure annual run rate. Eventually it was acquired. The whole thing began as two people solving a problem they understood because they were close enough to see it.</p><p>You don&#8217;t need to build an edtech company. But if you work in fintech, you probably see broken onboarding flows every day. If you&#8217;re in logistics, you know which manual processes are begging to be automated. The product idea isn&#8217;t somewhere out there. It&#8217;s in the Slack channel where your team keeps complaining about the same thing.</p><p>The pattern: <strong>domain knowledge + builder skills + someone from your network who sees the same problem.</strong> Most engineers already have all three. They&#8217;re just not looking at their day job as the source.</p><h2><strong>Path 2: Sell Your Expertise Before You Build Anything</strong></h2><p>FusionOne started as consulting. Technical strategy and cloud architecture for startups. No product, no platform, just me advising founders on decisions I&#8217;d already made dozens of times in my career. Straightforward. Bill for your expertise.</p><p>This is the most underrated path for engineers. You&#8217;ve spent years solving hard problems. Startups and smaller companies face those exact same problems right now, and they&#8217;ll pay someone who&#8217;s already been through it. Freelance technical audits, architecture reviews, migration planning, system design advisory. These aren&#8217;t hypothetical. Companies need them today.</p><p>The beauty of consulting is you start earning immediately. No product to build, no users to acquire. Just your experience, packaged as advice. Start with one client from your network. See where it goes.</p><p>For me, it evolved further. I started building products from the problems I&#8217;d seen firsthand. But that was a natural evolution, not the plan from day one.</p><p>The pattern: <strong>every job you take deepens the expertise that someone else will pay for.</strong> Consulting is the fastest path from engineer to side income, because you&#8217;re monetizing what you already know.</p><h2><strong>Path 3: Content and Audience</strong></h2><p>This one surprised me. MacroStack started as a way to share what I was learning, not as a business. But building an audience and writing consistently compounds. It opens doors to partnerships, mentorship, and credibility that feeds everything else.</p><p>You don&#8217;t need to be famous. You just need to be useful to a specific group of people. Engineers writing for engineers is one of the highest-trust content relationships out there.</p><p>This doesn&#8217;t have to be a newsletter. A niche technical blog, a YouTube channel walking through real architecture decisions, a paid community around a specific domain. The format matters less than the specificity. &#8220;DevOps tips&#8221; is noise. &#8220;Kubernetes cost optimization for mid-size SaaS companies&#8221; is a business.</p><h2><strong>The AI Multiplier</strong></h2><p>Here&#8217;s what changed everything: AI collapsed the barrier between &#8220;I have an idea&#8221; and &#8220;I have a product.&#8221; What used to require a team of three to five people, I now build alone in days. You don&#8217;t need to hire anyone to test an idea anymore. You just need a weekend and the right tools.</p><h2><strong>What Doesn&#8217;t Work</strong></h2><p>Building a SaaS with no domain knowledge. You&#8217;ll build something nobody wants. Dropshipping, crypto trading, anything that doesn&#8217;t leverage the fact that you&#8217;re an engineer. If you&#8217;re competing with non-engineers on a non-engineering idea, you&#8217;ve already lost your biggest advantage.</p><p>The generic advice is generic for a reason. It works for everyone a little. It works for no one a lot.</p><h2><strong>The Question</strong></h2><p>Every engineer I know complains about something at work. A broken process. A manual task that should be automated. A workflow that wastes hours every week.</p><p>That&#8217;s not a complaint. That&#8217;s a business.</p><p>What pain do you see every day that nobody&#8217;s solving?</p><p><em>If this resonated, I write about engineering, leverage, and building beyond code every week at MacroStack. Subscribe if you want more like this.</em></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Agent Gap: Why the Biggest AI Opportunity Isn't in Engineering]]></title><description><![CDATA[Anthropic just mapped millions of agent interactions. The biggest finding isn't what agents can do, it's where they aren't.]]></description><link>https://macrostack.dev/p/the-agent-gap-why-the-biggest-ai</link><guid isPermaLink="false">https://macrostack.dev/p/the-agent-gap-why-the-biggest-ai</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Mon, 23 Feb 2026 00:19:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dX_w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e3887c4-a02c-45b6-bf66-446c0d11d98c_1024x647.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Anthropic just <a href="https://www.anthropic.com/research/measuring-agent-autonomy">published a study</a> on millions of AI agent interactions. The finding that stopped me wasn&#8217;t about what agents can do. It was about where they are.</p><p><strong>50% of all AI agents are deployed for software engineering.</strong></p><p>Not 50% of tech companies. Not 50% of Silicon Valley. Half of all agents, everywhere. We built agents to write code, review code, test code, deploy code. And then we built more agents to write more code.</p><p>Meanwhile, doctors still fill out forms by hand. Lawyers still review contracts line by line. Supply chain managers still dig through thousands of emails looking for a rejected quotation worth six figures.</p><p>Here&#8217;s the thing: the biggest opportunity in AI isn&#8217;t making better coding agents. It&#8217;s everything else.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dX_w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e3887c4-a02c-45b6-bf66-446c0d11d98c_1024x647.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dX_w!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e3887c4-a02c-45b6-bf66-446c0d11d98c_1024x647.png 424w, https://substackcdn.com/image/fetch/$s_!dX_w!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e3887c4-a02c-45b6-bf66-446c0d11d98c_1024x647.png 848w, https://substackcdn.com/image/fetch/$s_!dX_w!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e3887c4-a02c-45b6-bf66-446c0d11d98c_1024x647.png 1272w, https://substackcdn.com/image/fetch/$s_!dX_w!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e3887c4-a02c-45b6-bf66-446c0d11d98c_1024x647.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dX_w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e3887c4-a02c-45b6-bf66-446c0d11d98c_1024x647.png" width="1024" height="647" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2e3887c4-a02c-45b6-bf66-446c0d11d98c_1024x647.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:647,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1097337,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/188803896?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e3887c4-a02c-45b6-bf66-446c0d11d98c_1024x647.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dX_w!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e3887c4-a02c-45b6-bf66-446c0d11d98c_1024x647.png 424w, https://substackcdn.com/image/fetch/$s_!dX_w!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e3887c4-a02c-45b6-bf66-446c0d11d98c_1024x647.png 848w, https://substackcdn.com/image/fetch/$s_!dX_w!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e3887c4-a02c-45b6-bf66-446c0d11d98c_1024x647.png 1272w, https://substackcdn.com/image/fetch/$s_!dX_w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e3887c4-a02c-45b6-bf66-446c0d11d98c_1024x647.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></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://macrostack.dev/subscribe?"><span>Subscribe now</span></a></p><p></p><h2><strong>Why Engineering Got There First</strong></h2><p>It makes sense when you think about it. Code is structured. Code is reversible. If an agent writes bad code, you delete it and try again. If an agent files the wrong legal brief, someone&#8217;s in real trouble.</p><p>Anthropic&#8217;s data confirms this: only <strong>0.8% of agent actions</strong> in software engineering are irreversible. It&#8217;s the safest playground imaginable. Low stakes, high iteration speed, fast feedback loops.</p><p>And engineers build tools for themselves first. Always have. The cobbler&#8217;s children finally have shoes.</p><p>But safe doesn&#8217;t mean <em>only</em>.</p><h2><strong>The Agent Gap</strong></h2><p>Here&#8217;s what the research actually reveals when you look past the engineering cluster: healthcare, finance, legal, supply chain, cybersecurity, they&#8217;re all showing up in the data. Barely. Tiny clusters. Sparse activity.</p><p>Not because agents can&#8217;t work there. Because nobody&#8217;s built the bridges yet.</p><p>Think about what engineering agents actually do: read structured data, find patterns, take action, check results. That&#8217;s not a coding pattern. That&#8217;s a <em>work</em> pattern.</p><p>A healthcare scheduling agent reads patient data, finds open slots, books appointments, confirms with patients. A legal research agent reads case law, surfaces relevant precedents, flags conflicts. A supply chain agent reads thousands of procurement emails, spots rejected items worth re-quoting, surfaces revenue that was invisible before.</p><p>Same pattern. Different domain. The gap isn&#8217;t capability. It&#8217;s deployment.</p><h2><strong>The Guardrails Are Already Proven</strong></h2><p>This is the part most people miss. The safety infrastructure for agents in high-stakes environments isn&#8217;t hypothetical. It&#8217;s already been proven, in engineering, at scale.</p><p>Anthropic&#8217;s numbers:</p><ul><li><p><strong>80%</strong> of agent tool calls include safeguards like restricted permissions</p></li><li><p><strong>73%</strong> have human-in-the-loop involvement</p></li><li><p>Agents initiate clarification requests <strong>more often than humans interrupt them</strong>, especially on complex tasks</p></li></ul><p>The research calls autonomy &#8220;co-constructed.&#8221; It emerges from three things: the model&#8217;s behavior, the user&#8217;s oversight strategy, and the product&#8217;s design. It&#8217;s not a dial you crank to &#8220;fully autonomous.&#8221; It&#8217;s a relationship you calibrate.</p><p>That&#8217;s exactly what high-stakes industries need. Not AI that replaces doctors or lawyers. Agents that work within guardrails, ask when they&#8217;re unsure, and keep humans in control of the decisions that matter.</p><p>Graduated permissions. Monitoring. Intervention points. Engineers built this playbook over the last two years. It&#8217;s sitting right there, ready to transfer.</p><h2><strong>Where the Real Value Lives</strong></h2><p>The next wave of AI companies won&#8217;t come from building a better Copilot. That market is crowded and getting more crowded by the day.</p><p>The next wave comes from people who understand two things at once: how agents work, and how a non-engineering industry works.</p><p>An engineer who spent five years in healthcare and understands agents will build something a pure AI researcher or a pure hospital administrator never could. A supply chain expert who&#8217;s seen how coding agents operate will recognize the exact same patterns in procurement workflows.</p><p>The intersection is where the value is.</p><p>And here&#8217;s the thing most engineers don&#8217;t realize: you already have this. Years of domain experience from previous jobs, consulting gigs, family businesses, side projects. That experience felt like career history. Now it looks like a competitive advantage.</p><h2><strong>The Window</strong></h2><p>Anthropic&#8217;s study is a snapshot of early 2026. The agent gap is wide open right now. Software engineering sitting at 50%, everything else barely registering. But gaps close. They always do. The question is who closes them.</p><p>If you&#8217;re an engineer, you already understand agents better than 95% of the working world. You&#8217;ve used them. You&#8217;ve calibrated trust with them. You know where they excel and where they break.</p><p>The question isn&#8217;t whether agents will expand beyond engineering. They will. The question is whether you&#8217;ll be the one building the bridges.</p><p>What industry do you understand deeply that agents haven&#8217;t touched yet?</p><p>That gap between your domain knowledge and agent capability isn&#8217;t a coincidence. It&#8217;s your opportunity.</p><p></p><p><em>I&#8217;m putting together a deeper breakdown of agent opportunity across 10 industries, with specific use cases, readiness signals, and the engineering patterns that transfer to each. If you want the full Agent Gap Playbook when it&#8217;s ready, subscribe and I&#8217;ll send it your way.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://macrostack.dev/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Busy Is Not a Priority System]]></title><description><![CDATA[If it's not on your calendar, you've already decided it doesn't matter]]></description><link>https://macrostack.dev/p/busy-is-not-a-priority-system</link><guid isPermaLink="false">https://macrostack.dev/p/busy-is-not-a-priority-system</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Fri, 20 Feb 2026 00:11:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dVjR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37268059-356d-4f96-84b0-5f97e8c42efe_1024x795.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You&#8217;re not busy. You just haven&#8217;t decided what matters.</p><p>That thing you&#8217;ve been putting off for two weeks? It would take 30 minutes. You know this. You&#8217;ve known it the entire time. Every morning you tell yourself: <em>I&#8217;ll get to it today.</em></p><p>You won&#8217;t. Because &#8220;busy&#8221; is doing all the work of an excuse without feeling like one.</p><p><strong>&#8220;I&#8217;m busy&#8221; is not a reason. It&#8217;s a confession.</strong> Every day you don&#8217;t schedule it, you&#8217;re choosing everything else over the thing you claim is important.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://macrostack.dev/subscribe?"><span>Subscribe now</span></a></p><h2><strong>The Identity Problem</strong></h2><p>Being busy feels productive. It feels like evidence that you&#8217;re in demand, that you&#8217;re doing important work, that the machine can&#8217;t run without you.</p><p>But busy and productive aren&#8217;t the same thing.</p><p>I&#8217;ve had weeks where I was in back-to-back calls from 9am to 6pm, managing teams across Singapore, Tokyo, and Seoul, and still accomplished nothing that actually moved things forward. Nine hours of coordination. Zero hours of progress. Everything felt urgent. Nothing was important.</p><p>I&#8217;ve also had days where I blocked two hours on my calendar, shut everything else out, and moved a project further than the entire previous week combined.</p><p>The difference wasn&#8217;t effort. It was decision.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dVjR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37268059-356d-4f96-84b0-5f97e8c42efe_1024x795.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dVjR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37268059-356d-4f96-84b0-5f97e8c42efe_1024x795.png 424w, https://substackcdn.com/image/fetch/$s_!dVjR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37268059-356d-4f96-84b0-5f97e8c42efe_1024x795.png 848w, https://substackcdn.com/image/fetch/$s_!dVjR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37268059-356d-4f96-84b0-5f97e8c42efe_1024x795.png 1272w, https://substackcdn.com/image/fetch/$s_!dVjR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37268059-356d-4f96-84b0-5f97e8c42efe_1024x795.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dVjR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37268059-356d-4f96-84b0-5f97e8c42efe_1024x795.png" width="1024" height="795" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/37268059-356d-4f96-84b0-5f97e8c42efe_1024x795.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:795,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1341431,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/188507256?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37268059-356d-4f96-84b0-5f97e8c42efe_1024x795.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dVjR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37268059-356d-4f96-84b0-5f97e8c42efe_1024x795.png 424w, https://substackcdn.com/image/fetch/$s_!dVjR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37268059-356d-4f96-84b0-5f97e8c42efe_1024x795.png 848w, https://substackcdn.com/image/fetch/$s_!dVjR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37268059-356d-4f96-84b0-5f97e8c42efe_1024x795.png 1272w, https://substackcdn.com/image/fetch/$s_!dVjR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37268059-356d-4f96-84b0-5f97e8c42efe_1024x795.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><h2><strong>What I Actually Do</strong></h2><p>I run multiple things right now. Toshi, FusionOne, MacroStack. Each one has a list of things that &#8220;need to get done.&#8221; If I tried to keep that in my head and just get to things when I could, nothing would move. Everything would be &#8220;soon.&#8221;</p><p>So here&#8217;s my system, and I&#8217;ll warn you, it&#8217;s embarrassingly simple: <strong>Everything goes on the calendar.</strong></p><p>Not a to-do list. Not a sticky note. Not a &#8220;I&#8217;ll remember.&#8221; The calendar.</p><p>I block 30 to 60 minutes for the thing. I treat it like a meeting I can&#8217;t skip. When that block comes up, that&#8217;s the only thing I&#8217;m doing. No Slack, no email, no &#8220;let me just quickly check this.&#8221;</p><p>Writing this article? On the calendar. A customer call I&#8217;ve been putting off? On the calendar. Reviewing a product decision I&#8217;ve been sitting on? On the calendar.</p><p>If it doesn&#8217;t have a slot, it doesn&#8217;t exist in my day. And if it doesn&#8217;t exist in my day, I&#8217;ve already decided it doesn&#8217;t matter, whether I admit it or not.</p><h2><strong>Why This Works</strong></h2><p>It&#8217;s not a productivity hack. It&#8217;s a <strong>forcing function for honesty.</strong></p><p>When you put something on the calendar, you have to face what you&#8217;re giving up. That 30-minute block means something else doesn&#8217;t get that time. You&#8217;re forced to make a real trade-off instead of pretending you can do everything.</p><p>And when you look at your calendar and there&#8217;s no slot for the thing you&#8217;ve been &#8220;meaning to do,&#8221; you can&#8217;t hide behind &#8220;I&#8217;m busy.&#8221; You can see, clearly, that you chose not to prioritize it. That&#8217;s uncomfortable. But it&#8217;s honest.</p><h2><strong>The Uncomfortable Truth</strong></h2><p>Here&#8217;s what nobody says out loud: <strong>most of the things you&#8217;re &#8220;too busy&#8221; for aren&#8217;t hard. They&#8217;re uncomfortable.</strong></p><p>That feedback conversation with your co-founder? Fifteen minutes. That investor update you&#8217;ve been drafting in your head for a week? An hour, tops. That side project you keep saying you&#8217;ll start &#8220;when things calm down&#8221;? Things won&#8217;t calm down. They never do.</p><p>You&#8217;re not too busy. You&#8217;re avoiding a decision. And &#8220;busy&#8221; is the most socially acceptable excuse for not making one.</p><p>I&#8217;m not claiming I&#8217;ve got this figured out. I still catch myself saying &#8220;I&#8217;ll get to it&#8221; and realizing three days later that I never blocked the time. The difference is, now I recognize what that means. It means I chose not to.</p><h2><strong>Why I&#8217;m Building a Calendar</strong></h2><p>This is how deeply I believe the calendar is the operating system for getting things done.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tpn-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897dfbd0-9da4-46d1-8c1f-2c30b5355f57_1536x613.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tpn-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897dfbd0-9da4-46d1-8c1f-2c30b5355f57_1536x613.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tpn-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897dfbd0-9da4-46d1-8c1f-2c30b5355f57_1536x613.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tpn-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897dfbd0-9da4-46d1-8c1f-2c30b5355f57_1536x613.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tpn-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897dfbd0-9da4-46d1-8c1f-2c30b5355f57_1536x613.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tpn-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897dfbd0-9da4-46d1-8c1f-2c30b5355f57_1536x613.jpeg" width="1456" height="581" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/897dfbd0-9da4-46d1-8c1f-2c30b5355f57_1536x613.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:581,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:40288,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/188507256?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897dfbd0-9da4-46d1-8c1f-2c30b5355f57_1536x613.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tpn-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897dfbd0-9da4-46d1-8c1f-2c30b5355f57_1536x613.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tpn-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897dfbd0-9da4-46d1-8c1f-2c30b5355f57_1536x613.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tpn-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897dfbd0-9da4-46d1-8c1f-2c30b5355f57_1536x613.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tpn-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897dfbd0-9da4-46d1-8c1f-2c30b5355f57_1536x613.jpeg 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>I&#8217;m co-building <a href="https://heytoshi.com/">Toshi</a>, an AI calendar, because the same problem plays out at home. Parents drowning in coordination, school schedules, errands, activities, appointments, all floating in WhatsApp messages, emails, and screenshots. Everyone saying &#8220;I&#8217;ll remember&#8221; and nobody remembering.</p><p>Toshi turns that chaos into calendar entries in seconds. You share a photo of a school schedule, it creates the events. Forward a flight itinerary, it&#8217;s on your calendar. The idea is simple: if it&#8217;s not on the calendar, it won&#8217;t happen. Whether that&#8217;s your startup priorities or your kid&#8217;s spelling test.</p><h2><strong>So Here&#8217;s the Question</strong></h2><p>What&#8217;s the one thing you&#8217;ve been &#8220;meaning to do&#8221; for weeks?</p><p>Open your calendar. Block 30 minutes for it. Not tomorrow. Right now.</p><p>If you can&#8217;t find 30 minutes, that tells you something too.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[My Engineering Team Runs in Four Terminals]]></title><description><![CDATA[How I run multiple Claude Code agents in parallel &#8212; and why it changed everything]]></description><link>https://macrostack.dev/p/my-engineering-team-runs-in-four-terminals</link><guid isPermaLink="false">https://macrostack.dev/p/my-engineering-team-runs-in-four-terminals</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Wed, 11 Feb 2026 00:11:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ptwb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e78c589-a579-42bb-82fc-0011700520a4_1360x752.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You know the feeling. Three Slack threads about the same pull request. A standup that could&#8217;ve been a commit message. A feature that&#8217;s been &#8220;<em>almost done</em>&#8221; for two weeks because it&#8217;s waiting on someone&#8217;s review, someone&#8217;s availability, someone&#8217;s context.</p><p>Half your week isn&#8217;t building. It&#8217;s coordinating building.</p><p>I used to live in that world. Now I don&#8217;t.</p><p>I looked at my screen the other day. Four terminals open. Four <strong>Claude Code</strong> agents, each running Opus 4.6. One building a new API endpoint. Another refactoring authentication middleware. A third writing tests for a feature I&#8217;d shipped the day before. A fourth investigating a data issue, querying the database and surfacing patterns I&#8217;d have spent hours finding manually.</p><p>No Slack messages. No standups. No blocked PRs. Just work getting done, in parallel, simultaneously.</p><p><em>This is my engineering team now.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ptwb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e78c589-a579-42bb-82fc-0011700520a4_1360x752.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ptwb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e78c589-a579-42bb-82fc-0011700520a4_1360x752.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ptwb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e78c589-a579-42bb-82fc-0011700520a4_1360x752.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ptwb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e78c589-a579-42bb-82fc-0011700520a4_1360x752.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ptwb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e78c589-a579-42bb-82fc-0011700520a4_1360x752.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ptwb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e78c589-a579-42bb-82fc-0011700520a4_1360x752.jpeg" width="1360" height="752" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4e78c589-a579-42bb-82fc-0011700520a4_1360x752.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:752,&quot;width&quot;:1360,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:160969,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/187405747?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e78c589-a579-42bb-82fc-0011700520a4_1360x752.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ptwb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e78c589-a579-42bb-82fc-0011700520a4_1360x752.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ptwb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e78c589-a579-42bb-82fc-0011700520a4_1360x752.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ptwb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e78c589-a579-42bb-82fc-0011700520a4_1360x752.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ptwb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e78c589-a579-42bb-82fc-0011700520a4_1360x752.jpeg 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><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://macrostack.dev/subscribe?"><span>Subscribe now</span></a></p><p></p><h2><strong>The Bottleneck Was Never Talent</strong></h2><p>Here&#8217;s the thing nobody wants to say out loud: the bottleneck in most engineering teams isn&#8217;t skill. It&#8217;s coordination.</p><p>I co-founded a supply chain AI company a couple years back. You&#8217;ve lived the same version of this story: three people minimum for a single feature. Backend, frontend, product designer. PRs waiting on someone&#8217;s review schedule. One feature took over a month and still wasn&#8217;t complete.</p><p>That&#8217;s not a failure story. That&#8217;s just how software gets built with teams. And it&#8217;s the part that AI agents just eliminated.</p><h2><strong>How It Actually Works</strong></h2><p>Claude Code isn&#8217;t ChatGPT in a terminal. It&#8217;s an agentic coding tool that lives inside your codebase, reads your project structure, runs commands, writes and edits files, executes tests, and commits code. You talk to it like you&#8217;d talk to an engineer: &#8220;Build the subscription billing endpoint using the same patterns as the user service.&#8221; And it does.</p><p>I&#8217;m on the Claude Max plan, $200 a month. For context, that&#8217;s less than what a single engineer costs per <em>day</em> in most markets. And I&#8217;m running multiple agents simultaneously.</p><p>Here&#8217;s the workflow. I spin up multiple Claude Code sessions, each in its own <strong>git worktree</strong>, an isolated copy of the codebase on a separate branch. Agent one works on feature A. Agent two handles feature B. Agent three writes tests. Agent four investigates bugs. They don&#8217;t step on each other&#8217;s files.</p><p>Each project gets a CLAUDE.md file, a context document that tells every agent the architecture, conventions, and patterns to follow. Think of it as the onboarding doc you&#8217;d give a new engineer, except this one gets read every single session and never forgotten.</p><p>I also build <strong>custom skills</strong>, reusable workflows for common tasks: writing publications, planning articles, debugging, code review. When I type a command, the agent loads the skill and follows the workflow. It&#8217;s like having SOPs for your team, except the team actually follows them every time.</p><p>Review output. Approve, iterate, merge. The cycle that used to take a week with a team coordinating across calendars now takes hours.</p><h2><strong>It&#8217;s Not Just for Code</strong></h2><p>Here&#8217;s what I didn&#8217;t expect. Claude Code became my tool for <em>everything</em>.</p><p><strong>This article you&#8217;re reading?</strong> Written with Claude Code. I have a skill system that guides the agent through planning, structuring, and drafting publications in my voice. It reads my previous articles, my personal resources, and follows a tone guide. I review and edit, but the heavy lifting is delegated.</p><p><strong>Data investigation?</strong> I gave Claude Code access to query a database. Asked it to find patterns in customer behavior data. It wrote the SQL, ran the queries, analyzed the results, and summarized everything with specific numbers. What would&#8217;ve been half a day of manual querying took about ten minutes.</p><p>Research, competitive analysis, debugging production issues by reading logs, generating marketing copy. The use cases keep expanding beyond what I originally imagined.</p><h2><strong>The Honest Part</strong></h2><p>I&#8217;m not going to pretend this is flawless.</p><p>Agents sometimes go in circles on complex architectural decisions. They can miss edge cases that an experienced engineer would catch on instinct. Long sessions start to drift if context gets too heavy. And sometimes I spend more time correcting an agent&#8217;s approach than it would take to just write the code myself. Even with Opus 4.6, the most capable model available right now, these limitations are real.</p><p>The big one: you need to know <em>what</em> to build. The agents are exceptional at <em>how</em>. They don&#8217;t know <em>why</em>. Strategic thinking, customer conversations, product decisions, those are still entirely on me. If I give a bad brief, I get a beautifully built wrong thing.</p><p>I&#8217;m still the architect. The agents are the builders. That division matters, and I don&#8217;t think it&#8217;s going away anytime soon.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! 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><h2><strong>What This Means for You</strong></h2><p>Here&#8217;s the question I&#8217;d ask yourself: how much of your week is actually building?</p><p>Not coordinating. Not waiting on reviews. Not sitting in alignment meetings. Not holding dependency graphs in your head. <em>Building.</em></p><p>The definition of &#8220;team&#8221; is shifting. I&#8217;m not arguing every company should replace their engineers. I&#8217;m saying the math has changed. The coordination cost, the standups, the Slack threads, the blocked PRs, the context-switching, that cost is real. And for certain types of work, AI agents just eliminated it.</p><p>How many features are sitting in your backlog right now, not because nobody knows how to build them, but because nobody has the bandwidth?</p><p>What would you build if your only bottleneck was your own thinking?</p>]]></content:encoded></item><item><title><![CDATA[15 People, 3 Months, $17M: Something Changed]]></title><description><![CDATA[The one-person company isn't a fantasy anymore]]></description><link>https://macrostack.dev/p/15-people-3-months-17m-something-changed-one-person-company</link><guid isPermaLink="false">https://macrostack.dev/p/15-people-3-months-17m-something-changed-one-person-company</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Thu, 05 Feb 2026 01:03:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!nz6k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae11451f-4c1a-485f-8454-67f8dd438def_1376x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Build a website in 10 minutes. Send hundreds of personalized emails. Ship a product in a weekend.</p><p>The barriers that used to exist... don&#8217;t.</p><p>I&#8217;ve been running experiments for the past year. Building products alone that would have required a team just two years ago. And I&#8217;m not special, I&#8217;m just paying attention to what&#8217;s now possible.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nz6k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae11451f-4c1a-485f-8454-67f8dd438def_1376x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nz6k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae11451f-4c1a-485f-8454-67f8dd438def_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!nz6k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae11451f-4c1a-485f-8454-67f8dd438def_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!nz6k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae11451f-4c1a-485f-8454-67f8dd438def_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!nz6k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae11451f-4c1a-485f-8454-67f8dd438def_1376x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nz6k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae11451f-4c1a-485f-8454-67f8dd438def_1376x768.png" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ae11451f-4c1a-485f-8454-67f8dd438def_1376x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1522886,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/186613458?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae11451f-4c1a-485f-8454-67f8dd438def_1376x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nz6k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae11451f-4c1a-485f-8454-67f8dd438def_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!nz6k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae11451f-4c1a-485f-8454-67f8dd438def_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!nz6k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae11451f-4c1a-485f-8454-67f8dd438def_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!nz6k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae11451f-4c1a-485f-8454-67f8dd438def_1376x768.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></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://macrostack.dev/subscribe?"><span>Subscribe now</span></a></p><p></p><h2><strong>The Old Reality</strong></h2><p>Building a company used to mean capital. Hiring. Burn rate. Office space. Payroll before revenue.</p><p>Going solo meant staying small. Lifestyle business. Maybe a freelance gig that paid the bills. The math didn&#8217;t work for anything bigger, you needed people to scale.</p><p>That math has changed.</p><h2><strong>What Changed</strong></h2><p><strong>Lovable</strong> started as an open-source side project called GPT Engineer. Anton Osika built it while working at another startup. It gained 50,000 GitHub stars. He and co-founder Fabian Hedin turned it into a product in late 2023. By February 2025, they hit $17M ARR with about 15 people. Four months later, $50M. By year end, over $200M. No massive sales team. No billion-dollar marketing budget. Just a product that worked.</p><p><strong>Cursor</strong> was built by four MIT friends who independently realized &#8220;the IDE is the thing to build&#8221; after playing with GPT-4. They launched in 2022, hit $100M ARR in 14 months, the fastest ever. By late 2025, they crossed $1 billion ARR. With a small team. No marketing spend. Word of mouth from developers who couldn&#8217;t stop using it.</p><p><strong>BuiltWith</strong> is the extreme case. Gary Brewer built it as a side project in 2006, working on it every evening for four years while keeping his day job. Today it generates $14M a year. He&#8217;s the founder, the lead developer, and the customer support team. One person.</p><p>For context: Microsoft does $1.8M revenue per employee. Meta does $2.2M. These companies are doing $5M to $14M per person.</p><p>These aren&#8217;t outliers anymore. They&#8217;re signals.</p><h2><strong>What I&#8217;m Learning Firsthand</strong></h2><p>I co-founded a supply chain AI company a couple years back. Building features required a team, at minimum three people: backend, frontend, product designer. One feature took over a month and still wasn&#8217;t complete.</p><p>Now I&#8217;m running solo experiments. Same domain knowledge. Same type of problems. Different economics.</p><p>I hear a customer pain point. I build a solution. With a team, that cycle used to take a month minimum, multiple engineers coordinating, designs going back and forth.</p><p>Now? Two to three days. Sometimes less. AI handles the heavy lifting. I review, approve, iterate.</p><p>This isn&#8217;t about working harder. It&#8217;s about working differently.</p><h2><strong>The New Operating Model</strong></h2><p>Here&#8217;s how I think about it now: <strong>AI does most of the work. I&#8217;m the observer and the approver.</strong></p><p>What AI handles:</p><ul><li><p>Building (code, interfaces, entire products)</p></li><li><p>Marketing copy and campaigns</p></li><li><p>Prospecting and outreach</p></li><li><p>Analysis and reporting</p></li></ul><p>What&#8217;s still me:</p><ul><li><p>Talking to customers</p></li><li><p>Making strategic calls</p></li><li><p>Ground work that requires presence</p></li><li><p>Deciding what to build in the first place</p></li></ul><p>The skills barrier collapsed. You used to need frontend, backend, design, and marketing expertise, or you needed to hire people who had them. Now you need an idea and an understanding of how to work with AI.</p><h2><strong>The Honest Part</strong></h2><p>I&#8217;m not claiming this is easy. Most of my experiments will fail. Customer conversations can&#8217;t be automated. Judgment calls are still judgment calls.</p><p>And the ground work, actually getting out there, understanding the problem firsthand, building relationships, that&#8217;s still human. Maybe always will be.</p><p>But the barrier to <em>trying</em>? That&#8217;s gone.</p><p>If you never try, you never know. And trying used to cost six figures and a year of your life. Now it costs a weekend.</p><h2><strong>The Window Is Open</strong></h2><p>A few years ago, &#8220;one-person company&#8221; meant freelancer or small-time. Now it means leveraged.</p><p>The question isn&#8217;t whether one-person companies will emerge. They already have. The question is what <em>you</em> would build if you knew you didn&#8217;t need a team to do it.</p><p>What idea have you been sitting on because you thought you couldn&#8217;t build it alone?</p><p>What would you start this weekend if the only thing stopping you was the decision to start?</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Engineer's Guide to Criticism: How to Separate Signal from Noise]]></title><description><![CDATA[Not all feedback deserves your attention. Here's how to tell the difference.]]></description><link>https://macrostack.dev/p/the-engineers-guide-to-criticism</link><guid isPermaLink="false">https://macrostack.dev/p/the-engineers-guide-to-criticism</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Fri, 30 Jan 2026 06:15:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pCWM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2a0f972-c58f-44e9-8052-5cff8e685d93_1024x715.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#8220;<em>I don&#8217;t think this is going to work.</em>&#8221; I wanted to fight it. Explain. Justify. That instinct nearly cost me some of the best feedback I&#8217;ve ever received.</p><p>If you&#8217;ve led a team, shipped a product, or made any decision that mattered, you&#8217;ve heard some version of this. The blunt assessment. The unsolicited opinion. The critique that hits harder than it should.</p><p>My natural reaction used to be defensive. Protect the idea. Protect the work. Protect my ego, if I&#8217;m being honest. But over the years, I&#8217;ve learned to do something harder: listen first, react later. Because if the feedback makes the product better, makes the team stronger, makes me sharper, why would I fight it?</p><p>The problem is, not all criticism deserves that kind of attention. Some feedback is gold. Some is noise. And the skill isn&#8217;t just in receiving criticism, it&#8217;s in knowing the difference.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pCWM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2a0f972-c58f-44e9-8052-5cff8e685d93_1024x715.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pCWM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2a0f972-c58f-44e9-8052-5cff8e685d93_1024x715.png 424w, https://substackcdn.com/image/fetch/$s_!pCWM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2a0f972-c58f-44e9-8052-5cff8e685d93_1024x715.png 848w, https://substackcdn.com/image/fetch/$s_!pCWM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2a0f972-c58f-44e9-8052-5cff8e685d93_1024x715.png 1272w, https://substackcdn.com/image/fetch/$s_!pCWM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2a0f972-c58f-44e9-8052-5cff8e685d93_1024x715.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pCWM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2a0f972-c58f-44e9-8052-5cff8e685d93_1024x715.png" width="1024" height="715" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e2a0f972-c58f-44e9-8052-5cff8e685d93_1024x715.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:715,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1325157,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/186271591?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2a0f972-c58f-44e9-8052-5cff8e685d93_1024x715.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pCWM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2a0f972-c58f-44e9-8052-5cff8e685d93_1024x715.png 424w, https://substackcdn.com/image/fetch/$s_!pCWM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2a0f972-c58f-44e9-8052-5cff8e685d93_1024x715.png 848w, https://substackcdn.com/image/fetch/$s_!pCWM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2a0f972-c58f-44e9-8052-5cff8e685d93_1024x715.png 1272w, https://substackcdn.com/image/fetch/$s_!pCWM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2a0f972-c58f-44e9-8052-5cff8e685d93_1024x715.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></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://macrostack.dev/subscribe?"><span>Subscribe now</span></a></p><p></p><h2><strong>The Four Critics You&#8217;ll Meet</strong></h2><p>Not everyone who gives you feedback has the same intent. I&#8217;ve found it useful to recognize who&#8217;s actually talking.</p><p><strong>The Vague Commenter.</strong> &#8220;<em>It just doesn&#8217;t feel right</em>.&#8221; &#8220;<em>I&#8217;m not sure about this direction.</em>&#8221; No specifics, no suggestions, no path forward. They might mean well, but there&#8217;s nothing to act on. If you can&#8217;t get them to clarify, move on.</p><p><strong>The Attacker.</strong> This one makes it personal. &#8220;<em>Classic mistake from someone who doesn&#8217;t get it.</em>&#8221; It&#8217;s not about your work, it&#8217;s about you. Often, this is projection, their own fears, their own failures. Recognize it for what it is.</p><p><strong>The Bad Actor.</strong> Rare, but real. Someone who wants to mislead you. A competitor seeding doubt. A toxic colleague undermining your credibility. Their goal isn&#8217;t your improvement. Don&#8217;t give them airtime.</p><p><strong>The Seasoned Critic.</strong> This is the one you want. They&#8217;re direct, sometimes uncomfortably so. &#8220;<em>Your onboarding drops people at step two. I almost left myself.</em>&#8221; It stings, but it&#8217;s specific. It&#8217;s actionable. They&#8217;re not attacking you, they&#8217;re trying to make you better. These people are rare. When you find them, hold on tight.</p><h2><strong>Your Default Reaction is Probably Wrong</strong></h2><p>When criticism lands, most of us fall into one of these patterns:</p><p>Self-doubt. &#8220;<em>Maybe I&#8217;m not cut out for this.</em>&#8221; One piece of feedback spirals into questioning everything.</p><p>Dismissal. &#8220;<em>They don&#8217;t have the full context.</em>&#8221; You rationalize it away before even considering if it&#8217;s true.</p><p>Defensiveness. &#8220;<em>Let me explain why you&#8217;re wrong.</em>&#8221; You&#8217;re already composing counterarguments before they&#8217;ve finished talking.</p><p>I&#8217;ve been all three. Sometimes in the same conversation. The fourth option, openness, doesn&#8217;t come naturally. It has to be practiced.</p><h2><strong>The Framework: Listen, Wait, Ask, Act</strong></h2><p>Here&#8217;s what works for me now.</p><p><strong>Listen.</strong> When someone gives you feedback, your only job is to absorb it. Don&#8217;t interrupt. Don&#8217;t explain. Don&#8217;t defend. Just take it in. This is harder than it sounds, especially when your brain is screaming to correct them.</p><p><strong>Wait.</strong> Don&#8217;t respond in the moment. Sleep on it if you can. I&#8217;ve written replies I was glad I never sent. Emotion fades. What remains is usually the part worth paying attention to.</p><p><strong>Ask.</strong> Before you decide whether the feedback is valid, ask questions. &#8220;<em>Can you say more about that?</em>&#8221; &#8220;<em>What would you do differently?</em>&#8221; This does two things: it gives you more information, and it turns a critic into a collaborator. Most people soften when they feel heard.</p><p><strong>Act.</strong> Once you&#8217;ve filtered the noise, make a decision. Implement it, discard it, or park it for later. But don&#8217;t let it sit in limbo. Feedback that never gets processed is just noise you&#8217;re carrying around.</p><h2><strong>Don&#8217;t Sit On It</strong></h2><p>The worst thing you can do with useful criticism isn&#8217;t rejecting it. It&#8217;s acknowledging it and doing nothing.</p><p>You nod along. You say &#8220;<em>good point.</em>&#8221; And then you move on, unchanged. I&#8217;ve done this too. It feels safer than actually making the change, especially when the change is hard or threatens something you&#8217;re attached to.</p><p>But that&#8217;s the trap. Criticism isn&#8217;t a verdict. It&#8217;s data. And data is only useful if you do something with it.</p><p>The best engineers I know, the best founders, the best leaders, they&#8217;ve built feedback loops into everything. Their systems, their products, their teams. The ones who go furthest build that loop into themselves.</p><p><em>Got feedback? I&#8217;d love to hear it.</em></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Uncomfortable Is the Only Way Up]]></title><description><![CDATA[Growth lives where comfort ends]]></description><link>https://macrostack.dev/p/uncomfortable-is-the-only-way-up</link><guid isPermaLink="false">https://macrostack.dev/p/uncomfortable-is-the-only-way-up</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Thu, 15 Jan 2026 04:38:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gyeM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a95eb2c-66a7-4e5b-98f0-8a2bdadee4ad_1285x714.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You have 18 waking hours. Every single day. So does the engineer who just got promoted past you. So did I when I was juggling a toddler, a newborn, an EMBA, a full-time job, and a startup. The math is the same. The choices aren't.</p><p><strong>Alex Hormozi</strong> put it bluntly: "<em>We are the result of our actions, not our aspirations.</em>"</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nLi9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58619f76-cb45-40b6-9fd5-c98ea0ca244d_1080x1350.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nLi9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58619f76-cb45-40b6-9fd5-c98ea0ca244d_1080x1350.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nLi9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58619f76-cb45-40b6-9fd5-c98ea0ca244d_1080x1350.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nLi9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58619f76-cb45-40b6-9fd5-c98ea0ca244d_1080x1350.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nLi9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58619f76-cb45-40b6-9fd5-c98ea0ca244d_1080x1350.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nLi9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58619f76-cb45-40b6-9fd5-c98ea0ca244d_1080x1350.jpeg" width="306" height="382.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58619f76-cb45-40b6-9fd5-c98ea0ca244d_1080x1350.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1350,&quot;width&quot;:1080,&quot;resizeWidth&quot;:306,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;May be an image of text that says \&quot;Alex Hormozi @alexhormozi People demand success but refuse to work weekends. People want opportunity but won't talk to to strangers. People claim ambition but sleep in everyday. We We are the result of our actions not our aspirations.\&quot;&quot;,&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="May be an image of text that says &quot;Alex Hormozi @alexhormozi People demand success but refuse to work weekends. People want opportunity but won't talk to to strangers. People claim ambition but sleep in everyday. We We are the result of our actions not our aspirations.&quot;" title="May be an image of text that says &quot;Alex Hormozi @alexhormozi People demand success but refuse to work weekends. People want opportunity but won't talk to to strangers. People claim ambition but sleep in everyday. We We are the result of our actions not our aspirations.&quot;" srcset="https://substackcdn.com/image/fetch/$s_!nLi9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58619f76-cb45-40b6-9fd5-c98ea0ca244d_1080x1350.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nLi9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58619f76-cb45-40b6-9fd5-c98ea0ca244d_1080x1350.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nLi9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58619f76-cb45-40b6-9fd5-c98ea0ca244d_1080x1350.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nLi9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58619f76-cb45-40b6-9fd5-c98ea0ca244d_1080x1350.jpeg 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><p>I see it all the time. Engineers who want Staff titles but won&#8217;t take on the messy projects. Engineers who want leadership but avoid the hard conversations. Engineers who talk about ambition but scroll Instagram for two hours every night.</p><p>We are the result of our actions, not our aspirations.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://macrostack.dev/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gyeM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a95eb2c-66a7-4e5b-98f0-8a2bdadee4ad_1285x714.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gyeM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a95eb2c-66a7-4e5b-98f0-8a2bdadee4ad_1285x714.png 424w, https://substackcdn.com/image/fetch/$s_!gyeM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a95eb2c-66a7-4e5b-98f0-8a2bdadee4ad_1285x714.png 848w, https://substackcdn.com/image/fetch/$s_!gyeM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a95eb2c-66a7-4e5b-98f0-8a2bdadee4ad_1285x714.png 1272w, https://substackcdn.com/image/fetch/$s_!gyeM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a95eb2c-66a7-4e5b-98f0-8a2bdadee4ad_1285x714.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gyeM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a95eb2c-66a7-4e5b-98f0-8a2bdadee4ad_1285x714.png" width="1285" height="714" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a95eb2c-66a7-4e5b-98f0-8a2bdadee4ad_1285x714.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:714,&quot;width&quot;:1285,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1540083,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/184623926?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a95eb2c-66a7-4e5b-98f0-8a2bdadee4ad_1285x714.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gyeM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a95eb2c-66a7-4e5b-98f0-8a2bdadee4ad_1285x714.png 424w, https://substackcdn.com/image/fetch/$s_!gyeM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a95eb2c-66a7-4e5b-98f0-8a2bdadee4ad_1285x714.png 848w, https://substackcdn.com/image/fetch/$s_!gyeM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a95eb2c-66a7-4e5b-98f0-8a2bdadee4ad_1285x714.png 1272w, https://substackcdn.com/image/fetch/$s_!gyeM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a95eb2c-66a7-4e5b-98f0-8a2bdadee4ad_1285x714.png 1456w" sizes="100vw"></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><h2><strong>The Year Everything Stacked Up</strong></h2><p>In 2021, my life looked insane on paper. I had a 2-year-old running around the house. A newborn who didn&#8217;t believe in sleep. Classes for my Executive MBA. A full-time engineering leadership role. And a startup I was building on the side, a product called TinyWhale.</p><p>People asked me how I managed. Honestly? I didn&#8217;t do it alone. My wife held things together when I couldn&#8217;t. She picked up the slack, absorbed the chaos, and gave me the room to chase something most people would call crazy. Without her, none of it works.</p><p>But even with support, there were sacrifices. I stopped going out. Social events became rare. Family time shrunk to whatever margins I could find. My weekends weren&#8217;t weekends, they were just different kinds of workdays.</p><p>Was it sustainable? Probably not. Was it necessary? Absolutely.</p><p>Two years later, TinyWhale was acquired.</p><h2><strong>Uncomfortable Is The Job Description</strong></h2><p>Here&#8217;s what I&#8217;ve learned: <strong>growth never comes from the comfortable path</strong>. Not in startups, not in engineering, not in careers.</p><p>The work that accelerates your career is almost always the work you&#8217;re avoiding.</p><p>For engineers, &#8220;uncomfortable&#8221; doesn&#8217;t always mean working 16-hour days. Sometimes it looks like:</p><ul><li><p>Taking ownership of the legacy system nobody wants to touch</p></li><li><p>Speaking up in a meeting full of senior engineers</p></li><li><p>Volunteering for the migration everyone else dodged</p></li><li><p>Giving honest feedback to your manager</p></li><li><p>Writing publicly when you&#8217;re afraid of being judged</p></li><li><p>Reaching out to someone two levels above you</p></li></ul><p>These are small discomforts. But most engineers won&#8217;t do them. They&#8217;ll wait to be invited. They&#8217;ll wait until they feel ready. They&#8217;ll wait until it feels safe.</p><p>And they&#8217;ll keep waiting.</p><h2><strong>The Calendar Test</strong></h2><p>Want to know if you&#8217;re on the uncomfortable path? Look at your calendar from the last 30 days.</p><p>Not your goals. Not your intentions. Your actual time.</p><p>Did you spend time on things that scare you a little? Did you do work that stretched you? Did you make any moves that felt risky?</p><p>Or did you optimize for comfort?</p><p>Your calendar doesn&#8217;t lie. It shows exactly what you prioritize, not what you say you prioritize.</p><h2><strong>The Cost Is Real</strong></h2><p>I won&#8217;t pretend there&#8217;s no tradeoff. There is.</p><p>I missed moments with my kids. I skipped dinners. I said no to things I wanted to say yes to. The grind had a cost, and my family paid part of it too.</p><p>I&#8217;m not telling you to burn yourself out. I&#8217;m not glorifying 16-hour days.</p><p>But I am telling you this: if you want something beyond average, you have to do things beyond average. There&#8217;s no clean path. No life hack. No shortcut.</p><p>Just choices.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! 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><h2><strong>The Question</strong></h2><p>So here&#8217;s the uncomfortable question: What are you avoiding right now that, if you did it, would actually move your career forward?</p><p>You probably already know the answer. You&#8217;ve been putting it off because it&#8217;s hard, or awkward, or scary.</p><p>That&#8217;s exactly why you should do it.</p><p>The uncomfortable path isn&#8217;t a punishment. It&#8217;s a filter. It separates the people who want things from the people who are willing to do what it takes to get them.</p><p>Which one are you?</p><p></p>]]></content:encoded></item><item><title><![CDATA[Stop Writing Code in a Bubble]]></title><description><![CDATA[Why understanding system design in 2026 matters more than ever, even if you're not building at scale yet]]></description><link>https://macrostack.dev/p/stop-writing-code-in-a-bubble</link><guid isPermaLink="false">https://macrostack.dev/p/stop-writing-code-in-a-bubble</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Thu, 08 Jan 2026 00:30:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!feuh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40ed7a07-ca00-4d92-9b6d-fa2550ec6bd2_1376x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You can write perfect code and still build a system that collapses under load.</p><p>Back in 2010, I was building my first cloud-based distributed system. Cloud computing was just becoming mainstream, and I was responsible for global infrastructure that needed to work across regions. The moment everything clicked for me wasn&#8217;t when I wrote cleaner functions or optimized algorithms. It was when I deep-dived into the actual architecture of cloud systems and realized how much more accessible everything became once I understood the bigger picture.</p><p>Here&#8217;s what I wish I knew then: <strong>System design isn&#8217;t something you learn when you become a senior engineer. It&#8217;s something you should start learning from day one.</strong></p><p>Today, I&#8217;m working on a startup. We&#8217;re not implementing most of these patterns yet. We don&#8217;t need Kafka streaming or multi-region replication or serverless at Meta&#8217;s scale. But understanding these systems still shapes every technical decision I make. It&#8217;s the difference between building something that works today and building something that can scale tomorrow without a complete rewrite.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!feuh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40ed7a07-ca00-4d92-9b6d-fa2550ec6bd2_1376x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!feuh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40ed7a07-ca00-4d92-9b6d-fa2550ec6bd2_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!feuh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40ed7a07-ca00-4d92-9b6d-fa2550ec6bd2_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!feuh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40ed7a07-ca00-4d92-9b6d-fa2550ec6bd2_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!feuh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40ed7a07-ca00-4d92-9b6d-fa2550ec6bd2_1376x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!feuh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40ed7a07-ca00-4d92-9b6d-fa2550ec6bd2_1376x768.png" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/40ed7a07-ca00-4d92-9b6d-fa2550ec6bd2_1376x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1837356,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/183539707?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40ed7a07-ca00-4d92-9b6d-fa2550ec6bd2_1376x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!feuh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40ed7a07-ca00-4d92-9b6d-fa2550ec6bd2_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!feuh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40ed7a07-ca00-4d92-9b6d-fa2550ec6bd2_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!feuh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40ed7a07-ca00-4d92-9b6d-fa2550ec6bd2_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!feuh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40ed7a07-ca00-4d92-9b6d-fa2550ec6bd2_1376x768.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></figure></div><h2>The Mistakes I Made (So You Don&#8217;t Have To)</h2><p>Early in my career, I wrote code without thinking about system design. I didn&#8217;t consider how data would be distributed across nodes. I didn&#8217;t plan for CI/CD pipelines. When we faced high I/O latency, I had no mental model for why a queue would solve the problem. I was coding in a vacuum, and it showed when things broke at scale.</p><p>The difference between a junior engineer who stays junior and one who grows fast? The latter learns to think in systems, not just in functions.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://macrostack.dev/subscribe?"><span>Subscribe now</span></a></p><h2>What The World&#8217;s Biggest Systems Teach Us About Design</h2><p>If you study how the world&#8217;s biggest platforms work, you&#8217;ll notice patterns. These aren&#8217;t random architectural decisions, they&#8217;re battle-tested solutions to universal problems. Here&#8217;s what 2026 should be about: learning these patterns so you can apply them before you hit the wall.</p><h3>The Foundation: Event-Driven Architecture</h3><p>Start with <strong>Kafka</strong> and <strong>Slack</strong>. These systems teach you how to handle real-time data and communication at scale. When I built an ad network system years later, Kafka became the backbone, streaming events to handle high I/O throughput without choking. Real-time chat features like Slack (which I later implemented in my recent project) only make sense once you understand event streams, message queues, and how to decouple services so they don&#8217;t all fail together. </p><p>The lesson: <strong>asynchronous communication is not optional at scale, it&#8217;s the only way systems survive.</strong></p><h3>The Scale Layer: When &#8220;Good Enough&#8221; becomes &#8220;Not Even Close&#8221;</h3><p>Then you move up to systems like <strong>YouTube</strong>, <strong>Meta</strong>, and <strong>Uber</strong>, where the numbers stop making sense.</p><p>YouTube supports 2.49 billion users on MySQL. Not some fancy distributed database, MySQL. How? Sharding, caching layers, read replicas, and a refusal to over-engineer early. They scaled vertically first, then horizontally, and only switched databases when absolutely necessary.</p><p>Meta handled 11.5 million serverless function calls per second. Think about that, per second. They do it with aggressive caching, edge computing, and a system architecture that assumes failure and plans for it.</p><p>Uber processes 1 million geo-matching requests per second to find nearby drivers. The trick isn&#8217;t magic, it&#8217;s geospatial indexing, sharding by location, and reducing latency at every layer.</p><p>The lesson: <strong>scale isn&#8217;t about one clever trick, it&#8217;s about making smart tradeoffs at every level of the stack</strong>.</p><h3>The Storage Layer: Durability, Cost, and Retrieval</h3><p>Look at <strong>AWS S3</strong> and <strong>Google Docs</strong>. S3 is the backbone of the internet&#8217;s storage, designed for 99.999999999% durability. That&#8217;s eleven nines. It achieves this through replication, erasure coding, and lifecycle policies that automatically move cold data to cheaper storage. When I implemented S3 for data storage with lifecycle management, it cut costs by 60% without sacrificing reliability.</p><p>Google Docs handles real-time collaboration for millions of users simultaneously. Operational transformation, conflict resolution, and sync engines that reconcile edits in milliseconds. It&#8217;s not just about storing documents, it&#8217;s about making the system feel instant even when users are editing from opposite sides of the planet.</p><p>The lesson: <strong>how you store data determines how you retrieve it, and both determine your cost and reliability</strong>.</p><h3>The Intelligence Layer: LLMs and Modern Compute</h3><p>Finally, <strong>LLMs like ChatGPT</strong> teach us about compute-intensive workloads. Inference at scale requires GPUs, batching, prompt caching, and model optimization. The architecture isn&#8217;t about databases or queues, it&#8217;s about managing compute as efficiently as possible while keeping latency low enough for users to not notice.</p><p>The lesson: <strong>the next decade of system design will be shaped by AI workloads, and engineers who understand this early will build better products</strong>.</p><h2>Why This Matters for You Right Now</h2><p>You might be thinking, &#8220;I&#8217;m not building YouTube. Why do I need to know this?&#8221;</p><p>Because <strong>every product eventually faces scale</strong>. And if you don&#8217;t understand how distributed systems work, you&#8217;ll make decisions that box you in. You&#8217;ll pick the wrong database. You&#8217;ll build APIs that can&#8217;t handle traffic. You&#8217;ll design features that work perfectly for 100 users and collapse at 10,000.</p><p>I&#8217;ve seen engineers who can build beautiful features but can&#8217;t explain why their service crashes under load. I&#8217;ve seen teams rewrite entire systems because no one thought about data consistency when they started. The cost of learning system design late is rebuilding what you already built.</p><p>The benefit of learning it early is that you make better decisions from the start. You ask better questions in design reviews. You propose solutions that scale. You stop being the engineer who just writes tickets and become the engineer who shapes the system.</p><h2>Where to Start in 2026</h2><p>Pick three of these case studies and go deep. Not surface-level, actually deep. Understand the tradeoffs. Draw the architecture. Explain it to someone. Then look at the system you&#8217;re currently building and ask: <strong>what patterns apply here?</strong></p><p>For me, understanding Kafka&#8217;s event streaming unlocked ad networks. Understanding S3&#8217;s storage tiers unlocked cost efficiency. Understanding real-time sync unlocked better chat features. The systems you study today shape the systems you build tomorrow.</p><p>System design isn&#8217;t gatekept knowledge for staff engineers. It&#8217;s the mental model that separates engineers who see code from engineers who see systems. And 2026 is the year you start seeing systems.</p><p>If you're looking for guidance on navigating your engineering career or thinking through technical decisions, feel free to reach out. I work with engineers who want to level up their system thinking and career trajectory. You can contact me at irwan@macrostack.dev </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! 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><div><hr></div><p><strong>MacroStack is where good engineers become great.</strong> If you want to think bigger and build better, this is where you belong.</p><p></p>]]></content:encoded></item><item><title><![CDATA["Why Does Dad Work So Much?" - And Why Most Engineers Don't]]></title><description><![CDATA[On ambition, optimization, and what I might be getting wrong about the founder path]]></description><link>https://macrostack.dev/p/why-does-dad-work-so-much-and-why</link><guid isPermaLink="false">https://macrostack.dev/p/why-does-dad-work-so-much-and-why</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Thu, 18 Dec 2025 04:17:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ws2I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45660a09-e652-457c-9d74-688bbedc7088_1408x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>My 6-year-old asked me this last week. Not in a sad way, more in a curious way. &#8220;<em>Why does dad work so much?</em>&#8221;</p><p>I gave her the parent-approved answer about building something important, but the question stuck with me. Not because I felt guilty (though maybe I should), but because it made me realize something: I&#8217;m surrounded by brilliant engineers who could do exactly what I&#8217;m doing. But they don&#8217;t. </p><p>And I genuinely want to get some answers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ws2I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45660a09-e652-457c-9d74-688bbedc7088_1408x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ws2I!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45660a09-e652-457c-9d74-688bbedc7088_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!Ws2I!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45660a09-e652-457c-9d74-688bbedc7088_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!Ws2I!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45660a09-e652-457c-9d74-688bbedc7088_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!Ws2I!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45660a09-e652-457c-9d74-688bbedc7088_1408x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ws2I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45660a09-e652-457c-9d74-688bbedc7088_1408x768.png" width="1408" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/45660a09-e652-457c-9d74-688bbedc7088_1408x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1926953,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/181953765?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45660a09-e652-457c-9d74-688bbedc7088_1408x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ws2I!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45660a09-e652-457c-9d74-688bbedc7088_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!Ws2I!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45660a09-e652-457c-9d74-688bbedc7088_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!Ws2I!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45660a09-e652-457c-9d74-688bbedc7088_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!Ws2I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45660a09-e652-457c-9d74-688bbedc7088_1408x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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 class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! 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><h2>I&#8217;m Not The Only One</h2><p>Here&#8217;s the thing: I work every waking hour, 16 hours a day, 7 days a week. People talk about 996 culture, I&#8217;m way past that. I&#8217;ve sacrificed personal time, family time, all of it. I&#8217;m building what I believe to be the next unicorn, from managing infrastructure, writing code, dealing with real users, fighting fires at 2am. The whole founder playbook.</p><p>But I&#8217;m not doing anything a great engineer couldn&#8217;t do. The engineers I work with, the ones I see in my network, many of them are smart, experienced, better at building. They have the skills, they understand the market, they could raise money if they wanted to.</p><p>They just&#8230; don&#8217;t want to?</p><h2>The Question That Won&#8217;t Leave Me Alone</h2><p>I need to be clear: I&#8217;m not saying my way is right. I&#8217;m not saying everyone should be grinding like this. Maybe they&#8217;re the smart ones and I&#8217;m the idiot. But I genuinely curious what they&#8217;re optimizing for.</p><p>So I&#8217;ve been thinking about this a lot. Here are my theories:</p><h3>The Stability Arbitrage</h3><p>Maybe the math just makes sense? If you&#8217;re a senior engineer at a decent company, you&#8217;re making above $100K, for senior engineers maybe even $200K-300K, FAANG engineers maybe $400K. You work 40 hours a week. You get healthcare, equity that might actually be worth something, and you go home at 6pm.</p><p>Why would you trade that for:</p><ul><li><p>Zero guaranteed income</p></li><li><p>80+ hours weeks</p></li><li><p>A 90% chance of failure</p></li><li><p>Explaining to investors why your metrics aren&#8217;t growing fast enough</p></li></ul><p>When you put it that way, the engineer is being rational and I&#8217;m being insane.</p><h3>Craft Over Outcome</h3><p>Some engineers genuinely love the building more than the winning. They want to solve interesting technical problems, not deal with fundraising, hiring, firing, customer support, marketing, and all the other founder bullshit.</p><p>I get this. There are days when I miss just coding. But I want to win. I want to build something that matters at scale. Don&#8217;t they?</p><p>Or do they have a different definition of winning?</p><h3>Time Leverage</h3><p>Here&#8217;s one that keeps me up at night: what if they&#8217;re playing a smarter game?</p><p>They work 40 hours for someone else, make great money, then spend their remaining time on things that actually matter to them. Family, hobbies, side projects on their own terms. Learning new tech because it&#8217;s interesting, not because they need to ship a feature.</p><p>Meanwhile I&#8217;m working 100 hours week, have no personal time, stressed about burn rate and user retention.</p><p>Who&#8217;s actually winning here?</p><h3>Risk-Adjusted Ambition</h3><p>Maybe they&#8217;re just as ambitious as me, but they&#8217;re better at math. They can calculate expected value. They see that the founder path has:</p><ul><li><p>Higher upside (maybe)</p></li><li><p>Much higher risk</p></li><li><p>Guaranteed suffering</p></li><li><p>Opportunity cost of stable comp</p></li></ul><p>And they decide it&#8217;s not worth the gamble. Especially if they have family, mortgage, or other commitments to think about.</p><h2>I&#8217;m Looking for Answers</h2><p>I don&#8217;t actually know, that&#8217;s the truth. These are all just theories, I&#8217;m making assumptions.</p><p>So here&#8217;s what I&#8217;m going to do: Over the next 3-4 weeks, <strong>I&#8217;m going to interview engineers</strong>. Not to convince them they&#8217;re wrong. Not to tell them they should be founders. But to genuinely understand what they&#8217;re optimizing for.</p><p>I want to talk to:</p><ul><li><p>Senior engineers who could easily be founders but choose not to</p></li><li><p>Technical cofounders who stepped back to IC roles</p></li><li><p>Engineers running profitable side projects they won&#8217;t scale</p></li><li><p>Anyone who&#8217;s thought deeply about this choice</p></li></ul><p><strong>If that&#8217;s you, I want to hear from you.</strong></p><p>Reply to this, DM me, tell me:</p><ul><li><p>What does ambition mean to you?</p></li><li><p>What would it take for you to go all-in on something of your own?</p></li><li><p>What do you think I&#8217;m missing about the founder path?</p></li></ul><p>I&#8217;ll share what I learn in a follow up post. And maybe, hopefully, I&#8217;ll understand something I don&#8217;t right now.</p><p>Because my kid&#8217;s question deserve a better answer than &#8220;<em>Dad just likes to work a lot</em>&#8221;.</p><p>Maybe the real answer is &#8220;<em>Dad chose one path, and there are lots of other good ones</em>&#8220;.</p><p>Let&#8217;s find out.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Most Important Lesson Wasn't in the Code]]></title><description><![CDATA[It was in the system around it]]></description><link>https://macrostack.dev/p/the-most-important-lesson-wasnt-in</link><guid isPermaLink="false">https://macrostack.dev/p/the-most-important-lesson-wasnt-in</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Sat, 13 Dec 2025 09:07:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9HYl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1283cdf-ff0a-4b4c-ae5b-58ca67e149ed_1376x768.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I was watching a few recent tech talks and platforms updates, the kind you half-listen to while doing something else, including <strong>AWS re:Invent 2025</strong> in Las Vegas, when something caught my attention.</p><p>Not a feature. Not an AI demo. Not a big launch.</p><p>It was how many decisions the platform had already made for engineers.</p><p>At first I thought, maybe this is just AWS being more opinionated. But the more I watched, the more it reminded me of something much closer to home.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! 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><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9HYl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1283cdf-ff0a-4b4c-ae5b-58ca67e149ed_1376x768.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9HYl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1283cdf-ff0a-4b4c-ae5b-58ca67e149ed_1376x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9HYl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1283cdf-ff0a-4b4c-ae5b-58ca67e149ed_1376x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9HYl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1283cdf-ff0a-4b4c-ae5b-58ca67e149ed_1376x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9HYl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1283cdf-ff0a-4b4c-ae5b-58ca67e149ed_1376x768.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9HYl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1283cdf-ff0a-4b4c-ae5b-58ca67e149ed_1376x768.jpeg" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e1283cdf-ff0a-4b4c-ae5b-58ca67e149ed_1376x768.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:218463,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/181496549?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1283cdf-ff0a-4b4c-ae5b-58ca67e149ed_1376x768.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9HYl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1283cdf-ff0a-4b4c-ae5b-58ca67e149ed_1376x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9HYl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1283cdf-ff0a-4b4c-ae5b-58ca67e149ed_1376x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9HYl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1283cdf-ff0a-4b4c-ae5b-58ca67e149ed_1376x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9HYl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1283cdf-ff0a-4b4c-ae5b-58ca67e149ed_1376x768.jpeg 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><h2>Personal Story: A Small Team, A Recurring Problem</h2><p>A while back, I was working with a small team, a couple of engineers, moving fast, juggling product and infra at the same time.</p><p>At one point, we had this annoying pattern.</p><p>Every few weeks, something would go wrong in production. Nothing dramatic. But the first 30 minutes were always chaos. Logs were incomplete. Metrics existed, but not where we expected. Alerts fired, but didn&#8217;t really help.</p><p>We always ended up asking each other &#8220;<em>Do you remember how this service works?</em>&#8221;</p><p>We did the usual tings, talked about it in a retro, agreed it was important, and wrote a short guideline. Everyone nodded.</p><p>And then, the same thing happened again a few weeks later.</p><p>That&#8217;s when it clicked. This wasn&#8217;t a people problem. It was a system problem.</p><h2>When the Same Problem Shows Up Again</h2><p>What finally caught my attention wasn&#8217;t a big outage. It was how familiar everything felt.</p><p>Different week, different person, same questions:</p><ul><li><p>&#8220;Where do I see what&#8217;s actually happening?&#8221;</p></li><li><p>&#8220;Do we even have logs for this?&#8221;</p></li><li><p>&#8220;Which dashboard should I look at?&#8221;</p></li></ul><p>The first time, I brushed it off. Stuff happens. The second time, I couldn&#8217;t unsee the pattern. That&#8217;s when I started using a very simple rule for myself:</p><blockquote><p><em><strong>If a problem shows up twice, stop fixing the incident. Look at the setup.</strong></em></p></blockquote><p>Not the architecture. Not the people.</p><p>The boring stuff everyone walks past.</p><p>In our case, the setup was a service template and a PR checklist. Observability was &#8220;recommended&#8221;, but nothing broke if you skipped it. And under pressure, guess what people did.</p><p>I probably would&#8217;ve done the same.</p><h2>What I Pay Attention to Now</h2><p>These days, when something keeps breaking, I don&#8217;t ask who owns it first.</p><p>I ask a different question:</p><p><em>What did our setup make easy?</em></p><p>If I have to explain the same thing twice, I look for where to bake it in.</p><p>If something is important but optional, I assume it&#8217;ll be skipped.</p><div><hr></div><p>I&#8217;m not claiming this is the &#8220;right&#8221; way. I&#8217;m still learning. But fixing incidents feels busy. Fixing the setup actually changes behaviour.</p><p>If you&#8217;re designing systems or running a small team and this sounds familiar, I&#8217;d love to compare notes. Always curious how others shape their defaults.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Shortcut To Better Engineering Decisions]]></title><description><![CDATA[Better Decisions Start With a Simple Question: What Problem Are We Actually Solving?]]></description><link>https://macrostack.dev/p/the-shortcut-to-better-engineering</link><guid isPermaLink="false">https://macrostack.dev/p/the-shortcut-to-better-engineering</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Fri, 05 Dec 2025 13:33:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!A4kH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f814a-885f-423c-8576-5c49ce3eea98_1024x572.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A few years back, Uber engineers joked that their backend looked like the Death Star (<em>you can look up the diagram later, it&#8217;s wild</em>). Thousands of microservices, tangled lines everywhere, nobody really sure where the boundaries began or ended. Brilliant people, world-class infra, everything&#8230; except clarity.</p><p>It&#8217;s a great reminder. Most engineering decisions go sideways not because people are bad engineers, but because the team never agreed on the actual boundaries of the problem.</p><p>Good engineers ask: &#8220;<em>What should we use?</em>&#8221;</p><p>Great engineers ask: &#8220;<em>What are we solving for?</em>&#8221;</p><p>And founders? We ask a slightly different questions: &#8220;<em>Will this actually make users happier?</em>&#8221;</p><p>Because if the answer is &#8220;not really&#8221;, then why are we even talking about Redis cluster topologies at 10am?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!A4kH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f814a-885f-423c-8576-5c49ce3eea98_1024x572.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!A4kH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f814a-885f-423c-8576-5c49ce3eea98_1024x572.png 424w, https://substackcdn.com/image/fetch/$s_!A4kH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f814a-885f-423c-8576-5c49ce3eea98_1024x572.png 848w, https://substackcdn.com/image/fetch/$s_!A4kH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f814a-885f-423c-8576-5c49ce3eea98_1024x572.png 1272w, https://substackcdn.com/image/fetch/$s_!A4kH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f814a-885f-423c-8576-5c49ce3eea98_1024x572.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!A4kH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f814a-885f-423c-8576-5c49ce3eea98_1024x572.png" width="1024" height="572" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/404f814a-885f-423c-8576-5c49ce3eea98_1024x572.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:572,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:937765,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/180783823?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f814a-885f-423c-8576-5c49ce3eea98_1024x572.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!A4kH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f814a-885f-423c-8576-5c49ce3eea98_1024x572.png 424w, https://substackcdn.com/image/fetch/$s_!A4kH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f814a-885f-423c-8576-5c49ce3eea98_1024x572.png 848w, https://substackcdn.com/image/fetch/$s_!A4kH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f814a-885f-423c-8576-5c49ce3eea98_1024x572.png 1272w, https://substackcdn.com/image/fetch/$s_!A4kH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f814a-885f-423c-8576-5c49ce3eea98_1024x572.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></figure></div><h2>Why This Matters</h2><p>Most engineering rabbit holes start with curiosity + ambition + lack of constraints.</p><p>Without boundaries, everything feels important:</p><ul><li><p><em>Should we introduce event-driven architecture?</em></p></li><li><p><em>Should we migrate to Rust for performance?</em></p></li><li><p><em>Should we containerize every single thing?</em></p></li></ul><p>The problem is&#8230; those aren&#8217;t business questions.</p><p>The real questions are:</p><ul><li><p><em>Does the user&#8217;s life change if we solve this perfectly?</em></p></li><li><p><em>What breaks if we don&#8217;t solve it at all?</em></p></li><li><p><em>What&#8217;s the minimum structure we need to ship of value?</em></p></li><li><p><em>Are we solving a real bottleneck or just building because it feels clean?</em></p></li></ul><p>This is where boundaries help. Boundaries create clarity, and <strong>clarity prevents smart engineers from overbuilding</strong>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! 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><h2>A Personal Lesson I&#8217;m still Embarrassed About</h2><p>At one of my previous startup, we made this mistake hard.</p><p>We were early-stage. No scale. No heavy traffic. Barely enough users to call it &#8220;load&#8221;.</p><p>And yet, one of my senior engineers kept proposing a full-blown architecture setup: Docker everything, message queues, caching layers, full orchestration, rewrite the whole codebase into a more performant language. All before we even had users that needed any of that.</p><p>We also kept building stuff from scratch, things that had perfectly good, market-proven solutions. We burned weeks building custom components we could&#8217;ve replaced with a SaaS tool or an open-source library.</p><p>And to be fair, we&#8217;re seeing this everywhere. I learned this lesson the hard way too.</p><p>Why?</p><p>Because we didn&#8217;t start with boundaries. We didn&#8217;t ask the one simple question:</p><div class="pullquote"><p>&#8220;<em>What&#8217;s the minimum structure we need right now to ship something users actually care about?</em>&#8221;</p></div><p>When you don&#8217;t define boundaries, every technical idea feels legitimate.</p><p>With boundaries, 80% of the ideas automatically fall away.</p><h2>What Boundaries Look Like in Real Life</h2><p>Before choosing tools, frameworks, or architectures, define constraints like:</p><ul><li><p>Timeline: &#8220;<em>We need something working in 2 weeks.</em>&#8221;</p></li><li><p>User impact: &#8220;<em>This feature must reduce a task from 10 mins to 2 mins.</em>&#8221;</p></li><li><p>Scale: &#8220;<em>We expect 50 users, not 5 million.</em>&#8221;</p></li><li><p>Team reality: &#8220;<em>We have one backend engineer, not seven.</em>&#8221;</p></li><li><p>Risk tolerance: &#8220;<em>If it breaks, the blast radius is small.</em>&#8221;</p></li></ul><p>Once you frame the problem like this, engineering becomes way simpler.</p><p>Suddenly, <strong>the question isn&#8217;t &#8220;</strong><em><strong>Should we use Kafka?</strong></em><strong>&#8221;</strong></p><p>It becomes &#8220;<em>Will Kafka actually make a user happier this month?</em>&#8221; (usually the answer is <strong>no</strong>)</p><h2>The Mental Shift that Makes Engineering 10x Easier</h2><p>Define the boundaries &#8212;&gt; decide the approach &#8212;&gt; pick the tools. <br>Most teams accidentally reverse this.</p><p>Great engineering isn&#8217;t about knowing every modern tool. <strong>It&#8217;s about knowing which part of the system actually matters right now</strong>.</p><p>When you approach decisions this way, you don&#8217;t just build faster, <em>you build saner</em>.</p><p>You stay focused on the part that makes users say, &#8220;Oh wow, this actually helps&#8221;.</p><p>Not the part that makes engineer say, &#8220;Oh wow, this architecture is beautiful.&#8221;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! 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><h2>If You Take One Thing Away from This Post</h2><p>Before you choose what to build, ask:</p><blockquote><p>&#8220;<em><strong>What are we solving for, and what are the boundaries?</strong></em>&#8221;</p></blockquote><p>Set constraints upfront. Then build the simplest thing that hits those constraints. Your engineers will move faster, your users will be happier. And your future-self will thank you for not rewriting everything in Rust at 100 users. </p><p></p>]]></content:encoded></item><item><title><![CDATA[The Shortcut to Leadership: Create Impact, Not Permission]]></title><description><![CDATA[You don&#8217;t need permission to lead, only initiative.]]></description><link>https://macrostack.dev/p/the-shortcut-to-leadership-create-impact</link><guid isPermaLink="false">https://macrostack.dev/p/the-shortcut-to-leadership-create-impact</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Fri, 28 Nov 2025 01:04:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cWfv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc887f6a-2bf3-4c26-8d04-51ef785516e0_1024x569.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most people think leadership is tied to a title. Managers, directors, VPs. They&#8217;re the ones who make things happen, right?</p><p>Not really. Leadership is a <strong>behaviour</strong>, not a job grade. You can start leading today by fixing a real pain, helping others win, and creating leverage, whether or not anyone <em>promotes</em> you.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cWfv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc887f6a-2bf3-4c26-8d04-51ef785516e0_1024x569.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cWfv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc887f6a-2bf3-4c26-8d04-51ef785516e0_1024x569.png 424w, https://substackcdn.com/image/fetch/$s_!cWfv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc887f6a-2bf3-4c26-8d04-51ef785516e0_1024x569.png 848w, https://substackcdn.com/image/fetch/$s_!cWfv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc887f6a-2bf3-4c26-8d04-51ef785516e0_1024x569.png 1272w, https://substackcdn.com/image/fetch/$s_!cWfv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc887f6a-2bf3-4c26-8d04-51ef785516e0_1024x569.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cWfv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc887f6a-2bf3-4c26-8d04-51ef785516e0_1024x569.png" width="1024" height="569" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dc887f6a-2bf3-4c26-8d04-51ef785516e0_1024x569.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:569,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:866680,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/180122092?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc887f6a-2bf3-4c26-8d04-51ef785516e0_1024x569.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cWfv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc887f6a-2bf3-4c26-8d04-51ef785516e0_1024x569.png 424w, https://substackcdn.com/image/fetch/$s_!cWfv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc887f6a-2bf3-4c26-8d04-51ef785516e0_1024x569.png 848w, https://substackcdn.com/image/fetch/$s_!cWfv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc887f6a-2bf3-4c26-8d04-51ef785516e0_1024x569.png 1272w, https://substackcdn.com/image/fetch/$s_!cWfv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc887f6a-2bf3-4c26-8d04-51ef785516e0_1024x569.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></figure></div><h2>Why Leading Without a Title Matters</h2><p>Creating impact without authority isn&#8217;t just a side hustle, it&#8217;s a multiplier. You make other people&#8217;s work easier. You speed up processes. You unlock opportunities that might otherwise stay stuck.</p><p>The catch? It often means doing more than your role description, pushing past uncertainty, and putting yourself out there. You might feel uneasy at first, wondering if you&#8217;re stepping on toes or just wasting time. That&#8217;s normal. The people who grow influence learn to navigate that discomfort.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! 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><h2>Inspiration: Small Tool, Big Impact at Spotify</h2><p>At Spotify, one engineer noticed that multiple teams were spending hours every week tracking API errors across different services.</p><p>Instead of waiting for someone in management to notice it and tell them to fix it, they built a small internal tool on their own time. It wasn&#8217;t flashy, just a simple dashboard that automatically surfaced recurring errors and highlighted where fixes were needed.</p><p>The result? Teams across the company cut debugging time by roughly 30%. The engineer became the go-to person for efficiency improvements, not because of a title, but because they made everyone&#8217;s work easier. </p><p>It&#8217;s a small story, but it illustrates the point perfectly: <strong>leadership isn&#8217;t about a corner office</strong>. It&#8217;s about spotting friction, taking initiative, and shipping something that actually helps people.</p><h2>My Personal Story</h2><p>At one of my previous company, I noticed my team spent hours every week doing a repetitive task that could easily be automated. I thought &#8220;<em>Maybe I&#8217;m overstepping, but maybe I can make this better</em>&#8221;.</p><p>So I built a small tool on weekends. Yes, it meant sacrificing personal time. And yes, I doubted if anyone would even use it. </p><p>But once it rolled out, the team saved a few hours every week. Colleagues started coming to me with questions on process improvements. I become the person people trusted to find small wins that mattered.</p><p>It wasn&#8217;t glamorous. It wasn&#8217;t a promotion. But it changed how my role was perceived, and more importantly it made a real difference for my team.</p><h2>How to Start Leading Without a Title</h2><ol><li><p><strong>Find an obvious pain and fix it</strong>. Start with small, visible wins.</p></li><li><p><strong>Ship outcomes</strong>, not just ideas.</p></li><li><p><strong>Measure your impact</strong>. Time saved, errors reduced. Numbers make the impact more noticeable.</p></li><li><p><strong>Build allies</strong>. Help peers and managers win. Influence is relational.</p></li><li><p><strong>Speak in business terms</strong>. Talk value, revenue, cost savings.</p></li><li><p><strong>Teach others</strong>. Multiple your influence.</p></li><li><p><strong>Be consistent and humble</strong>. Show reliability, and don&#8217;t demand credit.</p></li></ol><h2>Start Small, Think Big</h2><p>Influence doesn&#8217;t wait for a title. It&#8217;s built through action, consistency, and care for the people around you.</p><p><strong>Tomorrow</strong>, ask yourself: what one thing I could improve or fix that would make a measurable difference for my time?</p><p>Small steps compound, start there.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>If you want a bit of guidance on spotting high-leverage opportunities or figuring out where to focus your energy, I am open for a short mentorship chats to help people identify practical moves that can multiply their impact. Email me at irwan@macrostack.dev if you want to grab that 15 minutes.</p>]]></content:encoded></item><item><title><![CDATA[No, You’re Not Too Late For AI, You’re Just Early To The Work]]></title><description><![CDATA[Why the next decade belongs to engineers who learn how to shape, design, and integrate intelligent systems.]]></description><link>https://macrostack.dev/p/no-youre-not-too-late-for-ai-youre</link><guid isPermaLink="false">https://macrostack.dev/p/no-youre-not-too-late-for-ai-youre</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Fri, 21 Nov 2025 06:51:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dtY5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbf31a45-fd98-406b-b8fa-6d3587352521_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last week, <a href="https://www.linkedin.com/in/andrewyng/">Andrew Ng</a>, founder of DeepLearning.AI, <a href="https://www.linkedin.com/posts/andrewyng_i-recently-received-an-email-titled-an-18-activity-7394769800234766336-KQwS?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAJxnycBdur4yMpklRLfeZFvAX2JW8WRRY8">shared a message</a> from an 18 years old who feared he was already too late for AI. By the time he graduates, he thought, AI would be so advanced that humans would have nothing meaningful left to do.</p><p>It sounds dramatic, but many engineers feel the same. The hype is loud. The breakthroughs are fast. It is easy to think the train has already left.</p><p>Here is the truth. You are not late. <strong>You are only late if you do nothing.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dtY5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbf31a45-fd98-406b-b8fa-6d3587352521_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dtY5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbf31a45-fd98-406b-b8fa-6d3587352521_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!dtY5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbf31a45-fd98-406b-b8fa-6d3587352521_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!dtY5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbf31a45-fd98-406b-b8fa-6d3587352521_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!dtY5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbf31a45-fd98-406b-b8fa-6d3587352521_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dtY5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbf31a45-fd98-406b-b8fa-6d3587352521_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fbf31a45-fd98-406b-b8fa-6d3587352521_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2224904,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/179524577?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbf31a45-fd98-406b-b8fa-6d3587352521_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dtY5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbf31a45-fd98-406b-b8fa-6d3587352521_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!dtY5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbf31a45-fd98-406b-b8fa-6d3587352521_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!dtY5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbf31a45-fd98-406b-b8fa-6d3587352521_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!dtY5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbf31a45-fd98-406b-b8fa-6d3587352521_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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><h2>The Hype Hides the Real Work</h2><p>Andrew&#8217;s reply was simple. Yes, AI is powerful. But without custom engineering, it is surprisingly limited. He would not trust an LLM to handle basic tasks like scheduling or resume screening. Not without proper workflow design, context handling, and guardrails.</p><p>And that is part most people never see.</p><p>People see the demo. They do not see the scaffolding. The integrations. The context windows. The prompt shaping. The retrieval logic. The ten iterations needed before something behaves consistently.</p><p>AI is general enough to open new possibilities, not general enough to replace engineering.</p><p>This means there is still a huge amount of work ahead. Work only engineers can do.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://macrostack.dev/subscribe?"><span>Subscribe now</span></a></p><h2>What I Learned Across My Own Startups</h2><p>Across all my startup experiences, AI was never the main thing customers wanted. Customers never came to me saying &#8220;please add AI&#8221;. They came with painful problems. Slow operations. Chaos. Inefficiency. Confusion.</p><p>AI helped make the solution smoother. Sometimes it improved productivity. Sometimes it improved the user experience. But the real win was solving the customer problem, not dropping a model into the product.</p><p>Still, every time AI become part of the solution, I learned something new. Agents. Tooling. Memory. Retrieval. Evaluation. Vectors. ALl the small pieces that make AI actually useful in production.</p><p>You do not learn AI by reading. You learn it by building.</p><p>That is how <a href="https://heytoshi.com/">Toshi</a>, my latest startup, was born. A household productivity companion that uses every lesson I have gathered from years of shipping. Not because I planned it that way, but because all the small experiments added up.</p><p>And it reminded me, I am not late. And you are not either.</p><h2>AI Does Not Replace Engineers, It Amplifies The One Who Build With It</h2><p>When building <a href="https://heytoshi.com/">Toshi</a>, the hard part was not the model. Anyone can call an API. The hard part was everything around it. Designing context. Handling memory. Creating predictable behaviour. Making the system safe for real families.</p><p>This pattern repeats everywhere.</p><p>Models are engines. Engineers are the ones who turn them into vehicles people can actually use.</p><p>The engineers who thrive are the ones who know how to:</p><ul><li><p>Shape model behavior</p></li><li><p>Design context flow</p></li><li><p>Integrate retrieval</p></li><li><p>Evaluate outputs</p></li><li><p>Connect the model to real user value</p></li></ul><p>You do not need to be a researcher, you just need to be someone who builds.</p><h2>Start Small, But Start Now.</h2><p>You do not need to build an agent with thirty tools, just pick one workflow in your life and upgrade it with AI.</p><p>Automate a test. Summarize your team&#8217;s daily standup. Build a small internal assistant. Add retrieval to customer support page. Create a simple coding helper for repetitive tasks.</p><p>Small projects teach you more than any course: where models fail, how context shapes accuracy, why retrieval matters, how to design a feedback loop, what makes an AI feature trustworthy.</p><p>This knowledge compounds. And compounding is your real advantage.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://macrostack.dev/subscribe?"><span>Subscribe now</span></a></p><h2>You Are Not Late</h2><p>If you start today, you are early.</p><p>The tooling is young. The patterns are still forming. The standards are not defined. This is the perfect time to build intuition. </p><p>AI will not replace engineers, But engineers who build with AI will outpace those who do not.</p><p>So if you have been waiting for a signal, here it is.</p><p>Start with one small workflow. Build something. Learn something. Let it grow.</p><div><hr></div><p>And if you want guidance, I occasionally help engineers and teams think through AI systems, tool choices, and product strategy. Reach out at <a href="mailto:irwan@macrostack.dev">irwan@macrostack.dev</a> if you need a sounding board.</p><p>The door is still wide open. You just need to walk through.</p><p></p>]]></content:encoded></item><item><title><![CDATA[GPT‑5.1 Just Dropped. Here’s Why Engineers Should Care (And What To Do First)]]></title><description><![CDATA[It&#8217;s not just faster or smarter, it changes how you build AI into real systems.]]></description><link>https://macrostack.dev/p/gpt51-just-dropped-heres-why-engineers</link><guid isPermaLink="false">https://macrostack.dev/p/gpt51-just-dropped-heres-why-engineers</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Fri, 14 Nov 2025 03:56:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xk3h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae49587-d86b-419a-abc0-7de128776b27_1600x900.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>OpenAI has rolled out <strong>GPT&#8209;5.1</strong>. It isn&#8217;t a complete paradigm shift, but if you&#8217;re building AI&#8209;driven systems, the changes matter. Because you&#8217;re not just using an LLM, you&#8217;re integrating it into systems, workflows, architecture. And in that context the new bits: routing, reasoning, personas, control levers, change your playbook.</p><p>Here&#8217;s what it actually means for you, how to act on it <em>now</em>, and under the hood what&#8217;s going on (or at least what we know).</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! 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><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xk3h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae49587-d86b-419a-abc0-7de128776b27_1600x900.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xk3h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae49587-d86b-419a-abc0-7de128776b27_1600x900.png 424w, https://substackcdn.com/image/fetch/$s_!xk3h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae49587-d86b-419a-abc0-7de128776b27_1600x900.png 848w, https://substackcdn.com/image/fetch/$s_!xk3h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae49587-d86b-419a-abc0-7de128776b27_1600x900.png 1272w, https://substackcdn.com/image/fetch/$s_!xk3h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae49587-d86b-419a-abc0-7de128776b27_1600x900.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xk3h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae49587-d86b-419a-abc0-7de128776b27_1600x900.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ae49587-d86b-419a-abc0-7de128776b27_1600x900.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:353279,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/178810952?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae49587-d86b-419a-abc0-7de128776b27_1600x900.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xk3h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae49587-d86b-419a-abc0-7de128776b27_1600x900.png 424w, https://substackcdn.com/image/fetch/$s_!xk3h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae49587-d86b-419a-abc0-7de128776b27_1600x900.png 848w, https://substackcdn.com/image/fetch/$s_!xk3h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae49587-d86b-419a-abc0-7de128776b27_1600x900.png 1272w, https://substackcdn.com/image/fetch/$s_!xk3h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ae49587-d86b-419a-abc0-7de128776b27_1600x900.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></figure></div><p></p><h2><strong>Why this matters</strong></h2><p>GPT&#8209;5.1 brings more than incremental improvement. It gives you <strong>engineering levers</strong> you can pull in your stack:</p><ul><li><p><strong>Instant vs Thinking modes</strong> &#8211; choose speed vs depth.</p><ul><li><p><em>Instant</em>: low latency, good for formatting, simple tasks.</p></li><li><p><em>Thinking</em>: higher latency, more compute, better for tasks requiring deep reasoning or structured output.</p></li></ul><p><strong>Impact</strong>: You can design a prompt&#8209;router in your system to pick the right mode (thus controlling cost, speed, user experience) rather than one&#8209;size&#8209;fits&#8209;all.</p></li><li><p><strong>Better instruction adherence</strong> &#8211; fewer mis&#8209;interpretations of your constraints.</p><p><strong>Impact</strong>: Lower overhead in post&#8209;processing or filtering, fewer &#8220;well I guessed what you meant&#8221; failures, especially important when building for production rather than toy prompts.</p></li><li><p><strong>Tone / persona control</strong> &#8211; built&#8209;in presets such as Friendly, Professional, Quirky.</p><p><strong>Impact</strong>: You now have a more manageable way to control UX voice rather than heavy custom prompt engineering. Easier to standardise across your apps.</p></li></ul><div><hr></div><h2><strong>What engineers should do now</strong></h2><ol><li><p><strong>Prompt audit</strong> &#8211; go through your stack and find the prompts that fail to enforce constraints, get ambiguous tone, or require heavy manual filtering. Mark those as first&#8209;class candidates for GPT&#8209;5.1.</p></li><li><p><strong>Build task&#8209;based routing</strong> &#8211; in your service layer (Node.js / Go) add logic: if complexity high &#8594; Thinking mode; else &#8594; Instant. Track latency, cost, accuracy.</p></li><li><p><strong>Upgrade voice/persona</strong> &#8211; rather than embedding tone hacks in system prompts, use GPT&#8209;5.1&#8217;s tone presets. Clean it up, maintain style across flows.</p></li><li><p><strong>Measure and compare</strong> &#8211; track before and after metrics: hallucination rate, user correction count, latency, cost per query. Use data to decide where the upgrade pays off.</p></li><li><p><strong>Fallback &amp; budget planning</strong> &#8211; since it&#8217;s new, you may encounter edge cases. Build fallback paths (e.g., legacy model) or degrade gracefully if error/rate&#8209;limit occurs.</p></li></ol><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://macrostack.dev/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2><strong>Under the hood: what we do know about GPT&#8209;5.1</strong></h2><p>OpenAI has not published a full architectural &#8220;whitepaper&#8221; for GPT&#8209;5.1 (at least not fully public), but they have released system cards, model specs, and blog posts that hint at the mechanisms. As engineers, parsing what <em>is</em> public helps you infer how to design around it.</p><h3><strong>Key technical levers</strong></h3><ul><li><p><strong>Adaptive reasoning</strong>: GPT&#8209;5.1 Instant and Thinking modes use a mechanism where the model dynamically decides how much &#8220;thinking&#8221; (compute/time) to spend before producing output.</p><ul><li><p>For example: GPT&#8209;5.1&#8239;Thinking &#8220;varies its thinking time more dynamically than GPT&#8209;5&#8239;Thinking&#8221; &#8211; on easier tasks it can be ~2&#215; faster, on harder tasks deeper.</p></li><li><p>Implication: The system likely includes an internal signal (complexity estimate, prompt length/context signals) to route compute depth.</p></li></ul></li><li><p><strong>Model routing</strong>: The &#8220;GPT&#8209;5.1 Auto&#8221; route decides between Instant or Thinking for you, based on prompt/context/user&#8209;preferences.</p><ul><li><p>This means your architecture can treat &#8220;Auto&#8221; as default, but you can also force one mode if you know your task profile.</p></li></ul></li><li><p><strong>Persona/tone presets</strong>: The system injects additional conditioning to alter &#8220;style&#8221; of output.</p><ul><li><p>From an engineering view: You&#8217;re getting stylistic layers built in rather than only prompt engineering.</p></li></ul></li><li><p><strong>Context&#8209;window and token&#8209;management improvements</strong>: Context sizes vary, e.g., Instant up to 32K (on paid tiers) vs Thinking up to 196K in certain tiers.</p><ul><li><p>For your stack: If you have tasks involving long context (e.g., document summarisation, chat history, multi&#8209;agent workflows) you can exploit the larger window.</p></li></ul></li><li><p><strong>Instruction&#8209;following improvements</strong>: The system card addendum highlights tighter adherence to user instructions and expanded evaluations (mental health, emotional reliance) as part of safety/behaviour training.</p><ul><li><p>From design: fewer &#8220;creative but wrong&#8221; interpretations means your guardrail layers may become thinner, but you should still monitor.</p></li></ul></li></ul><h3><strong>Architecture &amp; trade&#8209;offs (simplified)</strong></h3><p>GPT&#8209;5.1 likely runs in two modes: a fast one for quick answers and a heavier one for deeper reasoning, depending on the task. The model seems to have internal logic that estimates task complexity and picks the right mode automatically.</p><p>Tone presets are built into the system, making it easy to control style and personality without complicated prompt hacks, though this flexibility comes at a small cost. Handling very large inputs, like documents with up to 196K tokens, requires smart memory and compression techniques to work efficiently.</p><p><strong>There are trade-offs.</strong> Thinking mode gives more detailed outputs but is slower and more expensive. Instant mode is fast but may struggle with harder reasoning tasks. Systems using GPT&#8209;5.1 should plan for mode selection and fallback strategies.</p><p>From a system perspective, GPT&#8209;5.1 is best seen as a family of models with different modes, not a single monolith. Each mode has its strengths and limits, and your system logic should reflect that.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/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 MacroStack! 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><div><hr></div><h2><strong>Big picture</strong></h2><p>GPT&#8209;5.1 emphasizes something we care about: AI isn&#8217;t just a drop&#8209;in tool. <strong>It&#8217;s a layer</strong> in your engineering stack, complete with knobs, trade&#8209;offs, routing logic, persona control. For engineers, this upgrade is real because it gives you more control, more precision, and more ways to architect systems.</p><p>Don&#8217;t get distracted by &#8220;new version hype&#8221;. The win comes from how you use it: you route, you measure, you design. You build systems that turn this upgrade into better user experience, lower cost, higher reliability.</p><h2><strong>Further Reading</strong></h2><p>For more details straight from the source, check out <a href="https://openai.com/index/gpt-5-1/">the official OpenAI GPT&#8209;5.1 page&#65532;</a>.</p>]]></content:encoded></item><item><title><![CDATA[The Future of Work Isn't Automation. It's Delegation.]]></title><description><![CDATA[The next era of leverage belongs to those who can delegate to intelligence.]]></description><link>https://macrostack.dev/p/the-future-of-work-isnt-automation-its-delegation</link><guid isPermaLink="false">https://macrostack.dev/p/the-future-of-work-isnt-automation-its-delegation</guid><dc:creator><![CDATA[Irwan Setiawan]]></dc:creator><pubDate>Fri, 07 Nov 2025 16:19:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CHxj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70c040f5-985d-42cd-b0bd-674f0ca994ce.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We&#8217;ve entered a new era of work &#8212; where leverage doesn&#8217;t come from people or capital, but from how well you can delegate to intelligence.</p><p>Every professional, whether engineer, designer, or founder, is suddenly a manager. Not of humans, but of systems.</p><p>You don&#8217;t have to become an AI engineer. But you do have to learn to delegate.</p><h2>Delegation: The Skill Nobody&#8217;s Teaching</h2><p>Delegation used to be a management skill. Now, it&#8217;s a survival skill for individual contributors.</p><p>If you&#8217;re still doing every repetitive or procedural part of your job manually, you&#8217;re already behind someone who has automated or delegated it. </p><p>An engineer who let&#8217;s their coding agent fix bugs or review PRs will ship faster.</p><p>A marketer who delegates campaign generation to AI will test faster.</p><p>A founder who offloads analysis to a model will decide faster.</p><p>Delegation is the new speed. And speed compounds.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://macrostack.dev/subscribe?"><span>Subscribe now</span></a></p><p></p><h2>From Flight Mode to Feature Shipped</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CHxj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70c040f5-985d-42cd-b0bd-674f0ca994ce.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CHxj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70c040f5-985d-42cd-b0bd-674f0ca994ce.heic 424w, https://substackcdn.com/image/fetch/$s_!CHxj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70c040f5-985d-42cd-b0bd-674f0ca994ce.heic 848w, https://substackcdn.com/image/fetch/$s_!CHxj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70c040f5-985d-42cd-b0bd-674f0ca994ce.heic 1272w, https://substackcdn.com/image/fetch/$s_!CHxj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70c040f5-985d-42cd-b0bd-674f0ca994ce.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CHxj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70c040f5-985d-42cd-b0bd-674f0ca994ce.heic" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/70c040f5-985d-42cd-b0bd-674f0ca994ce.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2120082,&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://macrostack.dev/i/178281169?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70c040f5-985d-42cd-b0bd-674f0ca994ce.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_!CHxj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70c040f5-985d-42cd-b0bd-674f0ca994ce.heic 424w, https://substackcdn.com/image/fetch/$s_!CHxj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70c040f5-985d-42cd-b0bd-674f0ca994ce.heic 848w, https://substackcdn.com/image/fetch/$s_!CHxj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70c040f5-985d-42cd-b0bd-674f0ca994ce.heic 1272w, https://substackcdn.com/image/fetch/$s_!CHxj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70c040f5-985d-42cd-b0bd-674f0ca994ce.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>Earlier this week, I boarded a flight. I closed my laptop and walked into the plane.</p><p>Before takeoff, I described a feature to my coding agent, hit submit, and switched to flight mode.</p><p>When I landed, the pull request was ready &#8212; implemented, tested, and reviewed. I triggered a second review using Gemini, merged it and the feature went live before I reached baggage claim.</p><p>This wasn&#8217;t <em>AI productivity</em>. This was <strong>AI delegation</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-gYV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a1b51c-159b-48ff-81d0-8ab58f1c5e34_1206x2622.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-gYV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a1b51c-159b-48ff-81d0-8ab58f1c5e34_1206x2622.png 424w, https://substackcdn.com/image/fetch/$s_!-gYV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a1b51c-159b-48ff-81d0-8ab58f1c5e34_1206x2622.png 848w, https://substackcdn.com/image/fetch/$s_!-gYV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a1b51c-159b-48ff-81d0-8ab58f1c5e34_1206x2622.png 1272w, https://substackcdn.com/image/fetch/$s_!-gYV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a1b51c-159b-48ff-81d0-8ab58f1c5e34_1206x2622.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-gYV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a1b51c-159b-48ff-81d0-8ab58f1c5e34_1206x2622.png" width="228" height="495.7014925373134" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/00a1b51c-159b-48ff-81d0-8ab58f1c5e34_1206x2622.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2622,&quot;width&quot;:1206,&quot;resizeWidth&quot;:228,&quot;bytes&quot;:628168,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://macrostack.dev/i/178281169?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a1b51c-159b-48ff-81d0-8ab58f1c5e34_1206x2622.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-gYV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a1b51c-159b-48ff-81d0-8ab58f1c5e34_1206x2622.png 424w, https://substackcdn.com/image/fetch/$s_!-gYV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a1b51c-159b-48ff-81d0-8ab58f1c5e34_1206x2622.png 848w, https://substackcdn.com/image/fetch/$s_!-gYV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a1b51c-159b-48ff-81d0-8ab58f1c5e34_1206x2622.png 1272w, https://substackcdn.com/image/fetch/$s_!-gYV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00a1b51c-159b-48ff-81d0-8ab58f1c5e34_1206x2622.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></p><h2>The Leverage Shift</h2><p>In the old world, leverage meant hiring a bigger team. In this one, it means building systems that work for you.</p><p>This changes what good work looks like:</p><ul><li><p>You&#8217;re not rewarded for how much you do, but for how much gets done without you doing it.</p></li><li><p>You&#8217;re not measured by effort, but by orchestration. How clearly you can define outcomes and direct systems toward them.</p></li></ul><p>AI delegation turns every individual contributor into a one-person organization.</p><p>The better you are at describing what needs to happen, the more you can multiply yourself.</p><h2>How to Start Delegating Today</h2><ol><li><p><strong>Audit your work.</strong><br>List everything you do in a week. Circle what follows patterns: routine, data-driven, rule-based works. Those are your delegation candidates.</p></li><li><p><strong>Design the brief, not the output.</strong><br>The skill isn&#8217;t <em>prompting</em>. It&#8217;s describing what success looks like. Think outcomes, not instructions.</p></li><li><p><strong>Automate the loop.</strong><br>Treat AI like a team member: assign, review, improve. Each iteration compounds learning, for you and for the system.</p></li><li><p><strong>Think in systems, no sessions.</strong><br>Don&#8217;t treat AI as a one-off assistant you chat with. Build workflows where AI works between your sessions: writing, reviewing, or analyzing while you&#8217;re doing something else.</p></li></ol><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://macrostack.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://macrostack.dev/subscribe?"><span>Subscribe now</span></a></p><h2>The Mindset Shift</h2><p>Most people ask, &#8220;<em>What can I do for me?</em>&#8221;</p><p>But the better question is, &#8220;<em><strong>What can I stop doing because AI can handle it?</strong></em>&#8221;</p><p>That&#8217;s delegation. And that&#8217;s how you stay relevant.</p><p>If the last decade rewarded those who could automate,<br>the next one will reward those who can delegate.</p><h2>The Real Question</h2><p>The workplace is splitting into two groups: those who delegate to AI, and those who are delegated by it.</p><p>Which side are you on?</p><p></p><div><hr></div><p><em>I&#8217;m building and experimenting with these delegation systems every week &#8212; for myself, my team, and the tools we&#8217;re creating. If this lens on AI and work resonates, follow along for more essays on building leverage, not just effort.</em></p>]]></content:encoded></item></channel></rss>