<?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[Radical Insider]]></title><description><![CDATA[A veteran developer's honest take on building software with AI, the tech industry's BS, and the things that actually matter - from the field and the keyboard.]]></description><link>https://radicalinsider.org</link><image><url>https://substackcdn.com/image/fetch/$s_!c_tG!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd7258a0-75b8-4415-8cfb-e2d7010811fd_256x256.png</url><title>Radical Insider</title><link>https://radicalinsider.org</link></image><generator>Substack</generator><lastBuildDate>Sun, 10 May 2026 09:55:53 GMT</lastBuildDate><atom:link href="https://radicalinsider.org/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Radford Castro]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[radicalinsider@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[radicalinsider@substack.com]]></itunes:email><itunes:name><![CDATA[Radical Insider]]></itunes:name></itunes:owner><itunes:author><![CDATA[Radical Insider]]></itunes:author><googleplay:owner><![CDATA[radicalinsider@substack.com]]></googleplay:owner><googleplay:email><![CDATA[radicalinsider@substack.com]]></googleplay:email><googleplay:author><![CDATA[Radical Insider]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The AI Wrote the Code. I Still Had To Teach It Baseball.]]></title><description><![CDATA[Part 3 of 5: The BenchBoard Build &#8212; How I Bit Off More Than I Could Chew Building This SaaS Even With the "Best" LLMs]]></description><link>https://radicalinsider.org/p/the-ai-wrote-the-code-i-still-had</link><guid isPermaLink="false">https://radicalinsider.org/p/the-ai-wrote-the-code-i-still-had</guid><dc:creator><![CDATA[Radical Insider]]></dc:creator><pubDate>Sat, 25 Apr 2026 14:03:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!XBy8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f52ed8f-bbce-49e6-ade8-a72b3232942d_1402x1122.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>This is Part 3 of a five-part series about building BenchBoard, a team management and live scorekeeping app for youth baseball and softball, with the help of AI tools. <a href="https://radicalinsider.substack.com/p/how-i-bit-off-more-than-i-could-chew">Part 1</a> covers the big-picture lessons of building with AI. <a href="https://radicalinsider.substack.com/p/the-architecture-the-ai-couldnt-see">Part 2</a> is the technical deep dive: the race condition, the three-tables-to-one refactor, the pipeline I designed after the AI&#8217;s fix wasn&#8217;t good enough. Start there if you want the full context.</em></p><p>So. </p><p>November was the month BenchBoard went into production.</p><p>Not &#8220;production&#8221; in the way people on Twitter mean it. Not a landing page with a Stripe checkout and a waitlist. Real production. A deployed app on Azure, behind authentication, with a database, a real-time communication layer, and actual functionality. Coaches could create teams, add players, drag them into batting orders and defensive positions, and see everything sync across devices.</p><p>I soft-launched it. No marketing. No ads. I put it out there and let search do its thing.</p><p>And people found it. Real coaches. Not friends I&#8217;d asked to test. Not developers giving polite feedback. Coaches who were actively looking for a tool to manage their youth baseball and softball teams, who found BenchBoard through Google, signed up, and started using it. Just a dozen of them.</p><p>That&#8217;s when I got the feedback that changed everything.</p><h3>&#8220;It&#8217;s a Nice Toy&#8221;</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!scuw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21a7396a-5553-466b-8e01-9b4fbe98c0e5_1332x1181.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!scuw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21a7396a-5553-466b-8e01-9b4fbe98c0e5_1332x1181.png 424w, https://substackcdn.com/image/fetch/$s_!scuw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21a7396a-5553-466b-8e01-9b4fbe98c0e5_1332x1181.png 848w, https://substackcdn.com/image/fetch/$s_!scuw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21a7396a-5553-466b-8e01-9b4fbe98c0e5_1332x1181.png 1272w, https://substackcdn.com/image/fetch/$s_!scuw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21a7396a-5553-466b-8e01-9b4fbe98c0e5_1332x1181.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!scuw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21a7396a-5553-466b-8e01-9b4fbe98c0e5_1332x1181.png" width="1332" height="1181" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/21a7396a-5553-466b-8e01-9b4fbe98c0e5_1332x1181.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1181,&quot;width&quot;:1332,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2393318,&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://radicalinsider.substack.com/i/195262049?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21a7396a-5553-466b-8e01-9b4fbe98c0e5_1332x1181.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_!scuw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21a7396a-5553-466b-8e01-9b4fbe98c0e5_1332x1181.png 424w, https://substackcdn.com/image/fetch/$s_!scuw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21a7396a-5553-466b-8e01-9b4fbe98c0e5_1332x1181.png 848w, https://substackcdn.com/image/fetch/$s_!scuw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21a7396a-5553-466b-8e01-9b4fbe98c0e5_1332x1181.png 1272w, https://substackcdn.com/image/fetch/$s_!scuw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21a7396a-5553-466b-8e01-9b4fbe98c0e5_1332x1181.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><p>I&#8217;m paraphrasing, but that was the essence. The coaches who found BenchBoard liked the team management side. The drag-and-drop lineup builder, the roster, the field diagram. They could see the potential. A few of them told me it was the cleanest interface they&#8217;d found for organizing their team.</p><p>Then came the &#8220;but.&#8221;</p><p>&#8220;But I need data. I need to know who&#8217;s playing where and for how long. I need to track at-bats. I need pitch counts. I need to know if I&#8217;m giving my left fielder enough innings or if the same three kids are always pitching. I need this thing to help me make *decisions*, not just arrange a lineup card.&#8221;</p><p>That hit hard. Because they were right.</p><p>Without game data, BenchBoard was a pretty roster. A digital lineup card. Coaches don&#8217;t need help making a list. They need help managing a season. They need to know that Jennie has pitched 45 pitches this week and shouldn&#8217;t start again until Thursday. They need to know that the kid who&#8217;s been sitting on the bench for three innings is the same kid whose parents are starting to wonder if the coach plays favorites. They need the numbers. In youth sports, fairness isn&#8217;t optional. It&#8217;s the whole point.</p><p>And they couldn&#8217;t get those numbers from BenchBoard. </p><p>At least not yet.</p><h3>The Options I Explored (And Why They Failed)</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4SKC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac62d28d-da4b-4530-9ecd-ca96e98b787d_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4SKC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac62d28d-da4b-4530-9ecd-ca96e98b787d_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!4SKC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac62d28d-da4b-4530-9ecd-ca96e98b787d_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!4SKC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac62d28d-da4b-4530-9ecd-ca96e98b787d_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!4SKC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac62d28d-da4b-4530-9ecd-ca96e98b787d_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4SKC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac62d28d-da4b-4530-9ecd-ca96e98b787d_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ac62d28d-da4b-4530-9ecd-ca96e98b787d_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;: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="" srcset="https://substackcdn.com/image/fetch/$s_!4SKC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac62d28d-da4b-4530-9ecd-ca96e98b787d_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!4SKC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac62d28d-da4b-4530-9ecd-ca96e98b787d_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!4SKC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac62d28d-da4b-4530-9ecd-ca96e98b787d_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!4SKC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac62d28d-da4b-4530-9ecd-ca96e98b787d_1024x608.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><p>My first instinct wasn&#8217;t to build scorekeeping from scratch. That sounded insane. Surely somebody else had solved this, and I could integrate with them. As I was doing research, I noticed there are a dozen solutions out there, but they need to be robust and most of all they need to be real-time. Out of the dozens available, it boiled down to two candidates.</p><p><strong>GameChanger</strong> was the obvious one. It&#8217;s the most widely used scorekeeping app in youth baseball and softball. If I could pull data from GameChanger into BenchBoard, I&#8217;d have instant access to pitch counts, at-bats, innings played. Everything the coaches were asking for.</p><p>One problem: GameChanger&#8217;s APIs aren&#8217;t public. There&#8217;s no integration path. You can&#8217;t programmatically access the data. It&#8217;s a walled garden. I poked around at some git repositories and noticed someone tried to scrape it and reverse-engineer their endpoints, but that&#8217;s fragile, probably against their terms of service, and not something I&#8217;d want to build a product on. That, and the fact that my two kids have their stats on there.</p><p><strong>iScore</strong> was another option. They&#8217;ve been around longer and they do have some data export capabilities. But when I dug into it, the data fidelity wasn&#8217;t there. The connectors didn&#8217;t provide the level of detail these coaches were asking for. No play-by-play granularity. No per-player breakdowns across multiple games. It would&#8217;ve been a compromise from day one.</p><p>I looked at a few others. None of them gave me what I needed: <strong>a reliable, real-time data pipeline</strong> that could feed directly into BenchBoard&#8217;s team management layer and produce the coaching analytics these coaches were describing.</p><p>Which left the one option I&#8217;d been avoiding.</p><p><strong>Build it myself.</strong></p><p></p><h3>Going Head-to-Head With GameChanger</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qgEd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9b7eb0c-5d99-4716-8868-a024d256ba35_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qgEd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9b7eb0c-5d99-4716-8868-a024d256ba35_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!qgEd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9b7eb0c-5d99-4716-8868-a024d256ba35_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!qgEd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9b7eb0c-5d99-4716-8868-a024d256ba35_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!qgEd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9b7eb0c-5d99-4716-8868-a024d256ba35_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qgEd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9b7eb0c-5d99-4716-8868-a024d256ba35_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d9b7eb0c-5d99-4716-8868-a024d256ba35_1672x941.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;:2896735,&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://radicalinsider.substack.com/i/195262049?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9b7eb0c-5d99-4716-8868-a024d256ba35_1672x941.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_!qgEd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9b7eb0c-5d99-4716-8868-a024d256ba35_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!qgEd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9b7eb0c-5d99-4716-8868-a024d256ba35_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!qgEd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9b7eb0c-5d99-4716-8868-a024d256ba35_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!qgEd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9b7eb0c-5d99-4716-8868-a024d256ba35_1672x941.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>Before I could commit to that, I had to answer an uncomfortable question. Why would anyone use BenchBoard&#8217;s scorekeeping when GameChanger already exists?</p><p>GameChanger is the 800-pound gorilla in this space. They have the market. They have the brand. They have the streaming feature that parents pay for. And let me be honest: their scorekeeping is solid. They track pitches, at-bats, game events. Their live stream shows real data because a scorekeeper is feeding it in real time. They do a lot of things well.</p><p>So I wasn&#8217;t sitting here thinking I could out-GameChanger GameChanger on day one. That would be delusional.</p><p>What I *was* thinking about was the gap between what GameChanger tracks and what a coach actually needs to *manage their team*.</p><p>GameChanger records the game. It tells you what happened. Who got a hit, who struck out, what the score was. But it doesn&#8217;t provide reports on *coaching decisions*. It doesn&#8217;t provide insight that the coach moved their right fielder to pitcher in the third inning and that decision led to three consecutive walks. It doesn&#8217;t advise the coach that the same three kids have been sitting on the bench for two innings while the starters play every position. It doesn&#8217;t connect lineup management to game outcomes in a way that helps a coach answer the question: &#8220;Am I managing this team fairly, and are my decisions working?&#8221;</p><p>Or from a competitive standpoint, am I making the best decision for this situation? Could the San Francisco Giants use this? Oh the dream of it all. Would it be overkill? And to do this in real-time? That&#8217;s the goal.</p><p>That question matters differently depending on the league. In a rec league, fairness is everything. Every kid is supposed to get equal playing time, and parents notice when their child sits more than others. In a competitive league, it&#8217;s about development. At least for most travel teams. Is this kid getting the right mix of positions and at-bats to grow?</p><p>Either way, the data has to connect <strong>what the coach decided</strong> to <strong>what happened on the field</strong>. Hence the &#8220;Nice toy&#8221;.</p><p>Once in awhile a bit of doubt creeps in and says &#8220;would this ruin youth sports?&#8221; I guess that depends on every coach.</p><p>GameChanger doesn&#8217;t have that connection because it doesn&#8217;t manage the team. It scores the game. Those are different products.</p><p>BenchBoard manages both. The lineup builder, the roster, the drag-and-drop defensive positions - all of that feeds directly into the scorekeeping engine. When a coach makes a substitution mid-game, BenchBoard knows it was a coaching decision, not just a lineup change. When the scorekeeping data shows that substitution led to a scoreless inning, that&#8217;s actionable intelligence. When it shows a kid has only played two innings across three games, that&#8217;s an equity flag.</p><p>That realization was what moved me from &#8220;this is daunting&#8221; to &#8220;this is necessary.&#8221; If I build the scorekeeping engine right, tightly coupled to the team management layer, I&#8217;m not just catching up to GameChanger. I&#8217;d also make the real-time APIs public and consumable by other developers. If developers want to build a scoreboard in the middle of the field with my APIs, they can. I&#8217;m building something GameChanger&#8217;s team would have to fundamentally restructure to replicate. </p><h3>A Full-Blown App, Inside the App I Just Finished</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MN15!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897425d4-6122-4a33-9133-b72bbb9cf6e5_1668x943.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MN15!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897425d4-6122-4a33-9133-b72bbb9cf6e5_1668x943.png 424w, https://substackcdn.com/image/fetch/$s_!MN15!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897425d4-6122-4a33-9133-b72bbb9cf6e5_1668x943.png 848w, https://substackcdn.com/image/fetch/$s_!MN15!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897425d4-6122-4a33-9133-b72bbb9cf6e5_1668x943.png 1272w, https://substackcdn.com/image/fetch/$s_!MN15!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897425d4-6122-4a33-9133-b72bbb9cf6e5_1668x943.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MN15!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897425d4-6122-4a33-9133-b72bbb9cf6e5_1668x943.png" width="1456" height="823" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/897425d4-6122-4a33-9133-b72bbb9cf6e5_1668x943.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:823,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3088629,&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://radicalinsider.substack.com/i/195262049?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897425d4-6122-4a33-9133-b72bbb9cf6e5_1668x943.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_!MN15!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897425d4-6122-4a33-9133-b72bbb9cf6e5_1668x943.png 424w, https://substackcdn.com/image/fetch/$s_!MN15!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897425d4-6122-4a33-9133-b72bbb9cf6e5_1668x943.png 848w, https://substackcdn.com/image/fetch/$s_!MN15!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897425d4-6122-4a33-9133-b72bbb9cf6e5_1668x943.png 1272w, https://substackcdn.com/image/fetch/$s_!MN15!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897425d4-6122-4a33-9133-b72bbb9cf6e5_1668x943.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>I ended <a href="https://radicalinsider.substack.com/p/the-architecture-the-ai-couldnt-see">Part 2</a> by telling you the decision to build scorekeeping terrified me. Let me walk that back a little, because it&#8217;s not quite right.</p><p>With 30+ years of building software, code doesn&#8217;t scare me. I was shaking my head. Because I knew exactly what I was looking at. Building *another* app. Not a feature. Not an add-on. A full-blown *system of record* for live game data - even with AI agents behind me doing a good chunk of the work.</p><p>And if you know anything about building systems of record, you know they have to be robust and reliable from day one. You don&#8217;t get to ship a &#8220;pretty good&#8221; scorekeeping engine and iterate. If the data is wrong, coaches make wrong decisions. If it&#8217;s unreliable, nobody trusts it. If it drops a pitch or miscounts an at-bat, you&#8217;ve lost that user forever. The irony is that&#8217;s where the code stands now and scorekeeping is in Beta. Ok for scrimmages.  Not for tournaments or even Little League.</p><p>That&#8217;s a high bar for any project, let alone one you&#8217;re bolting onto an existing app that already took months to stabilize. The team management side of BenchBoard had just taught me how hard the &#8220;simple&#8221; part was. The three-table refactor. The race condition. The 36 migrations. The localStorage cross-contamination. All of that was the warm-up.</p><p>Now I was looking at scorekeeping. And I realized the coach&#8217;s feedback was mine too.</p><p>On one of my reporting pages, I have a feature called *Position Heat Maps*. Innings played at each position, rendered as a grid. The darker the cell, the more innings that player has played there. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iLrx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F579bc5f9-de88-4dc8-8c57-dcaea99d4974_654x485.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iLrx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F579bc5f9-de88-4dc8-8c57-dcaea99d4974_654x485.png 424w, https://substackcdn.com/image/fetch/$s_!iLrx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F579bc5f9-de88-4dc8-8c57-dcaea99d4974_654x485.png 848w, https://substackcdn.com/image/fetch/$s_!iLrx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F579bc5f9-de88-4dc8-8c57-dcaea99d4974_654x485.png 1272w, https://substackcdn.com/image/fetch/$s_!iLrx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F579bc5f9-de88-4dc8-8c57-dcaea99d4974_654x485.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iLrx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F579bc5f9-de88-4dc8-8c57-dcaea99d4974_654x485.png" width="654" height="485" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/579bc5f9-de88-4dc8-8c57-dcaea99d4974_654x485.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:485,&quot;width&quot;:654,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:43397,&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://radicalinsider.substack.com/i/195262049?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F579bc5f9-de88-4dc8-8c57-dcaea99d4974_654x485.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_!iLrx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F579bc5f9-de88-4dc8-8c57-dcaea99d4974_654x485.png 424w, https://substackcdn.com/image/fetch/$s_!iLrx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F579bc5f9-de88-4dc8-8c57-dcaea99d4974_654x485.png 848w, https://substackcdn.com/image/fetch/$s_!iLrx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F579bc5f9-de88-4dc8-8c57-dcaea99d4974_654x485.png 1272w, https://substackcdn.com/image/fetch/$s_!iLrx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F579bc5f9-de88-4dc8-8c57-dcaea99d4974_654x485.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>It&#8217;s how a coach spots, in two seconds, that the same three kids have been pitching all season. That kind of visibility only exists if the underlying data exists. </p><p>Now check out this&#8230; </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MCRi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13477fe-2b72-4877-888a-5690045a73d5_825x554.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MCRi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13477fe-2b72-4877-888a-5690045a73d5_825x554.png 424w, https://substackcdn.com/image/fetch/$s_!MCRi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13477fe-2b72-4877-888a-5690045a73d5_825x554.png 848w, https://substackcdn.com/image/fetch/$s_!MCRi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13477fe-2b72-4877-888a-5690045a73d5_825x554.png 1272w, https://substackcdn.com/image/fetch/$s_!MCRi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13477fe-2b72-4877-888a-5690045a73d5_825x554.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MCRi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13477fe-2b72-4877-888a-5690045a73d5_825x554.png" width="825" height="554" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e13477fe-2b72-4877-888a-5690045a73d5_825x554.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:554,&quot;width&quot;:825,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:69738,&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://radicalinsider.substack.com/i/195262049?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13477fe-2b72-4877-888a-5690045a73d5_825x554.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_!MCRi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13477fe-2b72-4877-888a-5690045a73d5_825x554.png 424w, https://substackcdn.com/image/fetch/$s_!MCRi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13477fe-2b72-4877-888a-5690045a73d5_825x554.png 848w, https://substackcdn.com/image/fetch/$s_!MCRi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13477fe-2b72-4877-888a-5690045a73d5_825x554.png 1272w, https://substackcdn.com/image/fetch/$s_!MCRi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe13477fe-2b72-4877-888a-5690045a73d5_825x554.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><figcaption class="image-caption">This one shows the average batting order (AVG BO) of the player as well as the highest the player batted at on the batting list - vs the lowest (BO RANGE). As well as the rate of how often they start.</figcaption></figure></div><p>and this&#8230;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ImEj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4610c00a-0501-41de-bed8-676e9156d09e_817x445.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ImEj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4610c00a-0501-41de-bed8-676e9156d09e_817x445.png 424w, https://substackcdn.com/image/fetch/$s_!ImEj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4610c00a-0501-41de-bed8-676e9156d09e_817x445.png 848w, https://substackcdn.com/image/fetch/$s_!ImEj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4610c00a-0501-41de-bed8-676e9156d09e_817x445.png 1272w, https://substackcdn.com/image/fetch/$s_!ImEj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4610c00a-0501-41de-bed8-676e9156d09e_817x445.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ImEj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4610c00a-0501-41de-bed8-676e9156d09e_817x445.png" width="817" height="445" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4610c00a-0501-41de-bed8-676e9156d09e_817x445.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:445,&quot;width&quot;:817,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:33397,&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://radicalinsider.substack.com/i/195262049?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4610c00a-0501-41de-bed8-676e9156d09e_817x445.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_!ImEj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4610c00a-0501-41de-bed8-676e9156d09e_817x445.png 424w, https://substackcdn.com/image/fetch/$s_!ImEj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4610c00a-0501-41de-bed8-676e9156d09e_817x445.png 848w, https://substackcdn.com/image/fetch/$s_!ImEj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4610c00a-0501-41de-bed8-676e9156d09e_817x445.png 1272w, https://substackcdn.com/image/fetch/$s_!ImEj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4610c00a-0501-41de-bed8-676e9156d09e_817x445.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><p>All nice ideas and cool to have but these along with other insights and reports are parked behind a door labeled &#8220;scorekeeping.&#8221; </p><p>No scorekeeping, no data. No data, no screens. I wasn&#8217;t just losing a few coaches who wanted pitch counts. I was losing the entire second half of the product I thought I was building.</p><p>So, yes. <strong>Another app inside my app.</strong></p><h3>&#8220;Build Me a Scorekeeping App for BenchBoard&#8221; Is Not a Prompt</h3><p>Here is where I have to pause and say something to the growing choir of voices claiming software engineers are about to be obsolete.</p><p>Open a fresh chat with whichever LLM you like. Type the prompt:</p><p>&gt; *Build me a scorekeeping app for BenchBoard.*</p><p>You will get code. Lots of it. It will compile. It will run. A demo will appear on your screen. You can tap a button and a &#8220;1&#8221; will increment somewhere. And that&#8217;s where the camera will stop.</p><p>Twitter will clip it. A YouTuber will make a 30 minute video from a 10 second clip and call it the end of the software engineering as we know it. Hell, pick almost any high skill profession that has a ton of logic gates to open through.</p><p>Now ship that to a youth coach in the middle of a real game and watch what happens. This is what the media does NOT show.</p><p>Because that prompt has no answer. There is no single prompt that produces a scorekeeping system. There is a <strong>tree</strong> of decisions, and every branch requires both knowledge of baseball and knowledge of how to build software, and those two things are almost never in the same person. </p><p><strong>That is the actual job.</strong> </p><p>That&#8217;s what has to exist in someone&#8217;s head, and that&#8217;s what the AI cannot do on its own.</p><p>Let me show you what I mean. I&#8217;ll pull from a single file in my codebase &#8212; the domain model. This is one C# file. It literally defines the <strong>shapes of things</strong> that scorekeeping has to be aware of (database schema for all you seasoned devs out there). It&#8217;s basically where the stats go. How many strikes are thrown. Etc. Nothing fancy. No logic. Just the list of entities that must exist for the system to function.</p><p>Quick normie translation. Entities are the boxes on your scorecard. Every little pre-printed rectangle with a label above it. &#8220;Pitcher.&#8221; &#8220;Batter.&#8221; &#8220;Inning.&#8221; &#8220;Out.&#8221; If your scorecard doesn&#8217;t have a box for a thing, that thing cannot exist in your world. You can&#8217;t write &#8220;guest player&#8221; on a scorecard that has no row for guest players &#8212; you&#8217;ll stuff them into the roster row, and now your roster is wrong for the rest of the season.</p><p>Entities are those boxes. A data model is just a scorecard for the computer. And if the scorecard is missing a box, the computer cannot remember what you didn&#8217;t give it a place to write down.</p><p>Here is an abbreviated tour:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Awx7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3d442cf-39f3-478d-a7f9-8e1142e75197_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Awx7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3d442cf-39f3-478d-a7f9-8e1142e75197_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Awx7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3d442cf-39f3-478d-a7f9-8e1142e75197_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Awx7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3d442cf-39f3-478d-a7f9-8e1142e75197_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Awx7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3d442cf-39f3-478d-a7f9-8e1142e75197_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Awx7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3d442cf-39f3-478d-a7f9-8e1142e75197_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b3d442cf-39f3-478d-a7f9-8e1142e75197_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;:2132480,&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://radicalinsider.substack.com/i/195262049?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3d442cf-39f3-478d-a7f9-8e1142e75197_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_!Awx7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3d442cf-39f3-478d-a7f9-8e1142e75197_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Awx7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3d442cf-39f3-478d-a7f9-8e1142e75197_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Awx7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3d442cf-39f3-478d-a7f9-8e1142e75197_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Awx7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb3d442cf-39f3-478d-a7f9-8e1142e75197_1536x1024.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>Yes. I know. To a normal person, this is a lot to take in. But to a seasoned developer this is nothing. But that&#8217;s one file. I have four others. Roughly 1,300 lines of model code in total, before a single line of business logic, frontend code, database migration, or SignalR wiring gets written. And none of those shapes were invented because a textbook told me to. Every single one exists because something in the real game forced it. In other words, a human did that. No AI decided that&#8217;s how the tables would look.</p><p>Take a look at one table (or entity) and see how deep it goes.</p><p><strong>GamePlayerStat.</strong> This is the per-game stats row. How many fields does it have? A little over fifty. <code>AB, H, R, RBI, BB, SO, HBP, SF, TB, Singles, Doubles, Triples, HR, PA, SH, IBB, SB, CS, GIDP, XBH, PickedOff, IP, ER, HRAllowed, BBAllowed, SOThrown, Pitches, Strikes, Balls, BF, H_Allowed, R_Allowed, WP, HB, BK, W, L, SV, BS, HLD, QS, GS, CG, SHO, PO, A, E, DRS, InningsByPosition, PositionInningsJson, DP, TP, PB, SB_Allowed, CS_Caught, RF&#8230;</code>* and I'm stopping because the list goes on.</p><p>Some of you who know baseball (or even softball) may know half of what some of these are &#8212; and we haven&#8217;t even begun to talk about how to manage users.</p><p>For the non-coders: picture the back of a baseball card. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uci2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64179aa3-a70d-4782-a042-feea44521d9c_1492x1054.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uci2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64179aa3-a70d-4782-a042-feea44521d9c_1492x1054.png 424w, https://substackcdn.com/image/fetch/$s_!uci2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64179aa3-a70d-4782-a042-feea44521d9c_1492x1054.png 848w, https://substackcdn.com/image/fetch/$s_!uci2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64179aa3-a70d-4782-a042-feea44521d9c_1492x1054.png 1272w, https://substackcdn.com/image/fetch/$s_!uci2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64179aa3-a70d-4782-a042-feea44521d9c_1492x1054.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uci2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64179aa3-a70d-4782-a042-feea44521d9c_1492x1054.png" width="1456" height="1029" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/64179aa3-a70d-4782-a042-feea44521d9c_1492x1054.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1029,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2915650,&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://radicalinsider.substack.com/i/195262049?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64179aa3-a70d-4782-a042-feea44521d9c_1492x1054.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_!uci2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64179aa3-a70d-4782-a042-feea44521d9c_1492x1054.png 424w, https://substackcdn.com/image/fetch/$s_!uci2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64179aa3-a70d-4782-a042-feea44521d9c_1492x1054.png 848w, https://substackcdn.com/image/fetch/$s_!uci2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64179aa3-a70d-4782-a042-feea44521d9c_1492x1054.png 1272w, https://substackcdn.com/image/fetch/$s_!uci2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64179aa3-a70d-4782-a042-feea44521d9c_1492x1054.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>Every tiny number crammed in microscopic font across the bottom. Batting average, on-base percentage, stolen bases, caught stealing, sacrifice flies. Now imagine a card like that for every kid, for every game, for every season, for every team he (or she) is in. That is what this row is. Fifty little boxes the app has to remember to fill in, or remember <em>not</em> to fill in, every single time somebody swings a bat or throws a pitch.</p><p>Now tell me where in the "build me a scorekeeping app" prompt the AI decides which of those fifty fields to include, which to skip for youth vs. college, which ones are derived from other fields, which ones are entered directly by the scorekeeper, and which ones only exist because <em>Range Factor</em> is a thing in advanced baseball analytics but not in a rec league. </p><p><strong>It doesn't.</strong> </p><p><strong>It </strong><em><strong>can't</strong></em><strong>.</strong> </p><p>Someone has to sit at a table with a coach wearing a developer hat and decide. This is one of just a million examples where the non-developer has to sit down and decide where things go, how things should operate, how things should display. In fact, I&#8217;ve seen some examples online that are just simply broken. And we&#8217;re not even talking about how we deploy this damn thing or what devices it should be on, or even how it should look on each of those devices.</p><p>Then there&#8217;s the actual architecture of the system itself. </p><p>The <a href="https://learn.microsoft.com/en-us/aspnet/signalr/overview/getting-started/introduction-to-signalr">SignalR</a> hub and its scoping rules. The master orchestrator pipeline that hydrates game state from the event log on reconnect &#8212; basically when devices are disconnected, devices wait until it&#8217;s online THEN sends the updates to the internet fot safekeeping. The thirty-plus database migrations to get here. The SolidJS frontend stores, their persistence, their cross-environment token isolation. The SMS pipeline with its invite tokens and delivery status &#8212; which is basically texting a phone and letting you know it made it via &#8220;Read&#8221;. The admin dashboard. The Stripe linkage to get customers to pay for stuff like a subscription. The MFA flows for both users and admins to keep things secure. The incident tracking. The feature flag system. The <code>SkillTemplate</code> catalog. The Settings table keyed by entity type. The list goes on.</p><p>All of that was in my head, on my whiteboard, in my notes, or in someone&#8217;s war story from a real game. None of it came from a single prompt. </p><p><strong>None of it </strong><em><strong>could</strong></em><strong>.</strong></p><p>And that&#8217;s just a taste of some of the backend stuff.</p><h4>Why AI&#8217;s Suck Without Humans (which maybe my next headline)</h4><p>This is the part where I not only still had to teach it baseball/softball but how to build things the right way.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XBy8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f52ed8f-bbce-49e6-ade8-a72b3232942d_1402x1122.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XBy8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f52ed8f-bbce-49e6-ade8-a72b3232942d_1402x1122.png 424w, https://substackcdn.com/image/fetch/$s_!XBy8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f52ed8f-bbce-49e6-ade8-a72b3232942d_1402x1122.png 848w, https://substackcdn.com/image/fetch/$s_!XBy8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f52ed8f-bbce-49e6-ade8-a72b3232942d_1402x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!XBy8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f52ed8f-bbce-49e6-ade8-a72b3232942d_1402x1122.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XBy8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f52ed8f-bbce-49e6-ade8-a72b3232942d_1402x1122.png" width="1402" height="1122" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3f52ed8f-bbce-49e6-ade8-a72b3232942d_1402x1122.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1122,&quot;width&quot;:1402,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3281561,&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://radicalinsider.substack.com/i/195262049?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f52ed8f-bbce-49e6-ade8-a72b3232942d_1402x1122.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_!XBy8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f52ed8f-bbce-49e6-ade8-a72b3232942d_1402x1122.png 424w, https://substackcdn.com/image/fetch/$s_!XBy8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f52ed8f-bbce-49e6-ade8-a72b3232942d_1402x1122.png 848w, https://substackcdn.com/image/fetch/$s_!XBy8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f52ed8f-bbce-49e6-ade8-a72b3232942d_1402x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!XBy8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f52ed8f-bbce-49e6-ade8-a72b3232942d_1402x1122.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><figcaption class="image-caption">AI needs humans to make stuff - even teach it baseball</figcaption></figure></div><h3>Why This Takes Both</h3><p>There is a loud narrative right now that software engineers are being automated out of a job. That the LLM is the new senior engineer and the rest of us are just typing slower versions of what it already knows. I have been doing this for thirty plus years. I have not been more convinced than I am right now that the opposite is true.</p><p>Here is how this actually breaks down.</p><p>The AI is excellent at the <em>inside</em> of a file. Give it a clear shape, a clear responsibility, and it will fill in methods, handle null checks, write test scaffolding, and clean up types faster than I can. It is a phenomenal accelerator for the parts of software engineering that are already understood. Part 2 of this series has more examples of that working for me.</p><p>But the AI is a tourist at the <em>outside</em> of the file. It does not know which entities should exist. It does not know whether a concept deserves a table, a JSON blob inside a table, an enum, a view, or a nothing. It does not know whether two things that look similar in a schema diagram are actually the same thing or are about to diverge violently in six months. It does not know what a coach will actually look at on game day, which means it cannot tell you what data has to be ready for that screen.</p><p>And it does not know what is <em>missing</em>. That&#8217;s the one that gets you. The AI will happily build what you ask for. It will not tell you that you forgot about walk-ups, fractional innings, pitch clock violations, dropped third strikes, passed balls, guest players with duplicate jersey numbers, or the difference between an opponent team and a registered team. Those gaps don&#8217;t show up until a real coach is standing in a real dugout and something happens that your schema can&#8217;t hold. </p><p>This is where knowing the lay of the land as a coach and a software engineer gives you a unique perspective. You understand the scope of the problem, its impact, and what it means to have a system that actually works. It&#8217;s like being the head chef in a kitchen. You know the equipment. You know the recipe. You know what your customers want and what tastes good <em>to them</em>. Only you can take your squad, agentic or not, to the right place.</p><p>The AI is the line cook. A very fast, very tireless, never-complains line cook. It is not the head chef.</p><h3>Software Engineers Aren't Obsolete. They're the Job.</h3><p>I&#8217;ll leave you with this.</p><p>The part of my build that the AI accelerated the most &#8212; the methods, the controllers, the scaffolding, the boilerplate, the CSS &#8212; is the part that was already solved by somebody in the training data. I got a real speedup there. It was worth every token.</p><p>The part that the AI could not do, would not do, did not even know needed to be done, is the part that separates a demo from a system of record. The shape of the data. The choice of what to cache and what to derive. The list of domain rules you will be punished for violating. The judgment about which textbook answer is wrong <em>in this specific case</em>. The willingness to throw out the first version because you can smell the drift coming from three months down the road.</p><p>That is software engineering. Not typing. Not syntax. Not reading a doc and producing a function. It is the accumulated muscle of having been wrong before, in ways you remember, about systems that mattered. And then, on top of all of that, knowing the domain well enough to build for it.</p><p>One of the reasons I&#8217;m writing this series is that I&#8217;m watching a narrative build in public &#8212; in podcasts, on X, in press releases &#8212; that says this profession is ending. </p><p><strong>I&#8217;m telling you, from inside a build, that it is the opposite. The AI raised the ceiling on what one person can ship. It did not remove the need for someone to know what to ship. The gap between &#8220;working demo&#8221; and &#8220;thing a coach will trust with their kid&#8217;s pitch count&#8221; is exactly the gap between someone who has never been in a dugout and someone who has.</strong></p><p><strong>Scorekeeping wasn&#8217;t the hard part because it was complex code. It was the hard part because every choice had a rule behind it that lived in someone&#8217;s head, and that someone had to sit in the same chair as the developer.</strong></p><p><strong>I know that&#8217;s overwhelming for a single person. It is. It has been.</strong></p><p><strong>But it is also why this is still a job.</strong></p><h2>One Last Thing</h2><p>Near the beginning of the current AI wave, one of the smartest and most influential computer scientists alive &#8212; one of the actual fathers of modern deep learning, a Turing Award winner, somebody whose ideas the entire current boom is built on top of &#8212; stood in front of a conference and said this:<br></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FgLs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81325163-61d4-458b-88eb-ebc107d3f78a_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FgLs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81325163-61d4-458b-88eb-ebc107d3f78a_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!FgLs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81325163-61d4-458b-88eb-ebc107d3f78a_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!FgLs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81325163-61d4-458b-88eb-ebc107d3f78a_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!FgLs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81325163-61d4-458b-88eb-ebc107d3f78a_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FgLs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81325163-61d4-458b-88eb-ebc107d3f78a_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81325163-61d4-458b-88eb-ebc107d3f78a_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;: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="" srcset="https://substackcdn.com/image/fetch/$s_!FgLs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81325163-61d4-458b-88eb-ebc107d3f78a_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!FgLs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81325163-61d4-458b-88eb-ebc107d3f78a_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!FgLs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81325163-61d4-458b-88eb-ebc107d3f78a_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!FgLs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81325163-61d4-458b-88eb-ebc107d3f78a_1024x608.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><figcaption class="image-caption">Sketch of Geoffrey Hinton</figcaption></figure></div><blockquote><p><em>&#8220;I think that if you work as a radiologist you&#8217;re like the coyote that&#8217;s already over the edge of the cliff but hasn&#8217;t yet looked down... People should stop training radiologists now. It&#8217;s just completely obvious that within five years, deep learning is going to do better than radiologists.&#8221;</em></p></blockquote><p>That was Geoffrey Hinton. In 2016.</p><p>Five years came and went. Ten is almost up. Radiologists are still radiologists. There are <em>more</em> of them today than there were the day he said it, and they are working alongside AI tools that make them faster and better, not unemployed. The prediction was confident. It was mathematically reasoned. It was delivered by somebody with more authority than anyone writing the same sentence today about software engineers.</p><p>And it was wrong.</p><p>So when you see the same confident tone, the same &#8220;ten years&#8221; timeline, the same &#8220;the profession is ending&#8221; chorus pointed at my line of work &#8212; I want you to scroll back up. Read about fractional innings. Read about the three-ring binder. Read about the empty chair and the photograph that can&#8217;t update its own hair. Read about the 9-pane window drawn over home plate, and the mailbox full of envelopes that all look the same until you know who sent them.</p><p>Then ask yourself whether a prompt is going to figure any of that out.</p><p>I&#8217;ll see you in Part 4. Thanks for reading.</p><h2>Coming Up in Part 4</h2><p>Part 3 was the <em>shape</em> of the problem. Part 4 is what happens when you try to make the shape actually run in a real game on a real field with a real network.</p><p>I&#8217;ll get into the implementation stories that followed. The cache-vs-view decision that kept the ball-and-strike count from lying to a dugout. The guest player with the duplicate jersey number who would have silently corrupted the stats table if I&#8217;d matched the textbook way. The real-time communication pipes that let a scorekeeper&#8217;s tap become a scoreboard update for a parent in the parking lot. The race condition I hunted down where <code>End Inning</code> kept putting phantom runners on second base. The decision to stop broadcasting by team and start broadcasting by game &#8212; which the AI called &#8220;architecturally correct&#8221; once I handed it the answer, but would not have volunteered. And the master orchestrator pipeline I had to design when the AI&#8217;s first fix for a different bug kept re-introducing the bug I&#8217;d just fixed.</p><p>Part 5 brings it home: what I've learned about shipping with AI, what I've stopped doing, what I've started doing, and the single question I now ask before I accept any prompt's output.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://radicalinsider.org/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Dear Xbox Fans: Satya Nadella Just Doesn't Give a Damn About Games]]></title><description><![CDATA[He hired a platform architect to fix a cultural crisis. The financial data explains why, and why that thinking will kill the brand.]]></description><link>https://radicalinsider.org/p/dear-xbox-fans-satya-nadella-just</link><guid isPermaLink="false">https://radicalinsider.org/p/dear-xbox-fans-satya-nadella-just</guid><dc:creator><![CDATA[Radical Insider]]></dc:creator><pubDate>Mon, 30 Mar 2026 06:33:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QKc6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4087fb2c-f974-49ee-8055-e7420ada93d0_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QKc6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4087fb2c-f974-49ee-8055-e7420ada93d0_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QKc6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4087fb2c-f974-49ee-8055-e7420ada93d0_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!QKc6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4087fb2c-f974-49ee-8055-e7420ada93d0_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!QKc6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4087fb2c-f974-49ee-8055-e7420ada93d0_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!QKc6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4087fb2c-f974-49ee-8055-e7420ada93d0_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QKc6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4087fb2c-f974-49ee-8055-e7420ada93d0_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4087fb2c-f974-49ee-8055-e7420ada93d0_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QKc6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4087fb2c-f974-49ee-8055-e7420ada93d0_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!QKc6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4087fb2c-f974-49ee-8055-e7420ada93d0_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!QKc6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4087fb2c-f974-49ee-8055-e7420ada93d0_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!QKc6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4087fb2c-f974-49ee-8055-e7420ada93d0_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The current gaming scene - in sketch</figcaption></figure></div><p>On February 20, 2026, in the middle of Xbox&#8217;s 25th anniversary year, a year that was supposed to signal renewal, Microsoft announced that Phil Spencer was retiring after 38 years at the company. In the same breath, Xbox president Sarah Bond resigned. And Asha Sharma, a senior executive from Microsoft&#8217;s CoreAI division who had never worked a day in gaming, was named EVP and CEO of Microsoft Gaming.</p><p>Just like that, the two most prominent faces of Xbox were gone. Replaced by someone most gamers had never heard of.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!C7pt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc255bcd2-40f3-4557-8fb2-989a15065a46_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!C7pt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc255bcd2-40f3-4557-8fb2-989a15065a46_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!C7pt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc255bcd2-40f3-4557-8fb2-989a15065a46_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!C7pt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc255bcd2-40f3-4557-8fb2-989a15065a46_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!C7pt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc255bcd2-40f3-4557-8fb2-989a15065a46_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!C7pt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc255bcd2-40f3-4557-8fb2-989a15065a46_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c255bcd2-40f3-4557-8fb2-989a15065a46_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;:3514684,&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://radicalinsider.substack.com/i/192580784?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc255bcd2-40f3-4557-8fb2-989a15065a46_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_!C7pt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc255bcd2-40f3-4557-8fb2-989a15065a46_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!C7pt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc255bcd2-40f3-4557-8fb2-989a15065a46_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!C7pt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc255bcd2-40f3-4557-8fb2-989a15065a46_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!C7pt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc255bcd2-40f3-4557-8fb2-989a15065a46_1536x1024.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></p><p>The reaction was immediate and loud: <em>Who is this person? Why her? Does anyone at Microsoft actually care about games anymore?</em></p><p>Five weeks later, the jury is still out on Sharma. But the verdict on Microsoft&#8217;s understanding of gaming came in a long time ago. And the evidence is damning.</p><div><hr></div><h2>Follow the Money</h2><p>Before we talk about leadership, culture, or strategy, look at the numbers. Because the numbers explain everything.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jXOu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d5ee02-44b7-4bdb-a95a-c8588264ba55_1572x1390.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jXOu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d5ee02-44b7-4bdb-a95a-c8588264ba55_1572x1390.png 424w, https://substackcdn.com/image/fetch/$s_!jXOu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d5ee02-44b7-4bdb-a95a-c8588264ba55_1572x1390.png 848w, https://substackcdn.com/image/fetch/$s_!jXOu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d5ee02-44b7-4bdb-a95a-c8588264ba55_1572x1390.png 1272w, https://substackcdn.com/image/fetch/$s_!jXOu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d5ee02-44b7-4bdb-a95a-c8588264ba55_1572x1390.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jXOu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d5ee02-44b7-4bdb-a95a-c8588264ba55_1572x1390.png" width="1456" height="1287" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5d5ee02-44b7-4bdb-a95a-c8588264ba55_1572x1390.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1287,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:154336,&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://radicalinsider.substack.com/i/192580784?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d5ee02-44b7-4bdb-a95a-c8588264ba55_1572x1390.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_!jXOu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d5ee02-44b7-4bdb-a95a-c8588264ba55_1572x1390.png 424w, https://substackcdn.com/image/fetch/$s_!jXOu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d5ee02-44b7-4bdb-a95a-c8588264ba55_1572x1390.png 848w, https://substackcdn.com/image/fetch/$s_!jXOu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d5ee02-44b7-4bdb-a95a-c8588264ba55_1572x1390.png 1272w, https://substackcdn.com/image/fetch/$s_!jXOu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5d5ee02-44b7-4bdb-a95a-c8588264ba55_1572x1390.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>Microsoft does not report Xbox as a standalone audited revenue segment. It buries gaming inside a bucket called &#8220;More Personal Computing,&#8221; alongside Windows, devices, and search advertising. That&#8217;s the first tell. But based on Microsoft&#8217;s own FY2025 disclosures (gaming revenue up $2.0 billion (9%), Windows and Devices up $288 million (2%), Search and News Ads up $1.6 billion (13%), you can back into a defensible estimate of what the Gaming/Xbox slice actually looks like.</p><p>It&#8217;s roughly $25.1 billion. Out of $281.7 billion in total Microsoft revenue.</p><p>That&#8217;s 8.9%.</p><p>Look at the pie. Productivity &amp; Business Processes (Office, LinkedIn, Dynamics) takes up 42.9% at $120.8 billion. Intelligent Cloud (Azure and the server empire) takes up 37.7% at $106.3 billion. Together, those two segments account for over 80% of Microsoft&#8217;s revenue. Gaming is the small green wedge jammed into the corner.</p><p>And even that $25.1 billion is misleading if you think of it as &#8220;Xbox.&#8221; It includes Xbox content and services (Game Pass, digital sales, Activision Blizzard revenue), Xbox hardware, and everything Microsoft acquired when it spent $68.7 billion buying Activision Blizzard and $7.5 billion on ZeniMax. Xbox hardware revenue <em>fell 25%</em> in FY2025. The growth came from content and services: software, subscriptions, and the games that came with the acquisitions. The console business itself is shrinking inside an already small slice.</p><p>When Satya Nadella looks at this pie chart, he doesn&#8217;t see a gaming empire. He sees a rounding error next to Azure. He sees 8.9% of revenue that should be optimized, scaled, and squeezed for more margin, the same way he&#8217;d think about any underperforming division.</p><p>And that&#8217;s exactly what he did.</p><div><hr></div><h2>The 30% Mandate</h2><p>In October 2025, Bloomberg&#8217;s Jason Schreier and Dina Bass reported what many inside Microsoft already knew: CFO Amy Hood had imposed an across-the-board goal of 30% &#8220;accountability margins&#8221; on the Xbox gaming division, which is Microsoft&#8217;s internal term for profit margins. The target was set in fall 2023, and Hood&#8217;s finance team had been taking a larger role in the gaming business ever since.</p><p>Let that number sit for a second. Thirty percent.</p><p>The gaming industry typically operates at 17% to 22% margins. Even PlayStation, the dominant force in gaming, with $30 billion in FY24 revenue and more than double Xbox&#8217;s install base, hasn&#8217;t hit a profit margin above 13% in nine years. An S&amp;P Global analyst called the 30% target the &#8220;outer range of what a gaming studio can typically reach in a boom year&#8221; and noted that margins like that are &#8220;usually reserved for a publisher that is really nailing it.&#8221;</p><p>Xbox was not nailing it. In the first nine months of FY2022, Xbox&#8217;s accountability margin was 12%. Microsoft was demanding they nearly triple it.</p><p>Before this mandate, Xbox developers weren&#8217;t asked to hit specific financial targets. They were told to focus on making the best games possible without worrying too much about finances. That philosophy, make great games and the business will follow, is the same philosophy that built every iconic gaming brand in history. It&#8217;s the philosophy PlayStation operates on today.</p><p>Microsoft replaced it with a spreadsheet.</p><p>And the results were immediate and devastating.</p><div><hr></div><h2>The Layoff Machine</h2><p>On July 2, 2025, Microsoft gutted its gaming studios in a single day. Raven Software: 20 jobs. Blizzard Entertainment: roughly 100. The Initiative: around 50. Turn10 Studios: roughly 70. ZeniMax Online: 164. King: 200. Halo Studio and Bethesda Softworks: unknown numbers. All Microsoft-owned. All on the same day.</p><p>This wasn&#8217;t the first round. Microsoft had already cut thousands of gaming jobs across 2024. But the July 2025 cuts hit different, because of who they hit, and what Phil Spencer said about it.</p><p>Spencer sent an email to all Microsoft Gaming employees that day. Windows Central obtained it. Here&#8217;s the key line: &#8220;I recognize that these changes come at a time when we have more players, games, and gaming hours than ever before. Our platform, hardware, and game roadmap have never looked stronger. The success we&#8217;re seeing currently is based on tough decisions we&#8217;ve made previously.&#8221;</p><p>Read that again. <em>The success we&#8217;re seeing is based on tough decisions we&#8217;ve made previously.</em> He&#8217;s celebrating growth metrics (the same inflated &#8220;500 million monthly active users&#8221; number) while announcing mass layoffs to the people who created that growth. More players, more games, more hours. And the reward is a pink slip.</p><p>The ZeniMax Online story is the one that should haunt Microsoft&#8217;s leadership.</p><p>Employees at ZeniMax Online Studios had been working on an MMO codenamed Project Blackbird. According to TrueAchievements, as late as October 2024, eight months before the layoffs, the team had taken a demo build to Microsoft&#8217;s Redmond headquarters. The response from leadership was positive. Sources said the team saw &#8220;good things coming out of that,&#8221; and Microsoft was impressed with the game.</p><p>Eight months later, the project was canceled and 164 people lost their jobs. No warning. No indication the game was in trouble. Leadership liked what they saw in October. The 30% margin target killed it in July.</p><p>This is what happens when you run a creative industry on spreadsheet logic. You greenlight a game. The developers pour years of their lives into it. They demo it for you. You&#8217;re impressed. And then a CFO who has never played a video game in her life looks at the accountability margin projection and cancels the project, because a game that might be great isn&#8217;t guaranteed to be profitable enough to satisfy a target that no company in the industry can consistently hit.</p><div><hr></div><h2>The Price of Extraction</h2><p>The 30% mandate didn&#8217;t just kill studios. It raised prices everywhere.</p><p>Game Pass Ultimate went from $20 to $30 a month, a 50% hike. Game Pass tiers were restructured in ways that made the service feel less like &#8220;the best deal in gaming&#8221; and more like a cable package designed to confuse you into overpaying.</p><p>Xbox consoles got price hikes. And in October 2025, The Verge reported that Xbox dev kits (the hardware that game developers need to build Xbox games) jumped from $1,500 to $2,000, a 33% increase. Microsoft&#8217;s justification? &#8220;The adjustment reflects macroeconomic developments.&#8221; That&#8217;s it. That&#8217;s the explanation. Macroeconomic developments. I want you to imagine someone at Microsoft typing that sentence into a press release with a straight face. I want you to imagine it being reviewed by a communications team, approved by a manager, and published, and at no point did anyone in the room say, &#8220;Hey, do we maybe want to explain why we&#8217;re charging game developers more money to build games for a platform that&#8217;s losing market share?&#8221;</p><p>Developers scoffed. And they scoffed because what Microsoft is doing is so cosmically, hilariously out of touch that it would be funny if it weren&#8217;t real.</p><p>Let me paint you a picture of the competitive landscape so you can understand just how absurd this is.</p><p>Unreal Engine 5, the engine powering some of the most visually ambitious games on the planet, the engine behind Fortnite, the tool that nearly 28% of all Steam games are built on, is completely free. Free to download. Free to use. Full source code access included. A developer doesn&#8217;t pay Epic Games a single cent until their game earns over $1 million in revenue, at which point a 5% royalty kicks in. That&#8217;s it. You can build a AAA-quality game from scratch, ship it to the world, and owe Epic absolutely nothing unless you&#8217;ve already made a million dollars. The price of admission to the most powerful game engine on Earth is zero.</p><p>Unity, the engine behind over 51% of all Steam releases, the engine that powers more games than any other on the planet, offers its full Personal tier for free to any studio making under $200,000 a year. Unity even tried to squeeze developers once with a controversial Runtime Fee in 2023. You know what happened? The indie community revolted overnight. Developers threatened to leave. Stock price cratered. Unity backed down, canceled the fee, and went crawling back to its subscription model. The lesson was loud and clear: you do not charge game developers to build games. The entire industry watched that play out in real time.</p><p>Apparently, nobody at Microsoft was watching.</p><p>Between them, Unreal and Unity power roughly 80% of all games released on Steam. Eighty percent. Their business model is built on the simplest premise in platform economics: make the tools free, lower every barrier to entry, and build an ecosystem so large and so loyal that success becomes self-sustaining. You don&#8217;t charge developers to build for your platform. You <em>incentivize</em> them. You make it so easy, so frictionless, and so economically rational to build on your tools that developers would feel stupid going anywhere else.</p><p>And then there&#8217;s Microsoft, standing on the other side of the room, hiking dev kit prices by 33% and blaming &#8220;macroeconomic developments.&#8221;</p><p>I genuinely struggle to imagine the boardroom conversation where this decision was made. Picture it: a room full of executives at one of the most powerful technology companies in the history of the world. A company with $281 billion in annual revenue. A company that just spent $76 billion acquiring game studios. And someone in that room, someone with a title and a salary and presumably a college education, raised their hand and said, &#8220;What if we charged game developers <em>more</em> to build games for the platform we&#8217;re desperately trying to save?&#8221; And the rest of the room said yes. They said yes to that. Someone took notes. Someone drafted a memo. Someone told The Verge it was about macroeconomic developments. And nobody, not one person in the entire decision chain, said, &#8220;Wait. Unreal is free. Unity is free. Eighty percent of the industry builds on free tools. Are we sure we want to be the ones charging more?&#8221;</p><p>This is the kind of decision that makes you wonder if anyone at Microsoft Gaming has ever actually talked to an indie developer. Or visited a game jam. Or looked at what it costs to ship a game on literally any other platform in 2026.</p><p>There was a time when Microsoft understood this. There&#8217;s a famous video of Steve Ballmer, drenched in sweat, bouncing across a stage like a man possessed, screaming &#8220;Developers! Developers! Developers! Developers!&#8221; at a Microsoft conference. It became a meme, but the philosophy behind it was dead serious. Microsoft&#8217;s entire empire was built on making developers feel like the most important people in the room. Windows won because developers built for Windows. Xbox won the 360 generation in part because Microsoft made it easier and cheaper to develop for Xbox than for PlayStation 3. The developer relationship wasn&#8217;t a nice-to-have. It was the strategy.</p><p>That philosophy is dead. Buried under a CFO&#8217;s margin target and a $500 dev kit price hike that tells every independent game developer in the world: we don&#8217;t need you as much as you need us.</p><p>Except they do. That&#8217;s the part that makes this go from laughable to tragic. Microsoft needs developers more than developers need Xbox. In 2026, a game studio can ship on Steam, PlayStation, Nintendo Switch 2, and mobile, and skip Xbox entirely, without losing a minute of sleep. The power has shifted. Developers have options. Microsoft is acting like it&#8217;s still 2008 and the 360 is king.</p><p>It&#8217;s not. And every dev kit price hike, every Game Pass increase, every studio closure makes it easier, not harder, for developers to walk away.</p><p>Every one of these decisions traces back to the same root: a profit margin target that has no business being applied to a gaming division, imposed by financial leadership that either doesn&#8217;t understand how the gaming industry works, or understands perfectly and simply doesn&#8217;t care.</p><div><hr></div><h2>The AI Connection</h2><p>Here&#8217;s the part that ties it all together.</p><p>The 30% accountability margin was imposed in fall 2023. What else happened in fall 2023? Microsoft was in the middle of the most aggressive AI investment spree in corporate history. Billions into OpenAI. Copilot being jammed into every Microsoft product. The CoreAI division (the one Asha Sharma would later run) being stood up as a major new business unit.</p><p>Microsoft Research published a year-end recap in December 2023 titled &#8220;A Year of Groundbreaking AI Advances and Discoveries.&#8221; This was the company&#8217;s priority. This was where the money and attention were going. AI was the future, and every other division needed to justify its existence on the balance sheet, or be squeezed to fund the bet.</p><p>Xbox wasn&#8217;t squeezed because it was failing. Xbox was squeezed because AI needed to be fed.</p><p>And here&#8217;s the irony. I say this as someone who uses AI tools every day. I&#8217;m building a SaaS product right now with the help of Claude and other LLMs, and the acceleration is real. AI has genuinely helped me build things I couldn&#8217;t have built alone. But the fact that AI is a powerful tool doesn&#8217;t mean every division of a company should be sacrificed at its altar. You can acknowledge that AI is transformative without accepting that it justifies gutting a creative industry to pay for it.</p><p>The gamers who are angry about this aren&#8217;t anti-technology. They&#8217;re anti-extraction. They can see what happened: Microsoft bought $76 billion worth of gaming studios, imposed a profit margin that no gaming company can sustain, used the shortfall as justification to cut jobs and raise prices, and redirected the financial energy of the company toward AI, while hiring an AI executive to run the gaming division.</p><p>That&#8217;s not a gaming strategy. That&#8217;s an asset strip.</p><div><hr></div><h2>The Exodus, and Why Sarah Bond Mattered More Than Microsoft Realized</h2><p>Now the leadership departures make sense. But to understand why the Xbox community felt the ground shift in February 2026, you have to understand what Sarah Bond actually represented. Not just as a title on an org chart, but as a signal to the people who built, played, and believed in Xbox.</p><p>Phil Spencer had been at Microsoft for 38 years. He&#8217;d run gaming for 12 of them. He watched the 30% mandate descend on his studios. He watched the layoffs. He signed the emails. Whether he agreed with the financial pressure or simply couldn&#8217;t stop it, he was done. He told Nadella in the fall of 2025 that he was planning to step back. His retirement was announced in February 2026.</p><p>Spencer&#8217;s departure, while surprising in its timing, was at least legible. A veteran stepping back after nearly four decades. Fair enough.</p><p>Bond&#8217;s exit was different, and it sent shockwaves through the entire ecosystem.</p><p>Bond joined Microsoft in 2017, overseeing gaming business partnerships. She came from McKinsey and T-Mobile, the world of strategic operations, not game development. But she became something that mattered enormously to the Xbox ecosystem: the person who connected the business to the developers. She brokered partnerships. She expanded Game Pass into the subscription juggernaut it became, a service that hit $5 billion in annual revenue under her leadership. She drove the cloud gaming expansion that let console owners play on phones and tablets. She launched the ROG Xbox Ally handheld partnership with ASUS. She set up a dedicated team for backward compatibility and game preservation, future-proofing digital libraries across hardware generations. She led the integration of Activision Blizzard&#8217;s massive portfolio into the Xbox ecosystem after the $68.7 billion acquisition.</p><p>When Bond was promoted to president of Xbox in October 2023, it felt like succession planning in motion. Spencer was the visionary. Bond was the operator who made the vision real. She reported directly to him, and everyone inside and outside the company assumed she&#8217;d eventually take his job.</p><p>She was also the first Black woman to serve as president of Xbox, a Yale and Harvard Business School graduate who championed diversity initiatives, served as executive sponsor of the Blacks @ Microsoft employee resource group, and worked to bring more BIPOC creators into game development. In an industry where only 2% of creators have historically been Black, that representation mattered. It was a statement about what Xbox valued.</p><p>For the developer community inside Microsoft&#8217;s gaming division, Bond was the connective tissue. She sat between the studios and the business side, someone who understood what the developers were building and could translate it into language that the finance team and the executive layer would support. In a company as large as Microsoft, that kind of bridge is irreplaceable. Studios don&#8217;t just need someone who approves budgets. They need someone who <em>advocates</em> for them, someone who can walk into a meeting with the CFO and argue that a game needs another year, or that a risky creative bet is worth funding even if the margin projections don&#8217;t look perfect on a spreadsheet.</p><p>So Bond&#8217;s departure carries a painful duality. She did things that mattered enormously: Game Pass, cloud gaming, backward compatibility, developer partnerships, the Activision integration, representation in leadership. And she also did things that damaged the brand.</p><p>According to The Information, Bond was the architect behind the &#8220;This is an Xbox&#8221; marketing campaign, the one that told consumers any device with a screen could be an Xbox. After the previous head of marketing left, the marketing teams reported directly to her. The campaign was her vision, and it was deeply unpopular, not just with fans but with internal staff who felt it actively undermined the console they were building. One employee described her management style as rigid: &#8220;If you didn&#8217;t follow the vision or questioned it, you were out.&#8221;</p><p>There was also the larger strategic tension. Phil Spencer had directed the effort to decouple Microsoft&#8217;s dependency on Xbox consoles, to turn Xbox from a hardware brand into a platform and services ecosystem. Bond was the primary executor of that strategy. She pushed Game Pass as the center of gravity, drove the multiplatform expansion, and worked to turn every screen into an Xbox. In one sense, she was doing exactly what Microsoft&#8217;s leadership asked her to do. In another, she was systematically dismantling the thing that made Xbox fans loyal in the first place.</p><p>But here&#8217;s why her resignation, combined with Spencer&#8217;s retirement, on the same day, sent a signal that reverberated far beyond Redmond.</p><p>For the studios inside Microsoft Gaming, losing both leaders simultaneously meant that the last two executives who had any relationship with the development teams were gone. These were the people who had visited studios, who had seen demos, who had context for what each team was building and why it mattered. Asha Sharma had none of that context. She came from CoreAI. She&#8217;d never reviewed a game milestone, never approved a greenlight, never argued for a studio&#8217;s budget in front of the CFO.</p><p>Developers inside Microsoft weren&#8217;t just losing leaders. They were losing their advocates. In a division already reeling from mass layoffs, studio closures, and a 30% margin mandate that had killed projects leadership praised, losing the last people who could fight for them felt like the final signal. The message was clear: the people who understood what you do, who could translate your work into terms the business side respected, who could protect you from the spreadsheet, they&#8217;re gone. And the person replacing them has never shipped a game.</p><p>For the Xbox gaming community, the signal was equally devastating, even if it arrived differently.</p><p>Xbox gamers are loyal in a way that most consumers aren&#8217;t. They don&#8217;t just buy a console. They join a tribe. They defend Xbox in comment sections, on Reddit, on Twitter, in group chats. They argue with PlayStation fans not because they think it&#8217;s a rational debate but because Xbox is part of their identity. When you&#8217;ve spent a decade in Halo lobbies, when your Gamertag has been the same since high school, when your friend group was built through Xbox Live, the platform isn&#8217;t a product. It&#8217;s a social fabric.</p><p>That loyalty means Xbox gamers pay attention to leadership in a way that Samsung phone owners don&#8217;t track Samsung executives. They knew Phil Spencer by name. They knew his Gamertag, P3. They watched his interviews. They followed his social media. They had opinions about Sarah Bond, some positive, some critical, but always engaged. These weren&#8217;t passive consumers who would shrug at a leadership change. These were people who understood that the person running Xbox determined whether the games got made, whether the studios stayed open, whether the platform still felt like home.</p><p>So when Spencer and Bond both left on the same day, replaced by someone from the AI division that gamers already associated with the layoffs, the cost-cutting, the corporate machinery that had been grinding their favorite studios into dust, the community didn&#8217;t just notice. They panicked.</p><p>Forums lit up. Reddit threads went nuclear. YouTube channels with hundreds of thousands of subscribers published videos with titles like &#8220;Xbox Is Over, Now We Know Who Is Responsible.&#8221; The sentiment wasn&#8217;t just anger. It was grief. The feeling that the last people in the room who had any connection to gaming were gone, replaced by someone who represented everything gamers feared about Microsoft&#8217;s direction.</p><p>The lesson Xbox gamers took from Bond&#8217;s tenure, and from her departure, is simple and brutal: it doesn&#8217;t matter what leadership says. It matters what leadership does. The last two leaders who had any gaming credibility just walked out the door. What walks in next will be judged by that standard, whether Asha Sharma likes it or not.</p><div><hr></div><h2>The Outsider</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8Pqg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa9900-e45e-4150-b93f-a961d1fe6b6b_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8Pqg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa9900-e45e-4150-b93f-a961d1fe6b6b_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!8Pqg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa9900-e45e-4150-b93f-a961d1fe6b6b_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!8Pqg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa9900-e45e-4150-b93f-a961d1fe6b6b_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!8Pqg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa9900-e45e-4150-b93f-a961d1fe6b6b_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8Pqg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa9900-e45e-4150-b93f-a961d1fe6b6b_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/80fa9900-e45e-4150-b93f-a961d1fe6b6b_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;:3403500,&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://radicalinsider.substack.com/i/192580784?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa9900-e45e-4150-b93f-a961d1fe6b6b_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_!8Pqg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa9900-e45e-4150-b93f-a961d1fe6b6b_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!8Pqg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa9900-e45e-4150-b93f-a961d1fe6b6b_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!8Pqg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa9900-e45e-4150-b93f-a961d1fe6b6b_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!8Pqg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80fa9900-e45e-4150-b93f-a961d1fe6b6b_1536x1024.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><p>Asha Sharma&#8217;s resume is impressive. Just not in the way gamers care about.</p><p>She was COO at Instacart, VP of product at Meta, and most recently ran Microsoft&#8217;s CoreAI division, the same AI empire that was being built while Xbox studios were being gutted to hit margin targets. Nadella hired her because she&#8217;s scaled consumer platforms to billions of users and aligned business models for long-term value.</p><p>Gamers heard &#8220;AI executive with no gaming background&#8221; and drew their own conclusions.</p><p>Sharma has acknowledged she has &#8220;a lot to learn.&#8221; She shared her Gamertag (created recently) and listed Halo, Valheim, and GoldenEye as favorites. She agreed to play Borderlands 2 with fans. When IGN pressed her on authenticity, she was direct: her goal isn&#8217;t to be the best gamer in the room, it&#8217;s to make Xbox the best place to play.</p><p>But gaming isn&#8217;t an industry where you learn the culture from the outside and apply it like a framework. You either feel it or you don&#8217;t. The people who wore Master Chief helmets to midnight launches, who spent thousands of hours in Halo lobbies, who evangelized Xbox to every friend who&#8217;d listen, they can tell the difference between someone who gets it and someone who&#8217;s studied the briefing document.</p><p>The jury is out on Sharma. It&#8217;s going to be out for a while. And this jury is finicky as hell.</p><div><hr></div><h2>The First Move</h2><p>To her credit, one of Sharma&#8217;s very first acts as CEO was to kill the &#8220;This is an Xbox&#8221; campaign. Not quietly sunset it. Kill it. As of mid-March 2026, all evidence of the campaign was scrubbed from Microsoft&#8217;s online presence. A Microsoft spokesperson confirmed: &#8220;Asha retired &#8216;This is an Xbox&#8217; because it didn&#8217;t feel like Xbox. She is personally leading a reset of how we show up as a brand.&#8221;</p><p>At her first town hall with the Xbox team in Redmond, she said she wanted Xbox to be a &#8220;reference console,&#8221; the ideal console against which every other console is judged. Xbox general manager Chris Charla described the room: &#8220;People went from being pretty nervous, like, &#8216;What&#8217;s going on, what&#8217;s happening?&#8217;, to by the end of that day it was, like, seeing people had exhaled.&#8221;</p><p>She&#8217;s also said she has &#8220;no tolerance for bad AI&#8221; and explicitly rejected &#8220;soulless AI slop&#8221; in gaming. That&#8217;s a meaningful thing to say when you literally ran Microsoft&#8217;s AI division six weeks ago.</p><p>But killing a bad marketing campaign is the lowest possible bar. It&#8217;s like a new restaurant manager actually enforcing the handwashing sign. You don&#8217;t get credit for stopping something that should never have existed. You get credit for what you build next.</p><p>And the question Sharma can&#8217;t answer yet, the one that matters more than anything she says in a town hall, is whether the 30% accountability margin is still in effect. Because if it is, nothing else she does will matter. You can&#8217;t build a &#8220;reference console&#8221; and nurture creative studios while a CFO is holding a spreadsheet to everyone&#8217;s throat.</p><div><hr></div><h2>The Culture Problem Microsoft Can&#8217;t See</h2><p>Here&#8217;s what Satya Nadella fundamentally misunderstands about gaming, and it&#8217;s the same thing every platform-minded executive misunderstands: gaming is not an industry you optimize. It&#8217;s a relationship you earn.</p><p>Most industries work the way Microsoft thinks. You identify a market. You build a product. You solve a distribution problem. You maximize revenue per user. You build a defensive moat. You scale.</p><p>Gaming doesn&#8217;t work that way.</p><p>Gaming is built on <em>relationships</em>. Between players and the characters they inhabit, between fans and the franchises they love, between a community and the platform that houses it. A Halo fan doesn&#8217;t just play Halo. They wear the t-shirt. They buy the energy drink. They argue about lore in forums at 2 AM. They recruit their friends. They are unpaid brand ambassadors who do more marketing in a single Xbox Live party chat than a million-dollar ad campaign.</p><p>Steam users are the same way about Half-Life. Full disclosure: I&#8217;m one of them. I was never a huge Halo guy, but I know plenty of people who are, and I&#8217;ve watched them defend that franchise like it was family. I get it because I&#8217;m the same way about Half-Life. The best version is on PC, will always be on PC, and I will tell you that until you beg me to stop. PlayStation fans are the same way about God of War. Nintendo fans are the same way about Zelda.</p><p>And if you want the most extreme example of what gaming loyalty actually looks like, look at StarCraft in South Korea. An entire country built a competitive culture around that game. Professional leagues. Television broadcasts. National celebrities who are famous for nothing other than being really, really good at StarCraft. It&#8217;s not a hobby over there. It&#8217;s closer to a religion. Microsoft owns Blizzard now, which means Microsoft owns StarCraft. Imagine for one second if someone in Redmond decided to announce that StarCraft is coming to PlayStation 5 and Nintendo Switch 2. Imagine telling an entire nation of fans who built their identity around that game on PC that their platform doesn&#8217;t matter anymore. They would riot. I&#8217;m not being dramatic. There would be actual civic unrest. That&#8217;s how deep gaming loyalty runs when a company earns it and a community owns it.</p><p>That&#8217;s not brand loyalty in the way a McKinsey deck defines it. That&#8217;s identity. That&#8217;s tribe.</p><p>Compare this to PlayStation. Sony completely understands that gaming operates on 17-22% margins and invests accordingly. They don&#8217;t try to make PlayStation perform like a cloud service. They don&#8217;t impose profit targets that would make a Wall Street analyst blush. They make great games, they respect their community, and they let the business follow the culture. It works. PlayStation outsells Xbox by multiples, not because Sony has better technology, but because Sony understands the relationship.</p><p>When Nadella looks at Halo and thinks, &#8220;This makes a ton of money with just Xbox players, so why can&#8217;t PlayStation 5 owners enjoy it too?&#8221;, he&#8217;s not wrong about the revenue opportunity. He&#8217;s catastrophically wrong about the cost. Because those hardcore fans who wear the shirt, who tattoo the logo, who <em>are</em> the brand, they didn&#8217;t just buy the game. They bought the idea that Halo belongs to Xbox. That Xbox is <em>home</em>. That their loyalty means something.</p><p>Take that away, and you don&#8217;t just lose a customer. You lose an evangelist. You lose the person who was doing your marketing for free. You lose the emotional infrastructure that no amount of advertising spend can replace.</p><p>Satya sees &#8220;console wars are over&#8221; and thinks it&#8217;s time to monetize across platforms. He doesn&#8217;t see the hardcore Halo player who rabidly advertises their favorite game on their t-shirt and energy drink. He doesn&#8217;t understand that those people <em>are the strategy</em>.</p><p>The culture is the strategy. It always has been.</p><div><hr></div><h2>Gamers Are Not Excel Users</h2><p>This is the part that should scare Microsoft, and apparently doesn&#8217;t.</p><p>Excel users don&#8217;t form tribes. Teams users don&#8217;t build identity around their productivity suite. LinkedIn users don&#8217;t tattoo the logo on their forearms. Those products win on features, pricing, and distribution. You can optimize your way to dominance in enterprise software.</p><p>Gamers are different. They are activists. They strategize with their wallets. They organize boycotts that actually work. They review-bomb games on launch day. They cancel subscriptions in coordinated waves. They make YouTube videos with hundreds of thousands of views explaining exactly why they feel betrayed. They are, by any rational corporate assessment, <em>dangerous</em>, and any CEO who ignores that is playing with a kind of fire that doesn&#8217;t show up on quarterly earnings calls until the building is already burning.</p><p>Look at what&#8217;s already happened. Xbox hasn&#8217;t outsold Sony and Nintendo since 2008. Game Pass growth stalled, then prices jumped 50%. Studios closed. Studios that were making good games, that had impressed leadership months earlier. Thousands of jobs cut. Dev kit prices hiked 33%. Major exclusives underperformed or delayed. The &#8220;This is an Xbox&#8221; campaign actively told console owners their hardware was irrelevant. Halo, <em>Halo</em>, shipped to PlayStation.</p><p>Each of these decisions made sense on a spreadsheet. Each was defensible in a boardroom. And each told the core community the same thing: <em>You are 8.9% of our revenue, and we&#8217;re going to treat you like it.</em></p><div><hr></div><h2>The 500 Million Mirage</h2><p>Microsoft loves to point to &#8220;over 500 million monthly active users&#8221; as evidence that Xbox is thriving. Sharma used this number in her first LinkedIn post as CEO. Phil Spencer cited it in the same email where he announced mass layoffs.</p><p>It includes Windows gamers. Steam players. Minecraft players on every platform. Candy Crush players on mobile. Anyone from Activision Blizzard&#8217;s portfolio. If you&#8217;ve ever touched a Microsoft account in a gaming context, you&#8217;re in the count.</p><p>And yes, Microsoft owns Candy Crush. They acquired King as part of the Activision Blizzard deal. Candy Crush alone has hundreds of millions of players across mobile. Those people have absolutely no idea they&#8217;re being counted as part of the Xbox ecosystem. Your grandma matching candies on her iPad during a dentist appointment is, according to Microsoft&#8217;s metrics, an Xbox user. Let that sink in. Grandma is an Xbox user, but the 164 developers at ZeniMax Online who were building a game Microsoft praised eight months earlier are unemployed.</p><p>The actual Xbox console base, the people who bought the hardware, who pay for Game Pass, who identify as Xbox gamers, sits closer to 15 to 20 million active users. That&#8217;s the community. That&#8217;s the tribe. And it&#8217;s shrinking.</p><p>Counting Windows users as Xbox users is like counting everyone who&#8217;s ever used a Microsoft keyboard as an Office 365 subscriber. The number is technically defensible and culturally meaningless. It&#8217;s the kind of metric you cite when you&#8217;re trying to impress shareholders while firing the people who make the product.</p><div><hr></div><h2>Project Helix: The Bet</h2><p>Project Helix, Xbox&#8217;s next-generation console, was detailed at GDC 2026. It&#8217;s a console-PC hybrid powered by a custom AMD SoC on RDNA 5 architecture, co-designed for next-gen DirectX, with ray tracing performance Microsoft calls &#8220;an order of magnitude leap.&#8221; It will play both Xbox console games and PC titles from storefronts like Steam and GOG. Developer alpha kits ship in 2027.</p><p>It&#8217;s technically ambitious. But it carries the exact tension that has defined Xbox for years: is this a console for gamers, or a platform for everyone? Because &#8220;a PC that also runs Xbox games&#8221; could be exactly what the market wants. Or it could be the &#8220;This is an Xbox&#8221; philosophy repackaged in better silicon.</p><p>If Project Helix launches and feels like a gaming PC with an Xbox skin, the core community will see right through it. If it launches and feels like <em>home</em>, like the Xbox 360 felt, like a console built for gamers by people who love games, it could be the reset Xbox desperately needs.</p><p>The difference between those two outcomes isn&#8217;t hardware specs. It&#8217;s philosophy. And philosophy is exactly what&#8217;s been broken.</p><div><hr></div><p></p><h2>Dear Satya</h2><p>Here&#8217;s the part nobody at Microsoft wants to hear.</p><p>You spent $68.7 billion acquiring Activision Blizzard. You spent $7.5 billion on ZeniMax. You now own Call of Duty, World of Warcraft, Diablo, Candy Crush, The Elder Scrolls, Fallout, Doom, Halo, Minecraft, and Forza. Some of the most valuable franchises in entertainment history.</p><p>And your gaming division is 8.9% of your revenue. A green sliver on a pie chart dominated by Azure and Office.</p><p>You responded to that by imposing a 30% profit margin on an industry that operates at 17-22%. You let your CFO run gaming like it was a cloud division that needed to hit quarterly targets. You watched as that mandate produced mass layoffs, studio closures, price hikes, and the cancellation of games that your own leadership had praised months earlier. Your studios made great games and got fired for it.</p><p>You look at that pie chart and see a sliver to be optimized. Gamers look at it and see their entire world.</p><p>The gaming community is not a user base. It&#8217;s not a TAM. It&#8217;s not a growth vector. It&#8217;s a tribe of people who will go to war for a brand that respects them, and will burn it to the ground if it doesn&#8217;t. They are strategizing with their wallets right now. They are canceling subscriptions. They are buying PlayStations. They are making very loud, very public decisions about where their money and loyalty go.</p><p>If you continue treating Xbox like a cloud division with a controller, if the 30% mandate stays, if the layoffs continue, if the culture keeps getting sacrificed for margin, you might as well drop the name entirely. Call it Microsoft Gaming. Call it whatever you want. Because the thing that made &#8220;Xbox&#8221; mean something, the identity, the community, the culture, the tribe, will already be gone, the community, the culture, the tribe, will already be gone.</p><p>The culture is the strategy, Satya. It always was.</p><p>And right now, 8.9% of your revenue is screaming that at you, and you&#8217;re not listening.</p><div><hr></div><h2>The Nuclear Option</h2><p>Here&#8217;s a thought that sounds radical until you think about it for thirty seconds: sell Xbox.</p><p>Not to another tech conglomerate that will treat it like a line item. Sell it to someone who actually gives a damn about games. A billionaire who&#8217;s a real gamer. A private equity group filled with people who understand that gaming is culture first and business second. Someone who would look at Halo, The Elder Scrolls, Call of Duty, and Minecraft and see them not as assets to be optimized but as legacies to be honored.</p><p>It raises a fascinating question: how many billionaires are actually hardcore gamers? How many would run Xbox the way it deserves to be run, with passion, with patience, and with the understanding that the 17-22% margins the industry operates on aren&#8217;t a problem to be solved but a reality to be respected?</p><p>I don&#8217;t know the answer. But I know this: whoever ran Xbox next would need to understand that the brand&#8217;s value isn&#8217;t in its revenue. It&#8217;s in the millions of people who built their identity around it. People who are still here, still waiting, still hoping someone at the top will finally, actually, give a damn.</p><p>Microsoft clearly doesn&#8217;t. And that might be the most honest thing you can say about Xbox in 2026.</p><div><hr></div><h2>The Bottom Line</h2><p>Asha Sharma is not the villain of this story. She might even be part of the solution, if the philosophy above her changes. But the jury on her is going to be out for a long time, and this is a jury that doesn&#8217;t grant continuances.</p><p>The villain is a corporate philosophy that treats gaming like any other division to be optimized. A CFO who set a 30% margin target that no gaming company can sustain. A CEO who let AI cannibalize the resources gaming needed. A leadership structure that looked at $76 billion in acquisitions and asked &#8220;how fast can we squeeze this?&#8221; instead of &#8220;how do we honor what we bought?&#8221;</p><p>The Xbox fanbase isn&#8217;t dead. But it&#8217;s been abandoned. They didn&#8217;t walk away. They were pushed. Pushed by decisions that treated them like a rounding error. Pushed by a 30% mandate that killed studios making good games. Pushed by a company that forgot what made Xbox matter in the first place.</p><p>Gamers don&#8217;t need perfection. They need passion. They need consistency. They need someone who gives a damn.</p><p>Right now, Microsoft is giving them strategy instead of soul.</p><p>And strategy has never, not once in the history of this industry, brought a single gamer back.</p><div><hr></div><p><em>Sources: Bloomberg (Jason Schreier, Dina Bass, October 23, 2025); Windows Central (Samuel Tolbert, July 2, 2025); TrueAchievements (Tom West, July 4, 2025); The Verge (Tom Warren, October 21, 2025); The Information; GameSpot; Bellular News.</em></p><p><em>Data note: Microsoft does not report Xbox as a standalone audited revenue segment. The $25.1B Gaming/Xbox estimate is derived from Microsoft&#8217;s FY2025 disclosures (Gaming revenue up 9%, Windows &amp; Devices up 2%, Search &amp; News Ads up 13%) normalized against the audited More Personal Computing segment total of $54.6B. Microsoft&#8217;s total FY2025 revenue was $281.7B. Xbox hardware revenue fell 25% in FY2025; growth was driven by Xbox content and services, including Activision Blizzard. Industry margin comparisons use different accounting standards (GAAP, IFRS, ASBJ) and Microsoft&#8217;s internal &#8220;accountability margin&#8221; metric is not directly interchangeable with competitors&#8217; reported operating margins.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://radicalinsider.org/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Don't Let a Dentist Talk Your Kid Out of Learning to Code]]></title><description><![CDATA[Hey. Before we get into this &#8212; this one's for the normies.]]></description><link>https://radicalinsider.org/p/dont-let-a-dentist-talk-your-kid</link><guid isPermaLink="false">https://radicalinsider.org/p/dont-let-a-dentist-talk-your-kid</guid><dc:creator><![CDATA[Radical Insider]]></dc:creator><pubDate>Sun, 22 Mar 2026 23:29:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!AdDZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2a9be5-1727-47a2-9cc1-829e4709338e_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>And I mean that with zero disrespect. Genuinely. You deserve to understand what's actually going on with all this AI noise just as much as anyone else does. So I left the technical deep-dives at the door for this one. No jargon. No acronyms. Just the truth, in plain English, with some metaphors that hopefully get you in the trenches me. </p><p>When you're ready to see what the real stuff looks like &#8212; the actual code, the actual architecture, the actual war stories from building a production app &#8212; the rest of my articles are right there waiting for you. But this one's yours. Let's go.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://radicalinsider.org/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JORr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b20bbe-e2fa-4d55-bc75-061028af85e0_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JORr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b20bbe-e2fa-4d55-bc75-061028af85e0_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!JORr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b20bbe-e2fa-4d55-bc75-061028af85e0_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!JORr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b20bbe-e2fa-4d55-bc75-061028af85e0_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!JORr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b20bbe-e2fa-4d55-bc75-061028af85e0_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JORr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b20bbe-e2fa-4d55-bc75-061028af85e0_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29b20bbe-e2fa-4d55-bc75-061028af85e0_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;:3616468,&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://radicalinsider.substack.com/i/191805636?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b20bbe-e2fa-4d55-bc75-061028af85e0_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_!JORr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b20bbe-e2fa-4d55-bc75-061028af85e0_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!JORr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b20bbe-e2fa-4d55-bc75-061028af85e0_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!JORr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b20bbe-e2fa-4d55-bc75-061028af85e0_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!JORr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b20bbe-e2fa-4d55-bc75-061028af85e0_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><figcaption class="image-caption">Dentist: &#8220;Isn&#8217;t AI going to take over that job?&#8221; Wifey: &#8220;Maybe?!&#8221;</figcaption></figure></div><p>My wife&#8217;s dentist &#8212; good dude, actually. We went to the same high school. They were making small talk while she was in the chair and he asked whether our son was still learning to code. She said yes. And he goes, &#8220;Isn&#8217;t AI going to take over that job?&#8221;</p><p>My wife, bless her, went: &#8220;Maybe? I don&#8217;t know.&#8221;</p><p>She wasn't uncertain. She watches me fight with these things every single day. She knows exactly what I go through. She was just being nice to our friend.</p><p>But here&#8217;s the thing &#8212; he&#8217;s not wrong to ask. He&#8217;s just working with bad information. And that&#8217;s not his fault.</p><p><strong>That&#8217;s the media&#8217;s fault.</strong></p><h3><strong>Let's Talk About What the Media Actually Does</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PHLk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93cac9c-5179-44bd-8868-9a861eee289b_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PHLk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93cac9c-5179-44bd-8868-9a861eee289b_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!PHLk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93cac9c-5179-44bd-8868-9a861eee289b_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!PHLk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93cac9c-5179-44bd-8868-9a861eee289b_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!PHLk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93cac9c-5179-44bd-8868-9a861eee289b_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PHLk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93cac9c-5179-44bd-8868-9a861eee289b_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a93cac9c-5179-44bd-8868-9a861eee289b_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;:3585510,&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://radicalinsider.substack.com/i/191805636?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93cac9c-5179-44bd-8868-9a861eee289b_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_!PHLk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93cac9c-5179-44bd-8868-9a861eee289b_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!PHLk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93cac9c-5179-44bd-8868-9a861eee289b_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!PHLk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93cac9c-5179-44bd-8868-9a861eee289b_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!PHLk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93cac9c-5179-44bd-8868-9a861eee289b_1536x1024.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>Picture a room. There are a hundred important things that need to be reported today. Real things. Things that actually affect your life. The people in that room look at all hundred of them, stick a finger in the wind, and think: <em>&#8220;Okay &#8212; what are people already talking about? What&#8217;s going to sell enough ad space to make this worth our time?&#8221;</em></p><p>That&#8217;s it. That&#8217;s the whole process. That&#8217;s the editorial meeting.</p><p>It&#8217;s not malicious. It&#8217;s not a conspiracy. It&#8217;s just a business making a business decision. And right now, &#8220;AI is coming for your job&#8221; sells a lot more ad space than &#8220;AI is a useful tool with some pretty significant limitations that require years of experience to navigate.&#8221; One of those headlines makes you feel something. The other one makes you change the channel.</p><p>So instead of telling you the boring true thing, they tell you the exciting false thing. With the confidence of people who have never written a line of code, never built anything real, and never had to sit with the consequences of being wrong. They are selling you a feeling, not a fact. And the feeling they&#8217;re selling right now is: <em>AI is magic, your job is gone, the robots are coming, be afraid, click here to learn more.</em></p><p>They can take a guy who jaywalked across the street and make him look like a serial killer. And they can take a tool that&#8217;s genuinely useful for certain things and turn it into the Second Coming of Skynet &#8212; all before lunch, with seventeen ads in between.</p><p>My friend the dentist heard the Skynet story. He never heard the jaywalking story. Nobody made the jaywalking story into a headline because who clicks on that?</p><p>So he asked my wife a completely reasonable question &#8212; and she said &#8220;maybe, I don&#8217;t know&#8221; because she didn&#8217;t want to get into it while someone had their hands in her mouth.</p><p>I, however, have all the time in the world. And no one&#8217;s hands are in my mouth right now. So let&#8217;s get into it.</p><h3>Example 1: The AI That Argued With a Receipt</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1626766234244-8bfa605e0cb3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxkcmF3aW5nJTIwdmVyc2lvbiUyMG9mJTIwYSUyMHByb2dyYW1tZXJ8ZW58MHx8fHwxNzc0MjE5NDQ3fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1626766234244-8bfa605e0cb3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxkcmF3aW5nJTIwdmVyc2lvbiUyMG9mJTIwYSUyMHByb2dyYW1tZXJ8ZW58MHx8fHwxNzc0MjE5NDQ3fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1626766234244-8bfa605e0cb3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxkcmF3aW5nJTIwdmVyc2lvbiUyMG9mJTIwYSUyMHByb2dyYW1tZXJ8ZW58MHx8fHwxNzc0MjE5NDQ3fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1626766234244-8bfa605e0cb3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxkcmF3aW5nJTIwdmVyc2lvbiUyMG9mJTIwYSUyMHByb2dyYW1tZXJ8ZW58MHx8fHwxNzc0MjE5NDQ3fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1626766234244-8bfa605e0cb3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxkcmF3aW5nJTIwdmVyc2lvbiUyMG9mJTIwYSUyMHByb2dyYW1tZXJ8ZW58MHx8fHwxNzc0MjE5NDQ3fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1626766234244-8bfa605e0cb3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxkcmF3aW5nJTIwdmVyc2lvbiUyMG9mJTIwYSUyMHByb2dyYW1tZXJ8ZW58MHx8fHwxNzc0MjE5NDQ3fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="7680" height="5760" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1626766234244-8bfa605e0cb3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxkcmF3aW5nJTIwdmVyc2lvbiUyMG9mJTIwYSUyMHByb2dyYW1tZXJ8ZW58MHx8fHwxNzc0MjE5NDQ3fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:5760,&quot;width&quot;:7680,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;black and white wall mounted lamp&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&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="black and white wall mounted lamp" title="black and white wall mounted lamp" srcset="https://images.unsplash.com/photo-1626766234244-8bfa605e0cb3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxkcmF3aW5nJTIwdmVyc2lvbiUyMG9mJTIwYSUyMHByb2dyYW1tZXJ8ZW58MHx8fHwxNzc0MjE5NDQ3fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1626766234244-8bfa605e0cb3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxkcmF3aW5nJTIwdmVyc2lvbiUyMG9mJTIwYSUyMHByb2dyYW1tZXJ8ZW58MHx8fHwxNzc0MjE5NDQ3fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1626766234244-8bfa605e0cb3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxkcmF3aW5nJTIwdmVyc2lvbiUyMG9mJTIwYSUyMHByb2dyYW1tZXJ8ZW58MHx8fHwxNzc0MjE5NDQ3fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1626766234244-8bfa605e0cb3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxkcmF3aW5nJTIwdmVyc2lvbiUyMG9mJTIwYSUyMHByb2dyYW1tZXJ8ZW58MHx8fHwxNzc0MjE5NDQ3fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 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">Photo by <a href="https://unsplash.com/@theblowup">the blowup</a> on <a href="https://unsplash.com">Unsplash</a></figcaption></figure></div><p>Here's a single line of code. The only thing it does is round a number:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;3d3b4f83-554e-40c8-a574-0a6382518fec&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">round(2.675, 2)</code></pre></div><p>You don&#8217;t need to know anything about programming to understand this. It&#8217;s asking the computer: <em>&#8220;Round 2.675 to two decimal places.&#8221;</em> That&#8217;s it. Third grade math. The answer is 2.68, right? The 5 rounds up. Everyone knows that.</p><p>The answer is 2.67.</p><p>Before you throw your phone &#8212; this isn&#8217;t a trick question. It&#8217;s not a riddle. The reason has to do with something deep in how computers store numbers, and the short version is this: computers can&#8217;t actually hold the number 2.675 perfectly. They store something <em>just barely less</em> than 2.675 &#8212; so tiny you&#8217;d never notice it &#8212; until you round, and the answer drops instead of rounds up. There&#8217;s also a whole separate thing where computers are designed to round a certain way specifically to stay fair over millions of calculations. The details don&#8217;t matter right now. What matters is: 2.67 is correct, 2.68 is wrong, and the reasons have been understood by mathematicians for decades.</p><p>Ask an AI. It will tell you 2.68. Confidently. It will <em>explain</em> why 2.68 is correct with the calm, authoritative energy of a man who has never been wrong in his life and finds the very concept personally offensive.</p><p>It&#8217;s not lying. It&#8217;s doing what it always does &#8212; it looked at the shape of the question, recognized a rounding problem, remembered that 5 rounds up, and produced the most familiar-sounding answer. It has never <em>understood</em> the rule. It&#8217;s just seen the pattern so many times it thinks it owns the rule. There&#8217;s a difference. A massive one.</p><p>Imagine you hire a math tutor who has read every math textbook ever printed &#8212; every single one &#8212; but has never once sat down and actually solved a problem with a pencil. He can <em>talk</em> about math all day. He sounds phenomenal. He&#8217;ll explain rounding to you with warmth and confidence and maybe a little diagram on a napkin.</p><p>And then he&#8217;ll hand you a bill that&#8217;s wrong by ten cents and argue with you about it while you&#8217;re literally holding the receipt.</p><p>Now here&#8217;s where it gets interesting &#8212; because the &#8220;AI experts&#8221; you see on your feed? The ones with the big audiences, the podcast, the newsletter, the LinkedIn posts getting fifty thousand likes? They&#8217;re the same tutor. They&#8217;ve read everything. They can <em>talk</em> about AI all day and night. They know all the right words. They sound like they&#8217;ve been doing this since before you knew what a computer was.</p><p>But here&#8217;s what they&#8217;re not doing: the actual work. They&#8217;re not sitting down with these tools and grinding through a real problem at midnight when everything is broken and the deadline is tomorrow. They&#8217;re not finding out the hard way that the AI confidently got the rounding wrong. They&#8217;re not living in the gap between what the AI <em>says</em> it can do and what it <em>actually</em> does when real people start using your product.</p><p>The people who are doing that work? The ones who actually know where these tools shine and where they completely fall apart? They&#8217;re too busy building. The engineers working on the next version of Claude, the next version of ChatGPT &#8212; they&#8217;re not on YouTube making reaction videos. They&#8217;re in the lab. They don&#8217;t have time for an audience because they&#8217;re too busy being genuinely useful.</p><p>So what you&#8217;re left with is this: the people who own the audiences don&#8217;t always tell the whole truth. Not because they&#8217;re evil &#8212; but because the whole truth doesn&#8217;t serve their bottom line. Their audience wants to feel like they&#8217;re on the edge of something historic. Their audience wants to believe the robots are coming, or that there&#8217;s a secret prompt that unlocks superintelligence, or that the guy in the thumbnail has figured out something everyone else missed. The whole truth &#8212; <em>&#8220;it&#8217;s a useful tool with specific limitations that requires real expertise to use well&#8221;</em> &#8212; doesn&#8217;t keep people subscribed. It doesn&#8217;t sell the course.</p><p>You know what it reminds me of? Those As Seen On TV ads. The ones you&#8217;d catch at midnight after a peanut butter and jelly sandwich, half asleep on the couch, watching some guy in a headset tell you this one weird trick will change your life for four easy payments of $19.99. You&#8217;d laugh, change the channel, go to bed. It was easy to ignore because it was only on at midnight and you stumbled into it by accident.</p><p>Except now it&#8217;s 2026. Social media is a TV in everyone&#8217;s pocket. And it&#8217;s not midnight once in a while &#8212; it&#8217;s every single second of every single day. The same pitch. The same energy. The same guy in the headset. Just with better lighting, a ring light, and an algorithm making sure you never accidentally change the channel.</p><p>So they tell the version that works for their audience. And the real experts? We&#8217;re exhausted. And honestly &#8212; even when we want to engage, the game is rigged before it starts.</p><p>Here&#8217;s how it goes. Someone wants to interview you. Great. You show up ready to give them the full picture &#8212; A to Z. Every nuance, every caveat, every &#8220;yes, but here&#8217;s the thing they&#8217;re not telling you.&#8221; Because context is everything in this conversation. Without context, the truth becomes a lie by omission.</p><p>But the interviewer doesn&#8217;t want A to Z. They want A, B, and C. They&#8217;ve already written the segment. They already know what their audience wants to hear. They need you for one thing &#8212; your name on the lower thirds. Your credibility as a prop. <em>&#8220;Engineer with 40 years of experience says...&#8221;</em> and then they finish that sentence however they want. They got what they came for. You gave them the ammunition and they aimed it however suited them.</p><p>So after a while, the real experts stop raising their hands. Not because we don&#8217;t care &#8212; but because we&#8217;ve learned that the format doesn&#8217;t allow for the truth. You can&#8217;t explain a race condition in a fifteen-second soundbite. You can&#8217;t explain why the rounding answer is wrong in a tweet thread designed to go viral. The full story is too long, too boring, and too unlikely to end with someone feeling scared or excited enough to share it.</p><p>And the real experts stay quiet, and the noise fills the vacuum, and somehow that noise gets mistaken for the signal.</p><p>That&#8217;s what my friend the dentist is reading. That&#8217;s what&#8217;s in his feed. That&#8217;s the math tutor with a million followers who has never once graded his own homework.</p><p>And that brings me back to the rounding problem &#8212; because it&#8217;s the perfect illustration of exactly what I just described. The AI gave the wrong answer with complete confidence, the same way the guy on the podcast gives you the wrong picture of AI with complete confidence. Neither of them has ever had to be accountable for being wrong. Now imagine that same confident wrongness running your billing system. That&#8217;s not a hypothetical. That&#8217;s a lawsuit.</p><h3>Example 2: The AI That Answered a Question Nobody Should Answer</h3><p>Here's another snippet. Again &#8212; you don't need to understand the code itself:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;c&quot;,&quot;nodeId&quot;:&quot;3a646e00-c32e-44f5-8cef-9a2b7012a64a&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-c">printf("%d %d %d\n", i++, ++i, i);</code></pre></div><p>All this is doing is asking the computer to change a number in three different ways simultaneously and then print the result. Sounds simple enough.</p><p>What does it print?</p><p>The correct answer &#8212; the one any experienced programmer knows immediately &#8212; is: <em>nothing that means anything, and whoever wrote this needs to have a long think about their choices.</em></p><p>There&#8217;s a category of question that&#8217;s not just hard to answer &#8212; it&#8217;s <em>broken.</em> Like asking &#8220;what&#8217;s north of the North Pole?&#8221; The question itself is malformed. The rulebook that governs this type of code looks at it and explicitly states: <em>we refuse to define what happens here. The computer can do whatever it wants. Print a number. Crash. Catch fire. This one&#8217;s on you.</em></p><p>The right answer is to recognize the question is broken and say so. Clearly. Immediately.</p><p>Ask an AI. It prints a number. A specific, real, confident number. It might even walk you through <em>how</em> it arrived there &#8212; step by step &#8212; like a doctor delivering a detailed, professional diagnosis for a disease that has never existed in the history of medicine. Confident. Thorough. Completely made up.</p><p>Here&#8217;s the picture. You ask someone: <em>&#8220;What time does the next train leave from Union Station in my hometown?&#8221;</em> But your hometown doesn&#8217;t have a train station. Never had one. There&#8217;s a Dairy Queen where a train station might have been, if anyone had ever cared enough to build one.</p><p>A person who actually knows your town says: <em>&#8220;There&#8217;s no train station there.&#8221;</em></p><p>The AI says: <em>&#8220;3:47. Platform B. Bring your own snacks &#8212; that line doesn&#8217;t have a caf&#233; car.&#8221;</em></p><p>Specific. Confident. Entirely fabricated. Because it&#8217;s learned that train questions have train answers, and it has no mechanism for recognizing when the question itself is the problem.</p><p>The media says this thing is about to replace software engineers. Software engineers are over here watching it invent train schedules for cities with no trains.</p><h3>Example 3: The Movie Critic Who Reviewed a Film That Was Never Made</h3><p>Last one. Here&#8217;s some code:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;9b2041cc-a6a3-4105-be1c-9a0c3582b706&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">let mut v = vec![1, 2, 3];
let a = &amp;v[0];
v.push(4);
println!("{}", a);</code></pre></div><p>Plain English translation: make a small list of numbers, remember where the first one lives, add a new number to the list, then go back and read the first one.</p><p>Ask an AI what it prints. It&#8217;ll say: 1. No hesitation.</p><p>This code doesn&#8217;t run. It can&#8217;t. The programming language it&#8217;s written in looks at it before anything happens and refuses to proceed &#8212; because it can already see that something dangerous is about to occur.</p><p>Here&#8217;s why, with zero technical knowledge required. When you add a new item to a list that&#8217;s already at capacity, the computer sometimes has to pick up the entire list and move it to a bigger space &#8212; like moving out of a studio apartment into a two-bedroom because you finally bought a couch. When that happens, the address you saved for &#8220;the first item on the list&#8221; is now pointing at the old apartment. Which is empty. Which may have already been rented to someone else entirely. If you go looking for your stuff there, you&#8217;re not going to find it. You might find someone else&#8217;s stuff. You might find nothing. In the real world of software, this is how data gets corrupted and how security holes get created.</p><p>The language in this example is smart enough to look at your plan before it executes and say: <em>&#8220;I see what you&#8217;re about to do. I&#8217;m not going to let you do it. Go fix it first.&#8221;</em> Like a good friend who grabs your arm before you send the drunk text.</p><p>The AI says it prints 1. Because it&#8217;s seen a million examples of code that reads the first item in a list, this looked like one of those, and it told you what those usually do. It had no idea the whole thing was rejected before it ever started. It&#8217;s reviewing a movie that was never made. The studio said no. There are no actors. There is no footage. There is no film.</p><p>The AI just gave it four stars and called the third act emotionally devastating.</p><h3>The Bullshit Is So Thick &#8212; I&#8217;m Forced to Wade Through It.</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Gduq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ff69044-9ea8-4987-8a35-0550546bf727_960x500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gduq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ff69044-9ea8-4987-8a35-0550546bf727_960x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Gduq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ff69044-9ea8-4987-8a35-0550546bf727_960x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Gduq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ff69044-9ea8-4987-8a35-0550546bf727_960x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Gduq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ff69044-9ea8-4987-8a35-0550546bf727_960x500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gduq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ff69044-9ea8-4987-8a35-0550546bf727_960x500.jpeg" width="960" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4ff69044-9ea8-4987-8a35-0550546bf727_960x500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:66032,&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://radicalinsider.substack.com/i/191805636?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ff69044-9ea8-4987-8a35-0550546bf727_960x500.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_!Gduq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ff69044-9ea8-4987-8a35-0550546bf727_960x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Gduq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ff69044-9ea8-4987-8a35-0550546bf727_960x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Gduq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ff69044-9ea8-4987-8a35-0550546bf727_960x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Gduq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ff69044-9ea8-4987-8a35-0550546bf727_960x500.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>Here&#8217;s the part that actually exhausts me.</p><p>People are out here &#8212; on television, in major newspapers, in TED Talks &#8212; genuinely debating whether we&#8217;re close to building the Terminator. The actual Terminator. Skynet. The robot apocalypse. And after nearly three years of AI being shoved in our faces every single day on every platform, we are standing here watching it get a rounding question wrong. <em>One line of code.</em> Not a complex system. Not a massive algorithm. Three examples. One. Single. Line. Of. Code. </p><p>GET. THAT. IN. YOUR. HEAD.</p><p>Believe it or not, I have hundreds of examples of this once you get to 5-10 lines of code or more. The volume of nonsense floating around about AI right now is so extreme it makes dinosaur feces look like bird droppings. It&#8217;s not a little misinformation. It&#8217;s a full avalanche. It&#8217;s been building for three years and every new breathless headline adds another layer. And it doesn&#8217;t live out there in the abstract &#8212; it lands directly on my doorstep on a regular basis.</p><p>I have clients who&#8217;ve read the headlines and come to me asking whether they even need to invest in building software anymore, or if they should just &#8220;wait for the AI to handle it.&#8221; I have new programmers asking me if it&#8217;s worth learning to code or whether they&#8217;re already obsolete before they&#8217;ve written their first working program. And I have early customers of BenchBoard &#8212; the app I&#8217;ve spent the last eight months building &#8212; who wonder out loud whether some AI is going to show up and make the whole thing irrelevant before it even launches.</p><p>I have to talk every single one of them off the ledge. Every time. With actual examples. With actual facts. Because the headlines sure aren&#8217;t providing any.</p><p>And where are those headlines coming from? Let&#8217;s be honest. They&#8217;re coming from journalists who have never built software. Talking heads who learned the phrase &#8220;artificial intelligence&#8221; sometime around 2022 and have been dining out on it ever since. Venture capitalists who need a story to tell their investors. Consultants who rebranded overnight and declared themselves &#8220;AI strategy experts&#8221; because they used ChatGPT to write an email once. These people are speaking with total authority about something they have never done, and they are being handed microphones, publishing deals, and conference stages to do it from.</p><p>They are the ones telling my friend&#8217;s son not to bother learning to code.</p><p>They are the ones telling my clients to wait for the magic to arrive.</p><p>They are the ones manufacturing fear and awe and urgency out of thin air because fear and awe and urgency pay the bills &#8212; and the actual engineers, the people who use these tools every day and know exactly where and how they fail, are too busy fixing the problems to write the headlines.</p><p>So yes, this is partly therapeutic. But it&#8217;s also &#8212; I hope &#8212; genuinely useful for anyone who&#8217;s been swimming in that swamp and trying to find solid ground. These three examples are what I reach for every time someone comes to me with that look. You know the look. The one that says they just read something on the internet and now they think the robots have already won.</p><p>They haven&#8217;t. Not even close.</p><h3>What's Actually True &#8212; And Why It's More Interesting Than the Headlines</h3><p>I use these AI tools every single day. I&#8217;ve been building BenchBoard &#8212; a live scorekeeping and lineup management app for youth baseball and softball &#8212; and I genuinely could not have moved this fast without them. They are remarkable. I am not here to tell you they&#8217;re worthless.</p><p>But I&#8217;ve also watched an AI introduce a bug into my app that caused two players to show up at Second Base on a real field during a real game &#8212; because it created two separate systems writing to the same data at the same time with nobody coordinating them. The screen looked fine. Everything appeared to save correctly. It only blew up at exactly the worst moment, when a coach switched between games on their phone. You would never catch it in a demo. You catch it on a real field with real kids and a real umpire staring at you.</p><p>I&#8217;ve watched the AI design something that looked clean and logical on paper and turned into a disaster the moment actual people started using the app in actual ways &#8212; requiring 36 separate fixes before I finally scrapped it and rebuilt it myself. The AI didn&#8217;t come up with the solution. I did. Because I&#8217;ve been doing this for forty years and I know what breaks in the field.</p><p>I&#8217;ve watched the AI serve one user&#8217;s data to a completely different user because it stored everything in a flat unlabeled pile. Works great when you&#8217;re the only person testing it. Falls apart the moment a second human being shows up.</p><p>None of these are failures the AI could warn me about, because the AI doesn&#8217;t know what it doesn&#8217;t know. It doesn&#8217;t know what a coach looks like in August heat trying to swap two players before the umpire yells play ball. It doesn&#8217;t know what happens when a parent watching a live scoreboard on their phone sees the wrong lineup because the coach just made a change on theirs. It doesn&#8217;t know any of that because it&#8217;s never been there. It&#8217;s read about software. It&#8217;s never lived in it.</p><p>That&#8217;s the gap. And it&#8217;s not a small one. It&#8217;s the whole game.</p><h3>What I'd Actually Tell My Friend the Dentist</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AdDZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2a9be5-1727-47a2-9cc1-829e4709338e_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AdDZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2a9be5-1727-47a2-9cc1-829e4709338e_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!AdDZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2a9be5-1727-47a2-9cc1-829e4709338e_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!AdDZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2a9be5-1727-47a2-9cc1-829e4709338e_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!AdDZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2a9be5-1727-47a2-9cc1-829e4709338e_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AdDZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2a9be5-1727-47a2-9cc1-829e4709338e_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d2a9be5-1727-47a2-9cc1-829e4709338e_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;:3315823,&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://radicalinsider.substack.com/i/191805636?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2a9be5-1727-47a2-9cc1-829e4709338e_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_!AdDZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2a9be5-1727-47a2-9cc1-829e4709338e_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!AdDZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2a9be5-1727-47a2-9cc1-829e4709338e_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!AdDZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2a9be5-1727-47a2-9cc1-829e4709338e_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!AdDZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2a9be5-1727-47a2-9cc1-829e4709338e_1536x1024.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>Here&#8217;s what I would actually tell my buddy the next time it comes up &#8212; and hopefully <em>after</em> the checkup. </p><p><strong>Learning to code is absolutely still worth it. More than ever, actually. And here&#8217;s why.</strong></p><p>These tools are real and they&#8217;re genuinely useful. My son will probably use them from day one and move faster than I could at his age. Never having to spend three hours on something I spent three hours on. No more small dumb errors that come up that used to take hours to troubleshoot. At least almost. That&#8217;s real, and that&#8217;s good.</p><p>But he still needs to understand why the rounding answer is 2.67 and not 2.68. He still needs to recognize when a question is broken, and the right answer is &#8220;don&#8217;t do this.&#8221; He still needs to understand why a programming language threw his code in the trash before it even ran &#8212; not because he&#8217;ll be solving these things manually every day, but because when something breaks in the real world at the worst possible moment, &#8220;I asked the AI and it said everything was fine&#8221; is not going to cut it as an explanation. Not with a client. Not with a user. Not with a coach on a field who wants to know why two kids just showed up in the same spot.</p><p><strong>The AI is a brilliant, tireless, occasionally confident assistant that&#8217;s sometimes, well, wrong. It is not a substitute for knowing what you&#8217;re doing.</strong></p><p>The media will keep writing the Terminator story because the Terminator story gets clicks. My friend will keep reading it over breakfast. And somewhere, a kid is going to decide not to learn programming because of a headline written by someone who has never built a single thing in their life.</p><p>That kid deserves better than that. And honestly &#8212; so does my son.</p><div><hr></div><p><em>I write about what it actually looks like to build real software with AI tools &#8212; the wins, the failures, and everything the headlines leave out. If that sounds useful, subscribe and come along.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://radicalinsider.org/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[What I Learned When My Daughter's Softball Game Became My Product Demo]]></title><description><![CDATA[I'm 51 years old. I'm building a baseball and softball app called BenchBoard. Today I field-tested it at my daughter's game while coaching her team. Here's what actually happened.]]></description><link>https://radicalinsider.org/p/what-i-learned-when-my-daughters</link><guid isPermaLink="false">https://radicalinsider.org/p/what-i-learned-when-my-daughters</guid><dc:creator><![CDATA[Radical Insider]]></dc:creator><pubDate>Thu, 19 Mar 2026 21:35:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Y025!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17cf7b4a-6b86-416f-be69-b102b4b8889e_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Y025!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17cf7b4a-6b86-416f-be69-b102b4b8889e_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Y025!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17cf7b4a-6b86-416f-be69-b102b4b8889e_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Y025!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17cf7b4a-6b86-416f-be69-b102b4b8889e_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Y025!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17cf7b4a-6b86-416f-be69-b102b4b8889e_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Y025!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17cf7b4a-6b86-416f-be69-b102b4b8889e_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Y025!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17cf7b4a-6b86-416f-be69-b102b4b8889e_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/17cf7b4a-6b86-416f-be69-b102b4b8889e_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;:3050865,&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://radicalinsider.substack.com/i/191519132?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17cf7b4a-6b86-416f-be69-b102b4b8889e_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_!Y025!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17cf7b4a-6b86-416f-be69-b102b4b8889e_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Y025!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17cf7b4a-6b86-416f-be69-b102b4b8889e_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Y025!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17cf7b4a-6b86-416f-be69-b102b4b8889e_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Y025!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17cf7b4a-6b86-416f-be69-b102b4b8889e_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><figcaption class="image-caption">That is my daughter out there - just in a stylized version</figcaption></figure></div><p>My daughter is the most experienced pitcher on her team &#8212; she&#8217;s become a strong leader out there, and the other girls look to her. The manager gave her the game ball today. I&#8217;m the assistant coach &#8212; I manage the lineups and defense, and the manager trusts what I&#8217;m doing. There are three of us coaching this squad, and as of recently, I&#8217;ve also been testing the app I&#8217;ve been building in every spare hour I have.</p><p>Today was supposed to be a normal game. It wasn&#8217;t.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://radicalinsider.org/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I&#8217;ve been bringing BenchBoard to games for a few weeks now &#8212; this was the third one.</p><p>I&#8217;ll be honest: I rushed this thing out the door. I was racing to get it ready before game one, and I barely made it. That first game, I printed the lineups at home beforehand and we still had to cross names out by hand when the roster changed at the field. Game two went smoother &#8212; everything worked except one wrong jersey number for a player. Small stuff. But small stuff is what coaches notice.</p><p>This third game was the first time the lineup and defense management ran with no hiccups. No crossed-out names. No wrong numbers. Just clean printouts, real-time roster changes, and a workflow that actually held up under game conditions.</p><p>But here&#8217;s what I&#8217;m realizing &#8212; the same thing the other coaches on my staff who&#8217;ve been using it are realizing: the lineup and defense side works. It needs polish, but it works. The big one &#8212; scorekeeping &#8212; is actually live. It&#8217;s there. You can use it. But I&#8217;d call it a beta, and I know it&#8217;s not ready for primetime yet.</p><p>One of the coach&#8217;s wives was already keeping score on paper during the game. I could have asked her to try BenchBoard&#8217;s scorekeeping too &#8212; but I wasn&#8217;t about to give her two things to do in the middle of a live game. That&#8217;s how you burn someone out on your product before they&#8217;ve even started. What I&#8217;m planning instead is to have whoever&#8217;s on the bench handle the scorekeeping next time. They&#8217;re sitting there, they&#8217;re watching the game, and it gives me a real beta tester who isn&#8217;t already juggling another task.</p><p>And that&#8217;s the tension of building in public. You want it to be ready. It&#8217;s not. You ship it anyway. And then you learn what &#8220;ready&#8221; actually means &#8212; not from your codebase, but from the helmet shelf in the dugout.</p><p>After the game, the manager told me the app is pretty cool. I just shrugged. I&#8217;m still at the stage where every compliment gets met with a quiet <em>I hope this damn thing works.</em> Cool is nice. Reliable is what I&#8217;m after.</p><p>Today was the game where everything clicked into focus. I learned more in two hours at that field than I have in months of development.</p><p>Let me tell you what I brought with me.</p><h2>The Setup</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5nfL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe865d852-ac15-47fa-a32d-5cec126ff4d6_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5nfL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe865d852-ac15-47fa-a32d-5cec126ff4d6_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!5nfL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe865d852-ac15-47fa-a32d-5cec126ff4d6_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!5nfL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe865d852-ac15-47fa-a32d-5cec126ff4d6_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!5nfL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe865d852-ac15-47fa-a32d-5cec126ff4d6_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5nfL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe865d852-ac15-47fa-a32d-5cec126ff4d6_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e865d852-ac15-47fa-a32d-5cec126ff4d6_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;:3266219,&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://radicalinsider.substack.com/i/191519132?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe865d852-ac15-47fa-a32d-5cec126ff4d6_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_!5nfL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe865d852-ac15-47fa-a32d-5cec126ff4d6_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!5nfL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe865d852-ac15-47fa-a32d-5cec126ff4d6_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!5nfL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe865d852-ac15-47fa-a32d-5cec126ff4d6_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!5nfL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe865d852-ac15-47fa-a32d-5cec126ff4d6_1536x1024.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>I showed up to the field with <strong>four things</strong>: my laptop, a Phomemo M408 mobile printer, a USB-C cable, and a manila envelope stuffed with 100 sheets of 8.5x11 Phomemo thermal paper straight from Amazon. I set everything up on top of a helmet shelf in the dugout &#8212; a $2,000 MacBook Air balanced next to batting helmets with the printer attached via USB, both of them one elbow bump away from hitting the dirt. Every time we needed to print, I had to pull a sheet out of the envelope and feed it into the printer. It was cumbersome. It was not elegant. But I opened BenchBoard, pulled up our lineup, hit print, and handed a clean, formatted lineup card to the umpire.</p><p>The looks I got from the other coaches? Not excitement. Not &#8220;oh my God what is that.&#8221; Just a glance. A nod. An &#8220;ooh, interesting.&#8221;</p><p>And you know what? That&#8217;s exactly right.</p><p>Coaches at a game are coaching. They&#8217;re not evaluating software products between innings. They&#8217;re thinking about who&#8217;s batting fifth and whether their pitcher&#8217;s arm is going to hold up. I shouldn&#8217;t have expected more than a nod. But here&#8217;s the thing I noticed: the opposing coaches received our printed lineup, and then I caught them looking up the site on their phones. They were talking about it on the other side. Quietly. To each other.</p><p>That nod? That&#8217;s the top of the funnel. The conversion happens later, in the car ride home, when that coach is handwriting his next lineup and remembers the crisp printout he got handed today.</p><h2>What Worked</h2><p><strong>The interface looked good.</strong> On my laptop, BenchBoard looked like a real product. Not a side project. Not a prototype. A thing that belonged at a ball field.</p><p><strong>Managing the roster in real time was seamless.</strong> We had a couple players who weren&#8217;t going to make it &#8212; last minute, of course, because that&#8217;s how youth sports works. I pulled them off the lineup, adjusted, hit print again. New lineup. Done. No crossing out names with a pen like game one. No scribbling in the margin. No &#8220;wait, who&#8217;s playing short now?&#8221;</p><p><strong>Communicating with my coaches was easy.</strong> I could show them the screen and say &#8220;here&#8217;s who&#8217;s on the bench, here&#8217;s our defense&#8221; and everyone was on the same page. No squinting at a clipboard. No &#8220;I think she said Amanda&#8217;s at second?&#8221;</p><p><strong>The submit-and-print workflow was satisfying.</strong> Hit submit. Defense locked in. Lineup confirmed. Print. Hand it to the ump. There&#8217;s something about that flow that just feels right. Like the app is doing the thing it was born to do.</p><h2>What Didn&#8217;t Work</h2><p>And here&#8217;s where it gets honest.</p><p><strong>Four things is too many things.</strong> A laptop. A printer. A cable. A manila envelope full of thermal paper. I&#8217;m already carrying a gear bag, a bucket of balls, batting helmets, and whatever else my team forgot. Adding four items to set up a &#8220;simple&#8221; lineup system turns BenchBoard into a project, not a tool. Coaches don&#8217;t want projects. They want tools. Hell, Adam Sandler would be happy with just 3 things and thankfully <em>wallet</em> and <em>keys</em> don&#8217;t have to be part of it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JmmY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0f1204-320c-430b-b45a-3366c764a11d_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JmmY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0f1204-320c-430b-b45a-3366c764a11d_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!JmmY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0f1204-320c-430b-b45a-3366c764a11d_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!JmmY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0f1204-320c-430b-b45a-3366c764a11d_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!JmmY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0f1204-320c-430b-b45a-3366c764a11d_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JmmY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0f1204-320c-430b-b45a-3366c764a11d_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7b0f1204-320c-430b-b45a-3366c764a11d_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;: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="" srcset="https://substackcdn.com/image/fetch/$s_!JmmY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0f1204-320c-430b-b45a-3366c764a11d_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!JmmY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0f1204-320c-430b-b45a-3366c764a11d_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!JmmY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0f1204-320c-430b-b45a-3366c764a11d_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!JmmY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b0f1204-320c-430b-b45a-3366c764a11d_1024x608.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><figcaption class="image-caption">laptop sitting on baseball dugout bench - drawing</figcaption></figure></div><p><strong>The laptop kept timing out.</strong> This was one of the big ones. My laptop is secured with a fingerprint, so every time the screen locked &#8212; which it does constantly in the sun &#8212; everyone had to wait for me to wake it up just to see the lineup or defense. That&#8217;s a momentum killer. In the middle of a game, when a coach asks &#8220;who&#8217;s up next?&#8221; the answer can&#8217;t be &#8220;hold on, let me unlock my laptop.&#8221;</p><p><strong>Entering the opponent&#8217;s lineup was painful.</strong> The opposing coach handed me a paper lineup. Standard stuff. I tried to type it into BenchBoard manually and immediately started fighting the interface. I&#8217;d accidentally drag players around. Choosing positions meant hitting dropdown after dropdown. What should&#8217;ve taken 60 seconds took way too long and felt clunky the whole time. For a coach who&#8217;s never used the app before? That&#8217;s a wall.</p><p><strong>The laptop felt like overkill.</strong> I&#8217;m sitting there with this computer open at a kids&#8217; softball game and it just felt... heavy. Like I was doing too much. Meanwhile, one of the coach&#8217;s wives grabbed a clipboard and a dry-erase marker and wrote the lineup in big capital letters so everyone could see it from the dugout. She solved the visibility problem in 30 seconds with a $4 marker.</p><p>That moment stung a little. But it also taught me something.</p><h2>What I Actually Need</h2><p>The dry-erase clipboard wasn&#8217;t competing with BenchBoard. It was exposing a gap. BenchBoard is great at building and managing the lineup. But it&#8217;s not yet great at <em>displaying</em> it to the people who need to see it in real time &#8212; the coaches in the dugout, the parents keeping score, the players checking when they&#8217;re up.</p><p>A tablet changes everything. Mount it on the fence or the dugout gate. Big screen. Zoomable defense view. Everyone can see it. No laptop. No squinting.</p><p>And the printer? What if instead of lugging around a laptop-sized thermal printer with a cable, I just had a small Bluetooth label printer in my gear bag? The ones people use to print shipping labels &#8212; 4x6 format, Bluetooth, fits in your hand. I open BenchBoard on my phone. Tap print. The little printer spits out a lineup card. I hand it to the ump. Two things instead of four: my phone and a printer that fits in a side pocket.</p><p>That&#8217;s the difference between &#8220;this coach has a whole setup&#8221; and &#8220;wait, he just printed that from his phone?&#8221;</p><p>The first one is impressive but intimidating. The second one makes the opposing coach think <em>I could do that.</em></p><h2>The Feature I Wish Existed</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5PLR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7735c17f-bfd3-4521-9029-ea52ec367d41_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5PLR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7735c17f-bfd3-4521-9029-ea52ec367d41_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!5PLR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7735c17f-bfd3-4521-9029-ea52ec367d41_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!5PLR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7735c17f-bfd3-4521-9029-ea52ec367d41_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!5PLR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7735c17f-bfd3-4521-9029-ea52ec367d41_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5PLR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7735c17f-bfd3-4521-9029-ea52ec367d41_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7735c17f-bfd3-4521-9029-ea52ec367d41_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;: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="" srcset="https://substackcdn.com/image/fetch/$s_!5PLR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7735c17f-bfd3-4521-9029-ea52ec367d41_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!5PLR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7735c17f-bfd3-4521-9029-ea52ec367d41_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!5PLR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7735c17f-bfd3-4521-9029-ea52ec367d41_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!5PLR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7735c17f-bfd3-4521-9029-ea52ec367d41_1024x608.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><figcaption class="image-caption">coach giving a small paper with a lineup to another coach - sketch</figcaption></figure></div><p>When the opposing coach handed me his paper lineup, I had to manually type in every name and select every position. But I&#8217;m staring at a piece of paper that already has all the information on it. In order.</p><p>What if I could just point my phone camera at that paper lineup and the app reads it? Scans the names, the positions, the batting order &#8212; and drops it right into the scorekeeping side. OCR for lineup cards. That&#8217;s not science fiction. That&#8217;s a phone camera and some text recognition.</p><p>I&#8217;m not building that tomorrow. But I wrote it down. Because today, at the field, fighting with dropdowns while the ump waited, I felt the friction. And when you feel it yourself, you don&#8217;t forget it.</p><h2>Why I&#8217;m Writing This</h2><p>I&#8217;m 51 years old. BenchBoard is my third company. The first two didn&#8217;t make it &#8212; one got absorbed by a bigger network, the other fell apart when my business partner couldn&#8217;t make it work. I&#8217;ve got teenage kids who are cheering me on. A wife who believes in what I&#8217;m building. And a long road ahead.</p><p>I read a story recently about James Dyson &#8212; the vacuum guy. He spent 14 years building prototypes in a shed behind his house. Built 5,127 of them. His wife Deirdre was an art teacher who supported the family on her salary while he remortgaged their home over and over. His kids grew up watching him go to that shed every day. He finally shipped his first product at age 46.</p><p>Today, his son is VP of Engineering at the company. His wife is creative director. The family that held him up during the hard years is now running the thing that came out of them.</p><p>I&#8217;m not James Dyson. I&#8217;m a coach with a laptop balanced on a helmet shelf, hoping it doesn&#8217;t fall, at my daughter&#8217;s softball game. But I know what it feels like to carry something you believe in while the world gives you a polite nod and goes back to what they were doing.</p><p>The opposing coach looked up my site today. He didn&#8217;t sign up. He didn&#8217;t say &#8220;wow.&#8221; He just nodded. And that&#8217;s enough. Because adoption doesn&#8217;t start with a standing ovation. It starts with a nod. Then a glance at the phone. Then, weeks later, when that coach is handwriting a lineup at 6 AM before a tournament and he remembers the printed lineup that got handed to him &#8212; that&#8217;s when the seed grows.</p><p>I&#8217;m building BenchBoard for coaches like me. Coaches who are also parents. Coaches who are tired of the clipboard-and-Sharpie workflow but don&#8217;t want to fight with bloated apps that weren&#8217;t built by someone who&#8217;s actually stood in the dugout.</p><p>Every game I coach is a product test. Every printed lineup I hand to an opponent is a business card. Every problem I hit at the field is a feature I&#8217;ll build next week.</p><p>Today I learned that four things is too many. Two is the right number. And a dry-erase marker is still the fastest display technology ever invented &#8212; until I get a tablet on the fence.</p><p>More soon.</p><div><hr></div><p><em>Rad is the founder of IronBench Labs and the creator of BenchBoard &#8212; a real-time scorekeeping and team management app for baseball and softball. He&#8217;s an assistant coach on his daughter&#8217;s team in California and field-tests every feature himself. Follow along as he builds in public.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://radicalinsider.org/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Architecture the AI Couldn't See]]></title><description><![CDATA[Part 2 of 5: The BenchBoard Build - How I Bit Off More Than I Could Chew Building This SaaS &#8212; Even With the "Best" LLMs]]></description><link>https://radicalinsider.org/p/the-architecture-the-ai-couldnt-see</link><guid isPermaLink="false">https://radicalinsider.org/p/the-architecture-the-ai-couldnt-see</guid><dc:creator><![CDATA[Radical Insider]]></dc:creator><pubDate>Mon, 16 Mar 2026 22:01:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yyX7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae6c21a-2cf7-480a-ae24-9d38cf37dc26_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yyX7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae6c21a-2cf7-480a-ae24-9d38cf37dc26_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yyX7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae6c21a-2cf7-480a-ae24-9d38cf37dc26_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!yyX7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae6c21a-2cf7-480a-ae24-9d38cf37dc26_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!yyX7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae6c21a-2cf7-480a-ae24-9d38cf37dc26_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!yyX7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae6c21a-2cf7-480a-ae24-9d38cf37dc26_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yyX7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae6c21a-2cf7-480a-ae24-9d38cf37dc26_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dae6c21a-2cf7-480a-ae24-9d38cf37dc26_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!yyX7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae6c21a-2cf7-480a-ae24-9d38cf37dc26_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!yyX7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae6c21a-2cf7-480a-ae24-9d38cf37dc26_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!yyX7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae6c21a-2cf7-480a-ae24-9d38cf37dc26_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!yyX7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae6c21a-2cf7-480a-ae24-9d38cf37dc26_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>This is Part 2 of a five-part series about building BenchBoard &#8212; a team management and live scorekeeping app for youth baseball and softball &#8212; with the help of AI tools. If you missed <a href="https://radicalinsider.substack.com/p/how-i-bit-off-more-than-i-could-chew">Part 1</a>, <a href="https://radicalinsider.substack.com/p/how-i-bit-off-more-than-i-could-chew">start there</a>. It sets the stage for everything that follows.</em></p><div><hr></div><p>In <a href="https://radicalinsider.substack.com/p/how-i-bit-off-more-than-i-could-chew">Part 1</a>, I mentioned that the AI once built a race condition directly into my live scorekeeping system. I said I&#8217;d tell you the full story. So here it is.</p><p>But first, a little context &#8212; because this story doesn&#8217;t make sense unless you understand what BenchBoard is actually doing under the hood.</p><h2>What a &#8220;Simple&#8221; Lineup Actually Looks Like in Code</h2><p>When most people hear &#8220;lineup management,&#8221; they picture a list. A list of players, nine positions, maybe a batting order. How hard could it be?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6vf3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc0c0ef2-6bc5-4b89-8cd0-7fec2740cd4e_394x503.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6vf3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc0c0ef2-6bc5-4b89-8cd0-7fec2740cd4e_394x503.png 424w, https://substackcdn.com/image/fetch/$s_!6vf3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc0c0ef2-6bc5-4b89-8cd0-7fec2740cd4e_394x503.png 848w, https://substackcdn.com/image/fetch/$s_!6vf3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc0c0ef2-6bc5-4b89-8cd0-7fec2740cd4e_394x503.png 1272w, https://substackcdn.com/image/fetch/$s_!6vf3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc0c0ef2-6bc5-4b89-8cd0-7fec2740cd4e_394x503.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6vf3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc0c0ef2-6bc5-4b89-8cd0-7fec2740cd4e_394x503.png" width="394" height="503" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bc0c0ef2-6bc5-4b89-8cd0-7fec2740cd4e_394x503.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:503,&quot;width&quot;:394,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:38442,&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://radicalinsider.substack.com/i/191169135?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc0c0ef2-6bc5-4b89-8cd0-7fec2740cd4e_394x503.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_!6vf3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc0c0ef2-6bc5-4b89-8cd0-7fec2740cd4e_394x503.png 424w, https://substackcdn.com/image/fetch/$s_!6vf3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc0c0ef2-6bc5-4b89-8cd0-7fec2740cd4e_394x503.png 848w, https://substackcdn.com/image/fetch/$s_!6vf3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc0c0ef2-6bc5-4b89-8cd0-7fec2740cd4e_394x503.png 1272w, https://substackcdn.com/image/fetch/$s_!6vf3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc0c0ef2-6bc5-4b89-8cd0-7fec2740cd4e_394x503.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><figcaption class="image-caption"></figcaption></figure></div><p>Here&#8217;s how hard.</p><p>A lineup in BenchBoard isn&#8217;t a list. It&#8217;s a <em>snapshot</em> &#8212; a single atomic record that holds three separate JSON blobs at the same time: who&#8217;s active on the roster (ManagePlayersJson), what order they&#8217;re batting in (BattingOrderJson), and where they&#8217;re positioned on the field (DefenseJson). </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qsHc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058ac4fc-4e39-48a3-bcf1-b21a61fa084e_822x678.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qsHc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058ac4fc-4e39-48a3-bcf1-b21a61fa084e_822x678.png 424w, https://substackcdn.com/image/fetch/$s_!qsHc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058ac4fc-4e39-48a3-bcf1-b21a61fa084e_822x678.png 848w, https://substackcdn.com/image/fetch/$s_!qsHc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058ac4fc-4e39-48a3-bcf1-b21a61fa084e_822x678.png 1272w, https://substackcdn.com/image/fetch/$s_!qsHc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058ac4fc-4e39-48a3-bcf1-b21a61fa084e_822x678.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qsHc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058ac4fc-4e39-48a3-bcf1-b21a61fa084e_822x678.png" width="822" height="678" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/058ac4fc-4e39-48a3-bcf1-b21a61fa084e_822x678.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:678,&quot;width&quot;:822,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:147306,&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://radicalinsider.substack.com/i/191169135?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058ac4fc-4e39-48a3-bcf1-b21a61fa084e_822x678.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_!qsHc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058ac4fc-4e39-48a3-bcf1-b21a61fa084e_822x678.png 424w, https://substackcdn.com/image/fetch/$s_!qsHc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058ac4fc-4e39-48a3-bcf1-b21a61fa084e_822x678.png 848w, https://substackcdn.com/image/fetch/$s_!qsHc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058ac4fc-4e39-48a3-bcf1-b21a61fa084e_822x678.png 1272w, https://substackcdn.com/image/fetch/$s_!qsHc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F058ac4fc-4e39-48a3-bcf1-b21a61fa084e_822x678.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>All three of those blobs interact with each other.</p><p>Here&#8217;s what a single LineupSnapshot actually looks like in the database. One row. Three blobs. Everything about your team&#8217;s current state lives here:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;json&quot;,&quot;nodeId&quot;:&quot;45cd4705-09bd-4b28-98b6-0dac2204c5be&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-json">LineupSnapshot (one row per team per game)
&#9500;&#9472;&#9472; TeamId: "a]4f2e..."
&#9500;&#9472;&#9472; GameId: "7dee-4c9d..." (null = practice mode)
&#9474;
&#9500;&#9472;&#9472; ManagePlayersJson:
&#9474;   [
&#9474;     { "playerId": "p-001", "name": "Barry Bonds",     "jersey": 25, "active": true  },
&#9474;     { "playerId": "p-002", "name": "Jennie Finch",    "jersey": 27, "active": true  },
&#9474;     { "playerId": "p-003", "name": "Jackie Robinson", "jersey": 42, "active": true  },
&#9474;     { "playerId": "p-004", "name": "Yogi Berra",      "jersey": 8,  "active": true  },
&#9474;     { "playerId": "p-005", "name": "Monica Abbott",   "jersey": 14, "active": false },
&#9474;     ...12 players total
&#9474;   ]
&#9474;
&#9500;&#9472;&#9472; BattingOrderJson:
&#9474;   [
&#9474;     { "playerId": "p-003", "order": 1 },   // Jackie Robinson leads off
&#9474;     { "playerId": "p-001", "order": 2 },   // Barry Bonds bats second
&#9474;     { "playerId": "p-002", "order": 3 },   // Jennie Finch bats third
&#9474;     { "playerId": "p-004", "order": 4 },   // Yogi Berra cleanup
&#9474;     ...only active players, sequential, no gaps
&#9474;   ]
&#9474;
&#9500;&#9472;&#9472; DefenseJson:
&#9474;   {
&#9474;     "p-001": 9,    // Barry Bonds &#8594; Left Field
&#9474;     "p-002": 3,    // Jennie Finch &#8594; Pitcher
&#9474;     "p-003": 8,    // Jackie Robinson &#8594; Shortstop
&#9474;     "p-004": 11,   // Yogi Berra &#8594; Right Field
&#9474;     "p-005": 1,    // Monica Abbott &#8594; Bench Slot 1 (inactive)
&#9474;     ...
&#9474;   }
&#9474;   // Position IDs: 1=Bench1, 2=Bench2, 3=Pitcher, 4=Catcher,
&#9474;   // 5=1st, 6=2nd, 7=3rd, 8=SS, 9=LF, 10=CF, 11=RF
&#9474;
&#9492;&#9472;&#9472; LockLineupToggle: false</code></pre></div><p>See how they connect? If you deactivate <em>Monica Abbott</em> in ManagePlayersJson (<code>active: false</code>), that has to cascade into <strong>BattingOrderJson</strong> &#8212; she gets removed and the order renumbers so there&#8217;s no gap at position 5. And it has to cascade into <strong>DefenseJson</strong>, because if she was at pitcher, you can&#8217;t leave an empty circle on the mound. Everything ripples.</p><p>That&#8217;s the resting state. Now make it live. A coach is standing on a field with their phone, moving players around mid-game. A parent in the stands is watching a live scoreboard on their phone. The scorekeeper is tracking pitches in real time. All of these views need to stay in sync, instantly, and they all read from the same underlying data.</p><p>This is the kind of complexity that sounds manageable when you describe it in a sentence but becomes a monster the moment you start writing the code. And it&#8217;s the kind of complexity that LLMs are terrible at anticipating &#8212; because they&#8217;ve never stood on a field and watched a coach frantically swap their right fielder for a kid who just showed up late.</p><div><hr></div><h2>Three Tables Walk Into a Bar</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!blPO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa16c0ed3-f468-45a0-b725-0b04f4e7444b_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!blPO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa16c0ed3-f468-45a0-b725-0b04f4e7444b_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!blPO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa16c0ed3-f468-45a0-b725-0b04f4e7444b_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!blPO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa16c0ed3-f468-45a0-b725-0b04f4e7444b_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!blPO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa16c0ed3-f468-45a0-b725-0b04f4e7444b_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!blPO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa16c0ed3-f468-45a0-b725-0b04f4e7444b_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a16c0ed3-f468-45a0-b725-0b04f4e7444b_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;: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="" srcset="https://substackcdn.com/image/fetch/$s_!blPO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa16c0ed3-f468-45a0-b725-0b04f4e7444b_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!blPO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa16c0ed3-f468-45a0-b725-0b04f4e7444b_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!blPO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa16c0ed3-f468-45a0-b725-0b04f4e7444b_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!blPO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa16c0ed3-f468-45a0-b725-0b04f4e7444b_1024x608.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><figcaption class="image-caption">Robots in a bar. Anime style</figcaption></figure></div><p>Let me tell you how this mess started, because it&#8217;s a perfect example of how AI-generated prototypes can set you up for pain down the road.</p><p>Back in July, when I was still on ChatGPT, I was using Codex to build out the early screens &#8212; the roster view, the lineup card, the field diagram. Basic prototypes. The kind of thing where you describe what you want and the AI generates a working UI in minutes. And it was impressive. I had screens that looked real within hours.</p><p>But here&#8217;s what Codex also did: it looked at those prototypes and decided what the database should look like. It saw a roster screen, a batting order screen, and a field position screen &#8212; three screens &#8212; and created three tables. One for managing which players were active (LineupEntries). One for the batting order. One for the defensive positions (DefensiveAssignments). It even told me the schema was &#8220;expandable and would work perfectly over time.&#8221; Real words from the LLM. Not mine.</p><p>From a database design perspective, it wasn&#8217;t a bad answer. It&#8217;s what you&#8217;d find in a textbook. Each concern is separated. Each table has a clear purpose. If you were building a homework assignment, you&#8217;d get an A.</p><p>But I wasn&#8217;t building a homework assignment. I was building an app where a coach is standing on a field in 95-degree heat, trying to swap two players before the umpire yells &#8220;Play ball.&#8221; And in that world, three tables is a disaster.</p><p>Every time a coach made a change &#8212; moving a player from the bench to the field, or swapping two players in the batting order &#8212; the system had to coordinate writes across three tables. If one write succeeded and another failed (network hiccup, timeout, race condition), you&#8217;d get an inconsistent state. The batting order says the player is #6, but the manage-players table says they&#8217;re inactive. The field shows them at shortstop, but the batting lineup doesn&#8217;t have them at all.</p><p>The number of database migrations I&#8217;ve had since those original three tables is insane. At one point I had 36 migration files just for DefensiveAssignments alone &#8212; adding slot constraints, bench slots, indexes, field position constraints. Every time I discovered a new edge case, it was another migration. Another schema change. Another deployment risk.</p><p>This is the kind of thing the AI never warned me about. It looked at three screens and gave me three tables. It didn&#8217;t think about what happens when all three need to change atomically in the same instant.</p><p>And before someone in the comments says &#8220;well, you should&#8217;ve used MongoDB&#8221; or &#8220;NoSQL would&#8217;ve solved this&#8221; &#8212; no. Hard no. I need transactions. I need relational integrity. I need to know that when a coach confirms a lineup, that data is <em>exactly</em> what the system says it is. I need hard receipts. A scorekeeping app isn&#8217;t a dashboard pulling from a million data stores &#8212; it&#8217;s a system of record. Every pitch, every substitution, every lineup change needs to be verifiable and consistent. I love MongoDB &#8212; it&#8217;s a great database for the right use case. This isn&#8217;t it. Document-based storage would&#8217;ve given me the same data consistency nightmares, just wrapped in a different syntax. And honestly, it probably would&#8217;ve been messier, because at least with SQL Server I get real foreign keys and real transaction isolation.</p><p>Eventually, I made the call to consolidate all three tables into a single <strong>LineupSnapshot</strong> &#8212; one atomic record that holds everything. When the coach makes a change, one record gets written. If it fails, it fails completely. If it succeeds, everything is consistent. The refactor touched dozens of files across both the backend and frontend, required migrating all existing data, and took days. But when it was done, an entire category of bugs just disappeared.</p><p>The AI didn&#8217;t suggest this refactor. </p><p>I did. </p><p>Because I&#8217;d been living with the bugs its original &#8220;expandable&#8221; schema created for months.</p><div><hr></div><h2>The Night I Found Two Players at Right Field</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pGi5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec58e159-951d-4921-a7df-5ff662f38ff0_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pGi5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec58e159-951d-4921-a7df-5ff662f38ff0_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!pGi5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec58e159-951d-4921-a7df-5ff662f38ff0_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!pGi5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec58e159-951d-4921-a7df-5ff662f38ff0_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!pGi5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec58e159-951d-4921-a7df-5ff662f38ff0_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pGi5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec58e159-951d-4921-a7df-5ff662f38ff0_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ec58e159-951d-4921-a7df-5ff662f38ff0_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;: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="" srcset="https://substackcdn.com/image/fetch/$s_!pGi5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec58e159-951d-4921-a7df-5ff662f38ff0_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!pGi5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec58e159-951d-4921-a7df-5ff662f38ff0_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!pGi5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec58e159-951d-4921-a7df-5ff662f38ff0_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!pGi5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec58e159-951d-4921-a7df-5ff662f38ff0_1024x608.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><figcaption class="image-caption">Two baseball players arguing over covering right field.</figcaption></figure></div><p>A few weeks later, I&#8217;m testing BenchBoard late at night. I&#8217;m dragging players around the field &#8212; moving Jackie Robinson to right field, where Yogi Berra is already stationed. Standard swap. The app should move Jackie to RF and send Yogi somewhere else &#8212; back to his original position or to the bench.</p><p>I do the drag. It looks fine. I switch to a different game to check something. I switch back.</p><p>Two players at right field. Jackie and Yogi, both sitting in the same position. That&#8217;s not supposed to be 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_!mZdk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae8fad9f-6f46-447e-91c2-131740e04f5d_481x488.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mZdk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae8fad9f-6f46-447e-91c2-131740e04f5d_481x488.png 424w, https://substackcdn.com/image/fetch/$s_!mZdk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae8fad9f-6f46-447e-91c2-131740e04f5d_481x488.png 848w, https://substackcdn.com/image/fetch/$s_!mZdk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae8fad9f-6f46-447e-91c2-131740e04f5d_481x488.png 1272w, https://substackcdn.com/image/fetch/$s_!mZdk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae8fad9f-6f46-447e-91c2-131740e04f5d_481x488.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mZdk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae8fad9f-6f46-447e-91c2-131740e04f5d_481x488.png" width="481" height="488" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ae8fad9f-6f46-447e-91c2-131740e04f5d_481x488.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:488,&quot;width&quot;:481,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:72598,&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://radicalinsider.substack.com/i/191169135?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae8fad9f-6f46-447e-91c2-131740e04f5d_481x488.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_!mZdk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae8fad9f-6f46-447e-91c2-131740e04f5d_481x488.png 424w, https://substackcdn.com/image/fetch/$s_!mZdk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae8fad9f-6f46-447e-91c2-131740e04f5d_481x488.png 848w, https://substackcdn.com/image/fetch/$s_!mZdk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae8fad9f-6f46-447e-91c2-131740e04f5d_481x488.png 1272w, https://substackcdn.com/image/fetch/$s_!mZdk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae8fad9f-6f46-447e-91c2-131740e04f5d_481x488.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>I check the console logs. The data is there &#8212; the system knows there are two players at RF. But somehow the snapshot saved with both of them at the same position. The deduplication logic on the backend catches it after the fact, but the damage is already done. The data is dirty.</p><p>So I start tracing the flow with the AI, and here&#8217;s what we find.</p><p>When a coach drags a player to a new defensive position, the system does four things:</p><ol><li><p><strong>Optimistic update</strong> &#8212; the frontend store immediately swaps the players so the UI feels instant.</p></li><li><p><strong>syncSnapshot fires</strong> &#8212; the frontend serializes the entire store and writes the lineup snapshot to the database. Writer #1.</p></li><li><p><strong>The defensive controller fires</strong> &#8212; a separate API call tells the backend to process the swap with its own logic and write the result to the same snapshot. Writer #2.</p></li><li><p><strong>Re-fetch</strong> &#8212; the frontend pulls the latest snapshot from the backend and rehydrates the store from whatever it finds.</p></li></ol><p>See the problem?</p><p>Steps 2 and 3 are both writing to the <em>same database record</em> at the <em>same time</em>. It&#8217;s a textbook race condition. Here&#8217;s what it looks like with real data:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;json&quot;,&quot;nodeId&quot;:&quot;f9f17122-82bc-4882-b798-a2f271e6a351&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-json">BEFORE THE DRAG:
  DefenseJson: { "p-003": 8, "p-004": 11, ... }
               // Jackie &#8594; SS,  Yogi &#8594; RF

COACH DRAGS JACKIE TO RIGHT FIELD:

  Step 1 - Frontend optimistic update:
    { "p-003": 11, "p-004": 1, ... }
    // Jackie &#8594; RF, Yogi &#8594; Bench1 &#10003; (looks right)

  Step 2 - syncSnapshot writes to DB:          &#8592; Writer #1
    saves { "p-003": 11, "p-004": 1, ... }
    // Jackie &#8594; RF, Yogi &#8594; Bench1

  Step 3 - Defensive controller writes to DB:  &#8592; Writer #2
    saves { "p-003": 11, "p-004": 8, ... }
    // Jackie &#8594; RF, Yogi &#8594; SS (his original spot) &#8592; CORRECT

  WHO WINS? Whichever HTTP response finishes LAST.

  If Step 2 finishes after Step 3:
    DB has: { "p-003": 11, "p-004": 1, ... }
    // Yogi is on Bench1 instead of back at SS
    // The controller's correct swap got silently overwritten</code></pre></div><p>Whichever HTTP response finishes last wins. If syncSnapshot finishes after the defensive controller, it overwrites the controller&#8217;s properly-computed swap with the frontend&#8217;s optimistic state &#8212; which has Yogi bumped to bench slot 1 instead of back to his original position. The backend controller&#8217;s correct answer gets silently erased.</p><p>The AI identified the race condition once I pointed out the symptoms. It then proposed what it called &#8220;the clear answer&#8221;: just stop calling syncSnapshot from the defensive drag handlers. Let the defensive controller be the sole writer.</p><p>That&#8217;s a band-aid. It would&#8217;ve fixed <em>this particular</em> race condition. But it wouldn&#8217;t fix the architectural flaw underneath &#8212; which is that there were multiple independent writers competing for the same data, with no coordination between them.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://radicalinsider.org/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kH_5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a70f8e-88aa-42d5-bbf5-934f1049598f_1024x1070.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kH_5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a70f8e-88aa-42d5-bbf5-934f1049598f_1024x1070.png 424w, https://substackcdn.com/image/fetch/$s_!kH_5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a70f8e-88aa-42d5-bbf5-934f1049598f_1024x1070.png 848w, https://substackcdn.com/image/fetch/$s_!kH_5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a70f8e-88aa-42d5-bbf5-934f1049598f_1024x1070.png 1272w, https://substackcdn.com/image/fetch/$s_!kH_5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a70f8e-88aa-42d5-bbf5-934f1049598f_1024x1070.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kH_5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a70f8e-88aa-42d5-bbf5-934f1049598f_1024x1070.png" width="1024" height="1070" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07a70f8e-88aa-42d5-bbf5-934f1049598f_1024x1070.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1070,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1326100,&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://radicalinsider.substack.com/i/191169135?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a70f8e-88aa-42d5-bbf5-934f1049598f_1024x1070.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_!kH_5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a70f8e-88aa-42d5-bbf5-934f1049598f_1024x1070.png 424w, https://substackcdn.com/image/fetch/$s_!kH_5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a70f8e-88aa-42d5-bbf5-934f1049598f_1024x1070.png 848w, https://substackcdn.com/image/fetch/$s_!kH_5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a70f8e-88aa-42d5-bbf5-934f1049598f_1024x1070.png 1272w, https://substackcdn.com/image/fetch/$s_!kH_5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a70f8e-88aa-42d5-bbf5-934f1049598f_1024x1070.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>&#8220;No. I Have a Better Architecture.&#8221;</h2><p>That was my exact response to the AI. And what followed was one of the most interesting dynamics of this entire build.</p><p>I didn&#8217;t just disagree with the AI&#8217;s fix. <strong>I redesigned the whole pipeline.</strong> </p><p>Here&#8217;s what I told it:</p><p>syncSnapshot becomes the <em>parent</em> &#8212; the single orchestrator for all lineup changes. Every action &#8212; whether it&#8217;s a roster toggle, a batting order drag, or a defensive position swap &#8212; flows through syncSnapshot as a pipeline with three stages:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;7e218fa1-2405-4568-9d2b-fdfc4576c96c&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Coach action (drag / toggle / activate)
  &#9474;
  &#9660;
syncSnapshot &#8212; the single orchestrator
  &#9474;
  &#9500;&#9472;&#9658; MPCon (ManagePlayersController)
  &#9474;     Runs FIRST. Diffs the roster.
  &#9474;     "Monica Abbott just got deactivated."
  &#9474;
  &#9500;&#9472;&#9658; BLCon (BattingLineupController)
  &#9474;     Runs SECOND. Reads MPCon's output.
  &#9474;     "Monica was batting 5th &#8212; close the gap,
  &#9474;      renumber 6&#8594;5, 7&#8594;6, 8&#8594;7..."
  &#9474;
  &#9492;&#9472;&#9658; DLCon (DefensiveLineupController)
        Runs LAST. Reads MPCon's output.
        "Monica was at Pitcher &#8212; she's inactive now,
         move the sub in. Only I write DefenseJson.
         No one else. Ever."
  &#9474;
  &#9660;
Write once &#8594; localStorage &#8594; SignalR push to DB
  &#9474;
  &#9660;
RenderMainBoard &#8212; rehydrate UI from the updated store</code></pre></div><p></p><p><strong>Stage 1: ManagePlayersController</strong> runs first. It checks what&#8217;s changed in the roster &#8212; who got activated, who got deactivated. It establishes the ground truth of who&#8217;s even available.</p><p><strong>Stage 2: BattingLineupController</strong> runs next. It reads the roster state from Stage 1, looks at the batting order (which may have been reordered via drag-and-drop), and renumbers to fill any gaps. If a player was deactivated in Stage 1, the batting order closes the hole automatically.</p><p><strong>Stage 3: DefensiveLineupController</strong> runs last. It reads the roster state from Stage 1, processes any defensive position changes, enforces the rules (one player per field position, swap logic), and builds the final DefenseJson. No other handler anywhere in the system is allowed to write DefenseJson. This is the single source of truth.</p><p>After all three stages complete, the system writes everything to localStorage, pushes to the database via SignalR, and rehydrates the UI.</p><p>One pipeline. One write path. No races.</p><p>The AI&#8217;s response? </p><h3>&#8220;Good architecture.&#8221; </h3><p>Then it asked me six clarifying questions &#8212; smart ones &#8212; about trigger timing, swap logic ownership, whether the old API endpoint should be replaced entirely, how the rendering layer should consume the results, and whether practice mode follows the same path.</p><p>I answered all six. The AI then produced a perfect diagram of the architecture, confirmed its understanding, and started implementing.</p><p><em>That&#8217;s</em> the dynamic. The AI is an incredible implementer. It can take a well-defined architecture and execute it flawlessly across a dozen files in a fraction of the time it would take me. But it didn&#8217;t &#8212; and couldn&#8217;t &#8212; design that architecture. Not because it&#8217;s stupid. Because it doesn&#8217;t have the context. It doesn&#8217;t know that coaches switch between games constantly on their phones. It doesn&#8217;t know that a guest player might show up wearing the same jersey number as your starting pitcher. It doesn&#8217;t know that eventually I want parents watching a live scoreboard on a TV at the concession stand.</p><p>I know those things because I&#8217;m the coach. I&#8217;m the parent. I&#8217;m the guy who&#8217;s been at the field.</p><h2>Why the Band-Aid Would&#8217;ve Come Back to Bite Me</h2><p>Let me explain why the AI&#8217;s original fix &#8212; &#8220;just don&#8217;t call syncSnapshot from MainField&#8221; &#8212; would have failed down the road.</p><p>Under that approach, defensive changes would go through one code path, and batting/roster changes would go through another. Two separate write paths, two separate sets of assumptions, no guarantees about ordering or consistency.</p><p>Now imagine this: a coach deactivates a player from the roster (manage-players path) at the exact moment the scorekeeper swaps a defensive position (defensive path). Under the band-aid fix, those are two independent operations hitting the same snapshot with no awareness of each other. The deactivation writes ManagePlayersJson, and then the defensive swap writes DefenseJson &#8212; but DefenseJson still has the deactivated player at shortstop because the defensive controller didn&#8217;t know about the roster change.</p><p>With the unified pipeline, that can&#8217;t happen. The roster change flows through MPCon first, then BLCon, then DLCon &#8212; and DLCon already knows the player is inactive before it processes the defensive state.</p><p>This is what I mean when I say the AI can&#8217;t architect your system. It can identify a bug. It can propose a fix. But it can&#8217;t see the second-order consequences of that fix six months from now when your user base has tripled and coaches are making changes during live games while their phone signal drops in and out.</p><p>That requires judgment. That requires experience. That requires having been in the mess yourself.</p><div><hr></div><h2>The Uncomfortable Truth About &#8220;Vibe Coding&#8221;</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kT1q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9f36fe8-3bb5-4839-bfc5-0545d852b5e5_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kT1q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9f36fe8-3bb5-4839-bfc5-0545d852b5e5_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!kT1q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9f36fe8-3bb5-4839-bfc5-0545d852b5e5_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!kT1q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9f36fe8-3bb5-4839-bfc5-0545d852b5e5_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!kT1q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9f36fe8-3bb5-4839-bfc5-0545d852b5e5_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kT1q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9f36fe8-3bb5-4839-bfc5-0545d852b5e5_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a9f36fe8-3bb5-4839-bfc5-0545d852b5e5_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;:2991878,&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://radicalinsider.substack.com/i/191169135?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9f36fe8-3bb5-4839-bfc5-0545d852b5e5_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_!kT1q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9f36fe8-3bb5-4839-bfc5-0545d852b5e5_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!kT1q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9f36fe8-3bb5-4839-bfc5-0545d852b5e5_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!kT1q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9f36fe8-3bb5-4839-bfc5-0545d852b5e5_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!kT1q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9f36fe8-3bb5-4839-bfc5-0545d852b5e5_1536x1024.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>There&#8217;s a trend right now &#8212; people calling it &#8220;vibe coding&#8221; &#8212; where you just keep prompting the AI until something works. No architecture. No planning. No understanding of what the code is actually doing. Just vibes. And you can thank Andrej Karpathy for that one. The irony is that he&#8217;s actually a damn good coder. But that&#8217;s what happens when your post about &#8220;coding with vibes&#8221; goes viral.</p><p>Look, I get the appeal. </p><p>It feels fast. And for a demo, a prototype, or a personal project that only you&#8217;ll ever use, maybe that&#8217;s fine.</p><p>But for anything real &#8212; anything that other people will depend on, anything that handles live data, anything that needs to work when the network drops or two users hit the same button at the same time &#8212; vibe coding is a time bomb.</p><p>The race condition I just described? That&#8217;s a vibe coding bug. Everything <em>looks</em> fine. The UI updates. The data saves. It only breaks when the timing is just wrong enough that two writes collide. You&#8217;d never catch it in a demo. You&#8217;d only catch it when a real coach, on a real field, switches games at exactly the wrong moment and sees two players at right field.</p><p>If you don&#8217;t understand what a race condition is &#8212; if you&#8217;ve never been taught about concurrent writes, atomic operations, or state management &#8212; you&#8217;ll never know why your app &#8220;randomly&#8221; loses data. You&#8217;ll blame the framework. You&#8217;ll blame the hosting provider. You&#8217;ll keep prompting the AI to &#8220;fix the bug&#8221; and it&#8217;ll keep applying band-aids to symptoms instead of addressing the architecture.</p><p>And I say this as someone who loves these AI tools and uses them every single day. They are genuinely incredible. But they&#8217;re tools. And a tool in the hands of someone who doesn&#8217;t understand the work is just a more efficient way to create problems.</p><div><hr></div><h2>The Wrong Team on the Wrong Screen</h2><p>The race condition wasn&#8217;t the only invisible bug the AI created. Here&#8217;s one that was arguably scarier &#8212; because it was a data integrity issue that affected <em>which user&#8217;s data showed up</em>.</p><p>One night I&#8217;m testing multi-user flows. I log in as one test account &#8212; let&#8217;s call him Baker Mayfield, UserID 7. His team should load. His players. His roster. Instead, I&#8217;m looking at 28 players that belong to a completely different account &#8212; UserID 3, a dev test account I&#8217;d been using earlier.</p><p>I check localStorage. Sure enough, the stored team ID doesn&#8217;t match the logged-in user. The AI had set up localStorage with generic keys &#8212; just a flat <code>teamId</code> and <code>settings</code> &#8212; with no namespacing per user. So when I logged in as a different user in the same browser, the old user&#8217;s data was still sitting there. The app saw a valid team ID in storage, loaded it, and never questioned whether it belonged to the person actually logged in.</p><p>This is the kind of bug that <em>works</em> as long as you only ever test with one account. The moment a second user touches the same browser &#8212; or you&#8217;re a developer switching between test accounts, which you do fifty times a day &#8212; everything looks fine but the data is wrong.</p><p>I told the AI: there should be exactly three keys in localStorage, and they need to be scoped per team and per user:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;json&quot;,&quot;nodeId&quot;:&quot;90fcb79c-ac0c-41d3-9129-5ec2265c4b54&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-json">team_[TeamID]_user_[UserID]_bbentities   (TTUUB)
team_[TeamID]_user_[UserID]_settings     (TTUS)
currentUser_[UserID]                     (CUID)</code></pre></div><p>That&#8217;s it. They sit side by side, each one namespaced to its owner. When a different user logs in, their keys are separate. No cross-contamination. No loading Baker Mayfield&#8217;s screen with someone else&#8217;s roster.</p><p>The AI didn&#8217;t design this namespacing. It built a flat storage scheme that worked for one user and silently broke for two. I caught it because I was actually testing the app the way real people would use it &#8212; switching accounts, sharing a device, logging out and back in. The AI never simulated that.</p><div><hr></div><h2>Same Browser, Two Environments, One Nightmare</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IvJ6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58747f4c-81c8-4aff-b3b4-110024460700_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IvJ6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58747f4c-81c8-4aff-b3b4-110024460700_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!IvJ6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58747f4c-81c8-4aff-b3b4-110024460700_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!IvJ6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58747f4c-81c8-4aff-b3b4-110024460700_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!IvJ6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58747f4c-81c8-4aff-b3b4-110024460700_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IvJ6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58747f4c-81c8-4aff-b3b4-110024460700_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58747f4c-81c8-4aff-b3b4-110024460700_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;:3051560,&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://radicalinsider.substack.com/i/191169135?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58747f4c-81c8-4aff-b3b4-110024460700_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_!IvJ6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58747f4c-81c8-4aff-b3b4-110024460700_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!IvJ6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58747f4c-81c8-4aff-b3b4-110024460700_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!IvJ6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58747f4c-81c8-4aff-b3b4-110024460700_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!IvJ6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58747f4c-81c8-4aff-b3b4-110024460700_1536x1024.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><figcaption class="image-caption">No. That&#8217;s not what my app looks like but I&#8217;m just trying to illustrate a point. </figcaption></figure></div><p>While we&#8217;re talking about invisible bugs: here&#8217;s a lesson that cost me an entire evening and has nothing to do with code quality.</p><p>If you&#8217;re running a containerized development environment and a production environment &#8212; do NOT use the same browser for both. And definitely don&#8217;t use the same email addresses.</p><p>I was testing on <code>localhost:5173</code> (local dev) and <code>api.benchboard.org</code> (production). Same browser. Same test email. Both environments issue JWT tokens. And JWT tokens live in the browser.</p><p>So what happens? I visit production, get a valid production token. Switch to localhost, the token is still there. The local frontend sees a &#8220;valid&#8221; token and lets me in &#8212; but the token is for the wrong environment. Everything looks logged in. Some API calls work because the token hasn&#8217;t expired yet. Others silently fail with 404s instead of 401s because the production endpoints have changed.</p><p>I spent an evening debugging what looked like a broken API. It wasn&#8217;t broken. I was authenticated against the wrong server with a stale token from a different environment.</p><p>The fix is stupidly simple: use Chrome for dev, Firefox for production. Or use separate browser profiles. The AI will never tell you this because it&#8217;s not a code problem &#8212; it&#8217;s an operational problem. It&#8217;s the kind of thing you only learn by doing it wrong at 11 PM on a Tuesday.</p><div><hr></div><h2>When You Know Exactly Where to Point the AI</h2><p>I&#8217;ve been hard on the AI in this article, so let me show you the flip side &#8212; a moment where knowing my own codebase turned the AI into a surgical instrument.</p><p>I had a layout bug in the scoreboard. In demo mode, the inning scores, the R/H/E table, the ball-strike-out count, and the base diamond were all shifted to the right &#8212; overlapping, overflowing, completely broken. But when I logged in as a real user, everything rendered perfectly.</p><p>Now, if I didn&#8217;t know what I was looking at, I&#8217;d prompt the AI with something vague like &#8220;the scoreboard looks broken in demo mode, fix it.&#8221; And the AI would start guessing. It might rewrite the whole grid. It might restructure the component. It might introduce five new bugs while fixing one.</p><p>Instead, here&#8217;s what I did. I opened the browser&#8217;s inspect element. I found the CSS class on the broken section: <code>rounded-tl-md rounded-bl-md overflow-hidden</code>. I searched my codebase for that class to identify the exact file and line number. I noticed that the code was well-commented &#8212; each section marked with <code>=== Inning Score Table ===</code>, <code>=== R / H / E Table ===</code>, <code>=== B / S / O Count ===</code>. Then I gave the AI this prompt:</p><p><em>&#8220;Can you take a look into &#8216;DEMO MODE&#8217; under Scoreboard-v4-desktop.jsx? Just under that mode, the Inning Score Table, R / H / E Table, B / S / O Count and Base Diamond are all over the place. But when I&#8217;m logged on it displays fine. Start here @Scoreboard-v4-desktop.jsx#L101-106 and make your way to the rest of the code and tell me what you&#8217;ve found @Scoreboard-v4-desktop.jsx#L108-341&#8221;</em></p><p>Specific file. Specific line numbers. Specific symptom. Specific scope.</p><p>The AI came back in seconds with the exact root cause: a <code>&lt;Show&gt;</code> block was rendering an empty <code>&lt;div /&gt;</code> inside a CSS grid container. In demo mode, that empty div occupied a grid column slot, pushing every table one column to the right. In logged-in mode, the same block rendered an absolutely-positioned overlay that didn&#8217;t participate in grid flow &#8212; so the layout was fine.</p><p>The fix? One line:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;8bf330c4-02f4-4cc6-bfbe-0ded32abad21&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">BEFORE: &lt;div /&gt;
AFTER:  &lt;div class="absolute" /&gt;</code></pre></div><p><br>That&#8217;s it. One CSS class. The entire scoreboard snapped back into place.</p><p>The lesson isn&#8217;t that the AI is smart &#8212; it is, but so is a chainsaw. The lesson is that when you know your codebase well enough to point the AI at the right ten lines instead of the whole file, it becomes terrifyingly efficient. The people who are &#8220;vibe coding&#8221; &#8212; just throwing the whole problem at the AI and hoping &#8212; they&#8217;d never get this result. They&#8217;d get a rewrite of the entire component that introduces three new bugs.</p><p><strong>You have to know where to aim.</strong></p><div><hr></div><h2>Where AI Shined in This Story</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FVaG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c019d2f-4c91-4547-8984-3c8c9b7dcf6c_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FVaG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c019d2f-4c91-4547-8984-3c8c9b7dcf6c_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!FVaG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c019d2f-4c91-4547-8984-3c8c9b7dcf6c_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!FVaG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c019d2f-4c91-4547-8984-3c8c9b7dcf6c_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!FVaG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c019d2f-4c91-4547-8984-3c8c9b7dcf6c_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FVaG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c019d2f-4c91-4547-8984-3c8c9b7dcf6c_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0c019d2f-4c91-4547-8984-3c8c9b7dcf6c_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;: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="" srcset="https://substackcdn.com/image/fetch/$s_!FVaG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c019d2f-4c91-4547-8984-3c8c9b7dcf6c_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!FVaG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c019d2f-4c91-4547-8984-3c8c9b7dcf6c_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!FVaG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c019d2f-4c91-4547-8984-3c8c9b7dcf6c_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!FVaG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c019d2f-4c91-4547-8984-3c8c9b7dcf6c_1024x608.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><figcaption class="image-caption">Robot with arms folded - anime style</figcaption></figure></div><p>I want to be fair here, because the AI absolutely earned its keep in this refactor.</p><p>Once I defined the architecture &#8212; the pipeline, the stages, the write paths &#8212; the AI implemented it across the entire codebase in a fraction of the time it would have taken me alone. It traced every file that needed to change. It found every broadcast location that needed retargeting. It updated the backend controllers, the frontend store, the SignalR client, and the UI components in a coordinated sweep. Then it committed the changes with a detailed message that documented exactly what changed and why.</p><p>That&#8217;s what I mean by &#8220;accelerator.&#8221; The thinking was mine. The execution was a partnership. And the result was better than either of us could&#8217;ve produced alone &#8212; me because it would&#8217;ve taken me days to touch that many files manually, and the AI because it never would&#8217;ve designed the pipeline in the first place.</p><div><hr></div><p><em>Next up &#8212; Part 3: &#8220;The Feedback That Changed Everything.&#8221; I&#8217;ll tell you about the moment real coaches &#8212; people who found BenchBoard through search and started using it without being asked &#8212; told me the truth: &#8220;It&#8217;s a nice toy, but it needs data.&#8221; That feedback meant I had to build an entire live scorekeeping engine on top of what I already had. Essentially a second app. And the decision to do it terrified me.</em></p><p><em>If you're following this series and it's resonating &#8212; subscribe. Part 3 is the turning point where BenchBoard stopped being a side project and became something real.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://radicalinsider.org/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[How I Bit Off More Than I Could Chew Building This SaaS — Even With the "Best" LLMs]]></title><description><![CDATA[Part 1 of 5: The BenchBoard Build - The Honest Truth About Building with AI]]></description><link>https://radicalinsider.org/p/how-i-bit-off-more-than-i-could-chew</link><guid isPermaLink="false">https://radicalinsider.org/p/how-i-bit-off-more-than-i-could-chew</guid><dc:creator><![CDATA[Radical Insider]]></dc:creator><pubDate>Thu, 12 Mar 2026 14:03:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DrPG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce842951-5dab-4405-88a3-61df54d890fd_1024x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;m Rad. Founder of BenchBoard. Engineer. Dad. Youth Coach. I&#8217;ve been writing code for decades &#8212; starting on a Commodore 64 with programs I copied out of library magazines onto cassette tapes. This series is about what actually happens when a veteran developer tries to build a real product with AI tools. Not the highlights reel. The whole messy truth.</p><p>I&#8217;ve been building BenchBoard since November, but the truth is the planning started way back in July. What began as a clean, exciting idea &#8212; a team management and scorekeeping app for youth baseball and softball &#8212; slowly evolved into a full-blown beast. The kind of beast you don&#8217;t fully understand until you&#8217;re already riding it downhill with no brakes.</p><p>And here&#8217;s the part I didn&#8217;t expect: using LLMs made the journey both faster <em>and</em> way more chaotic.</p><p>If you&#8217;ve spent any time on tech Twitter or LinkedIn, you&#8217;ve seen the posts. &#8220;I built a SaaS in a weekend with AI!&#8221; &#8220;No-code to $10K MRR!&#8221; I&#8217;m not here to tell you those people are lying. Maybe they built something. But I&#8217;d bet my last Docker container it wasn&#8217;t handling live scorekeeping for a 12U softball game where a guest player shows up wearing the same jersey number as your starting shortstop.</p><p>This series is for the people who want the real version of the story.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DrPG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce842951-5dab-4405-88a3-61df54d890fd_1024x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DrPG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce842951-5dab-4405-88a3-61df54d890fd_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!DrPG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce842951-5dab-4405-88a3-61df54d890fd_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!DrPG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce842951-5dab-4405-88a3-61df54d890fd_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!DrPG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce842951-5dab-4405-88a3-61df54d890fd_1024x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DrPG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce842951-5dab-4405-88a3-61df54d890fd_1024x1536.png" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ce842951-5dab-4405-88a3-61df54d890fd_1024x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2471113,&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://radicalinsider.substack.com/i/190708477?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce842951-5dab-4405-88a3-61df54d890fd_1024x1536.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_!DrPG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce842951-5dab-4405-88a3-61df54d890fd_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!DrPG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce842951-5dab-4405-88a3-61df54d890fd_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!DrPG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce842951-5dab-4405-88a3-61df54d890fd_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!DrPG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce842951-5dab-4405-88a3-61df54d890fd_1024x1536.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>The First Big Lesson: Never Fully Trust the AI</h2><p>When I started, I leaned heavily on ChatGPT. At the time, it felt like a superpower &#8212; instant architecture suggestions, instant code, instant explanations. But LLMs evolve fast. What they tell you in July isn&#8217;t what they tell you in November. And what they tell you in November isn&#8217;t what they tell you in January.</p><p>I learned the hard way that if you let the AI dictate how your system should operate, you&#8217;ll end up rebuilding major chunks of your app over and over. That happened to me more than once. Not because the AI was &#8220;wrong,&#8221; but because it doesn&#8217;t understand the full context of your system, your constraints, your users, or your long-term vision.</p><p>It&#8217;s confident. It sounds right. But it doesn&#8217;t <em>know</em>.</p><p>Here&#8217;s a simple example. Early on, I asked the AI how to structure my data layer &#8212; how teams, players, games, and lineups should relate to each other. It gave me a clean answer. Three separate tables for managing players, batting order, and defensive positions. Looked great on paper. Months later, I realized those three tables needed to be one &#8212; a single <em>LineupSnapshot</em> that holds everything atomically. The AI&#8217;s original suggestion wasn&#8217;t wrong for a textbook exercise. But it was wrong for a real app where a coach is juggling lineup changes on their phone while kids are warming up on the field.</p><p>That refactor took days. Not because the code was hard to write &#8212; the AI helped me rewrite it fast. But because the <em>decision</em> to consolidate those tables required understanding how coaches actually use the app mid-game. No LLM has that context. <strong>I did, because I&#8217;ve been that coach.</strong></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Xz4z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03fae40-2c13-4f16-b31d-7c59af5faaef_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Xz4z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03fae40-2c13-4f16-b31d-7c59af5faaef_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!Xz4z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03fae40-2c13-4f16-b31d-7c59af5faaef_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!Xz4z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03fae40-2c13-4f16-b31d-7c59af5faaef_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!Xz4z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03fae40-2c13-4f16-b31d-7c59af5faaef_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Xz4z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03fae40-2c13-4f16-b31d-7c59af5faaef_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f03fae40-2c13-4f16-b31d-7c59af5faaef_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;: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="" srcset="https://substackcdn.com/image/fetch/$s_!Xz4z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03fae40-2c13-4f16-b31d-7c59af5faaef_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!Xz4z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03fae40-2c13-4f16-b31d-7c59af5faaef_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!Xz4z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03fae40-2c13-4f16-b31d-7c59af5faaef_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!Xz4z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff03fae40-2c13-4f16-b31d-7c59af5faaef_1024x608.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>The Scope Problem (AKA: The Monster I Created)</h2><p>Another mistake: I didn&#8217;t properly scope what I was building early on. Every time I solved one problem, I discovered three more. <strong>Every time the AI suggested a &#8220;better&#8221; approach, I&#8217;d rethink the architecture. Before long, the scope ballooned.</strong></p><p>Let me give you a taste of what I mean. Take something that sounds simple: <strong>&#8220;Let the coach enter the opposing team&#8217;s lineup before a game.&#8221;</strong></p><p><strong>Sounds like a form with some text fields, right?</strong></p><p>Here&#8217;s what it actually requires:</p><ul><li><p>How do you split a full name into first and last when someone types &#8220;Mary Jo Smith&#8221;?</p></li><li><p>How do you deduplicate players when jersey numbers aren&#8217;t reliable because guest players rotate in and out?</p></li><li><p>Should the coach pick from a dropdown of known opponent players, or type fresh names every game?</p></li><li><p>If a coach corrects a player&#8217;s name mid-game during scorekeeping, does that correction propagate back to the opponent&#8217;s player record for future games?</p></li><li><p>What happens when a player is removed from the lineup &#8212; do you delete the player record entirely, or just remove them from the game?</p></li><li><p>What about prefilling positions from the last time you played this team?</p></li><li><p>What about jersey number conflicts &#8212; two rows with #7?</p></li></ul><p>That&#8217;s <em>one feature</em>. And we haven&#8217;t begun put the damn code in yet! I had a vision of doing a cool drag-and-drop feature for the batting order that would be extremely helpful for coaches - but you also need to think of what happens when the lineup changes before a live game start. What happens when <em>David</em> or <em>Grace</em> shows up last minute to play? Every single one of those gaps was something I identified through domain knowledge &#8212; from standing on actual fields, watching actual coaches fumble with clipboards and group texts.</p><p><strong>The AI never surfaced a single one of those edge cases on its own. </strong></p><p><strong>Not one.</strong></p><p>Eventually I had to force myself to define a hard cutoff &#8212; a line where I&#8217;d stop adding, stop rethinking, and start shipping. That discipline didn&#8217;t come naturally. It came from pain.</p><h2>What the AI Actually Fixed (And It&#8217;s Not Nothing)</h2><p>I don&#8217;t want to sound like I&#8217;m bashing AI tools. I&#8217;m not. They fundamentally changed how I work, and I wouldn&#8217;t go back.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1461749280684-dccba630e2f6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0fHx3ZWJzaXRlfGVufDB8fHx8MTc3MzMxMzIxOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1461749280684-dccba630e2f6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0fHx3ZWJzaXRlfGVufDB8fHx8MTc3MzMxMzIxOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1461749280684-dccba630e2f6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0fHx3ZWJzaXRlfGVufDB8fHx8MTc3MzMxMzIxOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1461749280684-dccba630e2f6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0fHx3ZWJzaXRlfGVufDB8fHx8MTc3MzMxMzIxOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1461749280684-dccba630e2f6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0fHx3ZWJzaXRlfGVufDB8fHx8MTc3MzMxMzIxOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1461749280684-dccba630e2f6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0fHx3ZWJzaXRlfGVufDB8fHx8MTc3MzMxMzIxOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="3543" height="2365" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1461749280684-dccba630e2f6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0fHx3ZWJzaXRlfGVufDB8fHx8MTc3MzMxMzIxOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2365,&quot;width&quot;:3543,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;monitor showing Java programming&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&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="monitor showing Java programming" title="monitor showing Java programming" srcset="https://images.unsplash.com/photo-1461749280684-dccba630e2f6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0fHx3ZWJzaXRlfGVufDB8fHx8MTc3MzMxMzIxOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1461749280684-dccba630e2f6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0fHx3ZWJzaXRlfGVufDB8fHx8MTc3MzMxMzIxOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1461749280684-dccba630e2f6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0fHx3ZWJzaXRlfGVufDB8fHx8MTc3MzMxMzIxOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1461749280684-dccba630e2f6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0fHx3ZWJzaXRlfGVufDB8fHx8MTc3MzMxMzIxOXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 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>Here&#8217;s what shifted. For the first 35-plus years of my career, when I hit a wall &#8212; a syntax issue, a connectivity problem, a framework quirk &#8212; I&#8217;d open a browser and start searching. Stack Overflow. Blog posts. GitHub issues. Sometimes I&#8217;d spend 45 minutes just figuring out the right search query to describe what I was dealing with. Then I&#8217;d read through six different answers, figure out which one applied to my specific stack, adapt it, test it, and move on.</p><p>That entire workflow is mostly gone now. The LLM handles the tedious stuff &#8212; the boilerplate, the syntax lookups, the &#8220;how do I connect X to Y&#8221; problems &#8212; in seconds. It&#8217;s like having a junior developer who has read every documentation page ever written, sitting right next to you, never getting tired. But this developer doesn&#8217;t know everything - <strong>only what you tell it to do</strong>.</p><p>And here&#8217;s the thing nobody tells you about that time savings: it doesn&#8217;t make your project smaller. It makes you <em>faster at discovering how big your project actually is</em>.</p><p>All that time I used to spend on Stack Overflow? Now I spend it on architecture decisions, domain logic, and scope management. </p><p><strong>The boring problems got automated. </strong></p><p><strong>The hard problems got exposed. </strong></p><p><strong>And the hard problems are </strong><em><strong>harder</strong></em><strong> &#8212; because no AI can make those calls for you.</strong></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gSrY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7ddea9-05f3-4c32-8b3a-bc7a6d925063_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gSrY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7ddea9-05f3-4c32-8b3a-bc7a6d925063_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!gSrY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7ddea9-05f3-4c32-8b3a-bc7a6d925063_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!gSrY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7ddea9-05f3-4c32-8b3a-bc7a6d925063_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!gSrY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7ddea9-05f3-4c32-8b3a-bc7a6d925063_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gSrY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7ddea9-05f3-4c32-8b3a-bc7a6d925063_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa7ddea9-05f3-4c32-8b3a-bc7a6d925063_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;: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="" srcset="https://substackcdn.com/image/fetch/$s_!gSrY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7ddea9-05f3-4c32-8b3a-bc7a6d925063_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!gSrY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7ddea9-05f3-4c32-8b3a-bc7a6d925063_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!gSrY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7ddea9-05f3-4c32-8b3a-bc7a6d925063_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!gSrY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7ddea9-05f3-4c32-8b3a-bc7a6d925063_1024x608.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><figcaption class="image-caption">A teacher teaches coding concepts to a student</figcaption></figure></div><h2>Programming Knowledge Still Matters &#8212; A Lot</h2><p>We live in a world where people genuinely believe you can build a production app without deep programming knowledge. And honestly, you can build <em>something</em>. You can get a landing page, a database, some API routes, maybe even a working prototype. Take a few minutes on Starter Story and you&#8217;ll see developers and normies put up stuff quickly when comes to solving quick problems and honestly, I have no issues with those guys. More power to you.</p><p>But if you&#8217;re building something complex &#8212; something that will eventually serve hundreds or thousands of real users in real time &#8212; you still need to understand how systems behave. How databases work. How entities relate. How state flows across web and mobile. How APIs communicate. How your customers will actually use the thing.</p><p>LLMs can generate code, but they can&#8217;t architect your system for you. They can&#8217;t foresee the scaling issues. They can&#8217;t understand the nuance of your domain. They can&#8217;t tell you when something &#8220;feels wrong.&#8221;</p><p>That&#8217;s your job.</p><p>And if you don&#8217;t understand what the LLM is doing &#8212; or <em>why</em> &#8212; you&#8217;re flying blind. And that&#8217;s a big one many new programmers and so-called vibe coders romantically fall hard on. </p><p>I&#8217;ve seen the AI confidently generate code with race conditions baked in, where two different parts of the system were writing to the same database record simultaneously, and whichever request finished last would silently overwrite the other. If you don&#8217;t know what a race condition is, you&#8217;d never catch it. You&#8217;d just wonder why your app randomly loses data. Copying and pasting that log over and over to the LLMs chat box won&#8217;t bail you out.</p><p>That&#8217;s not a hypothetical. That happened to me. And I&#8217;ll tell you the full story in Part 2.</p><div><hr></div><h2>Where This Leaves Me Now</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CpHt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd306a813-bd6c-4148-b233-0e3203391208_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CpHt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd306a813-bd6c-4148-b233-0e3203391208_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!CpHt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd306a813-bd6c-4148-b233-0e3203391208_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!CpHt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd306a813-bd6c-4148-b233-0e3203391208_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!CpHt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd306a813-bd6c-4148-b233-0e3203391208_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CpHt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd306a813-bd6c-4148-b233-0e3203391208_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d306a813-bd6c-4148-b233-0e3203391208_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;: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="" srcset="https://substackcdn.com/image/fetch/$s_!CpHt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd306a813-bd6c-4148-b233-0e3203391208_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!CpHt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd306a813-bd6c-4148-b233-0e3203391208_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!CpHt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd306a813-bd6c-4148-b233-0e3203391208_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!CpHt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd306a813-bd6c-4148-b233-0e3203391208_1024x608.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><figcaption class="image-caption">Looking at white board trying to make a decision</figcaption></figure></div><p>BenchBoard has grown into something far bigger than I expected. It&#8217;s been frustrating, hilarious, exhausting, and incredibly rewarding. I&#8217;ve rebuilt parts of it multiple times. I&#8217;ve learned more in the last several months than I expected to learn in a year.</p><p>But the biggest takeaway?</p><p><strong>AI is an accelerator, not a replacement.</strong> It can help you move faster, but only if you know where you&#8217;re going.</p><p>And if you don&#8217;t &#8212; it&#8217;ll happily lead you into a ditch with a smile.</p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XNPT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1fbd553-2b49-4841-8af0-a77e20e5197a_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XNPT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1fbd553-2b49-4841-8af0-a77e20e5197a_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!XNPT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1fbd553-2b49-4841-8af0-a77e20e5197a_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!XNPT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1fbd553-2b49-4841-8af0-a77e20e5197a_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!XNPT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1fbd553-2b49-4841-8af0-a77e20e5197a_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XNPT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1fbd553-2b49-4841-8af0-a77e20e5197a_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e1fbd553-2b49-4841-8af0-a77e20e5197a_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;: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="" srcset="https://substackcdn.com/image/fetch/$s_!XNPT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1fbd553-2b49-4841-8af0-a77e20e5197a_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!XNPT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1fbd553-2b49-4841-8af0-a77e20e5197a_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!XNPT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1fbd553-2b49-4841-8af0-a77e20e5197a_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!XNPT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1fbd553-2b49-4841-8af0-a77e20e5197a_1024x608.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><figcaption class="image-caption"></figcaption></figure></div><p>Next up &#8212; Part 2: &#8220;The Architecture the AI Couldn&#8217;t See.&#8221; I&#8217;ll walk you through the night the AI built a race condition into my live scorekeeping system - full code and everything. It confidently proposed a band-aid fix and I had to stop everything and redesigned the entire data pipeline myself. </p><p><strong>It&#8217;s the story that made me realize: the AI is a great passenger, but you&#8217;d better not let it drive.</strong></p><div><hr></div><p><strong>If this resonated with you &#8212; whether you&#8217;re a fellow builder, a developer who&#8217;s been in the game for decades, or someone just curious about what building real software actually looks like behind the curtain in today&#8217;s AI-driven world &#8212; subscribe. This is a five-part series, and it only gets more real from here.</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://radicalinsider.org/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[How I Spent an Hour Fighting .gitignore (and My Sanity): The Hilarious Truth About Ignoring Folders in Git]]></title><description><![CDATA[There are days when software engineering feels like building the future. And then there are days when you spend an hour arguing with Git about whether a folder exists.]]></description><link>https://radicalinsider.org/p/how-i-spent-an-hour-fighting-gitignore</link><guid isPermaLink="false">https://radicalinsider.org/p/how-i-spent-an-hour-fighting-gitignore</guid><dc:creator><![CDATA[Radical Insider]]></dc:creator><pubDate>Sun, 08 Feb 2026 21:01:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9VH9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d4d5591-89da-46e8-ade8-b40ace4edff1_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This is the story of the latter &#8212; a tale of confusion, betrayal, enlightenment, and one extremely stubborn directory called <code>htmltemplates</code>.</p><h4>Act I: I Was Just Trying to Commit Code Like a Normal Human</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9VH9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d4d5591-89da-46e8-ade8-b40ace4edff1_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9VH9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d4d5591-89da-46e8-ade8-b40ace4edff1_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!9VH9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d4d5591-89da-46e8-ade8-b40ace4edff1_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!9VH9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d4d5591-89da-46e8-ade8-b40ace4edff1_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!9VH9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d4d5591-89da-46e8-ade8-b40ace4edff1_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9VH9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d4d5591-89da-46e8-ade8-b40ace4edff1_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d4d5591-89da-46e8-ade8-b40ace4edff1_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1711656,&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://radicalinsider.substack.com/i/187315754?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d4d5591-89da-46e8-ade8-b40ace4edff1_1024x1024.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_!9VH9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d4d5591-89da-46e8-ade8-b40ace4edff1_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!9VH9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d4d5591-89da-46e8-ade8-b40ace4edff1_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!9VH9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d4d5591-89da-46e8-ade8-b40ace4edff1_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!9VH9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d4d5591-89da-46e8-ade8-b40ace4edff1_1024x1024.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>This whole annoyance began while I was happily in the middle of committing a big batch of real, meaningful code changes.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://radicalinsider.org/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I was in the zone.<br>I was productive.<br>I was proud of myself.</p><p>And then - like a raccoon knocking over a trash can - I noticed something in <code>git status</code> that absolutely derailed my brain:</p><pre><code>Changes to be committed:
    new file: htmltemplates/Examine.html
    new file: htmltemplates/Sample.html
    new file: htmltemplates/Sample2.html</code></pre><p>A whole folder of sample HTML files.<br>Ugly, messy, irrelevant sample files.<br>I didn&#8217;t want them in my repo.<br>I didn&#8217;t want them in my commit.<br>I didn&#8217;t even want to <em>see</em> them.</p><p>So I did the obvious thing:</p><pre><code>git restore --staged htmltemplates/</code></pre><p>Boom. Unstaged.</p><p>Except&#8230; now they were showing up in red.<br>Untracked. Loud. Annoying.<br>Like a toddler in a grocery store.</p><p>And I couldn&#8217;t ignore it.<br>My brain refused to move on.<br>I <em>had</em> to fix it before committing anything else.</p><p>This is how the spiral began.</p><h3>Act II: The Descent Into Madness</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HN-v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf73faff-68c3-4353-9e89-858b59448ce2_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HN-v!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf73faff-68c3-4353-9e89-858b59448ce2_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!HN-v!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf73faff-68c3-4353-9e89-858b59448ce2_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!HN-v!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf73faff-68c3-4353-9e89-858b59448ce2_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!HN-v!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf73faff-68c3-4353-9e89-858b59448ce2_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HN-v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf73faff-68c3-4353-9e89-858b59448ce2_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cf73faff-68c3-4353-9e89-858b59448ce2_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1722674,&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://radicalinsider.substack.com/i/187315754?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf73faff-68c3-4353-9e89-858b59448ce2_1024x1024.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_!HN-v!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf73faff-68c3-4353-9e89-858b59448ce2_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!HN-v!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf73faff-68c3-4353-9e89-858b59448ce2_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!HN-v!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf73faff-68c3-4353-9e89-858b59448ce2_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!HN-v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf73faff-68c3-4353-9e89-858b59448ce2_1024x1024.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>I added the folder to <code>.gitignore</code>:</p><p>Code</p><pre><code><code>htmltemplates/
</code></code></pre><p>Git responded:</p><pre><code><code>?? htmltemplates/
</code></code></pre><p>Just the folder.<br>Not the files.<br>Not the contents.<br>Just the folder itself, haunting me like a Victorian ghost.</p><p>So I tried the nuclear option:</p><pre><code><code>git rm -r --cached htmltemplates/
</code></code></pre><p>Git said:</p><pre><code><code>fatal: pathspec 'htmltemplates/' did not match any files
</code></code></pre><p>Excuse me?</p><p>I can SEE the files.<br>They are RIGHT THERE.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!w1V1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b952879-af3b-43c5-b810-ad4e2df2c48e_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w1V1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b952879-af3b-43c5-b810-ad4e2df2c48e_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!w1V1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b952879-af3b-43c5-b810-ad4e2df2c48e_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!w1V1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b952879-af3b-43c5-b810-ad4e2df2c48e_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!w1V1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b952879-af3b-43c5-b810-ad4e2df2c48e_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w1V1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b952879-af3b-43c5-b810-ad4e2df2c48e_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4b952879-af3b-43c5-b810-ad4e2df2c48e_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1748056,&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://radicalinsider.substack.com/i/187315754?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b952879-af3b-43c5-b810-ad4e2df2c48e_1024x1024.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_!w1V1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b952879-af3b-43c5-b810-ad4e2df2c48e_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!w1V1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b952879-af3b-43c5-b810-ad4e2df2c48e_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!w1V1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b952879-af3b-43c5-b810-ad4e2df2c48e_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!w1V1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b952879-af3b-43c5-b810-ad4e2df2c48e_1024x1024.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><br>I even sent a screenshot to my AI assistant like I was reporting a crime.</p><p>I added the folder to <code>.gitignore</code>:</p><p>Code</p><pre><code><code>htmltemplates/
</code></code></pre><p>Git responded:</p><p>Code</p><pre><code><code>?? htmltemplates/
</code></code></pre><p>Just the folder.<br>Not the files.<br>Not the contents.<br>Just the folder itself, haunting me like a Victorian ghost.</p><p>So I tried the nuclear option:</p><p>Code</p><pre><code><code>git rm -r --cached htmltemplates/
</code></code></pre><p>Git said:</p><p>Code</p><pre><code><code>fatal: pathspec 'htmltemplates/' did not match any files
</code></code></pre><p>Excuse me?</p><p>I can SEE the files.<br>They are RIGHT THERE.<br>I even sent a screenshot to my AI assistant like I was reporting a crime.</p><h3>Act III: The AI Therapist Enters</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UnTD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5a9290a-9b16-461e-8def-33fc02560ad3_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UnTD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5a9290a-9b16-461e-8def-33fc02560ad3_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!UnTD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5a9290a-9b16-461e-8def-33fc02560ad3_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!UnTD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5a9290a-9b16-461e-8def-33fc02560ad3_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!UnTD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5a9290a-9b16-461e-8def-33fc02560ad3_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UnTD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5a9290a-9b16-461e-8def-33fc02560ad3_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c5a9290a-9b16-461e-8def-33fc02560ad3_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1727004,&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://radicalinsider.substack.com/i/187315754?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5a9290a-9b16-461e-8def-33fc02560ad3_1024x1024.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_!UnTD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5a9290a-9b16-461e-8def-33fc02560ad3_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!UnTD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5a9290a-9b16-461e-8def-33fc02560ad3_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!UnTD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5a9290a-9b16-461e-8def-33fc02560ad3_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!UnTD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5a9290a-9b16-461e-8def-33fc02560ad3_1024x1024.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><p>At this point, I&#8217;m in chat with Copilot. <br><em>Yes, CoPilot - because it&#8217;s just right there on my Windows desktop ok?</em> <br><br>Anyway, I&#8217;m like:</p><blockquote><p>&#8220;DUDE. WHAT IS THE DEAL.&#8221;</p></blockquote><p>And Copilot, with the calm energy of a monk who has seen centuries of human suffering, says:</p><blockquote><p>&#8220;Git ignores files, not folders.&#8221;</p></blockquote><p>I blinked.</p><p>She continued:</p><blockquote><p>&#8220;A folder only disappears when <em>every file inside it</em> is ignored.&#8221;</p></blockquote><p>I blinked harder.</p><p>Then came the moment &#8212; the one that will live in my memory forever.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8Il7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863c0010-f0c1-4a06-bac4-0691a9657752_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8Il7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863c0010-f0c1-4a06-bac4-0691a9657752_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!8Il7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863c0010-f0c1-4a06-bac4-0691a9657752_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!8Il7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863c0010-f0c1-4a06-bac4-0691a9657752_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!8Il7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863c0010-f0c1-4a06-bac4-0691a9657752_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8Il7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863c0010-f0c1-4a06-bac4-0691a9657752_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/863c0010-f0c1-4a06-bac4-0691a9657752_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1689418,&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://radicalinsider.substack.com/i/187315754?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863c0010-f0c1-4a06-bac4-0691a9657752_1024x1024.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_!8Il7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863c0010-f0c1-4a06-bac4-0691a9657752_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!8Il7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863c0010-f0c1-4a06-bac4-0691a9657752_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!8Il7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863c0010-f0c1-4a06-bac4-0691a9657752_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!8Il7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F863c0010-f0c1-4a06-bac4-0691a9657752_1024x1024.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>I typed:</p><blockquote><p>&#8220;OOOOH. ARE YOU SAYING THAT I need to do <code>htmltemplates/*</code>&#8221;</p></blockquote><p>And Copilot basically nodded like a proud parent watching their kid finally ride a bike. LLMs are weird but I guess it&#8217;s good it was teaching me rather than giving me a straight answer.</p><h3>Act IV: The Enlightenment</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EH7P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f10552-0ffe-43a0-a0f6-6fd3fa43dedf_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EH7P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f10552-0ffe-43a0-a0f6-6fd3fa43dedf_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!EH7P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f10552-0ffe-43a0-a0f6-6fd3fa43dedf_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!EH7P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f10552-0ffe-43a0-a0f6-6fd3fa43dedf_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!EH7P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f10552-0ffe-43a0-a0f6-6fd3fa43dedf_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EH7P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f10552-0ffe-43a0-a0f6-6fd3fa43dedf_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/12f10552-0ffe-43a0-a0f6-6fd3fa43dedf_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1620792,&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://radicalinsider.substack.com/i/187315754?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f10552-0ffe-43a0-a0f6-6fd3fa43dedf_1024x1024.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_!EH7P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f10552-0ffe-43a0-a0f6-6fd3fa43dedf_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!EH7P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f10552-0ffe-43a0-a0f6-6fd3fa43dedf_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!EH7P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f10552-0ffe-43a0-a0f6-6fd3fa43dedf_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!EH7P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f10552-0ffe-43a0-a0f6-6fd3fa43dedf_1024x1024.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>I changed the rule to:</p><pre><code><code>htmltemplates/*
</code></code></pre><p>Saved.<br>Committed.<br>Ran <code>git status</code>.</p><p>And like a magician&#8217;s final flourish&#8230;<br>the folder vanished.</p><p>I swear I heard a choir.</p><h3>Act V: The Moral of the Story</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Jh-G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2acaabd1-2b80-49fa-b38c-f7961c41d81c_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jh-G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2acaabd1-2b80-49fa-b38c-f7961c41d81c_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Jh-G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2acaabd1-2b80-49fa-b38c-f7961c41d81c_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Jh-G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2acaabd1-2b80-49fa-b38c-f7961c41d81c_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Jh-G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2acaabd1-2b80-49fa-b38c-f7961c41d81c_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jh-G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2acaabd1-2b80-49fa-b38c-f7961c41d81c_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2acaabd1-2b80-49fa-b38c-f7961c41d81c_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1805013,&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://radicalinsider.substack.com/i/187315754?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2acaabd1-2b80-49fa-b38c-f7961c41d81c_1024x1024.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_!Jh-G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2acaabd1-2b80-49fa-b38c-f7961c41d81c_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Jh-G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2acaabd1-2b80-49fa-b38c-f7961c41d81c_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Jh-G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2acaabd1-2b80-49fa-b38c-f7961c41d81c_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Jh-G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2acaabd1-2b80-49fa-b38c-f7961c41d81c_1024x1024.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><figcaption class="image-caption">The feeling when you&#8217;ve finally figured it out</figcaption></figure></div><p>If you want Git to ignore a folder completely &#8212; like it never existed, like you&#8217;ve scrubbed it from the timeline &#8212; you need:</p><pre><code><code>htmltemplates/*</code></code></pre><p>Not:</p><pre><code><code>htmltemplates/</code></code></pre><p>Not:</p><pre><code><code>/htmltemplates/</code></code></pre><p>Not:</p><pre><code><code>../frontend/htmltemplates/</code></code></pre><p>Just:</p><pre><code><code>htmltemplates/*</code></code></pre><p>Because Git is a file&#8209;based ignore engine, not a directory&#8209;based one.<br>And because Git enjoys watching us suffer.</p><h3><strong>Act VI: Five Things I Wish I Knew About </strong><code>.gitignore</code><strong> Before Losing an Hour of My Life</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ETkU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5d166f-faae-4517-bcb1-0df61008584d_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ETkU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5d166f-faae-4517-bcb1-0df61008584d_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!ETkU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5d166f-faae-4517-bcb1-0df61008584d_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!ETkU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5d166f-faae-4517-bcb1-0df61008584d_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!ETkU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5d166f-faae-4517-bcb1-0df61008584d_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ETkU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5d166f-faae-4517-bcb1-0df61008584d_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ba5d166f-faae-4517-bcb1-0df61008584d_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1714976,&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://radicalinsider.substack.com/i/187315754?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5d166f-faae-4517-bcb1-0df61008584d_1024x1024.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_!ETkU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5d166f-faae-4517-bcb1-0df61008584d_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!ETkU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5d166f-faae-4517-bcb1-0df61008584d_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!ETkU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5d166f-faae-4517-bcb1-0df61008584d_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!ETkU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5d166f-faae-4517-bcb1-0df61008584d_1024x1024.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><figcaption class="image-caption">Yes, I know the code doesn&#8217;t make sense. Just read my five points below. You can thank ChatGPT for this.</figcaption></figure></div><p>This is the part where I pass on the ancient wisdom I earned through pain, confusion, and yelling &#8220;WHAT IS THE DEAL&#8221; at my terminal.</p><h4><strong>1. Git ignores </strong><em><strong>files</strong></em><strong>, not folders</strong></h4><p>This is the rule that started my villain origin story.<br>You can write <code>folder/</code> all day long &#8212; Git will still show the folder itself unless every file inside it is ignored. Git is petty like that.</p><h4><strong>2. </strong><code>folder/</code><strong> and </strong><code>folder/*</code><strong> are NOT the same thing</strong></h4><p>This one feels like a prank.<br><code>folder/</code> means &#8220;ignore files under here&#8230; probably&#8230; maybe&#8230; depends on the moon phase.&#8221;<br><code>folder/*</code> means &#8220;ignore EVERYTHING inside this folder,&#8221; which is what you actually want 99% of the time.</p><h4><strong>3. Git will happily show you an empty folder just to mess with you</strong></h4><p>Even if the folder contains only ignored files, Git may still show the folder name as untracked.<br>It&#8217;s like Git saying, &#8220;Hey, I know you told me to ignore this, but I just wanted you to know it exists.&#8221;</p><h4><strong>4. </strong><code>.gitignore</code><strong> doesn&#8217;t apply until you commit it</strong></h4><p>This one got me too.<br>You can modify <code>.gitignore</code> all you want &#8212; Git will keep using the old version until you commit the new one.<br>It&#8217;s like Git is saying, &#8220;I&#8217;ll believe it when it&#8217;s in the history.&#8221;</p><h4><strong>5. If </strong><code>git rm -r --cached</code><strong> says &#8216;did not match any files,&#8217; it&#8217;s not lying</strong></h4><p>This error means Git is not tracking ANYTHING in that folder.<br>Not one file.<br>Not one byte.<br>Not even a whisper of a file.<br>Which is why it refuses to &#8220;untrack&#8221; something it never tracked in the first place.</p><h3>Epilogue: What I Learned</h3><ul><li><p>Git will happily ignore files.</p></li><li><p>Git will NOT ignore a folder unless all files inside it are ignored.</p></li><li><p>Git will show you an empty folder like it&#8217;s tattling on you.</p></li><li><p><code>.gitignore</code> rules are deceptively literal.</p></li><li><p>Talking to an AI about Git is surprisingly therapeutic.</p></li><li><p>And most importantly:<br><strong>Never try to &#8220;quickly fix something&#8221; in the middle of a big commit.</strong><br><strong>That&#8217;s how the chaos begins.</strong></p></li></ul><p>If you ever see <code>?? htmltemplates/</code> again, run.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://radicalinsider.org/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Why AI Still Fails at Logos and Why Designers Matter More Than Ever]]></title><description><![CDATA[The myth of AI-generated branding&#8212;and why real creativity still requires real people.]]></description><link>https://radicalinsider.org/p/why-ai-still-fails-at-logos-and-why</link><guid isPermaLink="false">https://radicalinsider.org/p/why-ai-still-fails-at-logos-and-why</guid><dc:creator><![CDATA[Radical Insider]]></dc:creator><pubDate>Fri, 30 May 2025 17:21:03 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/22f084a8-e3d3-47c2-85f1-8e3dec89643d_1248x702.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Y_GO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d4d0d3-c61d-4f61-9ff2-8662cdb7c3fb.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Y_GO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d4d0d3-c61d-4f61-9ff2-8662cdb7c3fb.png 424w, https://substackcdn.com/image/fetch/$s_!Y_GO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d4d0d3-c61d-4f61-9ff2-8662cdb7c3fb.png 848w, https://substackcdn.com/image/fetch/$s_!Y_GO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d4d0d3-c61d-4f61-9ff2-8662cdb7c3fb.png 1272w, https://substackcdn.com/image/fetch/$s_!Y_GO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d4d0d3-c61d-4f61-9ff2-8662cdb7c3fb.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Y_GO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d4d0d3-c61d-4f61-9ff2-8662cdb7c3fb.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/39d4d0d3-c61d-4f61-9ff2-8662cdb7c3fb.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:489,&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://radicalinsider.substack.com/i/164812536?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d4d0d3-c61d-4f61-9ff2-8662cdb7c3fb.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_!Y_GO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d4d0d3-c61d-4f61-9ff2-8662cdb7c3fb.png 424w, https://substackcdn.com/image/fetch/$s_!Y_GO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d4d0d3-c61d-4f61-9ff2-8662cdb7c3fb.png 848w, https://substackcdn.com/image/fetch/$s_!Y_GO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d4d0d3-c61d-4f61-9ff2-8662cdb7c3fb.png 1272w, https://substackcdn.com/image/fetch/$s_!Y_GO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39d4d0d3-c61d-4f61-9ff2-8662cdb7c3fb.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eTgT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18264ef2-5eda-494e-bfc6-0a1c334c29bf_1248x702.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eTgT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18264ef2-5eda-494e-bfc6-0a1c334c29bf_1248x702.webp 424w, https://substackcdn.com/image/fetch/$s_!eTgT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18264ef2-5eda-494e-bfc6-0a1c334c29bf_1248x702.webp 848w, https://substackcdn.com/image/fetch/$s_!eTgT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18264ef2-5eda-494e-bfc6-0a1c334c29bf_1248x702.webp 1272w, https://substackcdn.com/image/fetch/$s_!eTgT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18264ef2-5eda-494e-bfc6-0a1c334c29bf_1248x702.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eTgT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18264ef2-5eda-494e-bfc6-0a1c334c29bf_1248x702.webp" width="1248" height="702" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/18264ef2-5eda-494e-bfc6-0a1c334c29bf_1248x702.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:702,&quot;width&quot;:1248,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:127666,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://radicalinsider.substack.com/i/164812536?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18264ef2-5eda-494e-bfc6-0a1c334c29bf_1248x702.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eTgT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18264ef2-5eda-494e-bfc6-0a1c334c29bf_1248x702.webp 424w, https://substackcdn.com/image/fetch/$s_!eTgT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18264ef2-5eda-494e-bfc6-0a1c334c29bf_1248x702.webp 848w, https://substackcdn.com/image/fetch/$s_!eTgT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18264ef2-5eda-494e-bfc6-0a1c334c29bf_1248x702.webp 1272w, https://substackcdn.com/image/fetch/$s_!eTgT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18264ef2-5eda-494e-bfc6-0a1c334c29bf_1248x702.webp 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><figcaption class="image-caption">Not bad human. Not bad.</figcaption></figure></div><p>Let&#8217;s get this out of the way: AI is absolute garbage at making logos. Not mid. Not decent. <strong>Garbage.</strong> And before you come at me with some synthetic brand mark made in Midjourney or DALL&#183;E that looks kinda cool in a vacuum&#8212;hold up. That&#8217;s the design equivalent of nailing a three-pointer in practice with no defenders. Try doing it in Game 7 of the Finals. Different league.</p><div><hr></div><h3>Logos Are Emotional Landmines, Not Just Pixels</h3><p>A great logo is <strong>less design, more signal.</strong> It&#8217;s the emotional fingerprint of a company. And AI? It still thinks a logo is a fancy graphic with a keyword or two thrown in. It doesn&#8217;t grasp:</p><ul><li><p>Why a simple swoosh says "speed"</p></li><li><p>Why the Apple bite means &#8220;thinking different&#8221;</p></li><li><p>Or why some logos are <em>meant</em> to be boring&#8212;because the brand is the hero, not the design</p></li></ul><p>Logos are decisions. Thousands of them. Made under pressure, aligned with legacy, target audience, psychology, and vision. Most of this nuance? AI skips. Or worse&#8212;mimics badly.</p><h3>Why AI Can&#8217;t Touch Real Brand Strategy (Yet)</h3><p>Here&#8217;s what branding specialists get and where AI still fumbles - even with all that training data:</p><p><strong>What Branding Pros Get:</strong></p><ul><li><p><strong>Emotional subtext</strong> &#8211; Understanding how certain colors, shapes, or symbols evoke subtle emotional responses based on life experience and cultural memory. A heart shape might suggest love, but a designer knows when it needs to suggest compassion vs. romance.</p></li><li><p><strong>Cultural timing</strong> &#8211; Sensing the right moment to release a brand or campaign based on social trends, political climates, or generational cues. Designers keep tabs on the zeitgeist.</p></li><li><p><strong>Strategic restraint</strong> &#8211; Knowing what <em>not</em> to include. Resisting the temptation to fill space or over-design. Trusting minimalism when appropriate.</p></li><li><p><strong>Brand voice</strong> &#8211; Crafting visuals that align with how the brand "speaks"&#8212;whether formal, witty, confident, playful, rebellious, or aspirational.</p></li><li><p><strong>Story arcs</strong> &#8211; Designing with the long game in mind. How does the brand evolve? Where does it go next? Pros plan visual systems that adapt and grow over time.</p></li></ul><p><strong>What AI Misses:</strong></p><ul><li><p><strong>Literal visuals</strong> &#8211; AI tends to translate prompts too literally. Ask for a logo that suggests speed, and it might give you a cheetah clipart.</p></li><li><p><strong>Static datasets</strong> &#8211; AI trains on past data. It doesn&#8217;t know what just happened in culture this week&#8212;or what&#8217;s coming.</p></li><li><p><strong>Design bloat</strong> &#8211; Without judgment, AI adds more visual noise instead of editing down. It struggles with elegance.</p></li><li><p><strong>Keyword soup</strong> &#8211; It interprets brand voice through word lists, not tonality. It might mash "fun," "fast," and "friendly" into a chaotic blob.</p></li><li><p><strong>Style averages</strong> &#8211; AI often blends styles from millions of references, which leads to forgettable, generic outcomes rather than bold, defining statements.</p></li></ul><p>A brand strategist knows when <em>not</em> to add a shape. When to leave white space. When to choose a color because it taps into childhood nostalgia for your audience. AI? It just throws spaghetti.</p><p>There&#8217;s also <strong>design intent</strong>&#8212;the invisible blueprint behind every creative decision. AI doesn&#8217;t understand why one curve suggests elegance and another screams tech startup. It doesn&#8217;t know when a mark needs to whisper rather than shout.</p><h3>But Can&#8217;t We Just Train It Better?</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tB2D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c14eefe-7114-4eef-8308-ed1ab1dada67_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tB2D!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c14eefe-7114-4eef-8308-ed1ab1dada67_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!tB2D!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c14eefe-7114-4eef-8308-ed1ab1dada67_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!tB2D!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c14eefe-7114-4eef-8308-ed1ab1dada67_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!tB2D!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c14eefe-7114-4eef-8308-ed1ab1dada67_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tB2D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c14eefe-7114-4eef-8308-ed1ab1dada67_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6c14eefe-7114-4eef-8308-ed1ab1dada67_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2286893,&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://radicalinsider.substack.com/i/164812536?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c14eefe-7114-4eef-8308-ed1ab1dada67_1024x1024.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_!tB2D!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c14eefe-7114-4eef-8308-ed1ab1dada67_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!tB2D!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c14eefe-7114-4eef-8308-ed1ab1dada67_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!tB2D!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c14eefe-7114-4eef-8308-ed1ab1dada67_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!tB2D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c14eefe-7114-4eef-8308-ed1ab1dada67_1024x1024.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><figcaption class="image-caption">&#8220;Make a robot draw something next to a human who disapproves of the logo&#8221;</figcaption></figure></div><p>In theory? Sure. But here&#8217;s what that would take:</p><ul><li><p>Internal branding decks with rationale</p></li><li><p>Rejected design drafts <em>with explanations</em></p></li><li><p>Cultural context of each campaign</p></li><li><p>Customer emotional feedback over time</p></li><li><p>Iteration notes from real creative directors</p></li></ul><p>You&#8217;d need <strong>decades of human decision-making</strong>, not just pretty logos. AI needs to see what <em>didn&#8217;t</em> work, and why. And even then, you&#8217;re still missing something fundamental:</p><p><strong>Taste, timing, and intuition.</strong> These aren&#8217;t teachable in a traditional sense. AI can learn data. It can&#8217;t live through a rebrand disaster, a client meltdown, or a pivot that changed everything.</p><p>One of my close friends was a lead graphic designer&#8212;legit talented, leading a team that created incredible campaigns. His whole department was laid off when the company leaned into the media buzz that AI could replace entire design teams. At first, earlier this year, I thought maybe it was a forgone conclusion. After all, the tools were getting faster, flashier, and more accessible.</p><p>But now? After running real prompts through the latest tools myself, I&#8217;ve realized we&#8217;re further from human creativity than people think. The company that let him go? Victims of trend-chasing and media-driven excuses to normalize layoffs. They needed that team more than ever.</p><p>I&#8217;ll go deeper into that in another article. But the short of it: we need the <em>humans</em> behind design more than ever.</p><h3>Why AI Always Starts from Scratch (and Why That&#8217;s a Problem)</h3><p>You ever notice how image AIs don&#8217;t just tweak your logo? They <strong>start over</strong>, every time. That&#8217;s not creativity. That&#8217;s amnesia.</p><p>Here&#8217;s why:</p><ul><li><p>Most generative image models weren&#8217;t trained to remember context</p></li><li><p>They don&#8217;t understand &#8220;design intent&#8221; &#8212; they just generate based on prompts</p></li><li><p>They don&#8217;t know what&#8217;s sacred in a design (legacy colors, font shapes, whitespace)</p></li></ul><p>Real example: </p><div class="pullquote"><p>&#8220;Make me a logo based on this substack link: https://radicalinsider.substack.com/. It needs to be square. Draw from its bio, posts and themes.&#8221;</p></div><p>Result:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_wag!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2f4d94a-4c6d-446a-ae88-4b7056f58335_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_wag!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2f4d94a-4c6d-446a-ae88-4b7056f58335_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!_wag!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2f4d94a-4c6d-446a-ae88-4b7056f58335_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!_wag!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2f4d94a-4c6d-446a-ae88-4b7056f58335_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!_wag!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2f4d94a-4c6d-446a-ae88-4b7056f58335_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_wag!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2f4d94a-4c6d-446a-ae88-4b7056f58335_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2f4d94a-4c6d-446a-ae88-4b7056f58335_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1986796,&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://radicalinsider.substack.com/i/164812536?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2f4d94a-4c6d-446a-ae88-4b7056f58335_1024x1024.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_!_wag!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2f4d94a-4c6d-446a-ae88-4b7056f58335_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!_wag!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2f4d94a-4c6d-446a-ae88-4b7056f58335_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!_wag!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2f4d94a-4c6d-446a-ae88-4b7056f58335_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!_wag!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2f4d94a-4c6d-446a-ae88-4b7056f58335_1024x1024.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><pre><code>Can you make it a lot more simplified? Like level 1?</code></pre><p>AI likes levels. <em>Level 1</em> denotes the most simplified design while a <em>Level 10</em> is elaborate and more noisy. So it does this&#8230;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ER8Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c4babd1-0c78-494f-90fd-9a65d6d8783b_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ER8Z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c4babd1-0c78-494f-90fd-9a65d6d8783b_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!ER8Z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c4babd1-0c78-494f-90fd-9a65d6d8783b_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!ER8Z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c4babd1-0c78-494f-90fd-9a65d6d8783b_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!ER8Z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c4babd1-0c78-494f-90fd-9a65d6d8783b_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ER8Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c4babd1-0c78-494f-90fd-9a65d6d8783b_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9c4babd1-0c78-494f-90fd-9a65d6d8783b_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1109285,&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://radicalinsider.substack.com/i/164812536?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c4babd1-0c78-494f-90fd-9a65d6d8783b_1024x1024.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_!ER8Z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c4babd1-0c78-494f-90fd-9a65d6d8783b_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!ER8Z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c4babd1-0c78-494f-90fd-9a65d6d8783b_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!ER8Z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c4babd1-0c78-494f-90fd-9a65d6d8783b_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!ER8Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c4babd1-0c78-494f-90fd-9a65d6d8783b_1024x1024.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>I then ask it&#8230;</p><pre><code>Remove "Fake News" and other social network stuff on it. Go for a more silhouetted look that is more about looking to find the truth in stuff. Radical Insider is all about being grounded with facts and educating the public as a father, a software engineer and a coach. At least it's square. lol.</code></pre><p>It then hilariously responds with:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!58Fx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceeb4aab-fcff-48cc-9216-96b8cdf4c86b_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!58Fx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceeb4aab-fcff-48cc-9216-96b8cdf4c86b_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!58Fx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceeb4aab-fcff-48cc-9216-96b8cdf4c86b_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!58Fx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceeb4aab-fcff-48cc-9216-96b8cdf4c86b_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!58Fx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceeb4aab-fcff-48cc-9216-96b8cdf4c86b_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!58Fx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceeb4aab-fcff-48cc-9216-96b8cdf4c86b_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ceeb4aab-fcff-48cc-9216-96b8cdf4c86b_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1001391,&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://radicalinsider.substack.com/i/164812536?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceeb4aab-fcff-48cc-9216-96b8cdf4c86b_1024x1024.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_!58Fx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceeb4aab-fcff-48cc-9216-96b8cdf4c86b_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!58Fx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceeb4aab-fcff-48cc-9216-96b8cdf4c86b_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!58Fx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceeb4aab-fcff-48cc-9216-96b8cdf4c86b_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!58Fx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceeb4aab-fcff-48cc-9216-96b8cdf4c86b_1024x1024.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><pre><code><em>Eww. No silhouettes. Bad idea. Let's try something else. Stay simple but don't go in this direction. Imagine this icon/logo in other visual material. Keep going. Go color and again, no silhouettes.</em></code></pre><p>So what does it do?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5Df7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F208df2dd-1ca0-45e9-be8c-6075550f5cc2_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5Df7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F208df2dd-1ca0-45e9-be8c-6075550f5cc2_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!5Df7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F208df2dd-1ca0-45e9-be8c-6075550f5cc2_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!5Df7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F208df2dd-1ca0-45e9-be8c-6075550f5cc2_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!5Df7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F208df2dd-1ca0-45e9-be8c-6075550f5cc2_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5Df7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F208df2dd-1ca0-45e9-be8c-6075550f5cc2_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/208df2dd-1ca0-45e9-be8c-6075550f5cc2_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1022392,&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://radicalinsider.substack.com/i/164812536?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F208df2dd-1ca0-45e9-be8c-6075550f5cc2_1024x1024.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_!5Df7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F208df2dd-1ca0-45e9-be8c-6075550f5cc2_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!5Df7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F208df2dd-1ca0-45e9-be8c-6075550f5cc2_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!5Df7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F208df2dd-1ca0-45e9-be8c-6075550f5cc2_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!5Df7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F208df2dd-1ca0-45e9-be8c-6075550f5cc2_1024x1024.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><pre><code>This is not working</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!b3jA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ea1d12-8bb2-4d91-b229-b0826ae641d8_549x309.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!b3jA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ea1d12-8bb2-4d91-b229-b0826ae641d8_549x309.png 424w, https://substackcdn.com/image/fetch/$s_!b3jA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ea1d12-8bb2-4d91-b229-b0826ae641d8_549x309.png 848w, https://substackcdn.com/image/fetch/$s_!b3jA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ea1d12-8bb2-4d91-b229-b0826ae641d8_549x309.png 1272w, https://substackcdn.com/image/fetch/$s_!b3jA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ea1d12-8bb2-4d91-b229-b0826ae641d8_549x309.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!b3jA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ea1d12-8bb2-4d91-b229-b0826ae641d8_549x309.png" width="549" height="309" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23ea1d12-8bb2-4d91-b229-b0826ae641d8_549x309.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:309,&quot;width&quot;:549,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:19608,&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://radicalinsider.substack.com/i/164812536?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ea1d12-8bb2-4d91-b229-b0826ae641d8_549x309.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_!b3jA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ea1d12-8bb2-4d91-b229-b0826ae641d8_549x309.png 424w, https://substackcdn.com/image/fetch/$s_!b3jA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ea1d12-8bb2-4d91-b229-b0826ae641d8_549x309.png 848w, https://substackcdn.com/image/fetch/$s_!b3jA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ea1d12-8bb2-4d91-b229-b0826ae641d8_549x309.png 1272w, https://substackcdn.com/image/fetch/$s_!b3jA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23ea1d12-8bb2-4d91-b229-b0826ae641d8_549x309.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>A friend even suggested pulling an image from the internet and modifying it through AI. But that defeats the entire purpose of originality and ownership.</p><h3>So... Is AI Useless for Branding?</h3><p>Nope. It&#8217;s actually a beast <strong>if you use it right</strong>. Think of AI as your endlessly caffeinated intern. Here&#8217;s where it wins:</p><h4><strong>Moodboarding</strong></h4><p>Throw in keywords, brand personality traits, emotional tones&#8212;and AI can generate dozens of visual references in seconds. It helps you explore styles (gritty, playful, high-end, brutalist) before you commit to one. It lets your team <em>see</em> the vibe of a direction early.</p><p>But it&#8217;s inspiration, not instruction. You still need a human eye to curate what <em>aligns</em> with your brand&#8217;s story&#8212;and to know when something looks good but feels off.</p><h4><strong>Naming Help</strong></h4><p>AI is excellent at brute-forcing name ideas. It can generate hundreds of brand name combos across tone types (playful, serious, nostalgic, futuristic). It helps brainstorm options fast.</p><p>But again&#8212;it doesn&#8217;t know what&#8217;s <em>too close</em> to a competitor. Or what resonates in your niche. Or what sounds like a dating app when you&#8217;re building a fintech platform.</p><h4><strong>Concept Drafts</strong></h4><p>Rapid visual ideation. Want to see how your brand could look on packaging, signage, or mobile UI? AI can give you starter visuals. It&#8217;s a thumbnail sketch machine.</p><p>Just don&#8217;t mistake them for finished work. That&#8217;s where your human designer takes over, bringing balance, originality, and polish.</p><div><hr></div><h3>Final Whistle: Don&#8217;t Bench the Designer</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tJRt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47bc256d-c104-42c1-b6cd-604dd84e8399_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tJRt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47bc256d-c104-42c1-b6cd-604dd84e8399_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!tJRt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47bc256d-c104-42c1-b6cd-604dd84e8399_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!tJRt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47bc256d-c104-42c1-b6cd-604dd84e8399_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!tJRt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47bc256d-c104-42c1-b6cd-604dd84e8399_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tJRt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47bc256d-c104-42c1-b6cd-604dd84e8399_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47bc256d-c104-42c1-b6cd-604dd84e8399_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1265056,&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://radicalinsider.substack.com/i/164812536?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47bc256d-c104-42c1-b6cd-604dd84e8399_1024x1024.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_!tJRt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47bc256d-c104-42c1-b6cd-604dd84e8399_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!tJRt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47bc256d-c104-42c1-b6cd-604dd84e8399_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!tJRt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47bc256d-c104-42c1-b6cd-604dd84e8399_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!tJRt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47bc256d-c104-42c1-b6cd-604dd84e8399_1024x1024.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>Here&#8217;s the hard truth: <strong>you still need graphic designers and brand specialists. Maybe more than ever.</strong></p><p>What you see in the media&#8212;those &#8220;AI made this logo in 10 seconds!&#8221; headlines&#8212;don&#8217;t tell the full story. They&#8217;re novelty, not legacy. Behind every enduring brand is someone who knows how to weave meaning into pixels.</p><p>You still need:</p><ul><li><p>Your friend who actually studied typography</p></li><li><p>That Fiverr freelancer who knows color psychology</p></li><li><p>A creative director who understands business <em>and</em> story</p></li></ul><p>Branding is not just about standing out. It&#8217;s about <strong>belonging to something</strong>. And AI can&#8217;t feel that. It doesn&#8217;t know if your logo makes someone feel included, nostalgic, or inspired.</p><p>The takeaway? Use AI to brainstorm, to explore, to warm up the creative muscles. But when it comes time to <em>ship something that lasts</em>, bring in a human. Logos aren't just made&#8212;they're earned.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://substack.com/refer/radicalinsider?utm_source=substack&amp;utm_context=post&amp;utm_content=164812536&amp;utm_campaign=writer_referral_button&quot;,&quot;text&quot;:&quot;Start a Substack&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Start writing today. Use the button below to create a Substack of your own</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://substack.com/refer/radicalinsider?utm_source=substack&amp;utm_context=post&amp;utm_content=164812536&amp;utm_campaign=writer_referral_button&quot;,&quot;text&quot;:&quot;Start a Substack&quot;,&quot;hasDynamicSubstitutions&quot;:false}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://substack.com/refer/radicalinsider?utm_source=substack&amp;utm_context=post&amp;utm_content=164812536&amp;utm_campaign=writer_referral_button"><span>Start a Substack</span></a></p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://radicalinsider.org/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Why AI Won’t Replace Programmers — And Why That’s a Good Thing]]></title><description><![CDATA[AI might write code, but it doesn&#8217;t understand systems. And that&#8217;s where everything falls apart.]]></description><link>https://radicalinsider.org/p/why-ai-wont-replace-programmers-and</link><guid isPermaLink="false">https://radicalinsider.org/p/why-ai-wont-replace-programmers-and</guid><dc:creator><![CDATA[Radical Insider]]></dc:creator><pubDate>Wed, 21 May 2025 15:09:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cJjk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3217a2-576d-4853-b5f6-9b015c7de9ff_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Over the last year, artificial intelligence has taken the world by storm&#8212;especially in software development. Ask ChatGPT to build a to-do list app in React, and it will confidently spit out a working prototype in seconds. Need a backend API? It&#8217;s got you. Want to spin up a business idea using prompts? Done.</p><p>This has led many to wonder:</p><p><em>Will AI replace programmers?</em></p><p>Short answer: <strong>No.</strong></p><p>Long answer: <strong>Not only will AI never replace programmers, but trusting it without knowing how to code can lead you into a costly mess.</strong></p><p>Here&#8217;s why.</p><h3><strong>The Internet Is Lying to You (But Not on Purpose)</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cJjk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3217a2-576d-4853-b5f6-9b015c7de9ff_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cJjk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3217a2-576d-4853-b5f6-9b015c7de9ff_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!cJjk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3217a2-576d-4853-b5f6-9b015c7de9ff_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!cJjk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3217a2-576d-4853-b5f6-9b015c7de9ff_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!cJjk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3217a2-576d-4853-b5f6-9b015c7de9ff_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cJjk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3217a2-576d-4853-b5f6-9b015c7de9ff_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d3217a2-576d-4853-b5f6-9b015c7de9ff_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2252463,&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://radicalinsider.substack.com/i/164085924?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3217a2-576d-4853-b5f6-9b015c7de9ff_1024x1024.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_!cJjk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3217a2-576d-4853-b5f6-9b015c7de9ff_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!cJjk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3217a2-576d-4853-b5f6-9b015c7de9ff_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!cJjk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3217a2-576d-4853-b5f6-9b015c7de9ff_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!cJjk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3217a2-576d-4853-b5f6-9b015c7de9ff_1024x1024.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>We live in an age of instant gratification and social virality. It&#8217;s easy to be lured in by videos titled <em>&#8220;Built a SaaS startup with ChatGPT in one weekend&#8221;</em> or blog posts that brag about replacing developers entirely. These are exciting stories&#8212;but they&#8217;re often missing the bigger picture.</p><p>They don&#8217;t show you the aftermath:</p><ul><li><p>The security holes</p></li><li><p>The performance issues</p></li><li><p>The broken edge cases</p></li><li><p>The technical debt</p></li><li><p>The inability to maintain or evolve the code</p></li></ul><p>These success stories celebrate the MVP, but <strong>real software lives and dies in version 1.1 and beyond</strong>. And those who try to build production software with AI alone&#8212;without understanding how it works&#8212;usually find themselves rebuilding, refactoring, or bailing out entirely.</p><h3><strong>What&#8217;s Really Going On Under the Hood?</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ASCC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4009e7a8-7212-4f28-a524-ee994eeb1955_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ASCC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4009e7a8-7212-4f28-a524-ee994eeb1955_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!ASCC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4009e7a8-7212-4f28-a524-ee994eeb1955_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!ASCC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4009e7a8-7212-4f28-a524-ee994eeb1955_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!ASCC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4009e7a8-7212-4f28-a524-ee994eeb1955_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ASCC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4009e7a8-7212-4f28-a524-ee994eeb1955_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4009e7a8-7212-4f28-a524-ee994eeb1955_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2002274,&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://radicalinsider.substack.com/i/164085924?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4009e7a8-7212-4f28-a524-ee994eeb1955_1024x1024.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_!ASCC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4009e7a8-7212-4f28-a524-ee994eeb1955_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!ASCC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4009e7a8-7212-4f28-a524-ee994eeb1955_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!ASCC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4009e7a8-7212-4f28-a524-ee994eeb1955_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!ASCC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4009e7a8-7212-4f28-a524-ee994eeb1955_1024x1024.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>Let&#8217;s demystify AI a bit. Code-generating AIs like ChatGPT or GitHub Copilot don&#8217;t think or reason. They don&#8217;t design. They don&#8217;t plan.</p><p>They <strong>predict</strong>.</p><p>Specifically, they predict the most likely next token (or chunk of code) based on training data from the internet. That includes Stack Overflow, GitHub repos, documentation, and yes, a ton of outdated and even incorrect examples.</p><p>AI doesn&#8217;t &#8220;know&#8221; what it&#8217;s doing&#8212;it just knows what <em>looks right</em>. It doesn&#8217;t understand your application, your users, or your infrastructure.</p><p>That&#8217;s why you might get a perfectly syntactic answer that&#8217;s dangerously wrong&#8212;and unless you&#8217;ve learned programming, you won&#8217;t know until it&#8217;s too late.</p><h3><strong>Real-World Examples: Where AI Code Falls Short</strong></h3><p>Let&#8217;s walk through some <strong>real</strong> examples where AI-generated code can work in theory&#8212;but fail in the real world.</p><h4><strong>Example 1: Login Code That Opens the Door to Hackers</strong></h4><p>A non-technical founder uses AI to build a login system. ChatGPT outputs:</p><pre><code><em>$query = "SELECT * FROM users WHERE username = '$user' AND password = '$pass'";</em></code></pre><p>It works. They deploy it. Users can log in. Success?</p><p>Two weeks later, a security breach exposes user data. Why? <strong>SQL Injection.</strong></p><p>AI didn&#8217;t sanitize input. The founder didn&#8217;t know to ask for prepared statements. No one knew to test for common web exploits.</p><div><hr></div><p><strong>The story here:</strong> The AI generated code that looked fine. But without a background in secure programming, the founder deployed a ticking time bomb.</p><div><hr></div><h4><strong>Example 2: AI Suggests Code That Breaks at Scale</strong></h4><p>Need to handle image uploads? Ask AI for a Node.js route. It gives:</p><pre><code><em>fs.writeFileSync('/uploads/file.jpg', fileData);</em></code></pre><p>It works locally. But on launch day, with 10 users uploading simultaneously, the app crashes.</p><p>Why? fs.writeFileSync blocks the Node event loop. Under concurrent load, the server stalls.</p><div><hr></div><p><strong>The story here:</strong> The AI doesn&#8217;t know that Node.js is single-threaded and event-driven. A real dev does. They&#8217;d use streams, queues, or cloud storage.</p><div><hr></div><h4><strong>Example 3: Thousands of Queries from One Innocent Loop</strong></h4><p>A Django app lists blog posts and authors:</p><pre><code><em>for post in Post.objects.all():</em></code></pre><pre><code><em>print(post.author.name)</em></code></pre><p>Seems fine&#8212;until the app generates <strong>1,001 database queries for 1,000 posts</strong>. The server chokes.</p><p>Why? N+1 query problem. AI doesn&#8217;t optimize unless told. A real dev would use:</p><pre><code><em>Post.objects.select_related('author')</em></code></pre><div><hr></div><p><strong>The story here:</strong> AI gives you working code, not performant code. And you won&#8217;t catch this unless you&#8217;ve been burned by it before.</p><div><hr></div><h3><strong>Why Programmers Should Feel Safe</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5gbk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf8810-d482-4a73-9d3a-8b96556f9836_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5gbk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf8810-d482-4a73-9d3a-8b96556f9836_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!5gbk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf8810-d482-4a73-9d3a-8b96556f9836_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!5gbk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf8810-d482-4a73-9d3a-8b96556f9836_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!5gbk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf8810-d482-4a73-9d3a-8b96556f9836_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5gbk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf8810-d482-4a73-9d3a-8b96556f9836_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e5bf8810-d482-4a73-9d3a-8b96556f9836_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2242638,&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://radicalinsider.substack.com/i/164085924?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf8810-d482-4a73-9d3a-8b96556f9836_1024x1024.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_!5gbk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf8810-d482-4a73-9d3a-8b96556f9836_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!5gbk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf8810-d482-4a73-9d3a-8b96556f9836_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!5gbk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf8810-d482-4a73-9d3a-8b96556f9836_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!5gbk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5bf8810-d482-4a73-9d3a-8b96556f9836_1024x1024.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><p>Here&#8217;s the truth: <strong>AI doesn&#8217;t replace programming&#8212;it amplifies good programmers.</strong></p><p>It helps with:</p><ul><li><p>Boilerplate code</p></li><li><p>Rapid prototyping</p></li><li><p>Syntax corrections</p></li><li><p>Brainstorming edge cases</p></li></ul><p>But it can&#8217;t:</p><ul><li><p>Architect your system</p></li><li><p>Consider trade-offs</p></li><li><p>Debug obscure issues</p></li><li><p>Design intuitive UX</p></li><li><p>Write secure, scalable code</p></li></ul><p>A developer using AI is like Steph Curry using a better basketball&#8212;he&#8217;ll still dominate, but the court vision, footwork, and game IQ are all his.</p><p><strong>Even with all the computing power in the world and the freshest training data available, AI still doesn&#8217;t &#8220;understand&#8221; code the way a human does.</strong> It doesn&#8217;t live with the consequences of its decisions. It doesn&#8217;t debug at 3 a.m. It doesn&#8217;t refactor under pressure. It doesn&#8217;t design with the future in mind.</p><p>That&#8217;s why programmers are still&#8212;and will continue to be&#8212;indispensable.</p><h3><strong>Why It&#8217;s Dangerous to Build Without a Coding Background</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!__rg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc7718b4-4fe0-49d1-83bc-d6d3ed1279c1_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!__rg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc7718b4-4fe0-49d1-83bc-d6d3ed1279c1_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!__rg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc7718b4-4fe0-49d1-83bc-d6d3ed1279c1_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!__rg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc7718b4-4fe0-49d1-83bc-d6d3ed1279c1_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!__rg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc7718b4-4fe0-49d1-83bc-d6d3ed1279c1_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!__rg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc7718b4-4fe0-49d1-83bc-d6d3ed1279c1_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fc7718b4-4fe0-49d1-83bc-d6d3ed1279c1_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2044794,&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://radicalinsider.substack.com/i/164085924?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc7718b4-4fe0-49d1-83bc-d6d3ed1279c1_1024x1024.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_!__rg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc7718b4-4fe0-49d1-83bc-d6d3ed1279c1_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!__rg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc7718b4-4fe0-49d1-83bc-d6d3ed1279c1_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!__rg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc7718b4-4fe0-49d1-83bc-d6d3ed1279c1_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!__rg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc7718b4-4fe0-49d1-83bc-d6d3ed1279c1_1024x1024.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>Entrepreneurs and business owners often think: <em>&#8220;If AI can build this, why learn to code at all?&#8221;</em></p><p>Because:</p><ul><li><p>When the code breaks, you can&#8217;t fix it.</p></li><li><p>When the app needs a new feature, you can&#8217;t evolve it.</p></li><li><p>When security or performance issues arise, you don&#8217;t even know they&#8217;re there.</p></li></ul><p>What you get is a <strong>fragile prototype</strong> that no real team can maintain or scale.</p><p>Building software with AI but without programming knowledge is like trying to open a restaurant using only DoorDash recipes. It might look okay on the plate&#8212;but what happens when health inspectors show up or the oven breaks?</p><h3><strong>AI Has a Garbage Problem</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NSvO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad6bd0-1ee5-4027-b2ac-a613182d1238_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NSvO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad6bd0-1ee5-4027-b2ac-a613182d1238_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!NSvO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad6bd0-1ee5-4027-b2ac-a613182d1238_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!NSvO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad6bd0-1ee5-4027-b2ac-a613182d1238_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!NSvO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad6bd0-1ee5-4027-b2ac-a613182d1238_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NSvO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad6bd0-1ee5-4027-b2ac-a613182d1238_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5ad6bd0-1ee5-4027-b2ac-a613182d1238_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1976203,&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://radicalinsider.substack.com/i/164085924?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad6bd0-1ee5-4027-b2ac-a613182d1238_1024x1024.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_!NSvO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad6bd0-1ee5-4027-b2ac-a613182d1238_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!NSvO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad6bd0-1ee5-4027-b2ac-a613182d1238_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!NSvO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad6bd0-1ee5-4027-b2ac-a613182d1238_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!NSvO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad6bd0-1ee5-4027-b2ac-a613182d1238_1024x1024.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>AI is only as good as the data it&#8217;s trained on. And the public code it ingested includes:</p><ul><li><p>Deprecated practices</p></li><li><p>Insecure examples</p></li><li><p>Poorly written tutorials</p></li><li><p>Misleading forum answers</p></li></ul><p>Unless you know how to spot bad code, AI can confidently hand you something dangerous&#8212;and you&#8217;ll have no idea.</p><p>Would you trust a surgeon trained entirely on YouTube comments?</p><h3><strong>Why Programming Is One of the Safest Jobs in the AI Era</strong></h3><p>The jobs least likely to be replaced by AI involve:</p><ul><li><p>Judgment in unpredictable environments</p></li><li><p>Creative problem solving</p></li><li><p>Contextual decision-making</p></li><li><p>Long-term accountability</p></li></ul><p><strong>Software development checks all those boxes.</strong></p><p>AI isn&#8217;t eliminating programming jobs&#8212;it&#8217;s <strong>changing the shape of them</strong>. Developers who embrace AI as a tool will become more powerful. Those who understand systems will be in high demand. Those who just copy and paste code will struggle.</p><h3><strong>But What If the AI Was Perfect?</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WZPD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8200297b-a72d-437e-a2c9-42ccfa475182_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WZPD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8200297b-a72d-437e-a2c9-42ccfa475182_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!WZPD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8200297b-a72d-437e-a2c9-42ccfa475182_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!WZPD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8200297b-a72d-437e-a2c9-42ccfa475182_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!WZPD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8200297b-a72d-437e-a2c9-42ccfa475182_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WZPD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8200297b-a72d-437e-a2c9-42ccfa475182_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8200297b-a72d-437e-a2c9-42ccfa475182_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2349768,&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://radicalinsider.substack.com/i/164085924?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8200297b-a72d-437e-a2c9-42ccfa475182_1024x1024.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_!WZPD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8200297b-a72d-437e-a2c9-42ccfa475182_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!WZPD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8200297b-a72d-437e-a2c9-42ccfa475182_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!WZPD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8200297b-a72d-437e-a2c9-42ccfa475182_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!WZPD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8200297b-a72d-437e-a2c9-42ccfa475182_1024x1024.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>A common thought experiment:</p><p><em>&#8220;What if we had the most powerful AI ever made&#8212;with perfect training data, real-time context, and quantum computing behind it? Could it replace programmers entirely?&#8221;</em></p><p>It&#8217;s a fascinating idea&#8212;but even that scenario falls short.</p><p>Because programming isn&#8217;t just about typing instructions. It&#8217;s about:</p><ul><li><p>Modeling human problems</p></li><li><p>Making value judgments</p></li><li><p>Navigating uncertainty and trade-offs</p></li><li><p>Iterating with feedback, emotion, and context</p></li></ul><p>Even if the AI becomes flawless at writing and optimizing code, it still needs someone to <strong>interpret messy business needs, clarify vague user requirements, and make ethical or strategic choices.</strong></p><p>In other words: to act like a <strong>systems thinker.</strong></p><p><strong>That person may not be called a &#8220;programmer&#8221; in the future</strong>.</p><p>But the role they play will be more important than ever.</p><p><strong>AI can be the engine. But someone still needs to drive.</strong></p><p><strong>Final Thoughts: Learn the Game, Then Use the Tools</strong></p><p>If you&#8217;re a non-technical founder: AI won&#8217;t protect you from bugs, scalability issues, or bad design. If you want to build serious software, <strong>you need to learn the fundamentals.</strong></p><p>If you&#8217;re a programmer: Your job isn&#8217;t going anywhere. AI is the shooting machine in the gym&#8212;it&#8217;ll help you get your reps in faster. But the playmaking? That&#8217;s all you.</p><p>AI might help you code. But it&#8217;s not here to run your team.</p><p><strong>Software development is a sport of strategy, awareness, and execution and &#8220;programmers&#8221; are still the ones drawing the plays. Perhaps their names of their role will change (e.g. system designer, software architect, etc)</strong></p><p><strong>But the fact of the matter is someone human, particularly one who understands systems, still has to direct these powerful tools - and that won&#8217;t change, even in the quantum age.</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://radicalinsider.org/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Americans Are Tired of the Circus—And They’re Coming Together in Spite of It]]></title><description><![CDATA[For years, Americans have been told they are hopelessly divided&#8212;that political differences have turned neighbors into enemies and that the country is tearing itself apart.]]></description><link>https://radicalinsider.org/p/americans-are-tired-of-the-circusand</link><guid isPermaLink="false">https://radicalinsider.org/p/americans-are-tired-of-the-circusand</guid><dc:creator><![CDATA[Radical Insider]]></dc:creator><pubDate>Sat, 22 Mar 2025 13:00:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CdzX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc5bcbd4-7318-4048-84e5-8710973961f5_1024x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For years, Americans have been told they are hopelessly divided&#8212;that political differences have turned neighbors into enemies and that the country is tearing itself apart. But reality tells a different story.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CdzX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc5bcbd4-7318-4048-84e5-8710973961f5_1024x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CdzX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc5bcbd4-7318-4048-84e5-8710973961f5_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CdzX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc5bcbd4-7318-4048-84e5-8710973961f5_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CdzX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc5bcbd4-7318-4048-84e5-8710973961f5_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CdzX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc5bcbd4-7318-4048-84e5-8710973961f5_1024x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CdzX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc5bcbd4-7318-4048-84e5-8710973961f5_1024x1024.jpeg" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bc5bcbd4-7318-4048-84e5-8710973961f5_1024x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:0,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CdzX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc5bcbd4-7318-4048-84e5-8710973961f5_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CdzX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc5bcbd4-7318-4048-84e5-8710973961f5_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CdzX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc5bcbd4-7318-4048-84e5-8710973961f5_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CdzX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc5bcbd4-7318-4048-84e5-8710973961f5_1024x1024.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>While media narratives focus on endless political bickering, something else is happening on the ground. Large, passionate crowds are forming at rallies across the country&#8212;not for the usual polished politicians, but for a movement that speaks to the struggles people actually face. These rallies are not built on the tired partisan narratives pushed by the media. Instead, they are filled with people from all backgrounds who agree on the most basic, yet ignored, truth: the system is failing them.</p><p></p><p><strong>The State of the Union&#8212;Or Lack of One</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_!g1Xr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9281dac6-7ad8-426b-8f24-23c27c15918e_1024x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!g1Xr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9281dac6-7ad8-426b-8f24-23c27c15918e_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!g1Xr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9281dac6-7ad8-426b-8f24-23c27c15918e_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!g1Xr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9281dac6-7ad8-426b-8f24-23c27c15918e_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!g1Xr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9281dac6-7ad8-426b-8f24-23c27c15918e_1024x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!g1Xr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9281dac6-7ad8-426b-8f24-23c27c15918e_1024x1024.jpeg" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9281dac6-7ad8-426b-8f24-23c27c15918e_1024x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:0,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!g1Xr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9281dac6-7ad8-426b-8f24-23c27c15918e_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!g1Xr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9281dac6-7ad8-426b-8f24-23c27c15918e_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!g1Xr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9281dac6-7ad8-426b-8f24-23c27c15918e_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!g1Xr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9281dac6-7ad8-426b-8f24-23c27c15918e_1024x1024.jpeg 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>Americans are tuning out the political circus in record numbers. President Trump&#8217;s recent address to Congress drew an audience of 36.6 million viewers, reflecting a nearly 14% increase from former President Biden&#8217;s 2024 State of the Union address.&nbsp; However, this viewership still represents a decline compared to historical figures, indicating a broader trend of public disengagement.</p><p></p><p>This isn&#8217;t apathy&#8212;it&#8217;s rejection. People aren&#8217;t disinterested in politics; they&#8217;re tired of being lied to, manipulated, and used as pawns in a game designed to benefit a small elite. They&#8217;ve watched politicians, both Democrat and Republican, make grand promises only to serve the same corporate interests once in office. They&#8217;ve seen the media cover political theater while ignoring the skyrocketing cost of living, stagnant wages, and a healthcare system that prioritizes profit over people. The spectacle continues, but fewer and fewer Americans are willing to be part of the audience.</p><p></p><p><strong>The Media&#8217;s Role in the Smokescreen</strong></p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FT4K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19978464-e4b1-433d-afa2-16eec4ce5a43_1024x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FT4K!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19978464-e4b1-433d-afa2-16eec4ce5a43_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FT4K!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19978464-e4b1-433d-afa2-16eec4ce5a43_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FT4K!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19978464-e4b1-433d-afa2-16eec4ce5a43_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FT4K!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19978464-e4b1-433d-afa2-16eec4ce5a43_1024x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FT4K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19978464-e4b1-433d-afa2-16eec4ce5a43_1024x1024.jpeg" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/19978464-e4b1-433d-afa2-16eec4ce5a43_1024x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:0,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;&quot;,&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="" srcset="https://substackcdn.com/image/fetch/$s_!FT4K!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19978464-e4b1-433d-afa2-16eec4ce5a43_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FT4K!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19978464-e4b1-433d-afa2-16eec4ce5a43_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FT4K!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19978464-e4b1-433d-afa2-16eec4ce5a43_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FT4K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19978464-e4b1-433d-afa2-16eec4ce5a43_1024x1024.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>One of the biggest reasons for this frustration is the unreliability of the media&#8212;especially the mainstream outlets that claim to be the guardians of democracy. Trust in mass media has reached record lows, with only 31% of Americans expressing a &#8220;great deal&#8221; or &#8220;fair amount&#8221; of confidence in the media to report the news fully, accurately, and fairly.&nbsp; This erosion of trust is not confined to one political ideology; it spans the spectrum, reflecting widespread skepticism toward traditional news outlets.</p><p></p><p>The perceived bias and sensationalism in media coverage have contributed to this distrust. For instance, during the early stages of the COVID-19 pandemic, media missteps, such as downplaying the virus&#8217;s severity and dismissing alternative theories without thorough investigation, damaged public confidence. Such instances have led to a growing sentiment that media narratives are often disconnected from the realities faced by everyday Americans.</p><p></p><p><strong>The Rallies That Media Won&#8217;t Cover</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_!VIrt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2ef8ad-7eb5-43fc-84b0-356d591fee92_1290x853.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VIrt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2ef8ad-7eb5-43fc-84b0-356d591fee92_1290x853.jpeg 424w, https://substackcdn.com/image/fetch/$s_!VIrt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2ef8ad-7eb5-43fc-84b0-356d591fee92_1290x853.jpeg 848w, https://substackcdn.com/image/fetch/$s_!VIrt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2ef8ad-7eb5-43fc-84b0-356d591fee92_1290x853.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!VIrt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2ef8ad-7eb5-43fc-84b0-356d591fee92_1290x853.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VIrt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2ef8ad-7eb5-43fc-84b0-356d591fee92_1290x853.jpeg" width="1290" height="853" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7d2ef8ad-7eb5-43fc-84b0-356d591fee92_1290x853.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:853,&quot;width&quot;:1290,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:0,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;&quot;,&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="" srcset="https://substackcdn.com/image/fetch/$s_!VIrt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2ef8ad-7eb5-43fc-84b0-356d591fee92_1290x853.jpeg 424w, https://substackcdn.com/image/fetch/$s_!VIrt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2ef8ad-7eb5-43fc-84b0-356d591fee92_1290x853.jpeg 848w, https://substackcdn.com/image/fetch/$s_!VIrt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2ef8ad-7eb5-43fc-84b0-356d591fee92_1290x853.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!VIrt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2ef8ad-7eb5-43fc-84b0-356d591fee92_1290x853.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>Meanwhile, something remarkable is happening in cities across the country. Despite the media&#8217;s attempt to control the narrative, massive rallies are forming&#8212;often with little to no mainstream coverage. The people attending these gatherings aren&#8217;t showing up for a party or a politician; they&#8217;re showing up because they believe in something bigger than the two-party system.</p><p></p><p>These rallies attract working-class Americans, union members, small business owners, students, and retirees&#8212;all coming together not because they agree on every issue, but because they share the same struggles. They know wages aren&#8217;t keeping up with inflation. They know healthcare costs are unsustainable. They know the government works for corporations, not for them. And instead of blaming each other, they are realizing they have more in common than they were led to believe.</p><p></p><p>The reason these rallies feel different is because they aren&#8217;t staged, scripted, or manufactured by political consultants. They are filled with real people who have been ignored for too long. And that terrifies the establishment.</p><p></p><p><strong>A Growing Political Awakening</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_!AFK8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2c7379-6fa2-4a3a-860a-f922a7637fdb_1024x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AFK8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2c7379-6fa2-4a3a-860a-f922a7637fdb_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AFK8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2c7379-6fa2-4a3a-860a-f922a7637fdb_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AFK8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2c7379-6fa2-4a3a-860a-f922a7637fdb_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AFK8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2c7379-6fa2-4a3a-860a-f922a7637fdb_1024x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AFK8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2c7379-6fa2-4a3a-860a-f922a7637fdb_1024x1024.jpeg" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e2c7379-6fa2-4a3a-860a-f922a7637fdb_1024x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:0,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;&quot;,&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="" srcset="https://substackcdn.com/image/fetch/$s_!AFK8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2c7379-6fa2-4a3a-860a-f922a7637fdb_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AFK8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2c7379-6fa2-4a3a-860a-f922a7637fdb_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AFK8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2c7379-6fa2-4a3a-860a-f922a7637fdb_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AFK8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2c7379-6fa2-4a3a-860a-f922a7637fdb_1024x1024.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>While corporate-backed politicians are afraid to hold town halls and face their own constituents, these rallies are only growing in size and energy. The political establishment&#8212;both parties&#8212;wants Americans to believe they are powerless. They want people to think that nothing will change, that their only choices are the same two parties, the same broken policies, and the same media narratives.</p><p></p><p>But something is shifting. Americans aren&#8217;t as divided as they&#8217;ve been led to believe. The true divide isn&#8217;t between left and right&#8212;it&#8217;s between the people and those in power. And as more Americans reject the circus, they&#8217;re realizing that the solutions won&#8217;t come from the same politicians and media figures who created these problems in the first place.</p><p></p><p>The crowds forming in towns and cities across the country aren&#8217;t just showing up for a cause. They&#8217;re showing up for each other. And that, more than anything, is what those in power fear the most.</p>]]></content:encoded></item><item><title><![CDATA[Diversity, Equity, and Inclusion: Progress, Challenges, and the Role of Media]]></title><description><![CDATA[And How We Can Better Implement It - The Right Way]]></description><link>https://radicalinsider.org/p/diversity-equity-and-inclusion-progress</link><guid isPermaLink="false">https://radicalinsider.org/p/diversity-equity-and-inclusion-progress</guid><dc:creator><![CDATA[Radical Insider]]></dc:creator><pubDate>Sat, 08 Feb 2025 18:01:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tA2t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ece8188-d318-4dbd-97c6-940b45e01ff7_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tA2t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ece8188-d318-4dbd-97c6-940b45e01ff7_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tA2t!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ece8188-d318-4dbd-97c6-940b45e01ff7_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!tA2t!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ece8188-d318-4dbd-97c6-940b45e01ff7_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!tA2t!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ece8188-d318-4dbd-97c6-940b45e01ff7_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!tA2t!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ece8188-d318-4dbd-97c6-940b45e01ff7_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tA2t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ece8188-d318-4dbd-97c6-940b45e01ff7_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ece8188-d318-4dbd-97c6-940b45e01ff7_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tA2t!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ece8188-d318-4dbd-97c6-940b45e01ff7_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!tA2t!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ece8188-d318-4dbd-97c6-940b45e01ff7_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!tA2t!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ece8188-d318-4dbd-97c6-940b45e01ff7_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!tA2t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ece8188-d318-4dbd-97c6-940b45e01ff7_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">a set of diverse people getting an awards from a company</figcaption></figure></div><h3>How It Started</h3><p>The origins of Diversity, Equity, and Inclusion (DEI) can be traced back to earlier movements advocating for civil rights and workplace equality. Over the decades, similar initiatives have gone by various names, including Equal Employment Opportunity (EEO) and Affirmative Action. These policies were initially designed to address systemic discrimination and promote fair treatment in hiring and education. However, as workplaces and institutions evolved, DEI expanded beyond legal compliance to emphasize the importance of fostering inclusive environments where people from diverse backgrounds feel valued and empowered. Today, DEI encompasses a broad spectrum of initiatives, from inclusive hiring practices to bias training and cultural awareness programs. While some view DEI as a necessary evolution toward a more equitable society, others see it as overreach that can sometimes prioritize representation over qualifications. Understanding this history and how DEI has transformed over time helps frame the ongoing debate about its effectiveness and impact. </p><p>At its core, DEI aims to create fair opportunities for people of all backgrounds while fostering environments that value differences. While DEI initiatives have led to significant positive change, they have also sparked debate regarding their implementation, effectiveness, and unintended consequences. Additionally, the media plays a crucial role in shaping how DEI is perceived, sometimes amplifying divisions rather than fostering unity. Sensationalized headlines and selective reporting often emphasize extreme cases&#8212;either showcasing DEI as a revolutionary success or painting it as a harmful overreach. Social media algorithms further entrench these views by prioritizing emotionally charged content, creating echo chambers that reinforce existing biases rather than promoting constructive discussion. To fully realize the benefits of DEI, it is crucial to separate the noise from the substance and ensure that diversity enhances, rather than overshadows, professional merit.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://radicalinsider.org/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 Radical Insider! 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><h3>The Positive Impact of DEI</h3><p>The benefits of DEI are well-documented. Companies that embrace diverse workforces often experience increased creativity, broader perspectives, and enhanced problem-solving abilities. Inclusive environments also contribute to greater employee satisfaction, reducing turnover and fostering innovation. Moreover, DEI initiatives have helped break down long-standing barriers, allowing underrepresented groups access to opportunities they might have historically been denied.</p><p>In the broader social context, DEI efforts have led to increased awareness of systemic inequalities, encouraging more inclusive policies and practices. By recognizing and addressing biases, organizations can create fairer hiring processes, more supportive workplaces, and better representation across various fields.</p><h3>The Challenges and Criticisms of DEI</h3><p>Despite its positive intentions, DEI is not without its challenges. Some critics argue that certain DEI initiatives prioritize quotas over qualifications, leading to resentment and skepticism about the merit of diverse hires. In some cases, well-qualified individuals may feel overlooked due to rigid diversity requirements, while others may experience imposter syndrome, questioning whether they were hired for their skills or simply to meet a target.</p><p>A close friend of mine has personally experienced the downside of these initiatives. As a black man, he has faced the unfortunate reality of being underestimated by colleagues who assume his success is due to DEI policies rather than his actual abilities. This persistent underestimation can be frustrating and counterproductive, as it undermines the confidence of highly capable individuals. However, despite these challenges, he still supports the need for diversity. His concern lies not with the existence of diversity initiatives but with how they are implemented. He believes that DEI should not be about ticking boxes but about ensuring fair access to opportunities while maintaining high professional standards.</p><h3>The Media&#8217;s Role in Shaping DEI&#8217;s Reputation</h3><p>The media plays a powerful role in shaping the narrative around DEI, often highlighting extreme perspectives on both sides of the debate. For example, some major news outlets like Fox News have criticized DEI as a form of forced social engineering, while others like MSNBC have framed it as a necessary correction to systemic injustice. On social media, trends such as #DEIisDiscrimination and #DiversityWins illustrate the stark contrast in public opinion, with each side amplifying their stance through viral content. Some outlets frame DEI as an essential step toward justice, while others depict it as an unfair system that penalizes certain groups. This polarized coverage can create unnecessary division, making it difficult for people to have nuanced discussions about DEI&#8217;s merits and shortcomings.</p><p>Social media further exacerbates these divides, with algorithm-driven content amplifying outrage and controversy. This results in echo chambers where individuals are fed information that reinforces their existing beliefs, preventing constructive conversations and solutions. If we want to move forward productively, we must actively seek balanced perspectives and engage in open-minded discussions rather than relying solely on media narratives.</p><h3>Moving Beyond the Noise: Making DEI a Professional Asset</h3><p>The key to making DEI work effectively is to ensure that diversity complements professional merit, enhancing excellence rather than being treated as an afterthought or a primary qualifier. Organizations should strive to create environments where diversity enhances excellence rather than being a substitute for it. </p><p>This means:</p><ol><li><p><strong>Prioritizing Merit and Inclusion Simultaneously</strong> &#8211; Ensuring that hiring and promotions are based on qualifications and skills while also providing fair opportunities to candidates from diverse backgrounds.</p></li><li><p><strong>Encouraging Open Conversations</strong> &#8211; Creating spaces where employees can discuss concerns about DEI policies without fear of backlash, fostering a culture of trust rather than division.</p></li><li><p><strong>Holding the Media Accountable</strong> &#8211; Promoting media literacy and critical thinking is essential to help individuals discern between genuine DEI efforts and divisive narratives. However, this is challenging when divisive content generates higher engagement and revenue for media outlets and social media platforms. To counteract this, individuals and organizations must actively seek out diverse sources of information, support independent journalism, and advocate for responsible reporting. Encouraging critical thinking through education, corporate training, and public discourse can also help people recognize bias and misinformation. While financial incentives drive media sensationalism, fostering a culture of inquiry and open discussion can help shift focus toward more balanced and constructive narratives.</p></li><li><p><strong>Celebrating Excellence Across All Backgrounds</strong> &#8211; Acknowledging achievements without attributing them solely to diversity policies, thereby reinforcing the value of competence and hard work. This is particularly important in cases where individuals from underrepresented groups achieve significant milestones through dedication and skill. Recently, another friend received a prestigious award as a top worker in his company. Despite his hard-earned success, some colleagues dismissed his achievement as a byproduct of DEI rather than recognizing his exceptional performance. This illustrates how DEI can sometimes be used as a wedge by those unwilling to acknowledge genuine merit. To combat this, organizations should emphasize transparency in performance evaluations and celebrate accomplishments in ways that highlight individual excellence, ensuring that diversity initiatives are seen as enhancements rather than determinants of success.</p></li></ol><p>DEI remains an important movement, but its success hinges on thoughtful implementation rather than rigid mandates. By cutting through the noise and focusing on a balanced approach where diversity and merit reinforce each other, we can ensure that DEI strengthens our institutions rather than weakening them. With a balanced approach, diversity can be a true asset that complements professional excellence rather than competing with it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://radicalinsider.org/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 Radical Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[14 Red Flags to Spot Media Bias and Misinformation]]></title><description><![CDATA[Along with helping friends and family to recognize them]]></description><link>https://radicalinsider.org/p/14-red-flags-to-spot-media-bias-and</link><guid isPermaLink="false">https://radicalinsider.org/p/14-red-flags-to-spot-media-bias-and</guid><dc:creator><![CDATA[Radical Insider]]></dc:creator><pubDate>Wed, 29 Jan 2025 19:01:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!W1js!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8ac251-8bcb-45a1-a57f-8a88d0475df3_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In today&#8217;s fast-paced world, where information travels at lightning speed, understanding how bias operates in the media is more crucial than ever. Cable news outlets, social media influencers, and even everyday content creators often use techniques like loaded language, selective data, and polarizing narratives to attract attention, drive engagement, and advance specific agendas. These tactics aren&#8217;t always rooted in malice&#8212;sometimes, they&#8217;re driven by financial incentives like clicks, views, and ad revenue, or political goals like swaying public opinion. </p><p>Media consumption shapes how we view the world, but it&#8217;s not always as objective as it seems. Recognizing these methods empowers us to consume information more critically, making us less susceptible to manipulation. <br></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://radicalinsider.org/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">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><ol><li><p><strong>Loaded Language:</strong><br>Emotionally charged words like &#8220;disastrous,&#8221; &#8220;shocking,&#8221; or &#8220;heroic&#8221; are designed to provoke strong reactions rather than provide clear information. They often exaggerate or frame an event to influence how you feel about the subject. Be wary of language that seems more dramatic than the actual topic warrants&#8212;it&#8217;s a sign the goal may be persuasion, not clarity. Here's one that uses the word "haters" in a new way.<br><br><em>Example</em>:  &#8220;Snoop Dogg reacts to Trump inauguration haters mad he changed his tune on president&#8221;. Yes, <a href="https://www.foxnews.com/entertainment/snoop-dogg-slams-trump-inauguration-haters-tells-them-get-your-life-right#&amp;_intcmp=fnhpbt9">that's a real headline</a>. <br></p></li><li><p><strong>One-Sided Perspectives</strong>:<br>If the content focuses solely on one side of an argument, leaving out dissenting views, it&#8217;s a clear indicator of bias. Balanced reporting provides multiple viewpoints, allowing you to form your own opinion. Ask yourself: is there more to this story that hasn&#8217;t been covered?<br><em>Example</em>: An article about climate change interviews only fossil fuel executives while ignoring scientists.<br></p></li><li><p><strong>Selective Use of Facts/Data</strong>:<br>Cherry-picking specific statistics or details while ignoring others is a common tactic to push a narrative. For example, someone might highlight only the benefits of a policy without mentioning the downsides or risks. To spot this, look for whether the information is fully contextualized or designed to lead you to one conclusion.<br><br><em>Example</em>: "According to our poll, 95% of people support this law!" (The poll surveyed 10 people who all work for the organization promoting the law.)<br></p></li><li><p><strong>Omission of Key Details</strong>:<br>Leaving out important facts can drastically change how a story is perceived. A story that doesn&#8217;t explain the full background or skips over relevant details may be framing the narrative intentionally. Be cautious if what&#8217;s missing feels just as important as what&#8217;s included.<br><br><em>Example</em>: A news report claims, <em>&#8220;Local business closes due to union strikes!&#8221;</em>&#8212;but fails to mention the company had already filed for bankruptcy.<br></p></li><li><p><strong>Overgeneralizations</strong>:<br>Sweeping statements like &#8220;everyone knows&#8221; or &#8220;nobody cares&#8221; often oversimplify complex issues. Such phrases give the impression of universal truth while failing to provide evidence or nuance. Real-life problems usually have multiple factors at play, so generalized claims should always be scrutinized.<br><br><em>Example</em>: A news commentator says, <em>&#8220;Americans are tired of high taxes.&#8221;</em> Which Americans? Did anyone ask them?<br></p></li><li><p><strong>Sensational and Misleading Headlines</strong>:<br>Headlines are often written to grab attention, even if they distort or oversell the content. Sometimes, the article itself will contradict the sensationalized headline, so always read beyond the title. A clickbait headline might entertain, but it rarely informs.<br><br><em>Example</em>: <em>&#8220;Study Finds Cheese Cures Depression!&#8221;</em> (Spoiler: The study was about comfort eating, not medical cures.)<br></p></li><li><p><strong>Ad Hominem Attacks</strong>:<br>Attacking someone&#8217;s character or appearance rather than their ideas is a hallmark of biased or manipulative content. This tactic distracts from the actual issues and stokes emotional reactions. Instead of focusing on the argument, it shifts the discussion to personal jabs.<br><br><em>Example</em>: A political ad says, <em>&#8220;You can&#8217;t trust Senator Green; he&#8217;s been seen wearing Crocs to formal events!&#8221;<br></em></p></li><li><p><strong>Lack of Credible Sources</strong>:<br>Content that doesn&#8217;t provide clear, reliable citations or relies on anonymous or vague sources is less trustworthy. Without strong evidence, claims are just opinions or speculation. Always check if the sources can be verified independently.<br><br><em>Example</em>: <em>&#8220;Experts agree that watching TV is better than exercise!&#8221;</em> (Who are these &#8220;experts,&#8221; and where can we find them?)<br></p></li><li><p><strong>Overuse of Opinion</strong>:<br>News that reads more like a personal rant often blurs the line between opinion and fact. It&#8217;s fine for commentators to share their views, but they should clearly label opinion pieces and separate them from objective reporting. Be alert when strong opinions masquerade as factual analysis.<br><em>Example</em>: An article reads, <em>&#8220;This policy is the only logical choice; anyone against it clearly doesn&#8217;t understand economics.&#8221;<br></em></p></li><li><p><strong>Polarizing Narratives</strong>:<br>Content that divides issues into &#8220;good vs. evil&#8221; or &#8220;us vs. them&#8221; oversimplifies reality and fuels division. Real-world problems are rarely black and white and typically require more nuanced discussions. Be cautious of narratives that vilify or lionize without providing middle-ground perspectives.<br><br><em>Example</em>: <em>&#8220;This city&#8217;s problems will end if we just elect the right mayor.&#8221;</em> If only it were that easy.<br></p></li><li><p><strong>Appealing to Authority</strong>:<br>Just because someone with a title or influence endorses a claim doesn&#8217;t make it true. Authority figures can be biased, mistaken, or working in their own interest. Always look for additional evidence instead of taking their word at face value.<br><br><em>Example</em>: <em>&#8220;As the CEO of a billion-dollar company, I can assure you this policy works.&#8221;</em> Okay, but where&#8217;s the data?<br></p></li><li><p><strong>Lack of Transparency</strong>:<br>When it&#8217;s unclear who funds, writes, or promotes a piece, it&#8217;s difficult to assess its motives and credibility. Transparency helps build trust, while hidden agendas create doubt. Ask yourself who benefits from the story and whether that&#8217;s been disclosed.<br><br><em>Example</em>: A &#8220;scientific&#8221; article promoting a new wonder drug is later revealed to be written by the pharmaceutical company that sells it.<br></p></li><li><p><strong>Consistent Partisanship</strong>:<br>Sources that always side with one political party or ideology, regardless of context, are usually biased. Honest reporting should critique or praise based on the facts, not allegiance. If a source never questions its &#8220;team,&#8221; it&#8217;s likely pushing propaganda.<br><em>Example</em>: A website that only writes glowing reviews about one party, even when scandals emerge, is likely pushing an agenda.</p><p></p></li><li><p><strong>Unverified Claims</strong>:<br>Statements presented as fact without supporting evidence should immediately raise suspicion. These claims often spread quickly, especially on social media, even if they&#8217;re later proven false. Always ask: where&#8217;s the proof, and can this be independently confirmed?<br><br><em>Example</em>: A viral tweet declares, <em>&#8220;Breaking: Alien technology discovered in Nevada!&#8221;</em>&#8212;but no reputable source covers the story, and the tweet links to a conspiracy website.<br></p></li></ol><h4>Recognizing Bias With Family And Friends<br></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W1js!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8ac251-8bcb-45a1-a57f-8a88d0475df3_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W1js!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8ac251-8bcb-45a1-a57f-8a88d0475df3_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!W1js!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8ac251-8bcb-45a1-a57f-8a88d0475df3_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!W1js!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8ac251-8bcb-45a1-a57f-8a88d0475df3_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!W1js!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8ac251-8bcb-45a1-a57f-8a88d0475df3_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W1js!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8ac251-8bcb-45a1-a57f-8a88d0475df3_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d8ac251-8bcb-45a1-a57f-8a88d0475df3_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:140958,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!W1js!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8ac251-8bcb-45a1-a57f-8a88d0475df3_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!W1js!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8ac251-8bcb-45a1-a57f-8a88d0475df3_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!W1js!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8ac251-8bcb-45a1-a57f-8a88d0475df3_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!W1js!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8ac251-8bcb-45a1-a57f-8a88d0475df3_1024x1024.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>Recognizing these methods empowers us to consume information more critically, making us less susceptible to manipulation. For example, if your dad starts a conversation with, &#8220;I saw this on TV&#8230;&#8221; and launches into a talking point, it&#8217;s a reminder of how many people&#8212;especially seniors&#8212;take media at face value. Instead of overwhelming him with a detailed explanation, try using simple, gentle cues to plant a seed of skepticism. A kind response like, &#8220;That&#8217;s interesting&#8212;did they mention the other side of the story?&#8221; can subtly encourage curiosity and critical thinking without making him feel called out or defensive. <br><br>Start by discussing the reasons behind their preferences without dismissing their views. Understanding their perspective can help you find common ground. Instead of directly challenging their sources, share your own experiences with finding balanced information and how it has helped you form a more comprehensive understanding of the issues at hand.</p><p>Kindly teach them to identify loaded language and emotional appeals in news articles or broadcasts. Words with strong connotations can influence perception, portraying certain events or individuals positively or negatively. Encouraging them to look for these cues can make them more aware of subtle attempts to sway their opinions.</p><p>Try to set up a safe space for conversation where understanding and empathy are front and center. Use questions like, "Why do you think the questions of [said individual] are framed this way?&#8221;. </p><p>Suggest simple critical thinking techniques that don't require changing their sources or using fact-checkers. For example, they can look for inconsistencies within their preferred news source, question the motives behind sensational headlines, and consider how different wording might alter their perception of a story. By fostering a mindset of curiosity and skepticism, they may naturally become more open to diverse information.</p><p>Share your own journey of discovering media bias. You could say, "I used to watch X all the time, but then I noticed Y, which made me start checking other sources."</p><p>By framing it as a shared effort to seek truth, we can help loved ones spot bias and navigate media more thoughtfully.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://radicalinsider.org/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Welcome To The Hate Economy]]></title><description><![CDATA[How Media Division Fuels Profit and Control]]></description><link>https://radicalinsider.org/p/welcome-to-the-hate-economy</link><guid isPermaLink="false">https://radicalinsider.org/p/welcome-to-the-hate-economy</guid><dc:creator><![CDATA[Radical Insider]]></dc:creator><pubDate>Mon, 27 Jan 2025 16:35:03 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/6020dafb-9e74-46fa-af24-e3586d974fd5_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In today&#8217;s America, the media has evolved into a powerful force, shaping public opinion, framing debates, and determining the narratives that define our social, political, and cultural landscape. Yet, beneath the noise of partisan bickering between the &#8220;Left&#8221; and the &#8220;Right,&#8221; a deeper, more troubling dynamic is at play. The media&#8217;s obsession with sensationalism, coupled with the overarching influence of corporate interests, reveals a stark truth: the American people are being played. Congress, the presidency, and other institutions of power perpetuate a theater of division that keeps citizens distracted from the real mechanisms of control and manipulation. This essay explores how the media amplifies this division, perpetuates contradictions, and serves as a tool of distraction, ultimately benefiting the powerful at the expense of the public.</p><h4>The Theater of Division: Left vs. Right</h4><p>At its core, the American media operates as a megaphone for ideological conflict. Headlines scream about &#8220;Liberal Snowflakes&#8221; or &#8220;Conservative Fascists,&#8221; creating caricatures of both sides that are easy to digest but devoid of nuance. For example, Fox News might run a headline such as &#8220;Woke Culture is Destroying America&#8221; while MSNBC counters with &#8220;Right-Wing Extremists Pose the Greatest Threat to Democracy.&#8221; These narratives are not simply reflective of ideological differences; they are constructed to elicit outrage and deepen divisions.</p><p>Sensationalism sells, and in an era of declining attention spans, headlines have become more provocative and less factual. Consider the media&#8217;s treatment of issues like police reform. Following the tragic death of George Floyd, outlets on the left pushed headlines like &#8220;Defund the Police: The Only Path Forward,&#8221; while conservative outlets countered with &#8220;Defunding the Police Will Lead to Chaos and Lawlessness.&#8221; Neither position reflects the complexities of policing in America, yet the binary framing forces readers to pick a side rather than engage in meaningful discussion.</p><p>This dynamic is not accidental. By framing every issue as a battle between opposing forces, the media ensures a steady stream of conflict and controversy that keeps viewers glued to their screens. The result is a society increasingly divided along partisan lines, with little room for compromise or collaboration. But while Americans are busy fighting each other, the real players&#8212;corporations, lobbyists, and political elites&#8212;continue to pull the strings behind the scenes.</p><h4>Contradictions and Media Hypocrisy</h4><p>One of the most striking aspects of the media&#8217;s role in perpetuating division is its willingness to contradict itself when it suits the prevailing narrative. Both liberal and conservative outlets are guilty of this, often shifting their positions to align with political expediency or corporate interests.</p><p>Take, for example, the issue of free speech. Liberal outlets like The New York Times have historically championed the importance of free expression. Yet, in recent years, some of these same outlets have supported censorship in the name of combating misinformation. Conservative media is no less hypocritical. Fox News, which frequently rails against &#8220;cancel culture,&#8221; has also called for boycotts of companies that support progressive causes. These contradictions highlight the media&#8217;s true priority: maintaining a narrative that serves its own interests, even at the cost of consistency.</p><p>Another example can be found in the coverage of government spending. During the Trump administration, conservative outlets largely ignored the ballooning national deficit, focusing instead on the benefits of tax cuts and military spending. However, with a Democrat in the White House, these same outlets suddenly rediscovered their fiscal conservatism, decrying deficit spending as reckless and unsustainable. On the other side, liberal media that criticized Trump&#8217;s spending habits have been far more lenient when reporting on similar policies under President Biden.</p><p>These contradictions are not mere oversights; they are deliberate strategies designed to reinforce tribal loyalties. By selectively framing issues to align with their audience&#8217;s biases, media outlets ensure a steady stream of engagement and revenue. Meanwhile, the underlying issues&#8212;government spending, free speech, systemic inequality&#8212;remain unaddressed.</p><h4>Corporate Interests and the Illusion of Choice</h4><p>At the heart of the media&#8217;s manipulation lies the influence of corporate interests. Major media conglomerates like Comcast (owner of NBC), Disney (owner of ABC), and News Corp (owner of Fox) dominate the information landscape, prioritizing profits over public interest. These corporations are not neutral arbiters of truth; they are businesses with shareholders to please and agendas to advance.</p><p>Consider the role of advertising in shaping media content. News outlets rely heavily on corporate advertisers for revenue, creating a conflict of interest that undermines journalistic integrity. Stories that challenge corporate power or advocate for systemic change are often downplayed or ignored altogether. For example, coverage of climate change is frequently watered down to avoid alienating fossil fuel advertisers. Similarly, stories about labor rights and unionization struggles receive minimal attention, as they conflict with the interests of corporate sponsors.</p><p>This dynamic extends to political coverage as well. Both liberal and conservative media outlets receive funding from political action committees (PACs) and lobbying groups, further blurring the line between journalism and propaganda. The result is a media landscape that prioritizes the interests of the wealthy and powerful while marginalizing the voices of ordinary Americans.</p><h4>The Real Game: Power and Control</h4><p>While the media keeps the public distracted with partisan battles, Congress and the presidency continue to operate as two sides of the same coin. Both Democrats and Republicans rely on corporate donations to fund their campaigns, ensuring that their policies align with the interests of their donors rather than their constituents. This dynamic is perhaps most evident in the area of economic policy.</p><p>Take, for instance, the issue of tax reform. Both parties claim to champion the interests of working Americans, yet their policies consistently benefit the wealthy. The 2017 Tax Cuts and Jobs Act, passed by a Republican-controlled Congress, disproportionately benefited corporations and high-income earners. Similarly, Democratic proposals for tax reform often include loopholes that allow the ultra-rich to avoid paying their fair share. Despite their rhetoric, both parties are deeply entrenched in a system that prioritizes the interests of the elite.</p><p>Healthcare is another area where the bipartisan consensus becomes apparent. While Democrats and Republicans publicly clash over issues like Medicare for All, both parties have consistently failed to address the underlying problem: the profit-driven nature of the American healthcare system. Pharmaceutical companies and insurance providers wield enormous influence over both parties, ensuring that meaningful reform remains out of reach.</p><p>The media plays a crucial role in perpetuating this status quo by framing these issues as partisan battles rather than systemic problems. By focusing on the spectacle of political conflict, the media obscures the underlying economic and structural forces that shape American society. This serves the interests of both political elites and corporate sponsors, who benefit from a divided and distracted populace.</p><h4>Victims of the Game: The American People</h4><p>The ultimate losers in this game are the American people. By fostering division and perpetuating misinformation, the media undermines the very foundation of democracy. Citizens are left to navigate a sea of conflicting narratives, unable to discern truth from propaganda. This erodes trust in institutions and fosters a sense of cynicism and apathy.</p><p>Moreover, the media&#8217;s focus on sensationalism and conflict leaves little room for substantive discussion of the issues that matter most to ordinary Americans. Economic inequality, climate change, healthcare, education&#8212;these are the challenges that define our era, yet they are consistently overshadowed by the latest scandal or outrage. The result is a society that is ill-equipped to address its most pressing problems.</p><p>The media&#8217;s manipulation also has profound psychological effects. The constant barrage of negative news and partisan conflict contributes to feelings of anxiety, anger, and hopelessness. This is not an accident; it is a deliberate strategy designed to keep viewers engaged and emotionally invested. By fostering a state of perpetual outrage, the media ensures a steady stream of clicks, views, and ad revenue.</p><h4>Breaking the Cycle</h4><p>To break free from this cycle of manipulation, Americans must take a critical and proactive approach to media consumption. This begins with recognizing the biases and agendas that shape media narratives. From YouTube to traditional media, using tools such as Allsides along with seeing how a particular outlet gets funded helps seek out grounded perspectives. By engaging with independent and investigative journalism, citizens can gain a more nuanced understanding of the issues at hand. </p><p>Media literacy is also essential. Schools and communities must prioritize education that equips individuals with the tools to critically analyze media content. This includes understanding the techniques used to frame stories, recognizing logical fallacies, and identifying conflicts of interest.</p><p>Finally, systemic change is needed to address the root causes of media manipulation. This includes campaign finance reform to reduce the influence of money in politics, as well as antitrust measures to break up media conglomerates and promote competition. By challenging the concentration of power in both the media and political spheres, Americans can reclaim their democracy and ensure that their voices are heard.</p><h4>Conclusion: The Hate Economy</h4><p>The media&#8217;s role in shaping the divide between the &#8220;Left&#8221; and &#8220;Right&#8221; is not just a byproduct of ideological differences&#8212;it is a calculated component of what can only be described as a &#8220;Hate Economy.&#8221; This economy thrives on outrage, division, and sensationalism, generating profit and power for corporations, lobbyists, and political elites. By amplifying conflict and perpetuating contradictions, the media ensures a steady stream of engagement while obscuring the true dynamics of power and control.</p><p>The American people, caught in this cycle, are the victims of a game designed to keep them divided and distracted. To resist this manipulation, citizens must recognize the media&#8217;s role in perpetuating the Hate Economy and take steps to reclaim their agency. By fostering media literacy, supporting independent journalism, and advocating for systemic reform, Americans can break free from the noise and build a society that prioritizes truth, justice, and the common good. The stakes are high, but the path forward is clear: it is time to dismantle the Hate Economy and focus on the real game at play.</p>]]></content:encoded></item></channel></rss>