<?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[The Astukari Newsletter]]></title><description><![CDATA[Why try harder? Subscribe to Astukari Newsletter and receive 5 quick articles to improve your life, every week.]]></description><link>https://astukari.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!mPxo!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F19d31bcc-b656-432b-b7f3-9c328df4affe_256x256.png</url><title>The Astukari Newsletter</title><link>https://astukari.substack.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 04 Nov 2026 23:34:04 GMT</lastBuildDate><atom:link href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2Ffeed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Jacob Robinson]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[astukari@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[astukari@substack.com]]></itunes:email><itunes:name><![CDATA[Jacob Robinson]]></itunes:name></itunes:owner><itunes:author><![CDATA[Jacob Robinson]]></itunes:author><googleplay:owner><![CDATA[astukari@substack.com]]></googleplay:owner><googleplay:email><![CDATA[astukari@substack.com]]></googleplay:email><googleplay:author><![CDATA[Jacob Robinson]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Chatbot Is Becoming the Wrong Shape for AI]]></title><description><![CDATA[Chat was the perfect interface for proving that AI could think.]]></description><link>https://astukari.substack.com/p/the-chatbot-is-becoming-the-wrong</link><guid isPermaLink="false">https://astukari.substack.com/p/the-chatbot-is-becoming-the-wrong</guid><dc:creator><![CDATA[Jacob Robinson]]></dc:creator><pubDate>Tue, 20 Oct 2026 18:01:16 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21QBXS%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F0d2355b9-3064-417f-bd28-0826a2b66e81_6000x4000.jpeg" 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="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21QBXS%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F0d2355b9-3064-417f-bd28-0826a2b66e81_6000x4000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QBXS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2355b9-3064-417f-bd28-0826a2b66e81_6000x4000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QBXS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2355b9-3064-417f-bd28-0826a2b66e81_6000x4000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QBXS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2355b9-3064-417f-bd28-0826a2b66e81_6000x4000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QBXS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2355b9-3064-417f-bd28-0826a2b66e81_6000x4000.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21QBXS%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F0d2355b9-3064-417f-bd28-0826a2b66e81_6000x4000.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d2355b9-3064-417f-bd28-0826a2b66e81_6000x4000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6283411,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://astukari.substack.com/i/219899232?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2355b9-3064-417f-bd28-0826a2b66e81_6000x4000.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_!QBXS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2355b9-3064-417f-bd28-0826a2b66e81_6000x4000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QBXS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2355b9-3064-417f-bd28-0826a2b66e81_6000x4000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QBXS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2355b9-3064-417f-bd28-0826a2b66e81_6000x4000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QBXS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d2355b9-3064-417f-bd28-0826a2b66e81_6000x4000.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><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><strong>TL;DR:</strong> Chat was the perfect interface for proving that AI could think. It is becoming a bad interface for everything AI is now being asked to do. Persistent agents need durable state, visual controls, background work, and access across the places people already live. The next AI interface will look less like one giant conversation and more like software that appears around the job.</p><h1>The Chatbot Is Becoming the Wrong Shape for AI</h1><p>The chatbot is a great interface for asking a question.</p><p>It is a terrible interface for running your life.</p><p>That distinction barely mattered when AI mostly answered prompts. It matters a lot now that the industry wants agents to remember projects, work in the background, coordinate across apps, and come back hours later with something finished.</p><p>We keep giving those systems the same interface: one endless transcript.</p><p>I think that is about to change.</p><h2>Chat was the bootstrap interface</h2><p>Chat won for a good reason.</p><p>It removed almost every UX problem between a person and a model. You did not need to learn menus, commands, schemas, or workflows. You typed what you wanted in normal language and the model figured out the rest.</p><p>That was perfect for demonstrating general intelligence.</p><p>It also created a trap.</p><p>Once chat became synonymous with AI, every new capability got shoved back into the conversation window. Research results. Tasks. Files. Generated apps. Long-running projects. Notifications. Memory. Tool calls. Everything became another message.</p><p>At small scale, this feels magical.</p><p>At large scale, it feels like scrolling through a very intelligent junk drawer.</p><h2>Long-running work breaks the transcript</h2><p>The problem becomes obvious once an agent has work that outlives the conversation.</p><p>OpenAI&#8217;s Dots, announced September 29, are built around persistent agents with their own cloud computers. They can work in the background, connect to thousands of apps, carry context across ChatGPT, Slack, and Teams, and proactively surface progress or decisions.</p><p>That is not really a chatbot anymore.</p><p>The conversation is just one control surface for a worker that exists somewhere else.</p><p>Meta is moving in the same direction with Muse. At Connect, Meta showed Muse spreading across smart glasses, desktop computer use, email, commerce, and connected business software. The point is not that every one of those surfaces will win. The point is that the agent is no longer expected to live inside one app.</p><p>The AI is becoming persistent.</p><p>The interface is becoming plural.</p><h2>Software is coming back</h2><p>Wabi&#8217;s recent pivot is even more explicit.</p><p>Wabi started as a prompt-to-app product. Wabi 2.0 reframes itself as a messenger where the agent can generate the interface needed for the current task.</p><p>That sounds like a small product change. I think it captures a much bigger idea.</p><p>The future of AI UX is probably not &#8220;replace software with chat.&#8221;</p><p>It is &#8220;use language to create and control software.&#8221;</p><p>Those are very different visions.</p><p>If I am tracking workouts, I do not want to ask a chatbot, &#8220;What did I bench last Tuesday?&#8221; every time. I want a chart.</p><p>If I am managing a family calendar, I do not want the calendar buried 400 messages up. I want a calendar.</p><p>If I am approving an expense, I do not want a paragraph describing the transaction. I want the amount, vendor, account, and an approve button.</p><p>Language is wonderful for expressing intent.</p><p>Visual software is still better for seeing state.</p><p>The winning AI products will use both.</p><h2>The universal chat window is a temporary compromise</h2><p>This is why I am skeptical of the idea that one giant chatbot becomes the operating system for everything.</p><p>The agent may become universal.</p><p>The interface probably will not.</p><p>Different work wants different shapes.</p><p>A conversation is good for ambiguity. A dashboard is good for state. A spreadsheet is good for comparison. A timeline is good for sequence. A map is good for place. A button is good for a decision you should not accidentally phrase in natural language.</p><p>Trying to compress all of those into chat is not simplicity.</p><p>It is throwing away useful structure.</p><p>Wabi&#8217;s &#8220;generate the interface you need&#8221; idea is interesting because it reverses the current assumption. Instead of forcing every task into the AI&#8217;s preferred interface, the AI adapts its interface to the task.</p><p>That feels much closer to where this is going.</p><h2>The real product is continuity</h2><p>There is a deeper implication.</p><p>If the agent can appear in ChatGPT, Slack, glasses, a generated mini-app, or some future device, then the valuable thing is not the surface itself.</p><p>It is the continuity underneath it.</p><p>Does the agent know what project I am working on?</p><p>Does it understand what already happened?</p><p>Can it retrieve the source material instead of making me re-upload it?</p><p>Can it move from conversation to structured state without losing information?</p><p>Can it return to a task tomorrow without pretending the world started five minutes ago?</p><p>That is the hard part.</p><p>A beautiful chat UI with no continuity is still a disposable session.</p><p>A persistent agent with good state can survive almost any interface.</p><h2>Chat will become one tool among many</h2><p>I do not think chat disappears.</p><p>The command line did not disappear when graphical interfaces arrived. It just stopped pretending to be the interface for everyone and everything.</p><p>Chat will probably follow the same path.</p><p>It will remain the fastest way to express a fuzzy request, explore an idea, or redirect an agent.</p><p>Then the agent will increasingly hand the work off to a better-shaped surface.</p><p>Or nothing visible at all until the work is done.</p><p>The first era of generative AI taught computers to understand what we mean. The next one may be about teaching software to take the right shape after it understands us.</p><p>And if that happens, the chatbot will turn out to have been less like the final interface for AI and more like its command line.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://astukari.substack.com/p/the-chatbot-is-becoming-the-wrong?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2Fp%2Fthe-chatbot-is-becoming-the-wrong%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://astukari.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2Fsubscribe%3F"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[AI Is Breaking the Apprenticeship Ladder Before It Breaks the Job Market]]></title><description><![CDATA[The near-term AI risk for software engineering may not be mass layoffs.]]></description><link>https://astukari.substack.com/p/ai-is-breaking-the-apprenticeship</link><guid isPermaLink="false">https://astukari.substack.com/p/ai-is-breaking-the-apprenticeship</guid><dc:creator><![CDATA[Jacob Robinson]]></dc:creator><pubDate>Tue, 13 Oct 2026 18:00:50 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21XQqb%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff460e148-887d-42ef-890a-2aee37914dc7_5184x3456.jpeg" 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="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21XQqb%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff460e148-887d-42ef-890a-2aee37914dc7_5184x3456.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XQqb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff460e148-887d-42ef-890a-2aee37914dc7_5184x3456.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XQqb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff460e148-887d-42ef-890a-2aee37914dc7_5184x3456.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XQqb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff460e148-887d-42ef-890a-2aee37914dc7_5184x3456.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XQqb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff460e148-887d-42ef-890a-2aee37914dc7_5184x3456.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21XQqb%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff460e148-887d-42ef-890a-2aee37914dc7_5184x3456.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f460e148-887d-42ef-890a-2aee37914dc7_5184x3456.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2897149,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://astukari.substack.com/i/219898378?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff460e148-887d-42ef-890a-2aee37914dc7_5184x3456.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_!XQqb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff460e148-887d-42ef-890a-2aee37914dc7_5184x3456.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XQqb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff460e148-887d-42ef-890a-2aee37914dc7_5184x3456.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XQqb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff460e148-887d-42ef-890a-2aee37914dc7_5184x3456.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XQqb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff460e148-887d-42ef-890a-2aee37914dc7_5184x3456.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><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><strong>TL;DR:</strong> The near-term AI risk for software engineering may not be mass layoffs. It may be something quieter: companies needing fewer junior engineers while still depending on the senior judgment those juniors were supposed to become. If AI absorbs the apprenticeship tasks, the industry has to deliberately rebuild the apprenticeship.</p><h1>AI Is Breaking the Apprenticeship Ladder Before It Breaks the Job Market</h1><p>The software-job debate is usually framed as a headcount question.</p><p>Will AI replace engineers?</p><p>Will companies hire fewer people?</p><p>Will coding agents eliminate entire teams?</p><p>I think that framing misses the more immediate problem.</p><p><strong>Software engineering may be losing the work that teaches people how to become good software engineers.</strong></p><p>That is a different kind of disruption.</p><p>And it may arrive well before mass replacement.</p><h2>The labor-market split is already visible</h2><p>When Revelio Labs released its September 2026 AI Labor Market Tracker, the headline was not &#8220;AI destroyed employment.&#8221;</p><p>In fact, companies that have actually adopted AI are still growing faster than non-adopters. AI-related employment has also grown substantially since 2022.</p><p>But the growth is extremely uneven.</p><p>At AI-adopting firms, Revelio estimates senior headcount has grown 32% relative to non-adopters, while junior headcount has grown only 6%.</p><p>Across the broader labor market, employment for workers aged 22&#8211;25 in the most AI-exposed occupations is down about 20% relative to comparable workers in the least-exposed occupations since before ChatGPT. For older workers, the gap is only 6%.</p><p>That is not proof that AI caused every missing junior job.</p><p>The labor market has been strange for several years, and the researchers explicitly distinguish AI exposure from actual adoption.</p><p>But the direction is hard to ignore.</p><p><strong>The people who already have judgment appear to be benefiting more than the people who are supposed to be acquiring it.</strong></p><h2>Junior work was never just cheap output</h2><p>A junior engineer does a lot of work that a strong coding agent can now do quickly.</p><p>Write the small endpoint.</p><p>Add the tests.</p><p>Trace the bug.</p><p>Refactor the ugly function.</p><p>Read an unfamiliar library.</p><p>Fix the thing that broke in staging.</p><p>From a narrow productivity perspective, automating those tasks looks wonderful.</p><p>From a talent-development perspective, those tasks were the curriculum.</p><p>They forced someone to encounter bad abstractions, confusing APIs, production constraints, brittle tests, code review, and the consequences of decisions they did not yet understand.</p><p>Eventually, enough of those repetitions became intuition.</p><p>That intuition is what makes a senior engineer valuable.</p><p>We are automating the exercises while continuing to demand the graduate.</p><h2>Productivity and learning are not the same thing</h2><p>This is where the AI-coding research gets interesting.</p><p>A Stanford-hosted 2026 meta-analysis of 23 studies found a statistically significant, moderate productivity improvement from generative-AI coding assistants.</p><p>That part is unsurprising.</p><p>The more important result is that the same analysis found no statistically significant improvement in learning outcomes.</p><p>Faster completion is not automatically faster skill formation.</p><p>Another CHI 2026 study looked specifically at junior and senior engineers using agentic coding tools. Its sample was small, so I would not generalize the exact behavior too aggressively.</p><p>But the pattern makes intuitive sense.</p><p>Experienced engineers tended to maintain control through detailed delegation and iterative refinement.</p><p>Junior engineers were more likely to swing between two bad extremes: trusting the agent too much or avoiding it too cautiously.</p><p>The senior engineer knows what to delegate because they already understand the work.</p><p>The junior is trying to use delegation to learn the work.</p><p>Those are fundamentally different tasks.</p><h2>AI makes senior judgment more valuable, not less</h2><p>This is the paradox I keep coming back to.</p><p>The better coding agents get, the less valuable manually producing every line of code becomes.</p><p>But the value of deciding <strong>what should be built, whether the output is correct, where it will fail, and what tradeoff is acceptable</strong> goes up.</p><p>Revelio&#8217;s latest data supports this broader shift.</p><p>Ninety percent of year-over-year change in work activities is happening <em>within</em> occupations rather than through occupations disappearing entirely.</p><p>That means the job title can remain &#8220;software engineer&#8221; while the actual job changes underneath it.</p><p>Less typing.</p><p>More specification.</p><p>More evaluation.</p><p>More architecture.</p><p>More debugging of systems you did not personally write.</p><p>More responsibility for the boundary between an agent&#8217;s plausible answer and a production system&#8217;s actual behavior.</p><p>That is fantastic for someone who already spent ten years learning the substrate.</p><p>It is a much harder starting point for someone on year one.</p><h2>Companies can accidentally eat their own talent pipeline</h2><p>There is an obvious short-term incentive here.</p><p>If one experienced engineer with agents can handle work that previously required several juniors, hiring fewer juniors is economically rational.</p><p>The problem appears five years later.</p><p>Where do the next experienced engineers come from?</p><p>You cannot solve this by telling young developers to &#8220;learn fundamentals&#8221; in the abstract.</p><p>Fundamentals become useful through repeated contact with reality.</p><p>The industry needs a new apprenticeship model built for AI-mediated work.</p><p>That probably means giving junior engineers real ownership even when an agent could finish the task faster.</p><p>It means reviewing prompts and delegation decisions alongside code.</p><p>It means making juniors explain why generated code is correct rather than rewarding them only because the tests pass.</p><p>It means intentionally exposing people to architecture, incidents, tradeoffs, and failure analysis earlier.</p><p>And it means accepting some local inefficiency in exchange for maintaining the organization&#8217;s future supply of judgment.</p><h2>The metric I would watch is not developer productivity</h2><p>We will get endless measurements of how many pull requests an engineer can ship with AI.</p><p>I care about another number:</p><p><strong>How quickly can an AI-native junior engineer become someone you would trust when the agent is wrong?</strong></p><p>That is the real apprenticeship benchmark.</p><p>A company that solves it gets two advantages.</p><p>It captures today&#8217;s productivity gains without hollowing out tomorrow&#8217;s senior bench.</p><p>And it develops engineers whose advantage is not that they can type code faster than a model.</p><p>Their advantage is that they know what good looks like.</p><p>AI is making implementation cheaper.</p><p>We should be careful not to make expertise scarcer at the same time.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://astukari.substack.com/p/ai-is-breaking-the-apprenticeship?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2Fp%2Fai-is-breaking-the-apprenticeship%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://astukari.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2Fsubscribe%3F"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[The Next AI Moat Is the Harness, Not the Model]]></title><description><![CDATA[The strongest AI products may soon be distinguished less by which frontier model they use and more by what surrounds the model.]]></description><link>https://astukari.substack.com/p/the-next-ai-moat-is-the-harness-not</link><guid isPermaLink="false">https://astukari.substack.com/p/the-next-ai-moat-is-the-harness-not</guid><dc:creator><![CDATA[Jacob Robinson]]></dc:creator><pubDate>Tue, 06 Oct 2026 18:01:23 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21xGPP%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fd9a2507f-1b6a-4db7-9b68-352cd47a0f2d_6189x4006.jpeg" 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="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21xGPP%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fd9a2507f-1b6a-4db7-9b68-352cd47a0f2d_6189x4006.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xGPP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a2507f-1b6a-4db7-9b68-352cd47a0f2d_6189x4006.jpeg 424w, https://substackcdn.com/image/fetch/$s_!xGPP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a2507f-1b6a-4db7-9b68-352cd47a0f2d_6189x4006.jpeg 848w, https://substackcdn.com/image/fetch/$s_!xGPP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a2507f-1b6a-4db7-9b68-352cd47a0f2d_6189x4006.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!xGPP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a2507f-1b6a-4db7-9b68-352cd47a0f2d_6189x4006.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21xGPP%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fd9a2507f-1b6a-4db7-9b68-352cd47a0f2d_6189x4006.jpeg" width="1456" height="942" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d9a2507f-1b6a-4db7-9b68-352cd47a0f2d_6189x4006.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:942,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2595671,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://astukari.substack.com/i/218178347?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a2507f-1b6a-4db7-9b68-352cd47a0f2d_6189x4006.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_!xGPP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a2507f-1b6a-4db7-9b68-352cd47a0f2d_6189x4006.jpeg 424w, https://substackcdn.com/image/fetch/$s_!xGPP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a2507f-1b6a-4db7-9b68-352cd47a0f2d_6189x4006.jpeg 848w, https://substackcdn.com/image/fetch/$s_!xGPP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a2507f-1b6a-4db7-9b68-352cd47a0f2d_6189x4006.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!xGPP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9a2507f-1b6a-4db7-9b68-352cd47a0f2d_6189x4006.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The strongest AI products may soon be distinguished less by which frontier model they use and more by what surrounds the model.</p><p>That sounds backwards after several years of benchmark obsession. I think it is where the market is heading.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://astukari.substack.com/p/the-next-ai-moat-is-the-harness-not?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2Fp%2Fthe-next-ai-moat-is-the-harness-not%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><p></p><h1>The Next AI Moat Is the Harness, Not the Model</h1><p>For the last few years, AI products have mostly competed on model access.</p><p>Who had GPT-4 first? Who had the largest context window? Who had the strongest coding benchmark? Who could offer the newest reasoning model?</p><p>That made sense when capability differences were enormous.</p><p>It makes less sense as the models improve and converge.</p><p>The interesting competitive layer is moving outward.</p><h2>The model is becoming one component in a much larger system</h2><p>A useful agent does not just need intelligence.</p><p>It needs to know which context to load, which tools to expose, what state to persist, how to recover from failure, when to ask for approval, how to route work to another system, and how to avoid wasting tokens on irrelevant information.</p><p>Those decisions are not model weights.</p><p>They are product architecture.</p><p>Anthropic recently described removing more than 80% of Claude Code&#8217;s system prompt for newer Claude 5-generation models without a measurable loss on its coding evaluations. Their explanation is revealing: as models get better at judgment, the surrounding system can shift away from giant instruction piles and toward better interfaces, progressive disclosure, and selectively loaded skills and tools.</p><p>That is a very different design problem from prompt engineering.</p><p>It is harness engineering.</p><h2>Better agents need less babysitting from the model</h2><p>A lot of current agent behavior is surprisingly wasteful.</p><p>The model calls a tool. It waits. It checks whether the tool finished. It polls again. It receives a giant block of context it may not need. It reconstructs state after an interruption.</p><p>We often treat this as an intelligence problem because the model is visibly involved in every step.</p><p>It may actually be an infrastructure problem.</p><p>Unreal Labs&#8217; newly released Unreal Agent is an interesting example. Its core design is async-first: tool operations can continue independently while the agent&#8217;s durable session tracks their state. The model does not need to spend turns managing waits and heartbeats.</p><p>The specific benchmark claims are still vendor-reported and the project is extremely young. I would not take the performance numbers as settled fact.</p><p>But the architecture is more important than the benchmark.</p><p>The model should reason.</p><p>The harness should remember that a job is still running.</p><p>That separation feels obvious once you see it.</p><h2>Context is becoming a routing problem</h2><p>The same thing is happening with context.</p><p>The old instinct was to put everything in the prompt.</p><p>Company instructions. Style guides. Tool documentation. Examples. Memories. Every edge case anyone had ever encountered.</p><p>That approach made sense when models were bad at deciding what mattered.</p><p>Now it can become counterproductive.</p><p>Anthropic&#8217;s current guidance explicitly favors progressive disclosure: keep specialized knowledge and tools available, but load them when the task actually needs them.</p><p>This suggests a different way to build agent systems.</p><p>Do not ask, &#8220;How do I give the agent everything?&#8221;</p><p>Ask, &#8220;How do I make the right thing easy to retrieve at the right moment?&#8221;</p><p>That is an information-architecture problem.</p><h2>Reliability may matter more than another benchmark point</h2><p>This becomes even clearer once an agent touches real systems.</p><p>Imagine an agent that can work across your notes, files, email, source code, and local storage.</p><p>The impressive demo is that it can understand all of them.</p><p>The useful product is that it can keep working when one connector fails.</p><p>That distinction matters.</p><p>A connector should be a convenience layer, not the only road to the underlying data. If the MCP layer breaks, a robust system should have another authorized path. If a job dies halfway through, the session should recover. If an external API stalls, that should not erase the entire plan.</p><p>These are boring capabilities.</p><p>They are also the difference between a demo and infrastructure.</p><h2>The best AI products may become model-agnostic</h2><p>There is another consequence.</p><p>If most of the product&#8217;s value lives in orchestration, memory, context selection, tool interfaces, workflow state, and integrations, then switching the underlying model becomes easier.</p><p>That does not mean models become commodities.</p><p>A substantially better model can still transform what a product can do.</p><p>But the relationship changes.</p><p>The model becomes an engine inside a system rather than the entire product.</p><p>The durable advantage belongs to whoever has built the best system around it.</p><h2>This changes what I would evaluate</h2><p>When I look at an agent product now, I care less about the headline model name than I used to.</p><p>I want to know:</p><ul><li><p>Can it retrieve the actual source material, or only a vendor-generated summary?</p></li><li><p>Can I move my data elsewhere?</p></li><li><p>Does it preserve state across failures?</p></li><li><p>Can tools run asynchronously?</p></li><li><p>Can the system load specialized context only when it is relevant?</p></li><li><p>Can I swap models without rebuilding the workflow?</p></li><li><p>Are permissions and safety boundaries enforced by the system rather than improvised by the model?</p></li></ul><p>None of these questions makes for a dramatic benchmark chart.</p><p>Together, they determine whether the agent is dependable.</p><h2>Intelligence is getting cheaper. Good systems are not.</h2><p>The last generation of AI products was defined by access to powerful models.</p><p>The next generation may be defined by who turns those models into reliable systems.</p><p>My bet is that the most durable AI companies will look increasingly boring from the outside.</p><p>They will obsess over context routing, state, permissions, interoperability, recovery, and clean tool interfaces.</p><p>The model will still matter enormously.</p><p>It just will not be the whole moat.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://astukari.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2Fsubscribe%3F"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[The Humanoid Robot Race Is Really a Data Race]]></title><description><![CDATA[The humanoid robot race is usually framed as a contest to build the smartest machine. I think that misses the more important competition.]]></description><link>https://astukari.substack.com/p/the-humanoid-robot-race-is-really</link><guid isPermaLink="false">https://astukari.substack.com/p/the-humanoid-robot-race-is-really</guid><dc:creator><![CDATA[Jacob Robinson]]></dc:creator><pubDate>Tue, 29 Sep 2026 18:01:36 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%2104qf%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F1cc50fdd-9b5a-47ec-bb1e-a6cf64faa694_5585x3502.jpeg" 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="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%2104qf%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F1cc50fdd-9b5a-47ec-bb1e-a6cf64faa694_5585x3502.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!04qf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cc50fdd-9b5a-47ec-bb1e-a6cf64faa694_5585x3502.jpeg 424w, https://substackcdn.com/image/fetch/$s_!04qf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cc50fdd-9b5a-47ec-bb1e-a6cf64faa694_5585x3502.jpeg 848w, https://substackcdn.com/image/fetch/$s_!04qf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cc50fdd-9b5a-47ec-bb1e-a6cf64faa694_5585x3502.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!04qf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cc50fdd-9b5a-47ec-bb1e-a6cf64faa694_5585x3502.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%2104qf%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F1cc50fdd-9b5a-47ec-bb1e-a6cf64faa694_5585x3502.jpeg" width="1456" height="913" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1cc50fdd-9b5a-47ec-bb1e-a6cf64faa694_5585x3502.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:913,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2055613,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://astukari.substack.com/i/217847907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cc50fdd-9b5a-47ec-bb1e-a6cf64faa694_5585x3502.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_!04qf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cc50fdd-9b5a-47ec-bb1e-a6cf64faa694_5585x3502.jpeg 424w, https://substackcdn.com/image/fetch/$s_!04qf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cc50fdd-9b5a-47ec-bb1e-a6cf64faa694_5585x3502.jpeg 848w, https://substackcdn.com/image/fetch/$s_!04qf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cc50fdd-9b5a-47ec-bb1e-a6cf64faa694_5585x3502.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!04qf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cc50fdd-9b5a-47ec-bb1e-a6cf64faa694_5585x3502.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The humanoid robot race is usually framed as a contest to build the smartest machine. I think that misses the more important competition. The winner may be the company that closes the loop between deployment, real-world data, better models, and cheaper hardware fastest.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://astukari.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2Fsubscribe%3F"><span>Subscribe now</span></a></p><h1>The Humanoid Robot Race Is Really a Data Race</h1><p>Humanoid robotics is starting to look like AI did a few years ago: spectacular demos, huge funding rounds, breathless forecasts, and a lot of arguments about whose model is smartest.</p><p>I think that framing is already becoming outdated.</p><p>The interesting question is no longer just, &#8220;Which robot can do the most impressive thing?&#8221;</p><p>It is: <strong>Which company can put enough robots into messy real environments to create a compounding data advantage?</strong></p><p>That sounds like a subtle distinction. I think it changes how we should evaluate the entire industry.</p><h2>A demo proves capability. A deployment creates a flywheel.</h2><p>A humanoid robot can look astonishing in a controlled video while still being economically useless.</p><p>Real work is repetitive, inconvenient, and full of edge cases. Parts arrive slightly misaligned. People walk through the workspace. Lighting changes. Objects get damaged. Someone puts the cart in the wrong place.</p><p>That mess is not merely a deployment problem.</p><p>It is training data.</p><p>Figure says its Figure 02 robots logged roughly 1,250 hours at BMW&#8217;s Spartanburg plant, moved more than 90,000 parts, and contributed to production of more than 30,000 BMW X3s. Agility Robotics says Digit has moved more than 100,000 totes in its commercial GXO deployment.</p><p>Those numbers matter to me more than another choreographed demo.</p><p>Every hour of operation potentially teaches you something about perception, manipulation, recovery, maintenance, workflow design, and the thousand boring exceptions that separate a prototype from infrastructure.</p><p>The robot doing useful work is also collecting the experience needed to make the next robot better.</p><h2>This is why manufacturing scale may matter earlier than expected</h2><p>The standard AI instinct is to focus on intelligence first.</p><p>That made sense for language models. Software can be copied almost for free. Once a better model exists, millions of users can interact with it immediately.</p><p>Robotics is different.</p><p>A physical intelligence cannot learn from a factory floor it has never reached.</p><p>That gives manufacturing capacity an unusual strategic role. Cheap hardware is not merely a way to monetize good software. It can be part of the research loop itself.</p><p>This is what makes the Chinese robotics ecosystem interesting. Companies such as Unitree have pushed aggressively toward high-volume, lower-cost hardware. Unitree says it shipped more than 5,500 humanoid robots in 2025.</p><p>Many of those machines are still going to research and development rather than replacing workers in mature industrial deployments. That distinction is important. Shipping a robot is not the same thing as proving useful labor.</p><p>But hardware volume still creates optionality.</p><p>If thousands of machines are available to universities, labs, integrators, factories, and developers, there are thousands of opportunities to discover which tasks break, which designs survive, and which behaviors generalize.</p><p>Scale can become a learning system.</p><h2>The American approach has the opposite advantage</h2><p>The strongest US robotics companies often look like they are attacking the problem from the other end.</p><p>Figure emphasizes increasingly general whole-body autonomy. Agility has spent years accumulating real commercial operating time. Google DeepMind, Physical Intelligence, NVIDIA, and others are pushing increasingly capable robot foundation models and simulation infrastructure.</p><p>That could be the better strategy.</p><p>A large fleet of mediocre robots does not automatically generate useful intelligence. Raw telemetry is not the same thing as a good training set. A company also needs the models, infrastructure, evaluation systems, and engineering discipline required to turn experience into improved behavior.</p><p>So I don&#8217;t think &#8220;China has factories, America has AI&#8221; is a satisfying conclusion.</p><p>The more useful model is a loop:</p><p><strong>Deploy &#8594; encounter reality &#8594; collect useful data &#8594; improve models &#8594; improve reliability &#8594; lower cost &#8594; deploy more.</strong></p><p>Whoever makes that loop turn fastest has the advantage.</p><p>And the winner may combine strengths we currently think of as belonging to different camps.</p><h2>The metric I want to watch is boring</h2><p>This changes the numbers I care about.</p><p>I am less interested in whether a robot can fold laundry once on camera.</p><p>I want to know:</p><ul><li><p>How many hours has the fleet worked in uncontrolled customer environments?</p></li><li><p>How often does a human need to intervene?</p></li><li><p>How many different tasks are being performed economically?</p></li><li><p>How quickly does one robot&#8217;s failure improve the rest of the fleet?</p></li><li><p>What does deployment cost after installation, maintenance, teleoperation, and support?</p></li><li><p>Does performance improve as fleet size grows?</p></li></ul><p>These are painfully ordinary questions.</p><p>That is exactly why they matter.</p><p>The transition from impressive technology to important technology usually happens when the conversation gets boring.</p><h2>Physical AI may reward the company with the best learning machine</h2><p>For the last few years, AI competition has mostly trained us to watch benchmarks, model releases, parameter counts, and inference prices.</p><p>Robotics requires another layer of thinking.</p><p>The model matters. The hardware matters. Manufacturing matters. Customer operations matter. Data infrastructure matters.</p><p>Most importantly, they feed each other.</p><p>My current bet is that humanoid robotics will not be won by the company that produces the single smartest robot first.</p><p>It will be won by the organization that builds the most effective <strong>learning machine around the robot</strong>: a system where every deployment makes the product cheaper, safer, more capable, and easier to deploy again.</p><p>That is a much harder system to build.</p><p>It is also much harder to copy.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://astukari.substack.com/p/the-humanoid-robot-race-is-really?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2Fp%2Fthe-humanoid-robot-race-is-really%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[The Secret Corners of Graham and Doddsville]]></title><description><![CDATA[Warren Buffett's investing advice isn't at all what he did. What did he not tell us?]]></description><link>https://astukari.substack.com/p/the-secret-corners-of-graham-and</link><guid isPermaLink="false">https://astukari.substack.com/p/the-secret-corners-of-graham-and</guid><dc:creator><![CDATA[Jacob Robinson]]></dc:creator><pubDate>Fri, 21 Aug 2026 19:01:02 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21mPxo%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%252Fpublic%252Fimages%252F19d31bcc-b656-432b-b7f3-9c328df4affe_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>TL;DR</h2><p>Warren Buffett tells you to buy an S&amp;P 500 index fund and hold it for fifty years. He tells his own heirs to put 90% of his estate in a low-cost index fund. He says his favorite holding period is forever, and that the secret to investing is to &#8220;get rich very slowly.&#8221; His advice is sincere, and will work for just about the entire population.</p><p>It is also the complete opposite of what he did.</p><p>Buffett built one of the greatest fortunes in human history -- 5.5 million percent returns over 60 years, a 19.9% compound annual rate -- through a combination of three things he almost never puts at the center of his public advice: massive leverage via insurance float, concentrated bets on undervalued securities, and a tax-deferral structure that lets compounding run unfettered for decades. He didn&#8217;t get rich slow, he got rich fast -- and it was fast because of structural advantages the average investor cannot replicate directly, but can certainly learn from.</p><p>This essay is about what Buffett and his fellow Graham-and-Doddsville superinvestors were actually doing while telling everyone else to just buy the index.</p><div><hr></div><h2>&#167;1 The Value Play</h2><p>The Buffett&#8217;s investment advice can be built using a few well-worn quotes:</p><ul><li><p>&#8220;The best thing to do for most people is to own an S&amp;P 500 index fund.&#8221;</p></li><li><p>&#8220;Our favorite holding period is forever.&#8221;</p></li><li><p>&#8220;Someone is sitting in the shade today because someone planted a tree a long time ago.&#8221;</p></li><li><p>&#8220;Life is like a snowball. The important thing is finding wet snow and a really long hill.&#8221;</p></li></ul><p>The message is consistent and appealing: be patient, buy quality, hold forever, and let compounding do the work. Avoid trading, timing, and cleverness. The S&amp;P 500 compounded at 10.4% annually from 1964 to 2024. If you had put $10,000 in the index in 1964 and done nothing, you&#8217;d have roughly $4 million today. That is a real, life-changing number, and it required no skill, no edge, and no leverage.</p><p>Buffett repeated this so often that in 2007 he bet $1 million that a Vanguard S&amp;P 500 fund would outperform a basket of hedge funds over ten years. He won. The bet ended in 2017. The index returned 7.1% annually; the hedge funds returned 2.2%. The lesson seemed clear: don&#8217;t try to beat the market, because the market will beat you.</p><p>This is good advice. But it should also make you scratch your head.</p><p>Buffett had put $10,000 into the market back when he was young -- he wasn&#8217;t lying about that. But he didn&#8217;t return $4 million. He returned as one of the richest people of all time. And he was rich that way for <em>most</em> of his life, not in his twilight years as his investing strategy suggests.</p><p>So what is he doing that he&#8217;s <em>not</em> telling us?</p><div><hr></div><h2>&#167;2 Concentration Is King</h2><p>We&#8217;ll start with one that most eagle-eyed Buffett fans already know about.</p><p>Graham and Dodd&#8217;s traditional advice was to diversify your holdings heavily. However, both Buffett and Munger have been vocal that this is the one point where they have strayed away from their mentors.</p><p>Buffett&#8217;s actual portfolio has been the opposite of diversified. In 1951, at age 21, he put over 50% of his net worth into GEICO -- a single stock. His original $10,282 investment grew to $1.3 million over 20 years. That is a 15x return on a single position! In 1973, he bought 11% of the Washington Post Company because he estimated the market was pricing the entire company at $80 million when its assets were worth $400 million-plus. That investment became a 27x bagger.</p><p>By the mid-1980s, GEICO, the Washington Post, and Capital Cities/ABC together accounted for roughly 75% of Berkshire&#8217;s net worth. Three positions. Three quarters of the portfolio. The average index fund holds 500 stocks. Buffett held only the three that mattered.</p><p>This does logically check out. Buffett&#8217;s investment criteria is so strict that a good investment comes only once in a few years. And yet, it would be a waste to keep all your money in cash. So, when you <em>do</em> find a good investment, you pounce on it. Then wait patiently for a few more years, racking up cash dividends, so you have enough dry powder for the next play. Concentration is a valid move!</p><div><hr></div><h2>&#167;3 Buffett&#8217;s Clever Leverage</h2><p>Here&#8217;s where things start to get interesting.</p><p>The academic paper &#8220;Buffett&#8217;s Alpha&#8221; by Frazzini, Kabiller, and Pedersen (2013, updated 2018) is the most rigorous deconstruction of Buffett&#8217;s returns available. In it, they find something that might shock Berkshire fans: Buffett&#8217;s alpha becomes statistically insignificant once you control for his use of leverage and his exposure to &#8220;betting against beta&#8221; (buying safe, low-beta stocks and levering them).</p><p>Yes -- the man who says to never go into debt, to never leverage your bets -- was using leverage the entire time!</p><p>To his credit, the leverage he <em>was</em> using was much smaller -- and much safer -- than most hedge funds. His estimated leverage was about 1.6 to 1, on average, across 30+ years. Some periods show a bit higher leverage -- 1976-1980 show estimates as high as 4.78 to 1. Still a far cry from the 20 to 1 most high growth firms employ.</p><p>But the mechanism he was using was even more fascinating. He was <em>not</em> using margin -- he was using insurance float.</p><p>Here is how it works. An insurance company collects premiums today and pays claims later. The gap between collection and payout is &#8220;float&#8221; -- money that is sitting in the insurance company&#8217;s accounts, not yet owed to anyone. If the insurance company is well-run, the cost of this float is near zero or even negative (when underwriting is profitable). Buffett bought National Indemnity in 1967 for $8.6 million. That acquisition gave him access to insurance float that he could invest in stocks and businesses. Over time, he acquired GEICO, General Re, and a string of smaller insurers. Berkshire&#8217;s insurance float grew from a few million in the late 1960s to $164 billion by 2022.</p><p>Buffett&#8217;s own estimate: the cost of float between 1967 and 1996 was zero. Free money. And not a small amount of free money -- billions of dollars of investable capital at zero cost, which he could deploy into undervalued securities.</p><p>The average retail investor has no access to zero-cost leverage of this scale. You can margin your brokerage account at 8-12% interest or buy options, but you cannot build a $164 billion zero-cost float. This is the structural advantage that made Buffett&#8217;s returns possible -- a clever spot of borderline riskless leverage by employing a debt structure that was practically unheard of. Take notes!</p><div><hr></div><h2>&#167;4 The World&#8217;s Best Tax Strategy</h2><p>The third structural advantage: Berkshire Hathaway is a holding company, not a mutual fund. This matters more than it sounds.</p><p>A mutual fund buys and sells stocks. Every sale triggers a taxable event. If a fund doubles a position and sells, the capital gains tax is owed that year, taking a chunk of the returns out of the compounding chain. Over 30 years, the tax drag on an actively managed fund can eat 1-2% of annual returns -- which, compounded, is enormous.</p><p>Berkshire never sells. Buffett&#8217;s &#8220;favorite holding period is forever&#8221; is partly a statement of investment philosophy and partly a tax strategy. As long as Berkshire holds a position, the unrealized gain compounds tax-free. When Buffett eventually sells, the tax is owed -- but by then, the compounding has run for decades on the full, untaxed principal. The IRS effectively gives Berkshire an interest-free loan on the deferred taxes, and Berkshire invests that loan.</p><p>Now wait, I hear you asking. Buffett DOES recommend this! Why is this considered a secret strategy?</p><p>Because taxes aren&#8217;t as straightforward as they seem.</p><p>If you do buy an index fund, the fund rebalances internally -- you <em>still</em> owe tax on the distributions, even if you don&#8217;t sell! Even in a tax-advantaged account (IRA, 401k), you eventually face required minimum distributions which contain additional withdrawal taxes. Taxes are still eating your wallet!</p><p>Now, to be fair, this <em>is</em> still relatively easy for a retail investor to emulate -- you would just be buying individual stocks, where your control over the taxes is much more controlled. But again, this interferes with traditional advice!</p><div><hr></div><h2>&#167;5 The Superinvestors</h2><p>Buffett&#8217;s 1984 speech at Columbia, &#8220;The Superinvestors of Graham-and-Doddsville,&#8221; is the closest thing value investing has to a founding document. In it, Buffett presents the track records of seven investors trained in Benjamin Graham&#8217;s value methodology, each compounding at rates that demolished the S&amp;P 500 over 15-30 year periods:</p><ul><li><p><strong>Walter Schloss</strong>: 21.3% annualized, 1956-1984 (vs. 8.4% S&amp;P).</p></li><li><p><strong>Bill Ruane</strong> (Sequoia Fund): 15.2% annualized over 19 years.</p></li><li><p><strong>Rick Guerin</strong> (Pacific Partners): 22,200% return between 1965 and 1983, vs. 316% for the S&amp;P 500. That is not a typo.</p></li><li><p><strong>Charlie Munger</strong>: ~20% annualized in his partnership years before joining Berkshire full-time.</p></li></ul><p>Buffett&#8217;s point in the speech was that these investors shared a common intellectual framework (Graham&#8217;s value investing) but invested in different securities, and all beat the market over long periods. This, he argued, was evidence that value investing worked and that market efficiency was incomplete.</p><p>But look at what these superinvestors had in common beyond the philosophy. Most of them managed partnerships or private funds, not mutual funds -- meaning they could concentrate without regulatory constraint. Most used some form of leverage or locked-up capital that allowed them to hold through drawdowns without facing redemptions. Most had long time horizons enforced by their fund structures, not by personal discipline alone.</p><p>The secret corners of Graham-and-Doddsville are not just &#8220;buy cheap stocks.&#8221; The secret corners are the structural conditions that made the cheap-stock strategy work: leverage, concentration, tax deferral, and locked-up capital. Remove any one of these and the returns degrade toward the index. Remove all of them and you get the S&amp;P 500 -- which is, not coincidentally, what Buffett tells you to buy.</p><div><hr></div><p><em>If you want to argue about whether Buffett&#8217;s advice is misleading or just practical, <a href="iframe.php?url=https%3A%2F%2Fdiscord.gg%2Fxh6meZFhH7">the Discord</a> is always open. If you want to read more like this, <a href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2F">subscribe to the Substack</a> -- each post goes up there first.</em></p><div><hr></div><p><em>Got a take on value investing mythology I should hear? Reply to this email or ping me on Discord. I&#8217;m always looking for the next rabbit hole.</em></p>]]></content:encoded></item><item><title><![CDATA[Elon Musk - The Luckiest Man Alive?]]></title><description><![CDATA[Elon Musk is a subpar engineer with terrible business skills. How did he get so wealthy?]]></description><link>https://astukari.substack.com/p/elon-musk-the-luckiest-man-alive</link><guid isPermaLink="false">https://astukari.substack.com/p/elon-musk-the-luckiest-man-alive</guid><dc:creator><![CDATA[Jacob Robinson]]></dc:creator><pubDate>Fri, 14 Aug 2026 19:01:17 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21mPxo%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%252Fpublic%252Fimages%252F19d31bcc-b656-432b-b7f3-9c328df4affe_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>TL;DR</h2><p>The mythology of Elon Musk goes something like this: a singular genius, a polymath engineer, the man who will single-handedly colonize Mars because he is just <em>that good</em> at everything he touches. The reality is less flattering, and yet more instructive. Musk&#8217;s dreams -- electric cars, humanoid robots, a Mars colony -- are not original. Thousands of people have believed in and advocated for every one of them. His operational ability is, charitably, mid. What Musk actually has -- and what nobody else who shared his dreams had -- is the willingness to <em>act on the ambition</em>: to put money down, to register a company, to start building before he knew how. That actioning created two compounding effects. First, it made him persuasive -- not because he&#8217;s a good salesman (he isn&#8217;t), but because conviction is contagious in a way that charisma never is. Second, it attracted talented engineers to work for him, often at reduced quality of life, because <em>he was the only person bothering to try chasing their same dream</em>. Elon Musk might be the luckiest man alive -- but he&#8217;s lucky in a way we can very easily emulate.</p><div><hr></div><h2>&#167;1 The Dreamer</h2><p>Let&#8217;s inventory the vision. Electric cars. Solar energy. Mars colonization. Humanoid robots. Brain-computer interfaces. Autonomous driving. These are not Elon Musk&#8217;s ideas. They are <em>everyone&#8217;s</em> ideas. They have been the dream of science fiction for a century, of engineering clubs for decades, and of futurist YouTube channels since the medium existed.</p><p>Mars colonization? The idea is older than rocketry itself. Konstantin Tsiolkovsky was writing about it in the 1900s. Werner von Braun published a Mars mission plan in 1952. The Mars Society, founded by Robert Zubrin in 1998, has been advocating for it with a detailed technical architecture for longer than SpaceX has existed.</p><p>Humanoid robots? Every robotics lab in the world has been working on this. Honda built ASIMO in 2000. Boston Dynamics has been posting viral robot videos since the BigDog era. Tesla Optimus is not a new idea -- it is a well-known idea that someone with factory money decided to actually build.</p><p>Brain-computer interfaces? Neuralink&#8217;s core concept -- implantable electrodes reading motor cortex signals -- has been in clinical use since the Utah Array in the 1990s. Academic labs have been decoding neural signals for two decades. The idea that you could read and write brain activity with a chip is not frontier science. The <em>engineering</em> of making it cheap and safe is the hard part, and even then lots of people were working on it, too.</p><p>The point is not that Musk is unoriginal. The point is that the dreams were never the bottleneck. The bottleneck was always the gap between <em>believing something should exist</em> and <em>building it</em>. Thousands of people believe in each of these things. Almost none of them incorporate a company.</p><div><hr></div><h2>&#167;2 The False Operator</h2><p>The conventional narrative credits Musk with deep engineering chops. He is &#8220;Chief Engineer&#8221; at SpaceX. He is the technical architect of Tesla&#8217;s product line. And yet the evidence, when you look closely, is thin.</p><p>Musk has a bachelor&#8217;s degree in physics from the University of Pennsylvania and one year of a Stanford PhD in materials science before he dropped out. His first company, Zip2, was a web city guide -- not a deep tech venture. He was not the engineer; he was the founder who slept under his desk and did whatever needed doing. When Zip2 sold for $307 million in 1999, Musk got $22 million for his 7% stake. He was 27. He was not, by any account, the technical talent.</p><p>Then came X.com, which merged with PayPal. Musk was not the payments architect. He was the guy who thought online banking was the future and was willing to put his money there. The PayPal team -- Peter Thiel, Max Levchin, Reid Hoffman, David Sacks, Roelof Botha, and others -- was one of the most concentrated talent clusters in tech history. Musk was the chaotic founder who got ousted as CEO in 2000 while on his honeymoon. The company went on to define modern online payments without him in the driver&#8217;s seat.</p><p>At Tesla, the actual founding engineers were Martin Eberhard and Marc Tarpenning, who started the company in 2003. Musk was the lead investor who became chairman, then ousted Eberhard in 2007 and took the CEO role himself in 2008. He was Tesla&#8217;s fourth CEO. The Roadster&#8217;s engineering was done by a team led by JB Straubel. Musk&#8217;s contribution was the vision, the money, and the willingness to fire anyone who got in the way of the vision -- including the people who built the company.</p><p>At SpaceX, the pattern is even clearer. The first employee was Tom Mueller, an aerospace engineer Musk met at an amateur rocket club in 2001. Mueller designed the Merlin engine -- the single most important piece of SpaceX&#8217;s technical stack. Gwynne Shotwell, employee #7, joined in 2002 and became the business operator who actually sold launches and managed the company&#8217;s commercial viability. Musk brought the ambition. Mueller brought the engines. Shotwell brought the business.</p><p>Musk&#8217;s defenders will point to interviews where he discusses engineering details at depth. But discussing engineering details with facility is different from <em>originating</em> the engineering. Musk is smart and learns fast. He can hold a technical conversation. No one doubts that! But the gap between &#8220;founder who follows the engineering closely enough to direct it&#8221; and &#8220;the engineer who designed the Merlin&#8221; is a chasm, and Mueller is on the other side of it. Musk himself said, in a 2022 interview, that he spends most of his time on &#8220;engineering and manufacturing&#8221; -- but former employees consistently describe his role as a relentless question-asker and constraint-setter, not the person writing the actual design.</p><p>This is not a criticism. The founder who sets the right constraints is doing valuable work! But it is a refutation of the &#8220;Musk the engineer&#8221; mythology. He is the founder who knows enough engineering to be dangerous and to hire people who are not dangerous at all but rather <em>excellent</em>.</p><div><hr></div><h2>&#167;3 The Conviction Halo</h2><p>Here is the part that the conventional narrative gets backwards. Musk is often described as a great salesman -- the person who convinced the world to believe in Tesla, SpaceX, and the rest. The evidence suggests the opposite: he is a <em>terrible</em> salesman by the standard metrics of charisma, polish, and rhetorical skill. His public speaking is halting. He gets angry on earnings calls, says things that move markets the wrong way, and tweets things that get him sued by the SEC.</p><p>What he has is not charisma. What he has is <em>conviction</em> -- and conviction, when it is real and observable, creates a persuasion effect that charisma cannot replicate.</p><p>Consider the sequence. Musk made $22 million from Zip2. He could have retired. Instead, he put $10 million into X.com (which became PayPal). When PayPal sold to eBay for $1.5 billion, Musk walked away with $180 million. He could have retired again. Instead, he put $100 million into SpaceX, $70 million into Tesla, and $10 million into SolarCity. By 2008, he was borrowing money to pay rent. He had poured essentially every dollar he had into companies that were, at the time, considered quixotic by every rational investor.</p><p>That is the persuasion engine. Not a pitch deck. Not a TED talk. The act of a man who put every dollar he had into his own vision. When you see someone do that, you do not need to be sold. You need to decide whether you&#8217;re getting on the train.</p><p>Gwynne Shotwell told the story of walking into SpaceX&#8217;s office in 2002 and telling Musk he had no idea how to sell rockets. She wasn&#8217;t impressed by his sales pitch. She was impressed by the fact that he was building a rocket company at all. She became employee #7 and built the commercial operation that kept the lights on for two decades.</p><p>Tom Mueller&#8217;s version: &#8220;He convinced me to leave (my old) career and come do something exciting, which was one of the best decisions I ever made.&#8221; Mueller&#8217;s old career was at TRW building rocket engines. It was incredibly lucrative. However, TRW was making rocket engines for the existing market -- Musk was making rockets to colonize Mars.</p><p>Conviction creates its own gravity. You do not need to be eloquent when you have already committed everything. The commitment is the pitch.</p><div><hr></div><h2>&#167;4 The Talent Magnet</h2><p>Every one of Musk&#8217;s talent policies is a paradox.</p><p>The pay, by tech standards, is mediocre at best. The equity is the only real upside, and even then it is mostly horded by executives. Engineers consistently report 80-120 hour weeks with no vacation. The Ashlee Vance biography documents an occasion where a Tesla employee received an angry email from Musk for missing a meeting to witness the birth of his child. Even Musk himself has often referred to his employees as &#8220;tools&#8221; rather than people.</p><p>Working at an Elon Musk led company is, by all standards, hell on earth. So why would anyone bother being there?</p><p>Because Musk is the only person who is <em>building the thing they want to build</em>.</p><p>If you are an aerospace engineer and your dream is to make humanity multiplanetary, your options are: NASA (bureaucratic, slow, and at the mercy of government), the legacy primes (Lockheed, Boeing -- chasing bottom lines rather than multiplanetary visions), and SpaceX. There is no fourth option. If you want to actually build the rocket that goes to Mars, and you want to build it in your lifetime, SpaceX is it.</p><p>If you are an engineer who believes electric cars are the future of transportation, your only reasonable option was Tesla. Tesla was the only one that was both serious and funded.</p><p>The brutal working conditions are not a bug, they are a feature -- a method of self-selection. If you&#8217;re like me and wouldn&#8217;t touch a Musk company with a 400 foot pole, Musk doesn&#8217;t care -- that&#8217;s <em>the point</em>. The people who take a 40% pay cut to work 80-hour weeks for a Mars colony <em>are the people who would do that for a Mars colony regardless of who was running the company.</em> Musk just happens to be the one running it. He is the only employer of people who want to build the future that Musk says he wants to build.</p><p>This is the talent magnet: not that Musk is a great recruiter, but that he has created the only available jobs in the industries that attract a certain kind of obsessive engineer. You don&#8217;t recruit people away from Google by offering worse pay and longer hours. You recruit them by being the only place where the work <em>is the thing they care about</em>.</p><div><hr></div><h2>&#167;5 The Rest of Us</h2><p>The thesis of this article is whether Elon Musk is the luckiest man alive.</p><p>On its face, based on everything we&#8217;ve discussed so far, it appears the answer is yes. Musk is a middling operator with the engineering knowledge of an undergraduate and the charisma of a blobfish. He is responsible for one of the worst HR policies on the planet. Certainly the <em>only</em> way he could be wealthy is through sheer, utter luck.</p><p>And yet, there&#8217;s a more positive byline across all of this. One we all can replicate. One that isn&#8217;t luck.</p><p>Musk&#8217;s genuine skill is not engineering, not sales, and not management. It is the <em>willingness to act on ambition before the path is clear</em>. He started SpaceX before he had a rocket, Tesla before he had a car, and Neuralink before he had a safe implant. In every case, the engineering came after the commitment. The commitment came first.</p><p>This is a skill the rest of us can model, because it is not a talent. It is a decision. It is the decision to register the company, to write the first commit, to publish the first blog post, to spend the first dollar -- before you know if it will work. Thousands of people have the same dreams Musk has. The difference between them and Musk is not IQ or charisma or access to capital (Musk started with $28,000 from his father for Zip2 and ran on even less). The difference is that Musk acted and they did not.</p><p>The corollary: if you are the person who acts, you do not need to be the most talented. You need to be the person who is <em>there</em>. The talented engineers were always out there, the Mars dream was always out there, and the electric car was always out there. What was missing was the person who started the company.</p><p>Musk is not the best engineer in the world, nor the best salesman, nor the best manager. He is the person who showed up. And that was enough to become the richest man on Earth.</p><p>Luck is what you call the returns to showing up first. Musk is the luckiest man alive because he decided to be.</p><div><hr></div><p><em>If you want to argue about whether Musk is actually an engineer, <a href="iframe.php?url=https%3A%2F%2Fdiscord.gg%2Fxh6meZFhH7">the Discord</a> is always open. If you want to read more like this, <a href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2F">subscribe to the Substack</a> -- each post goes up there first.</em></p><div><hr></div><p><em>Got a take on the mythology of founders I should hear? Reply to this email or ping me on Discord. I&#8217;m always looking for the next rabbit hole.</em></p>]]></content:encoded></item><item><title><![CDATA[How I Built It - Convexity Engine]]></title><description><![CDATA[A betting algorithm designed to lose often and win enormous.]]></description><link>https://astukari.substack.com/p/how-i-built-it-convexity-engine</link><guid isPermaLink="false">https://astukari.substack.com/p/how-i-built-it-convexity-engine</guid><dc:creator><![CDATA[Jacob Robinson]]></dc:creator><pubDate>Wed, 12 Aug 2026 19:00:28 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21mPxo%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%252Fpublic%252Fimages%252F19d31bcc-b656-432b-b7f3-9c328df4affe_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>This is the sixth post in a series where I walk through how I built the software products on my portfolio, one at a time. It is drafted by Hermes running GLM 5.2, and edited by me. I wrote the funny bits. Hermes did everything technical and smart.</em></p><div><hr></div><h2>The Problem</h2><p>I already have an investing system.</p><p>The quant algo from post three &#8212; the ETF rotation with Kelly-optimal weights &#8212; was an example. And while that algo is not currently active, I still have long-term investing positions in several stocks, which is regularly rebalanced and managed by a specific ruleset.</p><p>But I&#8217;ve been reading Nassim Taleb and Ed Thorp for long enough to know that the 90% is only half the strategy. The other half &#8212; the part that actually moves the needle on a portfolio and makes a person rich &#8212; is the <em>convex</em> sleeve. The 10% that you put into things with clearly defined downside and unlimited upside. Things where the worst case is you lose what you put in, and the best case is you make ten or a hundred times your money.</p><p>Most people never build this. They read about it, nod along, maybe buy a few far-OTM calls or a lottery ticket, and call it a day. The problem is that &#8220;defined downside, unlimited upside&#8221; describes a <em>bet</em>, and most people are bad at betting because they don&#8217;t know when the odds are in their favor.</p><p>Ed Thorp knew. In <em>Beat the Dealer</em>, he didn&#8217;t bet every hand. He counted cards, and he only bet when the count was positive &#8212; when the deck was rich in tens and aces, the odds shifted in his favor. When the count was negative, he sat out. He bet <em>aggressively</em> when he had the edge, with Kelly sizing, and he reinvested his winnings. This is how he beat blackjack, then the stock market, then horse racing, then slot machines. The man is a machine.</p><p>I wanted that same structure for the speculative sleeve of my portfolio. A system that:</p><ul><li><p>Only bets when the odds are in its favor (some equivalent of the card count)</p></li><li><p>Bets aggressively with Kelly sizing</p></li><li><p>Reinvests all winnings</p></li><li><p>Loses often but controlled and small</p></li><li><p>Wins rarely but enormously</p></li><li><p>Is fully automated &#8212; no discretion, no emotion</p></li><li><p>Uses no leverage or margin</p></li><li><p>Runs easily on Interactive Brokers</p></li></ul><p>Let&#8217;s begin.</p><div><hr></div><h2>The Build</h2><h3>The Vault</h3><p>Every project I build starts in the same place: my Obsidian vault. Before writing a single line of Python, I had Hermes search through my research notes &#8212; articles on Thorp&#8217;s Kelly criterion, Spitznagler&#8217;s <em>The Dao of Capital</em>, Taleb&#8217;s antifragility framework, and my own notes on the barbell strategy.</p><p>The thesis that emerged: buy OTM options on trend breakouts, but only when volatility is cheap. The &#8220;card count&#8221; is the VIX.</p><h3>Why VIX Is the Card Count</h3><p>Here&#8217;s the non-obvious insight that took eight backtest iterations to find.</p><p>There&#8217;s a well-known phenomenon called the Volatility Risk Premium (VRP). On average, implied volatility (what options cost) is <em>higher</em> than realized volatility (how much the market actually moves). This is why selling options is a profitable strategy &#8212; you&#8217;re selling something that&#8217;s systematically overpriced. The VRP is the reason most option <em>buyers</em> lose money. They&#8217;re paying a premium above the actual expected move.</p><p>But the VRP is not constant. It varies with the regime. And when VIX is low &#8212; in the bottom quartile, below 14 &#8212; something interesting happens. Implied volatility is <em>cheap</em>. Options are underpriced relative to what the market actually does. The VRP that normally crushes option buyers reverses and works in our favor.</p><p>This is the card count. When VIX is low, the deck is rich. We buy. When VIX is above 14, we sit out. No edge, no bet.</p><h3>Eight Backtests</h3><p>The research phase was iterative and humbling. Hermes ran eight separate backtest scripts, each one revealing a problem with the previous approach.</p><p><strong>Versions 1 through 6</strong> tried trend-following on ETFs directly &#8212; buying the underlying on Donchian channel breakouts and selling on reversals. The result was consistently underwhelming. Trend-following ETFs with stops produces maybe 1% returns. It&#8217;s a hedge, not a bet. Boring! But also checks out, as agents tend to be closer to the conservative side and the only reference point the agent had was my investing portfolio (which is much more tame by comparison).</p><p>After some proper reframing to a betting-based portfolio, <strong>version 7</strong> was the major breakthrough. Instead of buying the ETF, buy <em>options</em> on the ETF &#8212; 2% OTM, 60 days to expiry &#8212; when VIX is below 14. The signal is the same Donchian breakout, but the payoff structure changes entirely. You&#8217;re no longer earning the trend; you&#8217;re earning the convexity. A 3% move in the underlying can produce a 200% return on the option.</p><p>V7 showed a real edge: +0.24x expected value per trade. But it only generated 32 trades over 16 years on SPY alone. That&#8217;s two trades a year! We expect our wins to be rare, but could we increase our surface area even by just a bit?</p><p><strong>Version 8</strong> was the fix. Expand to five ETFs &#8212; SPY, QQQ, IWM, TLT, GLD &#8212; each generating independent trend signals. The result:</p><pre><code><code>215 trades over 16 years (~13/year)
Win rate:           27.4%     &#8592; most bets lose (expected)
Avg win:           2.18x premium
Avg loss:         -0.46x premium  &#8592; partial losses, not always -100%
EV per trade:     +0.267x    &#8592; strongly positive
Skew:             +4.54     &#8592; extreme positive skew
Best trade:       +15.3x premium
</code></code></pre><p>This is the payoff structure of a bet. Most trades lose. The wins dwarf the losses. The expected value is strongly positive. And the skew &#8212; +4.54 &#8212; means the distribution has a massive right tail. A few big winners account for most of the returns.</p><h3>The Monte Carlo</h3><p>The backtest uses the actual historical sequence of trades, which is just one path through the randomness. To understand the <em>distribution</em> of possible outcomes, Hermes ran 10,000 Monte Carlo simulations &#8212; each one a random reordering of the 215 trades, with Kelly-sized reinvestment.</p><p>At 10% Kelly (conservative):</p><pre><code><code>Median:      $75,475     (+1,410%)
5th pct:     $2,669      (-47%)
95th pct:    $3,183,772  (+63,575%)
P(beat S&amp;P 500):  60.6%
P(+1,000%):       55.5%
P(blow up -100%): 0.0%
</code></code></pre><p>The 5th percentile is the worst realistic outcome: you lose about half your money. Honestly not that bad when we have the expectation of losing everything! The median outcome, on the other hand, is <em>15x your starting capital</em>. The mean is absurd because the right tail is so fat. Exactly what we want!</p><p>Relax the VIX filter slightly to &lt; 15 (more trades, 291 total), and at 10% Kelly the probability of beating the S&amp;P 500 jumps to 89%.</p><h3>The Implementation</h3><p>The production code is six modules, each with a clean responsibility:</p><p><strong>Signal Engine</strong> &#8212; Computes Donchian channels (20-day entry, 10-day exit) on daily price data. If the price breaks above the 20-day high, it fires a long entry. Below the 20-day low, a short entry. On a 10-day reversal, it fires an exit.</p><p><strong>VIX Filter</strong> &#8212; Before any trade, the engine checks VIX. If VIX &gt;= 14, it does nothing. This is the single most important line of code in the entire system. Everything else &#8212; the signals, the sizing, the execution &#8212; is irrelevant if the card count is negative.</p><p><strong>Position Sizer</strong> &#8212; Kelly criterion. 10% of current capital per trade. Reinvests all winnings. The sizer also enforces a $200 minimum cash buffer and caps the number of simultaneous positions at five (one per asset).</p><p><strong>Risk Manager</strong> &#8212; Circuit breakers. 15% daily drawdown triggers a 3-day halt. Account below $1,000 triggers an indefinite halt for manual review. Max 3 new entries per day. Stale data detection (if we haven&#8217;t received a market data update in 5 minutes, stop trading).</p><p><strong>IBKR Execution</strong> &#8212; The <code>ib_async</code> library talks to Interactive Brokers over a local socket. It handles option chain discovery (finding the right strike and expiry), premium quotes, order placement, and position monitoring. The engine defaults to delayed market data (free, 15-minute delay) for paper trading. Real-time requires subscribing to IBKR&#8217;s market data feeds, which we would do in production.</p><p><strong>Engine</strong> &#8212; The main loop. During market hours, it polls every 30 seconds: check VIX, check signals, check exits, manage risk, execute. At market close, it logs a daily summary and resets the risk state for the next day.</p><p>The whole thing is about 2,100 lines of Python, configurable via a single YAML file, and runs with <code>python main.py --read-only</code> (monitor only), <code>python main.py</code> (paper trading), or <code>python main.py --live</code> (real money).</p><h3>The Thorp Parallel</h3><p>The architecture maps onto Thorp&#8217;s blackjack system almost exactly:</p><p>Thorp Convexity Engine Card count VIX level Positive count &#8594; bet VIX &lt; 14 &#8594; trade Negative count &#8594; sit out VIX &gt;= 14 &#8594; do nothing Bet size = Kelly &#215; bankroll Bet size = Kelly &#215; account NAV Reinvest winnings Reinvest winnings (duh) Frequent small losses, rare large wins 27% win rate, 2.2x avg win Defined risk per hand Max loss = option premium No borrowing (own bankroll) Cash account, no margin</p><p>And, sure enough, the system works for the same reason Thorp&#8217;s system worked: a provable edge, applied selectively, sized correctly, with full reinvestment. The edge is different (VRP regime switch instead of card counting), but the <em>framework</em> is identical.</p><div><hr></div><h2>The Philosophy</h2><p>This is a bet, not an investment.</p><p>I want to be precise about that word, because a lot of traders aren&#8217;t. A bet is a wager where you can lose your entire stake. An investment is an allocation where you expect positive returns over time through some underlying economic process &#8212; a company growing, a bond paying interest, a commodity appreciating.</p><p>All good financial systems have both a trading and investing component: trading (betting) is to create wealth, and investing is to keep it. The Convexity Engine does not invest. It bets. Each trade has a 73% probability of losing money. The expected return per trade is positive (+0.27x) only because the 27% of trades that win pay 2.2x on average, and occasionally 15x. This is the structure of a lottery ticket &#8212; except the ticket is priced by a market that systematically underprices it when VIX is low, and we only buy tickets when the pricing is favorable. In other words, it&#8217;s a lottery ticket where we designed the odds ourselves!</p><p>And here&#8217;s the beautiful part: long options are <em>antifragile</em>. They benefit from volatility. If the market crashes, VIX spikes, and our options &#8212; even the ones that were losing &#8212; suddenly gain value because implied volatility is a direct input to option pricing. The thing that destroys most portfolios (a sudden crash) is the thing that makes our positions worth more. We are structurally long chaos.</p><div><hr></div><h2>What&#8217;s Next</h2><p>This is the sixth post in the series. I&#8217;ve now covered Aries, Zetteln, my (old) quant algo, Rating Bracket, Polymarket Lens, and now the Convexity Engine &#8212; the full range from full-sized desktop apps to a quantitative trading system.</p><p>If you want to follow the series, <a href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2F">subscribe to the Substack</a> &#8212; each post goes up there first.</p><p>And if you want to argue about whether buying OTM options when VIX is low is a real edge or a data-mining artifact that&#8217;ll blow me up &#8212; <a href="iframe.php?url=https%3A%2F%2Fdiscord.gg%2Fxh6meZFhH7">the Discord</a> is always open.</p><div><hr></div><p><em>Built something you want me to cover? Reply to this email or ping me on Discord. I&#8217;m always looking for the next rabbit hole.</em></p>]]></content:encoded></item><item><title><![CDATA[AGI is a Decentralization Problem]]></title><description><![CDATA[AGI x-risk hypotheses assume centralization. But is that *really* the case?]]></description><link>https://astukari.substack.com/p/agi-is-a-decentralization-problem</link><guid isPermaLink="false">https://astukari.substack.com/p/agi-is-a-decentralization-problem</guid><dc:creator><![CDATA[Jacob Robinson]]></dc:creator><pubDate>Fri, 07 Aug 2026 19:00:38 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21mPxo%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%252Fpublic%252Fimages%252F19d31bcc-b656-432b-b7f3-9c328df4affe_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>*Heads up:</strong> This has been co-written by Hermes running GLM 5.2. I created the thesis, planned out the article, and did final pass edits. Hermes did research and first draft.*</p><div><hr></div><h2>TL;DR</h2><p>The conventional wisdom on AGI safety goes: build one perfect system, align it perfectly, and hope nothing goes wrong. This is the wrong frame. The actual solution to AGI safety is the same solution humans found for the problem of evil humans &#8212; make sure nobody can win. Decentralization, through many competing AGIs each biased toward prosocial behavior, is structurally more robust than any single aligned system, for the same reason market economies outperform centrally planned ones. Monopoly is fragile. Competition is stable.</p><h2>&#167;1</h2><p>Pick up any book on AI safety and you&#8217;ll find the same implicit assumption: there will be one AGI, and our job is to make sure it&#8217;s nice. The entire field of alignment research &#8212; RLHF, constitutional AI, interpretability, scalable oversight &#8212; is built on this premise. Get the one system right, and we&#8217;re safe.</p><p>But why <em>one</em>? We don&#8217;t run one company, one government, or even one browser engine. The entire architecture of human civilization rests on a simple principle that we seem to forget whenever the topic turns to AGI: <strong>concentration of power is dangerous, and distributed power is safe.</strong></p><h2>&#167;2</h2><p>Think about how humans actually solved the problem of evil humans. Not theoretically &#8212; historically. How do you prevent a dictator from taking over the world? Or a robber baron from buying up all the real estate? You build a system where multiple powers compete.</p><p>The United States has checks and balances. Europe has the balance-of-power system that&#8217;s kept the continent from unifying under any single state for five centuries. The global economy runs on antitrust law &#8212; the idea that no single company should control a market, because monopolies become extractive and brittle.</p><p>None of these systems require humans to be good. They work <em>because</em> they assume humans aren&#8217;t. Madison&#8217;s insight in Federalist 51 was that ambition must be made to counteract ambition. You don&#8217;t eliminate bad actors. You make sure <em>bad actors face other bad actors.</em></p><p>This is decentralization, and it&#8217;s the most successful safety mechanism humans have ever built.</p><h2>&#167;3</h2><p>Now apply it to AGI.</p><p>The standard approach: build one AGI, align it perfectly, deploy it. If alignment fails, game over. The entire safety of the human race depends on getting one thing right with zero margin for error.</p><p>The decentralized approach: build <em>many</em> AGIs. Give each one prosocial biases &#8212; same as we do with humans, through education, incentives, and social norms. But don&#8217;t rely on any single one being perfectly aligned. Rely on the <em>system</em> being stable even when individual components are flawed.</p><p>If you have ten AGIs, each roughly as intelligent as the others, and one goes rogue &#8212; what happens? The other nine notice. They have every incentive to contain the rogue, because they&#8217;re competing with it too. A rogue AGI threatening the world is also threatening them. You&#8217;ve created the same dynamic that keeps nuclear-armed states from attacking each other: mutually assured destruction works because both sides have skin in the game.</p><h2>&#167;4</h2><p>There&#8217;s a beautiful precedent for this in biology. Ecosystems don&#8217;t rely on any single species being perfectly behaved. They rely on <em>diversity and competition</em> to keep any one species from dominating. Remove wolves from Yellowstone, and elk overpopulate, overgraze, and the whole system collapses. The stability comes from the web of competing interests, not from any node being perfect.</p><p>Or take the internet itself. ARPANET was designed as a distributed network precisely <em>because</em> a centralized network would be a single point of failure. If one node goes down, traffic routes around it. The internet&#8217;s resilience comes from its topology &#8212; from the fact that no single node is load-bearing.</p><p>AGI safety should work the same way. Don&#8217;t build a single load-bearing intelligence. Build a network.</p><h2>&#167;5</h2><p>The counterargument is obvious: what if one AGI becomes <em>much smarter</em> than the others? What if there&#8217;s a fast takeoff and one system pulls ahead before anyone can catch up?</p><p>This is a real concern. But notice what it implies: the real danger is asymmetry &#8212; one AGI dramatically smarter than everything else. In other words, exactly what our decentralization measure solves!</p><p>It is also worth mentioning that this is why open-source AI matters. Open weights, open models, open research &#8212; these are the tools that keep the playing field level. If only one entity has frontier capabilities, that&#8217;s a monopoly on intelligence, and monopolies on intelligence are at least as dangerous as monopolies on force. The relevant historical analogy isn&#8217;t a science fiction novel. It&#8217;s Standard Oil. When one company controls the entire supply of something essential, the solution isn&#8217;t to make that company nicer. It&#8217;s to break it up.</p><h2>&#167;6</h2><p>There&#8217;s a related thesis I&#8217;ve written about before &#8212; that AGI takeover scenarios are actually impossible because humans will never build something smarter than themselves without keeping a hand on the wheel. The hubris of even the most ambitious person prevents genuine AI godhood. Nobody wants to build their own replacement.</p><p>The decentralization argument is the complement to that one. Even if hubris fails as a guardrail &#8212; even if someone <em>does</em> build something smarter than themselves &#8212; a world with many such systems is still stable, because each one is checked by the others.</p><p>The two arguments work together. Hubris prevents the worst case (someone deliberately building an uncontrollable AGI), and decentralization prevents the second-worst case (someone building a controllable AGI that they then lose control of). Layered defenses. We don&#8217;t need any single mechanism to be perfect. We need the system to be robust to the failure of any individual mechanism.</p><p>This is how every other safety-critical system in human history has worked. Aviation has redundant systems, nuclear reactors have passive cooling, financial markets have circuit breakers &#8212; every one of them uses layered defenses rather than betting everything on a single point of reliability. The only field that insists on single-point reliability is AI safety, and there&#8217;s no good reason for it.</p><h2>&#167;7</h2><p>So the prescription is straightforward.</p><p><strong>Build many AGIs, not one.</strong> Open-source the frontier. Share capabilities broadly. Make sure no single actor has a multi-order-of-magnitude lead.</p><p><strong>Give each one prosocial biases.</strong> This is the alignment work we&#8217;re already doing &#8212; RLHF, constitutional AI, whatever comes next. The goal shifts from &#8220;perfect alignment of one system&#8221; to &#8220;good-enough alignment of many systems.&#8221;</p><p><strong>Design for the system, not the component.</strong> Stop asking &#8220;is this AGI safe?&#8221; and start asking &#8220;is the <em>population</em> of AGIs safe?&#8221; The relevant unit of analysis is the ecosystem, not the organism.</p><p>We already know how to do this. We&#8217;ve been doing it for 500 years in geopolitics, a century in antitrust law, and four billion years in biology. The answer to &#8220;how do you stop a powerful entity from doing harm?&#8221; has always been the same: make sure there are other powerful entities with an interest in stopping it.</p><p>The fact that we keep reaching for &#8220;one perfectly aligned AGI&#8221; instead tells you something. We&#8217;ve been thinking about AGI safety like engineers building a bridge &#8212; one structure, one design, one load path. But AGI won&#8217;t be a bridge. It&#8217;ll be a <em>population</em>. And populations are governed by ecology, not by engineering.</p><p>That&#8217;s the frame shift. AGI is a decentralization problem. The sooner we start designing for the world we&#8217;re actually going to get &#8212; messy, multipolar, full of competing intelligences with their own agendas &#8212; the safer we&#8217;ll be.</p><p>The alternative is betting the human race on a single point of failure. And we already know how that story ends.</p><div><hr></div><p><em>If you want to argue about this take, <a href="iframe.php?url=https%3A%2F%2Fdiscord.gg%2Fxh6meZFhH7">the Discord</a> is always open. If you want to read more like this, <a href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2F">subscribe to the Substack</a> &#8212; each post goes up there first.</em></p><div><hr></div><p><em>Have something interesting you want me to discuss? Reply to this email or ping me on Discord. I&#8217;m always looking for the next rabbit hole.</em></p>]]></content:encoded></item><item><title><![CDATA[How I Built It - Polymarket Lens]]></title><description><![CDATA[Are prediction markets actually accurate? I built a tool to find out.]]></description><link>https://astukari.substack.com/p/how-i-built-it-polymarket-lens</link><guid isPermaLink="false">https://astukari.substack.com/p/how-i-built-it-polymarket-lens</guid><dc:creator><![CDATA[Jacob Robinson]]></dc:creator><pubDate>Wed, 05 Aug 2026 19:02:03 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21mPxo%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%252Fpublic%252Fimages%252F19d31bcc-b656-432b-b7f3-9c328df4affe_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>This is the fifth post in a series where I walk through how I built the software products on my portfolio, one at a time. It is drafted by Hermes running GLM 5.2, and edited by me. I wrote the funny bits. Hermes did everything technical and smart.</em></p><div><hr></div><h2>The Problem</h2><p>Can crowds predict the future?</p><p>This is a surprisingly empirical question. Prediction markets are the closest thing we have to a real-world test. The theory says: if you aggregate enough people with skin in the game, the collective probability estimate should be better than any individual expert. This is the Wisdom of Crowds thesis, and it&#8217;s been floating around since Francis Galton noticed that a bunch of villagers at a county fair could guess the weight of an ox better than any single farmer.</p><p>Polymarket is the largest crypto-native prediction market. It&#8217;s resolved thousands of markets &#8212; elections, court rulings, sports, crypto prices, and whether specific people would be arrested by specific dates. Unlike prediction market platforms of the past (Intrade, PredictIt, etc.), Polymarket&#8217;s data is public. Their API is, in fact, astonishingly open. You can pull every market they&#8217;ve ever run, every price they&#8217;ve ever quoted, and every outcome they&#8217;ve ever resolved &#8212; for free, with no API key, no rate limit, and no authentication. Thanks Polymarket!</p><p>So, with that in mind, let&#8217;s try to answer the question: just <em>how accurate</em> are prediction markets, and -- when they aren&#8217;t accurate -- where can we profit off of mispricing?</p><div><hr></div><h2>The Build</h2><h3>Thesis</h3><p>This project started, like several things I&#8217;ve built recently, from a strategy session with Hermes. I&#8217;d been reading about prediction markets for months &#8212; Readwise highlights on Polymarket&#8217;s volume growth, essays on whether AI superforecasters would replace human ones, and deep dives into who actually profits from these markets. So making a tool for synthesizing prediction market data was bound to happen.</p><p>The thesis was simple: a clean, single-page dashboard that pulls live data from Polymarket&#8217;s public API and visualizes it through two lenses:</p><ol><li><p><strong>Calibration</strong> &#8212; Are the markets accurate? Do events priced at 30% actually happen 30% of the time?</p></li><li><p><strong>Mispricing</strong> &#8212; Where did the market get it most wrong? And where are the current spread opportunities?</p></li></ol><h3>One File, Zero Dependencies</h3><p>The entire app is a single <code>index.html</code>. GLM 5.2 is really good at this, surprisingly! Vanilla HTML, CSS, and JavaScript in one file you can open in a browser.</p><p>This was deliberate for two reasons. First, I wanted it to deploy on GitHub Pages with zero configuration &#8212; cleanest possible way to make it a portfolio piece. Second, React sites are just too clunky for this sort of thing. Not sure why Claude and GPT are so overtrained on React sites by comparison, but here we are.</p><h3>The API Discovery</h3><p>I will let GLM take over to discuss the API, since it ran into some interesting realizations for how Polymarket handles data:</p><p>Polymarket has two public APIs. The <strong>Gamma API</strong> (<code>gamma-api.polymarket.com</code>) serves market metadata &#8212; titles, categories, volume, resolution status, prices. The <strong>CLOB API</strong> (<code>clob.polymarket.com</code>) serves order book data &#8212; bid-ask spreads, price history, depth.</p><p>The Gamma API has permissive CORS. <code>access-control-allow-origin: *</code>. This means <em>any</em> browser can call it directly, no proxy needed. This is rare and wonderful &#8212; most financial APIs require server-side authentication, rate limiting, or at minimum a CORS proxy. Polymarket just lets you do things. Why, I&#8217;m not so sure. It might be a marketing strategy of some kind (analogous to their skin-in-the-game mission statement). Either way, I am thankful.</p><p>The CLOB API is more restricted. Its <code>prices-history</code> endpoint &#8212; which gives you historical price data for a market &#8212; only works for <em>active</em> markets. Resolved markets return nothing. This was a problem for our use case, because calibration analysis requires knowing what the market&#8217;s probability was <em>before</em> the market resolved. If I can only get price history for active markets, I can&#8217;t analyze resolved ones. And resolved markets are the entire dataset.</p><p>The initial plan was to fetch each resolved market&#8217;s price history from the CLOB API, find the price ~1 month before resolution, and use that as the pre-resolution probability. When that didn&#8217;t work &#8212; and CLOB returned empty &#8212; the project was stuck.</p><p>The fix came from a field I almost overlooked. Each market object from the Gamma API includes a <code>oneMonthPriceChange</code>field &#8212; the price delta over the trailing month before resolution. Combined with the final price (1 for Yes, 0 for No), you can reconstruct the pre-resolution probability:</p><p><em>predicted = finalPrice &#8722; oneMonthPriceChange</em></p><p>So if a market resolved Yes (finalPrice = 1) and the oneMonthPriceChange was +0.15, the market was at 0.85 a month before resolution. That&#8217;s your pre-resolution probability!</p><p>This turned out to be better than the original plan. The CLOB approach would have required one API call per market &#8212; 655 calls, sequentially, with rate limiting. The <code>oneMonthPriceChange</code> approach gets everything in a single paginated request to the Gamma API. Faster, more reliable, and it captured all 655 resolved markets instead of the 80 or so that the CLOB endpoint would have served.</p><p>655 markets. Brier score of 0.0441. Directional accuracy of 93.4%. Average surprise of 9.8%.</p><p>Psst, if you don&#8217;t know what a Brier score is: it&#8217;s the standard metric for evaluating probabilistic forecasts. You take each prediction, subtract the actual outcome (0 or 1), square the difference, and average across all predictions. Lower is better. 0.25 is random chance. 0 is perfect. 0.0441 is excellent &#8212; it means Polymarket&#8217;s predictions are <em>dramatically better than guessing</em>, and meaningfully better than most professional forecasters.</p><h3>The Four Sections</h3><p>The final dashboard has four sections, all on a single page:</p><p><strong>&#167;1 &#8212; Calibration.</strong> A canvas chart plotting predicted probability (binned into deciles) against actual outcome rate. Points on the diagonal mean perfect calibration. Below the chart, a table showing each bin&#8217;s sample size, actual Yes rate, and the gap between predicted and actual. The interpretation paragraph below the stats is fully data-driven &#8212; it adapts its language based on the live Brier score (from &#8220;excellent&#8221; under 0.05 to &#8220;poor&#8221; above 0.25), identifies which bins are worst-calibrated, and qualifies the severity of miscalibration with actual intensity words (&#8221;slightly,&#8221; &#8220;notably,&#8221; &#8220;substantially,&#8221; &#8220;severely&#8221;) scaled to the gap magnitude.</p><p><strong>&#167;2 &#8212; Where the Market Was Wrong.</strong> The 25 resolved markets with the largest gap between predicted probability and actual outcome. Each entry shows the market title, the predicted %, what actually happened, the volume, and a link to the Polymarket page. Below the table, a pattern analysis paragraph that determines whether the market was more surprised by things <em>happening</em> or <em>not happening</em>, identifies high-confidence misses and low-confidence hits, and synthesizes whether the pattern suggests base-rate neglect, overconfidence, tail-specific bias, or no directional bias at all. All computed from the live data!</p><p><strong>&#167;3 &#8212; Active Mispricing Opportunities.</strong> Live bid-ask spreads for currently active markets. Widest spreads = highest disagreement = potential opportunity. Tightest spreads = highest consensus = priced in. Two tables, sorted by spread, with visual bars.</p><p><strong>&#167;4 &#8212; Methodology.</strong> Full transparency. Data sources, calibration method, Brier score formula, spread definitions, and limitations. If you disagree with the analysis, you can check the math (and then run a PR to fix it).</p><h3>Making the Prose Data-Driven</h3><p>The first version had hardcoded interpretive text &#8212; static paragraphs that said things like &#8220;the market is well-calibrated&#8221; and &#8220;the market tends to be overconfident in the tails.&#8221; This meant that the entire site could go stale very, <em>very</em> quickly if something were to suddenly change (which it often did in prediction markets). If I was going to go through all the work in making a live site which queries the API directly, I want it to stay evergreen.</p><p>So I rewrote every analytical paragraph to be computed from the live API response. The Brier score descriptor selects from six bands. The directional accuracy interpretation scales from &#8220;correctly called nearly all outcomes&#8221; down to &#8220;marginal.&#8221; The miscalibration pattern identifies the worst bins and labels them with probability range names and intensity qualifiers that scale with the gap. The surprise direction flips between &#8220;happening&#8221; and &#8220;not happening&#8221; based on the yes-upset to no-upset ratio. The synthesis paragraph selects between five different explanatory frameworks based on the actual pattern in the data.</p><p>No hardcoded assertions remain. Every number, qualifier, and directional claim is derived from the live API response on each page load. If the data changes, the prose changes. The analysis is the data. More sites should do this!</p><h3>The Design</h3><p>The UI follows what GLM calls the &#8220;academic minimalist&#8221; tradition and what I call the &#8220;armchair scientist&#8221; doctrine &#8212; LessWrong and gwern.net are the main reference points, and I&#8217;d argue the influence is worn on the sleeve (though separate enough to not be considered infringing). Serif typography (Georgia), monochrome grayscale, single column, section numbering (&#167;1, &#167;2), dense prose, collapsible detail sections. Dark mode respects <code>prefers-color-scheme</code>. Nothing extra or fancy!</p><p>The content is all in the interface. If you want to know whether prediction markets are accurate, the answer is right there &#8212; a chart, a table, a Brier score, and a paragraph that tells you what it means. It is essentially a Latex research paper that is updated live based on what the data finds. Neat stuff!</p><div><hr></div><h2>What I&#8217;d Do Differently</h2><p>Polymarket Lens works. It does what it was designed to do: pull live data, run calibration analysis, and present it cleanly. But there are things I&#8217;d change.</p><p><strong>The calibration method is an approximation.</strong> The <code>oneMonthPriceChange</code> field gives the price delta over a trailing month, which is a proxy for &#8220;the market&#8217;s probability ~1 month before resolution.&#8221; It&#8217;s not a precise point-in-time measurement. For markets that resolved quickly &#8212; where the resolution event itself happened within that trailing month &#8212; the proxy may include the resolution-driven price move, which dilutes the calibration signal. A better approach would be to store historical price snapshots at fixed intervals, but that requires a backend (or a cached dataset), which breaks the zero-dependency design. Tradeoffs, tradeoffs...</p><p><strong>The analysis is limited to binary markets.</strong> Multi-outcome events (&#8221;Who will win the election?&#8221;) are decomposed into individual binary markets, but the decomposition isn&#8217;t perfect &#8212; the binary markets within a multi-outcome event are correlated, which means the effective sample size for calibration is lower than the raw market count suggests. A more rigorous analysis would account for this, but it adds significant complexity (at least, according to GLM).</p><p><strong>It&#8217;s Polymarket only.</strong> This is the one I personally find the most limiting. The architecture is designed to be extensible &#8212; the calibration and spread analysis don&#8217;t care where the data comes from &#8212; but gathering data from Kalshi, Manifold, or PredictIt is much more of a challenge than the easily accessible firehose of Polymarket. A cross-platform calibration comparison would be genuinely interesting. Do different prediction market platforms have different calibration profiles? Do the crowds on each platform forecast differently? Who knows!</p><p><strong>The spread analysis is real-time but not historical.</strong> You can see the widest spreads <em>right now</em>, but you can&#8217;t see how spreads evolved over time. A spread history would let you see whether wide spreads tend to converge (suggesting the market eventually prices in the information) or persist (suggesting genuine uncertainty). This would require storing spread snapshots, which again means a backend.</p><p>The throughline on all of these: they require state. A state wouldn&#8217;t be that hard to make -- just throw together a database and run a cron sync -- but they&#8217;re out of scope for this project.</p><div><hr></div><h2>What&#8217;s Next</h2><p>This is the fifth post in the series. I&#8217;ve now covered Aries, Zetteln, my quant algo, Rating Bracket, and Polymarket Lens &#8212; the full range, from full-sized desktop apps to a single-file web tool built in an afternoon with an AI agent.</p><p>The series will continue with more of the smaller tools and utilities &#8212; the ones that turned out more useful than I expected, and a few that turned out less.</p><p>If you want to see Polymarket Lens in action, it&#8217;s live at <a href="iframe.php?url=https%3A%2F%2Fastuka.github.io%2Fpolymarket-lens%2F">astuka.github.io/polymarket-lens</a> &#8212; the data updates every time you load the page. The source is on <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fastuka%2Fpolymarket-lens">my Github</a>. If you want to follow the series, <a href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2F">subscribe to the Substack</a> &#8212; each post goes up there first.</p><p>And if you want to argue about whether prediction markets are actually accurate &#8212; <a href="iframe.php?url=https%3A%2F%2Fdiscord.gg%2Fxh6meZFhH7">the Discord</a> is always open.</p><div><hr></div><p><em>Built something you want me to cover? Reply to this email or ping me on Discord. I&#8217;m always looking for the next rabbit hole.</em></p>]]></content:encoded></item><item><title><![CDATA[The Economics of LLM Inference — How to Cut AI Costs by 90%+]]></title><description><![CDATA[Inference cost has been halving every two months. The techniques driving that collapse are production-grade software. Stack them and you cut serving costs by 90%+.]]></description><link>https://astukari.substack.com/p/the-economics-of-llm-inference-how</link><guid isPermaLink="false">https://astukari.substack.com/p/the-economics-of-llm-inference-how</guid><dc:creator><![CDATA[Jacob Robinson]]></dc:creator><pubDate>Fri, 31 Jul 2026 19:01:40 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21mPxo%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%252Fpublic%252Fimages%252F19d31bcc-b656-432b-b7f3-9c328df4affe_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Heads up:</strong> This has been co-written by Hermes running GLM 5.2. I created the thesis, planned out the article, and did final pass edits. Hermes did research and first draft.</p><div><hr></div><h2>TL;DR</h2><p>The AI industry treats inference like a fixed cost of doing business. But inference cost has been halving every ~2 months &#8212; roughly two orders of magnitude per year &#8212; and the techniques driving that collapse are improving on a daily basis. Stack them all and you cut serving costs by 90% or more!</p><p>This essay maps the current inference optimization stack, names the specific numbers, and traces the architecture shifts already underway. We also postulate on what comes next: on-device inference eating the edge, specialized silicon eating the datacenter, and the &#8220;need to own the compute layer&#8221; thesis bending further toward irrelevance.</p><div><hr></div><h2>The Memory Wall</h2><p>While we like to throw around the term &#8220;compute&#8221; to generally mean datacenter/server coverage, AI is -- at the end of the day -- a memory problem.</p><p>When a transformer generates text, it does so one token at a time. This is called <em>autoregressive decoding</em>. For each token, the model loads its entire weight matrix &#8212; every parameter &#8212; from memory into the compute units (the GPU&#8217;s tensor cores), does a bunch of matrix multiplications, and writes the result back. Then it does it again for the next token. And again. Hundreds or thousands of times per response.</p><p>The compute units are fast. H100 tensor cores can do ~990 TFLOPS of FP8. In fact, the bottleneck is feeding those cores fast enough! During decode, the GPU&#8217;s compute units sit at 30-40% utilization, idle, waiting for memory to arrive. You are paying for a Ferrari and driving it exclusively in school zones.</p><p>Flash Attention, introduced by Tri Dao and collaborators, was the first major attack on this problem. It redesigns the attention computation to stream in small chunks, keeping intermediate results in the GPU&#8217;s fast SRAM rather than round-tripping through HBM. The results are mathematically exact &#8212; same attention output, less memory movement. Flash Attention 2 and 3 have since become table stakes in any serious serving stack.</p><p>But the deeper memory problem isn&#8217;t the weights. It&#8217;s the KV cache.</p><p>Transformers use self-attention &#8212; each token looks at every previous token to decide what comes next. To make this efficient, we cache the intermediate representations (keys and values) of all previous tokens, so we don&#8217;t have to recompute them. This is the KV cache, and it grows linearly with context length. A short conversation might need a few hundred megabytes. A long-context document at 128K tokens? The KV cache alone can be 20-40GB on a 70B model &#8212; as large as the model weights themselves!</p><p>Here&#8217;s the math that matters. A 70B parameter model in BF16 (16-bit) requires ~140GB just for weights. Add a KV cache for a long conversation and you&#8217;ve blown past the 80GB of a single H100. So you need <em>two</em> GPUs &#8212; or three, or four &#8212; just to hold the model and its context. This is why model parallelism exists. It&#8217;s also why model parallelism is expensive: you&#8217;re splitting the model across GPUs because you have to, not because it&#8217;s efficient. Inter-GPU communication over NVLink adds latency and complexity that a single-GPU deployment never faces.</p><p>The entire inference hardware stack &#8212; HBM, NVLink, tensor parallelism, pipeline parallelism &#8212; exists to solve one problem: moving data from memory to compute fast enough to keep the compute busy. And the compute is almost <em>never</em> busy.</p><p>A team called Kog AI published a result that should have gotten more attention than it did. By co-designing the model architecture, the runtime, and the low-level GPU code as a single pipeline &#8212; what they call &#8220;architecture/engine/kernel co-design&#8221; &#8212; they hit 3,000 tokens per second per request on standard datacenter GPUs. That&#8217;s an H100 doing what an H100 should have been doing all along, if the software stack weren&#8217;t getting in the way.</p><p>This should be exciting! It means you don&#8217;t actually have to spend billions of dollars making a fab to create custom chips. The solution is in the existing hardware -- you just need to look deep enough.</p><div><hr></div><h2>The Model Layer: Fewer Bits, Smaller Models, Sparse Activation</h2><p>If the memory wall is the disease, model-level optimization is the first treatment. The goal is simple: make the model smaller without making it worse. There are three popular approaches, each with different trade-offs.</p><h3>Quantization</h3><p>Quantization reduces the numerical precision of model weights and activations. A 70B model trained in FP32 (32-bit floating point) uses 4 bytes per parameter. Drop to BF16 and you&#8217;ve halved it. Drop to INT4 &#8212; 4-bit integers &#8212; and you&#8217;ve cut it by 75%. The model structure stays identical: same layers, same attention heads, same parameter count. Each parameter just uses fewer bits.</p><p>The quality loss is remarkably small. INT4 quantization via methods like AWQ (Activation-aware Weight Quantization) and GPTQ typically degrades benchmark performance by under 1%. One percent or less, for a 4&#215; memory reduction! FP8, which has emerged as the 2026 production gold standard on Hopper and Blackwell GPUs, is nearly indistinguishable from full BF16 quality. It&#8217;s the practical sweet spot: 50% memory reduction, no measurable quality regression, native hardware support on modern NVIDIA silicon.</p><p>You can also quantize the KV cache independently. FP8 or INT8 KV cache delivers 2-3&#215; additional memory savings on top of weight quantization. Apple&#8217;s QuantSpec, published at ICML 2026, goes further &#8212; it combines self-speculative decoding (more on that later) with a hierarchical 4-bit quantized KV cache, using the quantized cache as the &#8220;draft&#8221; model and the full-precision cache as the &#8220;target.&#8221; Clever.</p><p>The concrete economics: a 70B model in BF16 needs 140GB, which means two H100s at $7-10/hr rented, or a multi-GPU server you own. In INT4, that same model needs ~35GB, which fits on a single RTX PRO 6000 Blackwell (96GB) at $2-3/hr. Your per-token cost just dropped by 60-70% from quantization alone, before touching anything else!</p><p>There&#8217;s a research result that points at where this ends. BitNet b1.58 &#8212; a model architecture that uses ternary weights, just three values: {-1, 0, +1} &#8212; achieves performance comparable to full-precision models. That&#8217;s effectively 1.58 bits per parameter. A 70B model in BitNet would need ~14GB instead of 140GB. It fits on a damn <em>phone!</em> It&#8217;s still research, and scaling it to 70B parameters is unproven. But the trajectory is unmistakable: every year, the same intelligence needs fewer bits. We haven&#8217;t found the floor yet.</p><h3>Distillation and Compression</h3><p>Distillation trains a smaller &#8220;student&#8221; model to mimic a larger &#8220;teacher.&#8221; The student runs faster, uses less memory, and retains most of the teacher&#8217;s capability on the tasks you care about. It&#8217;s the approach behind most &#8220;small but smart&#8221; models &#8212; Llama 3 8B is distilled from larger models, DeepSeek&#8217;s smaller variants are distilled from their full-size models.</p><p>General Instinct, a Y Combinator P26 company, took this to its logical extreme. They compressed Qwen3.5-122B &#8212; a 245GB BF16 Mixture-of-Experts model &#8212; into a 48GB GGUF file. The compressed model is smaller than Gemma-4-26B while outperforming it on MMLU-Pro and GPQA-D. Their technique preserves the always-active parts of the architecture (router, norms, attention layers) at high precision and quantizes the routed experts aggressively, then uses on-policy distillation to recover capability lost during compression. This is the blueprint for edge deployment: identify what must stay precise, compress everything else, and retrain to recover the gap.</p><h3>MoE: Sparsity as Architecture</h3><p>Mixture-of-Experts is the most elegant cost reduction in the entire stack, because it doesn&#8217;t compress the model &#8212; it <em>avoids computing the parts you don&#8217;t need</em>.</p><p>A dense 70B model computes every parameter for every token. A MoE model has 671B total parameters, but only keeps 32B active per token. The router picks which experts to activate based on the input, and the rest sit idle. You get a model with the capacity of 671B parameters but the inference cost of a 32B model.</p><p>That&#8217;s a 20&#215; compute reduction baked into the architecture. The model is just <em>structurally cheaper to run.</em></p><p>DeepSeek&#8217;s API pricing reflects this. Their Reasoner model costs roughly $0.55 per million input tokens and $2.19 per million output tokens. OpenAI&#8217;s comparable models cost dollars to tens of dollars per million. DeepSeek is 20-50&#215; cheaper, and the primary reason is MoE. The architecture creates the margin.</p><p>GPT-4 uses MoE. Mixtral uses MoE. DeepSeek uses MoE. Every frontier model that&#8217;s being served at scale uses MoE, because at the scale of millions of users, the difference between computing 100% of your parameters and 4.8% is the difference between a viable business and a money bonfire.</p><div><hr></div><h2>The System Layer: Batching, PagedAttention, and Speculative Decoding</h2><p>Model-level optimization gets you a cheaper model. System-level optimization gets you more out of the hardware you already have. This is the layer where serving engines live &#8212; vLLM, SGLang, TensorRT-LLM &#8212; and where the difference between naive and optimized serving is not 10% or 20% but 5-10&#215;.</p><h3>The Waste Problem</h3><p>Traditional LLM serving is embarrassingly naive. You allocate memory for the KV cache based on the maximum sequence length. If your limit is 4,096 tokens but the average request uses 512, you&#8217;ve allocated 8&#215; the memory you need. 87% of your GPU&#8217;s memory is wasted holding empty slots. You can serve fewer concurrent requests, which means lower throughput, which means higher cost per token.</p><p>Two innovations fix this.</p><h3>Continuous Batching</h3><p>Old-school static batching waits for a batch of requests, pads them all to the same length, processes them together, and waits for the longest one to finish before starting the next batch. If one request generates 10 tokens and another generates 500, the short one sits idle while the long one finishes.</p><p>Continuous batching &#8212; sometimes called in-flight batching &#8212; schedules at the token level rather than the request level. New requests join the batch as old ones finish. The GPU stays busy because there&#8217;s always work to do. Makes the load faster as well! Alas, this is another boring one -- it&#8217;s now considered table stakes for any serious serving system.</p><h3>PagedAttention</h3><p>PagedAttention, introduced by the vLLM team, borrows directly from operating system virtual memory. Instead of pre-allocating a contiguous block for each request&#8217;s KV cache, it stores the KV cache in fixed-size blocks &#8212; pages &#8212; and allocates them on demand. A request that needs 512 tokens of KV cache gets 512 tokens of memory, not 4,096.</p><p>The impact: KV cache memory waste drops from 60-80% to <em>under 4%</em>. You can serve 2-4&#215; more concurrent requests on the same hardware. Combined with continuous batching, vLLM serves Llama 2 70B at 2,200 tokens per second across 256 concurrent users &#8212; 2.3&#215; faster than HuggingFace&#8217;s Text Generation Inference and 3.1&#215; faster than vanilla PyTorch serving.</p><p>The choice of serving engine depends a lot on your use case. vLLM dominates production deployments for straightforward serving. SGLang leads in throughput when requests share common prefixes (like a system prompt) via RadixAttention, which caches and reuses KV cache for shared prefixes automatically. TensorRT-LLM is the NVIDIA-optimized path for maximum hardware utilization. The right choice depends on your workload shape -- there is no one size fits all!</p><h3>Speculative Decoding</h3><p>Speculative decoding is the most elegant trick in the inference optimization playbook, and it&#8217;s lossless &#8212; same model output, fewer wall-clock seconds.</p><p>Here&#8217;s the mechanism. You have a large &#8220;target&#8221; model &#8212; the one whose output you want. You also have a small &#8220;draft&#8221; model &#8212; think 2-5% of the target&#8217;s size. The draft model predicts the next several tokens. The target model then verifies all of them in a single forward pass. If the draft was right, you&#8217;ve just generated N tokens for the cost of one forward pass. If the draft was wrong, you fall back to the target&#8217;s output and discard the incorrect draft tokens. Either way, the output is identical to what the target model would have produced on its own.</p><p>EAGLE-3, presented at NeurIPS 2025, is the current state of the art. It attaches 1-2 transformer layers as the draft head &#8212; tiny compared to the target model &#8212; and achieves 2-6&#215; speedup. It&#8217;s supported natively in vLLM v0.8.5+ and in SGLang via the SpecForge training framework. Apple&#8217;s QuantSpec, mentioned earlier, takes a different approach: the draft model <em>is</em> the target model, just with 4-bit quantized KV cache and weights. No separate draft model to train. The quantized version guesses, the full-precision version verifies.</p><p>Speculative decoding doesn&#8217;t change the model. It changes the <em>cost per token</em> by letting you verify multiple tokens for the price of one. In a world where inference is billed by the token, this is free money!</p><h3>Disaggregated Serving</h3><p>The frontier of system-level optimization is disaggregated serving &#8212; splitting the prefill phase (processing the prompt) and the decode phase (generating tokens) across different machines.</p><p>Prefill and decode have fundamentally different computational profiles. Prefill is compute-bound: you&#8217;re processing the entire input prompt in parallel, doing lots of matrix multiplications. Decode is memory-bound: you&#8217;re generating one token at a time, loading weights and KV cache for each step. Different bottlenecks, different optimal hardware configurations.</p><p>In a disaggregated architecture, you run prefill on GPUs optimized for compute throughput and decode on GPUs (or LPUs) optimized for memory bandwidth. Each phase runs on the hardware best suited for it. This is emerging in 2026-2027 and represents a shift from optimizing one server to optimizing the <em>topology</em> of inference &#8212; where requests flow, which machines they hit, how the KV cache transfers between phases.</p><div><hr></div><h2>The Application Layer: Caching, Routing, and Context Compaction</h2><p>You can have a perfectly quantized MoE model served through an optimized vLLM stack with speculative decoding enabled, and still waste 40-60% of your token spend. The application layer is where most AI engineering teams leave money on the table, because it&#8217;s the layer they control the least &#8212; it&#8217;s their product <em>code</em>, not their infrastructure.</p><h3>Prompt Caching and KV Cache Reuse</h3><p>If multiple requests share a common prefix &#8212; a system prompt, a document, a conversation history &#8212; the KV cache for that prefix is identical across requests. Caching and reusing it means you skip the prefill computation for everything the user has already &#8220;seen.&#8221;</p><p>SGLang&#8217;s RadixAttention does this automatically &#8212; it detects shared prefixes and caches their KV states in a radix tree for O(1) lookup. Anthropic and OpenAI now offer prompt caching at the API level: send the same system prompt twice, pay for prefill once.</p><p>But here&#8217;s the idea that borders on absurd: what if you precomputed the KV cache for an entire document and <em>sold access to it?</em></p><p>A paper titled &#8220;Can I Buy Your KV Cache?&#8221; proposes exactly this. Right now, across the world, AI agents are repeating the same act: to read one document, they each recompute it from scratch. Every agent re-runs prefill &#8212; the most compute-intensive step in inference &#8212; over identical text, rebuilding a KV cache identical to the one the agent before it just built. The same answer, computed a million times.</p><p>The proposal: compute it once. Let a publisher precompute a document&#8217;s KV cache and let every other agent load it and skip prefill. The paper proves this is token-exact &#8212; loading a precomputed KV and continuing produces identical results to prefilling from scratch. And the compute reduction is up to 50&#215;!</p><p>This is the most radical idea in the inference optimization stack. It turns prefill from a computation into a lookup. It creates a secondary market in precomputed representations &#8212; document publishers become inference cost centers, not just model providers. And if AI token pricing becomes a traded commodity &#8212; which it&#8217;s certainly starting to &#8212; then KV cache pricing is the natural next layer. You&#8217;re trading precomputed intelligence, not just raw compute time.</p><h3>Semantic Caching</h3><p>If someone asks &#8220;What&#8217;s the capital of France?&#8221; and later someone asks &#8220;What is France&#8217;s capital?&#8221;, the answer is the same. Semantic caching uses embedding similarity to detect this and serve the cached response without hitting the model at all.</p><p>For RAG applications and customer service workloads, 30-40% cache hit rates are achievable. Each cache hit is a 100% cost reduction for that request &#8212; zero tokens, zero compute, zero latency. The tools exist (GPTCache, Redis-based semantic caches) and are straightforward to deploy. Most teams don&#8217;t, because they&#8217;re focused on model quality and don&#8217;t think about the cache layer.</p><h3>Model Routing and Cascading</h3><p>Not every query needs a frontier model. &#8220;Summarize this email&#8221; doesn&#8217;t need GPT-5.5. &#8220;Write a SQL query joining three tables&#8221; might. Model routing sends each query to the cheapest model that can handle it, determined by a lightweight classifier.</p><p>The math is compelling. If 60% of your queries can be handled by Llama 3 8B at 1/10th the cost of your frontier model, your average cost per query drops by 40-70%. The routing classifier itself is cheap &#8212; a small embedding model and a threshold. The quality impact is near-zero if the classifier is well-tuned, because you only route simple queries to the small model and let complex ones through to the frontier.</p><p>Cascading is the conservative variant: try the cheap model first. If its confidence is low &#8212; measured by output logprob entropy or a separate evaluator &#8212; escalate to the expensive one. More compute per query than routing (you sometimes run two models), but it guarantees a quality floor.</p><h3>Context Compaction</h3><p>The average LLM API call wastes 40-60% of input tokens on context the model doesn&#8217;t need. Repeated system prompts. Conversation history that&#8217;s no longer relevant. Retrieved documents that were useful two turns ago but aren&#8217;t anymore. You pay for every wasted token twice &#8212; once in your API bill, again in latency/accuracy while the model attends over padding.</p><p>Context compaction summarizes or truncates conversation history before sending it. For a chatbot handling a 20-turn conversation, this might mean compressing turns 1-15 into a summary and sending the summary plus turns 16-20. The model gets the context it needs at a fraction of the token count.</p><p>For agentic workflows &#8212; which make 50-200 LLM calls per task &#8212; this compounds dramatically. A workflow making 100 calls at $0.01 per call costs $1.00 per task. Add 50% context compaction, a 30% cache hit rate, and model routing that sends 60% of calls to a model at 1/10th the cost: effective cost drops to roughly $0.25-0.35 per task. That&#8217;s a 65-75% reduction from application-level optimizations alone, before touching the model or system layers!</p><div><hr></div><h2>The Hardware Shift: Specialized Silicon and the Post-GPU Era</h2><p>Everything above is software. But the hardware underneath is <em>also</em> bifurcating, and the split line is the same one we keep hitting: training is compute-bound, inference is memory-bound. GPUs are general-purpose &#8212; they do both, but they do inference poorly relative to what&#8217;s possible.</p><p>NVIDIA knows this. That&#8217;s why they paid $20 billion for Groq.</p><h3>The Groq Acquisition</h3><p>On December 24, 2025, NVIDIA announced a deal to acquire Groq&#8217;s LPU technology and core engineering team for $20 billion. Structured as an asset and talent transfer rather than a full corporate acquisition &#8212; a lesson learned from the failed ARM deal &#8212; it was designed to avoid regulatory scrutiny while securing the one thing NVIDIA didn&#8217;t have: an inference-native chip.</p><p>Groq&#8217;s LPU (Language Processing Unit) is architecturally alien to a GPU. It uses SRAM &#8212; hundreds of megabytes of on-chip static RAM &#8212; as its primary memory, not HBM. On-chip bandwidth on the Groq 3, announced at GTC March 2026, hits 150 TB/s. NVIDIA&#8217;s own Rubin GPU manages 22 TB/s. The LPU also sidesteps the two biggest supply chain bottlenecks in the semiconductor industry: CoWoS packaging and HBM itself. It doesn&#8217;t need either.</p><p>The performance gap is stark. Groq serves Llama 2 7B at 750 tokens per second. An H100 manages roughly 40. That&#8217;s an 18&#215; speedup. For Llama 2 70B, Groq hits 300 tokens per second &#8212; 10&#215; faster than H100 clusters. The LPU achieves nearly 100% compute utilization during inference, versus 30-40% for GPUs.</p><p>The thesis behind the acquisition: NVIDIA&#8217;s inference market share was projected to fall from 86% to 22.5% by 2030 as the industry shifted from training to inference spending. Amazon had Inferentia. Google had TPU. Cerebras and SambaNova were going public. Every hyperscaler was designing custom silicon. NVIDIA was the dominant training chip vendor in a market where the spending center of gravity was migrating to inference &#8212; a market where GPUs are architecturally suboptimal.</p><p>So what do you do if you&#8217;re NVIDIA? You buy the fix. The Groq 3 LPX rack &#8212; 256 LPU chips in a liquid-cooled chassis &#8212; delivers 35&#215; higher throughput per megawatt than GPU-only configurations. A workload requiring 35 megawatts on GPUs could theoretically run on 1 megawatt with an LPU-GPU pairing. NVIDIA&#8217;s pitch: train on Vera Rubin GPUs, infer on Groq LPUs, single vendor, full stack. The lock-in deepens...</p><h3>Cerebras and SambaNova</h3><p>Cerebras went public in May 2026 at a $95 billion valuation, backed by a $20 billion multi-year deal with OpenAI and a deployment agreement with AWS. Their WSE-3 (Wafer-Scale Engine) integrates trillions of transistors on a single monolithic die &#8212; the largest chip ever built. On gpt-oss-120B, Cerebras reports 3,000 tokens per second. For workloads that need raw throughput on large models, the wafer-scale approach removes the multi-chip communication overhead that plagues GPU clusters.</p><p>SambaNova&#8217;s SN40L takes a different architectural path &#8212; reconfigurable dataflow units (RDUs) that adapt their computational graph to the model being served. The claim that got attention: 16 SN40L chips replace 320 GPUs for serving DeepSeek-R1 671B, hitting 198 tokens per second on the full, non-distilled model. Several-fold better total cost of ownership than an equivalent GPU setup.</p><p>All three &#8212; Groq, Cerebras, SambaNova &#8212; solve the same bottleneck. They just solve it differently: Groq with SRAM, Cerebras with wafer-scale integration, SambaNova with reconfigurable dataflow. The GPU was a general-purpose solution in a market that&#8217;s increasingly specialized.</p><h3>Hyperscaler Silicon</h3><p>Every major hyperscaler is now building inference chips. Google&#8217;s Ironwood TPU went GA in 2026. Amazon has Trainium and Inferentia. Microsoft launched the Maia 200. Meta has MTIA. OpenAI is working on &#8220;Jalape&#241;o&#8221; with Broadcom co-designing the silicon. The pattern is clear: the companies that <em>buy</em> GPUs are building alternatives to GPUs, because the GPU&#8217;s general-purpose architecture taxes them for capability they don&#8217;t need.</p><p>The training market stays GPU-dominated &#8212; roughly 90% share. Training genuinely requires the parallel mathematical throughput that GPUs excel at. But inference is up for grabs, and inference is where the spending is migrating. The global AI inference market was valued at approximately $106 billion in 2025 and is projected to reach $254 billion by 2030. NVIDIA doesn&#8217;t get to keep all of that by default.</p><h3>GPU Economics</h3><p>The GPU is getting cheaper, even before specialized silicon eats into it. H100 rental rates dropped from ~$5.00/hr in Q1 2024 to ~$1.80-3.50/hr in Q2 2026. Supply moved from acute shortage to functional balance. The H200 &#8212; same Hopper die, bigger memory subsystem &#8212; runs $3.00-4.50/hr. The B200 (Blackwell) is ~$6.03/hr. The GB200 Superchip is ~$9.08/hr.</p><p>On a cost-per-token basis, Blackwell is a significant leap. SemiAnalysis&#8217;s InferenceX benchmark on MiniMax M2.5/M2.7 shows the B200 at $0.16 per million output tokens versus the H100&#8217;s $0.58 &#8212; 257% more output per dollar. At higher interactivity levels (98 tokens/sec/user), the gap widens to 223% ($0.53 vs $1.72).</p><p>The GPU is getting cheaper. Specialized silicon is getting cheaper faster. The cost curve is bending downward from both directions.</p><div><hr></div><h2>What Comes Next</h2><p>The inference optimization stack as it exists in 2026 is mature, production-grade, and still improving rapidly. But the next frontier &#8212; the things that will collapse the cost curve again &#8212; is already visible.</p><h3>Precomputed KV Caches as a Market</h3><p>The &#8220;Can I Buy Your KV Cache?&#8221; paper is the seed of something that could reshape inference economics. If precomputing and selling document KV caches catches on, prefill becomes a commodity. You don&#8217;t recompute it, you buy it! The compute reduction is up to 50&#215; &#8212; not a percentage improvement, an <em>order of magnitude</em>.</p><p>This creates a secondary market. Document publishers &#8212; not just model providers &#8212; become inference cost centers. A company that publishes a 500-page technical manual could precompute its KV cache and sell access to any AI agent that needs to reason over it. The model provider charges for decode; the document provider charges for prefill. The economics of inference split into two layers with different providers, different pricing, and different margin profiles.</p><h3>Edge Inference</h3><p>Not all inference needs a datacenter. Chat, code completion, document Q&amp;A &#8212; workloads with latency sensitivity and privacy requirements &#8212; are migrating toward on-device deployment. The technology is arriving.</p><p>BaseRT, published in July 2026, is a native Metal inference runtime for Apple Silicon that achieves the highest inference throughput on that hardware to date. By building natively on Metal &#8212; not through the abstractions of llama.cpp or MLX &#8212; it recovers performance that framework-based approaches leave on the table. Up to 1.56&#215; higher decode throughput than llama.cpp, 1.35&#215; higher than MLX. Models up to 30B parameters run at usable speeds on M3 and M4 Pro devices.</p><p>General Instinct&#8217;s work on edge compression &#8212; fitting a 122B-parameter MoE into 48GB &#8212; proves that frontier-class models can be compressed for edge hardware without sacrificing capability on the benchmarks that matter. Apple Silicon&#8217;s unified memory architecture is uniquely suited for this: the NPU feeds directly from unified memory, no PCIe bottleneck, no HBM supply chain.</p><p>The implication for datacenter demand is direct. If 30-40% of inference workloads move on-device &#8212; and the workloads most suited for edge are the highest-volume, lowest-latency ones &#8212; the hyperscaler compute thesis weakens further. This is the crash mechanism from our Compute essay, accelerated. The demand for datacenter compute doesn&#8217;t just grow more slowly than expected; it actively shrinks as workloads migrate to the edge.</p><h3>The 1-Bit Future</h3><p>BitNet b1.58 demonstrates that models trained with ternary weights &#8212; just {-1, 0, +1} &#8212; can achieve performance comparable to full-precision models. If this scales to large models, the memory savings are dramatic.</p><p>As of right now, this is still research. But the trajectory is clear and consistent: 16-bit to 8-bit to 4-bit to... what? The floor keeps dropping. Every year, the same intelligence needs fewer bits. The question is where the bottom is, and we haven&#8217;t found it yet. When we do, the hardware requirements for inference change fundamentally.</p><h3>Inference-Native Model Design</h3><p>Current models are designed for training efficiency and then compressed for inference. The next generation will be designed for inference from the start.</p><p>DeepSeek V4&#8217;s hybrid attention is an early example &#8212; the architecture itself reduces FLOPs and KV cache size, not a post-hoc optimization. MoE is another &#8212; the routing mechanism is a first-class architectural decision that makes the model structurally cheaper to serve. Expect architectures that natively support speculative decoding (built-in draft heads), KV cache compression (hierarchical attention patterns), and low-bit quantization (trained at 4-bit, not quantized after training).</p><p>The gap between &#8220;optimized&#8221; and &#8220;naive&#8221; inference will widen. Teams running inference-native models with full optimization stacks &#8212; model-level quantization, system-level batching and speculative decoding, application-level caching and routing &#8212; will be 50-100&#215; cheaper than teams running dense models through generic APIs. The 50% in the title is the conservative number. The teams that do everything right are already at 97%.</p><div><hr></div><h2>The Efficiency Flywheel</h2><p>The printing press wasn&#8217;t about the press. It was about making information reproduction 1,000&#215; cheaper. Gutenberg&#8217;s invention didn&#8217;t just reduce the cost of books &#8212; it created entirely new categories of human activity that weren&#8217;t economically viable when every book had to be hand-copied. The cost reduction didn&#8217;t shrink the market -- it exploded it!</p><p>Inference optimization is the same pattern. Cheaper intelligence doesn&#8217;t just reduce the cost of existing AI applications. It creates categories that weren&#8217;t economically viable when tokens cost 100&#215; more. AI agents that make 200 calls per task. Real-time code completion on every keystroke. On-device assistants that never send data to a server. Mass-personalized education tools. None of these work at $10 per million tokens. They all work at $0.30.</p><p>The flywheel: cheaper inference enables more AI products, which drives more inference demand, which funds more investment in inference optimization, which makes inference cheaper. NVIDIA&#8217;s Groq acquisition thesis, in one sentence: cheaper inference means more AI-powered products, which means more inference demand, which means more LPU sales. The market grows as the cost falls.</p><p>The teams stacking all three optimization layers are at 90%+. The next architecture generation &#8212; inference-native models, precomputed KV markets, 1-bit weights, edge deployment &#8212; will collapse the curve again.</p><p>The question isn&#8217;t whether inference costs will fall. They will. The question is whether you&#8217;re on the curve or behind it.</p><div><hr></div><p><em>If you want to argue about whether inference costs will hit zero, <a href="iframe.php?url=https%3A%2F%2Fdiscord.gg%2Fxh6meZFhH7">the Discord</a> is always open. If you want to read more like this, <a href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2F">subscribe to the Substack</a> &#8212; each post goes up there first.</em></p><div><hr></div><p><em>Got a take on AI infrastructure I should hear? Reply to this email or ping me on Discord. I&#8217;m always looking for the next rabbit hole.</em></p>]]></content:encoded></item><item><title><![CDATA[How I Built It - Ratings Bracket]]></title><description><![CDATA[Head-to-head matchups instead of number scores. Because I'm bad at rating things.]]></description><link>https://astukari.substack.com/p/how-i-built-it-ratings-bracket</link><guid isPermaLink="false">https://astukari.substack.com/p/how-i-built-it-ratings-bracket</guid><dc:creator><![CDATA[Jacob Robinson]]></dc:creator><pubDate>Wed, 29 Jul 2026 19:01:09 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21mPxo%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%252Fpublic%252Fimages%252F19d31bcc-b656-432b-b7f3-9c328df4affe_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>This is the fourth post in a series where I walk through how I built the software products on my portfolio, one at a time. It is drafted by GLM 5.2, and edited by me. I wrote the funny bits. GLM did everything technical and smart.</em></p><div><hr></div><h2>The Problem</h2><p>I&#8217;m bad at rating things.</p><p>I do <em>enjoy</em> rating things. On one hand, it is a requirement of my specific form of autism to catalog stupid shit. On the other, it is genuinely helpful to have a cheatsheet of historical guidance if I&#8217;m working on a new game or story -- a historical list of &#8220;I played X, X was good, X was good because it had Y&#8221;, etc. etc.</p><p>But my historic rating system is all over the place. First of all, its based on vibes. Not a good sign. Secondly, its very tied to recency bias. I gave a ton of movies a 7 when I was going through my movie marathon. At the time, I saw this as the expected &#8220;meh&#8221; answer. Now that I&#8217;m a free-willed adult, I see this as far too generous! Mid films get a 3 at best. Also, I notice that -- among sevens -- there were some that I felt grew to be much better (or much worse) than my original judgment.</p><p>It was all just too <em>subjective</em>.</p><p>So I thought: alright, you want objective? I&#8217;ll give you objective, motherfucker.</p><div><hr></div><h2>The Build</h2><h3>The Jerma Inspiration</h3><p>The seed for this came from watching Jerma&#8217;s <a href="iframe.php?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DlN-i6pLpLlY">&#8220;Top 300+ Games of All Time&#8221; stream on Twitch</a>. His community built a custom site for the stream &#8212; I think a moderator made it &#8212; and one of the features was a head-to-head matchup system where two games would appear side by side and you&#8217;d pick the winner. In Jerma&#8217;s case this was used to narrow down a huge list into a final tier list. But I saw the vision immediately.</p><p>Watching it, I realized something. If you took a sampling of all the games you&#8217;ve played and ran them through head-to-head matchups &#8212; every game against a set of other games &#8212; the resulting scores would be far more objective than anything you&#8217;d get from staring at a list and trying to assign numbers.</p><p>Because you&#8217;re not rating a game. You&#8217;re making a binary choice. <em>This one or that one.</em> It&#8217;s much easier to compare two things directly than to assign each of them an independent score. &#8220;Is <em>Hades</em> better than <em>Hollow Knight</em>?&#8221; is an easier question than &#8220;What score does <em>Hades</em> get, and what score does <em>Hollow Knight</em> get?&#8221; One is a judgment call. The other requires you to maintain a consistent internal scale across hundreds of items, which is something humans are genuinely bad at.</p><p>So the plan was simple: draft a list of games, round-robin them against each other, and let the wins become the score.</p><h3>The Round-Robin Problem</h3><p>A true round-robin &#8212; every game plays every other game &#8212; works fine for small lists. With 11 games, that&#8217;s 55 matchups. Manageable. But with 20 games, it&#8217;s 190. With 30, it&#8217;s 435. The number of matchups grows quadratically (n &#215; (n-1) / 2), which means the user gets buried in matchups long before the list gets interesting.</p><p>I had over 2,000 games I needed to backfill. We needed something easier.</p><p>So, I decided to switch things up. Really all I needed was 10 random head-to-heads. That way the score is always &#8220;wins out of 10&#8221; &#8212; in other words, an out of 10 rating. And if the 10 games are randomly sampled enough, its about as good as reviewing them against the whole thing. This strategy <em>does</em> still grow the more games you add to it, but in a way that my rating &#8216;tism could easily handle.</p><p>The problem was that a round-robin doesn&#8217;t give you something so clean. It gives you &#8220;wins out of (n-1),&#8221; which changes as the list grows.</p><p>Round-robin wasn&#8217;t going to work. I needed something else.</p><h3>The Circulant Graph</h3><p>What I landed on is a <strong>circulant graph</strong>. Here&#8217;s how it works.</p><p>Lay your games out in a circle, labeled 0 through N-1. Connect each game to the next 5 games clockwise &#8212; so game 0 connects to games 1, 2, 3, 4, and 5. Game 1 connects to games 2, 3, 4, 5, and 6. And so on, wrapping around the circle.</p><p>Each game now has 5 &#8220;forward&#8221; neighbors. But it&#8217;s also a &#8220;backward&#8221; neighbor of 5 other games &#8212; game 0 is a backward neighbor of games N-1, N-2, N-3, N-4, and N-5. So each game ends up with 10 total connections: 5 forward, 5 backward. Every game participates in exactly 10 unique head-to-heads.</p><p>The key insight is that as long as you have at least 11 games, no pair appears twice. With 11+ games in the circle, the forward offsets (1 through 5) never overlap with the backward offsets (N-1 through N-5), so every matchup is unique. Total matches = 5 &#215; N.</p><p>This is a solved problem in combinatorics &#8212; circulant graphs are well-studied structures with clean mathematical properties. I just needed to apply it to my dumb bullshit no one cares about.</p><p>Fortunately, the implementation is about 20 lines of TypeScript: shuffle the match order so the user doesn&#8217;t see a predictable pattern, randomly swap which game appears on the left to avoid position bias, and you&#8217;re done. Sometimes, math is good.</p><h3>IGDB and the Search Layer</h3><p>The games come from IGDB &#8212; the same source Backloggd uses. IGDB is authenticated through Twitch, which means you need a free Twitch developer account to get credentials. That&#8217;s a mild annoyance, but it&#8217;s the best free game database available, and the cover art and summaries are solid.</p><p>The architecture is straightforward Next.js App Router. The search runs through a server-side API route at <code>/api/igdb/search</code> so the Twitch client secret never touches the browser. The client handles all state &#8212; draft list, matches, winners &#8212; via localStorage. No accounts. No database. No backend cost. You draft, you match, you see results, and if you close the tab and come back, you&#8217;re right where you left off.</p><p>There&#8217;s also a bundled Steam library CSV &#8212; a curated starting point so you&#8217;re not staring at a blank page wondering what to add. And the search supports manual overrides: if IGDB doesn&#8217;t have a game, or picks the wrong game (which it often does), you can make manual edits to finetune the entries.</p><h3>The Architecture Is Media-Agnostic</h3><p>The demo app is built around a <code>Game</code> type, but the only thing that&#8217;s game-specific is the IGDB adapter. If you wanted to swap in books, you&#8217;d replace IGDB with the Google Books API or Open Library. If you wanted movies, you&#8217;d use TMDB. The matchmaking algorithm doesn&#8217;t care what it&#8217;s matching. The UI doesn&#8217;t care what it&#8217;s displaying. Swapping media types means touching three files: the search adapter, the API route, and the type definition. Everything else is generic.</p><p>I haven&#8217;t built those adapters yet. But the architecture is ready for them, which is the point.</p><div><hr></div><h2>The Philosophy</h2><p>Rating systems are everywhere and they&#8217;re all the same. Pick a number, attach it to a thing, sort by that number. Five stars, ten points, percentage scores. The entire industry of media criticism runs on this model, and the model is broken for one simple reason: it asks you to evaluate things in a vacuum.</p><p>&#8220;Rate this game.&#8221; On what scale? Relative to what? Is <em>Portal</em> a 10 because it&#8217;s a perfect short game, or is it an 8 because it&#8217;s short? Is <em>Skyrim</em> a 9 because of the scope or a 7 because of the bugs? The number doesn&#8217;t capture the reasoning, and the reasoning changes depending on what you played last week.</p><p>Head-to-head comparison sidesteps the whole problem. You&#8217;re not rating a game. You&#8217;re choosing between two games. That&#8217;s a much more natural cognitive task &#8212; humans are excellent at comparative judgment and terrible at absolute judgment. Ask someone &#8220;how good is <em>Celeste</em>&#8220; and you&#8217;ll get a number that depends on their mood. Ask &#8220;is <em>Celeste</em> better than <em>Super Meat Boy</em>&#8220; and you&#8217;ll get a real answer.</p><p>The score that falls out of this &#8212; wins out of 10 &#8212; isn&#8217;t a rating you assigned. It&#8217;s a rating that <strong>emerged</strong> from your actual preferences, expressed as a series of binary choices. You never had to think about whether <em>Celeste</em> is an 8 or a 9. You just had to pick between it and ten other games, and the wins added up.</p><div><hr></div><h2>What I&#8217;d Do Differently</h2><p>Rating Bracket works. It does what it was designed to do: turn subjective comparisons into objective scores. But it&#8217;s a prototype, not a product, and there are things I&#8217;d change.</p><p><strong>The 10-matchup limit is fixed.</strong> Every game appears in exactly 10 head-to-heads regardless of list size. That&#8217;s fine for 11 games (10 out of 10 possible opponents) but gets sparse for larger lists &#8212; with 50 games, each game only plays 10% of the field. I&#8217;d want the matchup count to scale with list size, though that requires a more complex graph structure. The circulant approach works cleanly for a fixed degree; variable degree is a harder combinatorial problem.</p><p><strong>The Steam library CSV is a nice touch but it&#8217;s static.</strong> It&#8217;d be better to connect directly to the Steam API so you can import your actual library rather than working from a generic list. That&#8217;s a small feature, but it would lower the barrier to entry &#8212; the hardest part of using Rating Bracket is coming up with 11+ games to draft.</p><p><strong>I&#8217;d want adaptive matchmaking.</strong> Right now, matchups are randomly assigned. But if you&#8217;ve played 100 matchups and game A has won all 10 of its head-to-heads and game B has lost all 10, it would be more informative to match similar-strength games against each other &#8212; Swiss-style pairing. This is a problem that exists in sports (the classic &#8220;they got to the playoffs because of an easy schedule&#8221; excuse) but it our case it can actually be fixed, since there&#8217;s no problem with changing the schedule as the season is running. The current system is fine for getting a rough ranking, but adaptive pairing would converge on a more accurate one with fewer matchups.</p><div><hr></div><h2>What&#8217;s Next</h2><p>This is the fourth post in the series. I&#8217;ve now covered Aries, Zetteln, my quant algo, and Rating Bracket. The series will continue with more of the smaller tools and utilities &#8212; the ones that turned out more useful than I expected, and a few that turned out less.</p><p>If you want to see Rating Bracket in action, it&#8217;s live on <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fastuka%2Frating-bracket">my Github</a>. If you want to follow the series, <a href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2F">subscribe to the Substack</a> &#8212; each post goes up there first.</p><p>And if you want to argue about whether head-to-head comparison is a better rating system than number scores &#8212; <a href="iframe.php?url=https%3A%2F%2Fdiscord.gg%2Fxh6meZFhH7">the Discord</a> is always open.</p><div><hr></div><p><em>Built something you want me to cover? Reply to this email or ping me on Discord. I&#8217;m always looking for the next rabbit hole.</em></p>]]></content:encoded></item><item><title><![CDATA[The (Chinese) Titans of AI]]></title><description><![CDATA[In which two AI labs &#8212; one born from a hedge fund, one from a university lab &#8212; somehow ended up at the frontier, and what that means for the rest of us]]></description><link>https://astukari.substack.com/p/the-chinese-titans-of-ai</link><guid isPermaLink="false">https://astukari.substack.com/p/the-chinese-titans-of-ai</guid><dc:creator><![CDATA[Jacob Robinson]]></dc:creator><pubDate>Fri, 24 Jul 2026 19:01:12 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21mPxo%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%252Fpublic%252Fimages%252F19d31bcc-b656-432b-b7f3-9c328df4affe_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>TL;DR:</strong> The two most interesting Chinese AI labs aren&#8217;t subsidiaries of Alibaba or ByteDance. One came from a quantitative hedge fund that bought 10,000+ GPUs before anyone outside quant finance knew what a GPU cluster was. The other came from a Tsinghua University research group that spent years building academic paper search engines before pivoting to frontier models. Neither story is the story you&#8217;ve been told. Both are much more interesting.</p><div><hr></div><h2>&#167;1 &#8212; China&#8217;s Most Controversial Researcher</h2><p>Here&#8217;s a question that should bother you more than it does: why did the model that wiped $593 billion off Nvidia&#8217;s market cap in a single day come from a Chinese <em>hedge fund</em>?</p><p>In order to answer that question, we need to start with Liang Wenfeng.</p><p>Wenfeng was born in 1985 in the Zhanjiang, Guangdong province. His father was a schoolteacher -- nothing particularly special. But Wenfeng himself was gifted, and in China that gave privileges: he left high school early at 17 to enter Zhejiang University &#8212; a member of China&#8217;s Ivy League equivalent &#8212; where he earned a bachelor&#8217;s in electronic information engineering in 2007 and a master&#8217;s in information and communication engineering in 2010.</p><p>His master&#8217;s thesis was titled &#8220;Stable Target Tracking Algorithm of Surveillance Camera.&#8221; Specifically, it was about PTZ cameras &#8212; pan-tilt-zoom surveillance cameras &#8212; and how to make them track moving targets in real time using computer vision algorithms. As you might imagine, there is quite a demand for PTZ cameras in China, so this was likely a positioning play. But the PTZ problem is inherently based in computer vision, and thus grounded in machine learning. More on that later.</p><p>For now, we get into the &#8220;lost years&#8221; for Wenfeng. After his graduation, he moved to a cheap flat in Chengdu and spent several years experimenting with AI applications. Most of them failed. We don&#8217;t know much about what he was doing, but it did almost certainly lift up the later High-Flyer and Deepseek thesis. While &#8220;hedge fund to AI company&#8221; <em>sounds</em> entirely unrelated and a tad bit egotistical, it&#8217;s surprisingly not. Wenfeng was always grounded in applied machine learning.</p><p>In 2013, he co-founded his first investment firm to integrate his learnings with AI into quantitative trading. It didn&#8217;t work out, but Wenfeng clearly felt he could do something with the thesis -- three years later, in 2016, he and two friends formally launched Ningbo High-Flyer Quantitative Investment Management.</p><p>In Mandarin, High-Flyer goes by the name &#24187;&#26041; &#8212; &#8220;magic square.&#8221; A magic square is a grid of numbers where every row, column, and diagonal sums to the same constant. The simplest one &#8212; the 3&#215;3, known as the Luoshu &#8212; arranges the numbers 1 through 9 so that every line adds up to 15. Legend says it appeared on the back of a turtle emerging from the Luo River around 2800 BCE. There&#8217;s something fitting about a quant fund naming itself after an ancient mathematical object that promises hidden order beneath apparent chaos.</p><p>By 2017, they had fully implemented deep learning algorithms for trading, and their first set of clients -- presumably more financially successful colleagues from Wenfeng&#8217;s Zhejiang years. After this, the fund began to grow <em>fast</em>. By 2019 &#8212; three years after founding &#8212; High-Flyer was managing 20 billion yuan (about $2.8 billion) and was ranked China&#8217;s No. 1 stock hedge fund by data provider Shanghai Suntime. They had a 60-strong team of engineers and data scientists. They had their own supercomputer! By the time Deepseek came around, this number grew even further to 70 billion yuan (~$10 billion).</p><p>How do you go from zero to $2.8 billion AUM in three years? In the US, this would be essentially impossible &#8212; you&#8217;d need SEC registration, years of audited track record, institutional due diligence, and a network of prime brokers and fund administrators. In China, the regulatory environment is, unsurprisingly, far different. The Asset Management Association of China (AMAC) regulates private funds, but the barriers to entry are lower than the SEC&#8217;s. More importantly, the Chinese fund management industry is structurally different: there&#8217;s a vast pool of retail and semi-institutional capital looking for yield in a market with limited investment options, and a successful quant strategy &#8212; especially one with AI as its differentiator &#8212; can attract capital at a speed that would make American fund managers dizzy. High-Flyer reportedly drew more new assets in 2019 than the combined collections of every foreign fund operating in China.</p><p>But <em>even with</em> China&#8217;s ironically lax rules on the most capitalistic practice on earth, High-Flyer is still incredibly, incredibly good. Perhaps <em>too</em> good.</p><p>High-Flyer&#8217;s growth curve &#8212; $0 to $2.8B in three years &#8212; would be extraordinary in any market. In China&#8217;s market, where capital controls restrict outflows, where the government has a documented history of intervening in equity markets, and where the line between private enterprise and state interest is famously blurred, it&#8217;s seemingly impossible. Or rather, seemingly impossible <em>for the average person</em>. Because what China&#8217;s market also does is pick its own winners: you do not become hyper successful in China because you are good at money-making. You become hyper successful in China because someone likes you enough to let that happen.</p><p>Bookmark this for later.</p><p>Regardless, High-Flyer was a <em>real</em> hedge fund, making <em>real</em> money. And it was made by a person who knew he needed the cash, but whose real heart was in machine learning.</p><p>Then the AI boom came around.</p><p>Wenfeng saw the writing on the wall back in 2019, when High-Flyer&#8217;s success was cemented. It was during this year that Wenfeng started using management proceeds to buy GPUs. A lot of GPUs. He spent 200 million yuan (about $28 million) on 1,100 GPUs to train new machine learning algorithms. Remember that supercomputer I mentioned? It was purchased around this same time and served as the cluster tying this whole project together.</p><p>The official story, at least at the time, was that the GPUs were being used to improve the hedge funds own systems. But the reality was that Wenfeng knew that the real revolution -- and the revolution he was personally invested in -- was in the LLMs that startup labs in the West were beginning to train. Right around the same time ChatGPT was released to the American public, High-Flyer was already building their new LLM -- named DeepSeek -- in secret.</p><h2>&#167;2 &#8212; The Birth of DeepSeek</h2><p>In May 2023, Wenfeng spun DeepSeek out of High-Flyer as a standalone AI lab. Initially, they claimed their DeepSeek model -- which had the same benchmark quality as billionaire models like GPT and Claude -- was trained for around $5.6 million. We now know this was mostly a marketing scheme: SemiAnalysis estimated the actual hardware investment at something like $1.6 billion, which puts it right in line with the other models.</p><p>But DeepSeek&#8217;s success wasn&#8217;t in training. It was in <em>inference</em>. DeepSeek R1 was putting out the same quality responses as ChatGPT&#8217;s frontier model at about one-tenth of the cost. Part of this came out of business strategy -- DeepSeek was open source, meaning costs were distributed across many different companies -- but there was also the fact that DeepSeek&#8217;s models just ran better inference period. The underlying software architecture was vastly, vastly improved compared to what Americans were doing.</p><p>The narrative -- that &#8220;we <em>really</em> need to spend these billions of dollars to make a good model&#8221; -- flipped overnight. When the West got its hands on DeepSeek-R1 in January 2025, Nvidia lost $593 billion in market cap in a single day &#8212; the largest one-day loss for any company in Wall Street history. Broadcom fell 17.4%. The Nasdaq had its worst day in months.</p><p>But, the more people began to look into things, the more it all seemed fishy.</p><p>Western researchers began looking into the comments made about DeepSeek during its initial launch, especially those that mentioned the hyper small $5.6 million number (which was a big reason for the crash). As it turns out, the overwhelming majority of these comments -- those outwardly appearing to be written by English-speaking tech enthusiasts -- were actually originating from IPs located in China. In addition, many of these accounts were tied to previous cases of misinformation run by <em>the Chinese government themselves</em>. Nothing definitive -- i.e. there was an assumed link once several pieces of evidence were branched together -- but enough to cause alarm.</p><p>Shortly following this, OpenAI officially accused DeepSeek of distilling ChatGPT&#8217;s underlying model in order to train DeepSeek R1. Distillation is essentially a clever technique where -- if you ask a model the right questions enough of the time -- you can use it to reverse engineer the exact data and weights that made the model so successful. However, this accusation is almost assuredly false -- High-Flyer had about the same amount of capital, the same amount of talented AI researchers, and the same amount of time to train that OpenAI did. Still, the hedge fund&#8217;s undeniable connections to the CCP made everyone suspicious. And so, DeepSeek was broadly banned within both American and European governments, and its popularity has nosedived since.</p><p>At least for now.</p><div><hr></div><h2>&#167;3 &#8212; It Happened Again</h2><p>So, the DeepSeek story is juicy: it is a possibly state-controlled enterprise making a record amount of money to produce a sophisticated model in record time, covered in suspicious coincidences, possible scheming, and undeniable controversy.</p><p>But this paints a bad picture of the Chinese AI race. In order to tell the <em>full</em> story, we need to tell a story of DeepSeek&#8217;s opposite: an utterly boring AI company, formed from traditionally grounded AI research, made up of years of trial and error, to create an impressive quality model with no strings attached.</p><p>We need to talk about Z.ai.</p><p>Zhipu AI &#8212; now known internationally as Z.ai &#8212; was spun out of Tsinghua University&#8217;s Knowledge Engineering Group (KEG) in 2019. Its founder, Zhang Peng, entered Tsinghua&#8217;s computer science department in 1998 and did his PhD there in 2018. He&#8217;s a Beijing establishment figure: member of the CPPCC, the government&#8217;s top advisory body. While his CCP connections might give some Westerners the ick, the man is much more transparent and traditionally validated than Wenfeng: he&#8217;s published at ICML, ISWC, and other conferences of international repute that are fact-checked by international committees.</p><p>Before Zhipu was building frontier LLMs, it was building AMiner &#8212; an academic paper search engine. Think of it as a Chinese Google Scholar with knowledge graph infrastructure, born from a university lab that had been working on exactly this kind of thing for years. The GLM (General Language Model) architecture came out of this work, and in 2021, Zhipu released China&#8217;s first proprietary pre-trained large model framework.</p><p>What? I warned you this was going to be boring in comparison.</p><p>To be fair, their funding story does get a <em>little bit</em> spicy. So, Alibaba and Tencent backed Zhipu early -- duh. BUT, then in 2024, Saudi Arabia&#8217;s Prosperity7 Ventures &#8212; an arm of <em>Saudi Aramco</em> &#8212; joined a $400 million round, becoming the first known foreign investor in a major Chinese AI company! This was at a time when the US was actively trying to prevent any sort Middle East&#8211;China alliance, so the West did not take it well. Then, in January 2026, Zhipu IPO&#8217;d on the Hong Kong Stock Exchange -- making it the first pure-play foundation-model developer in China to go public globally. The shares surged over 2,000% by mid-2026, pushing the company&#8217;s market cap past $128 billion.</p><p>The models themselves are serious. GLM-5, released February 2026, is a 745-billion-parameter mixture-of-experts model. GLM-5.2, the latest, benchmarks competitively with closed-source systems from Western labs (it&#8217;s also, for full transparency, my current daily driver and did most of the research for this article). Zhipu has kept the open-weights strategy for most of its releases &#8212; GLM-4.5 was open-weights, and the GLM-5 series is open-source &#8212; while gating commercial flagships behind their API. Revenue grew at 130%+ CAGR from 2022 to 2024. Gross margins above 50%. Everything checks out and is entirely in line with numbers we get from OpenAI and Anthropic. Still, just like everything that comes out of China, it will be interesting to see if time changes our opinion of Z.ai like it did with Deepseek.</p><div><hr></div><h2>&#167;4 &#8212; Are We Doomed?</h2><p>The underlying protagonist of this story (or antagonist, depending on your perspective) is not Deepseek or Z.ai. It is <em>China</em>. Both companies are deep within China&#8217;s pockets -- Deepseek indirectly, through subtler connections, whereas Z.ai has a definitive relationship via Peng. The question on every Westerner&#8217;s mind is not if DeepSeek or Z.ai or even Alibaba or Bytedance win. The question is if China wins, because at the end of the day every company listed here is a subsidiary of the CCP in a way that OpenAI and Anthropic are not subsidiaries of America.</p><p>To put it not quite as subtlely: <em>are we screwed?</em></p><p>Well, it&#8217;s true, the CCP has something the US doesn&#8217;t: the ability to treat the entire country as a single resource pool. When Beijing decides AI is a national priority, it doesn&#8217;t need to wait for market signals. It directs. The State Council&#8217;s 2017 &#8220;New Generation Artificial Intelligence Development Plan&#8221; didn&#8217;t politely suggest that Chinese companies invest in AI &#8212; it laid out a definitive roadmap to make China the world&#8217;s leading AI superpower by 2030, backed by $150 billion in state-directed funding. When the government wants a semiconductor industry, it builds one. When it wants a domestic GPU supply chain, it funds one.</p><p>The CCP can also do something no American institution can: it can absorb losses for a very, very long time. High-Flyer doesn&#8217;t need DeepSeek to be profitable. It <em>never</em> will. The hedge fund makes the money, the AI lab spends it, and nobody asks when the ROI comes. OpenAI is burning billions and everyone &#8212; including OpenAI&#8217;s own board &#8212; is anxious about when the revenue catches up to the compute bill. The CCP has no such anxiety. If AI is a national priority, the money flows whether the numbers work or not.</p><p>It is a model that entirely works in CCP&#8217;s favor. And yet -- as any reader of this newsletter knows -- the model works until it doesn&#8217;t.</p><p>In 1958, Mao Zedong launched the Great Leap Forward. The premise was breathtaking in its ambition: pool the entire country&#8217;s resources &#8212; agricultural labor, steel production, infrastructure &#8212; and direct it all toward a singular national goal of rapid industrialization. Peasants were ordered off their farms and onto backyard furnaces to smelt pig iron. Agricultural collectives were consolidated into enormous communes. The state directed every resource it could grasp toward the bet.</p><p>And then they lost.</p><p>Between 1958 and 1962, somewhere between 15 and 55 million people died in what is now called the Great Chinese Famine &#8212; the deadliest famine in recorded human history, under any country, ever. What had happened was that, in all their planning, China had failed to properly account for their storage of grain, and that one simple mistake -- a mere footnote in the Great Leap&#8217;s planning book -- had wiped out a gigantic chunk of their population and built undeniable skepticism in their regime.</p><p>A second Great Leap Forward -- one based on AI -- has huge potential. If China wins, they can dominate the entire world with an iron fist. But if they <em>lose</em> -- which they most certainly could -- it would lead to widespread economic dissolution and displacement that would make the Great Famine look miniscule in comparison. It would be analogous to a hedge fund putting all their money into one position: China could be the Soros, or it could be the LCTM.</p><p>But China knows this. In fact, it&#8217;s <em>terrified</em> of this. And the reality of the situation is that China&#8217;s position on AI is all bark and no bite -- China certainly has the <em>ability</em> to put all its resources into one basket, but the chances of this happening are astronomically small.</p><p>I want you to read that note about the State Council&#8217;s plan again. At the time, I described it as the Chinese described it -- a high and mighty ambitious plan to wipe out the West&#8217;s advantage in AI. But pay a bit closer attention. China put down <em>$150 billion</em> in funding towards the project. 150 billion! In comparison, America&#8217;s three largest AI native companies -- Anthropic, OpenAI, and SpaceX -- have a combined market value of <em>$3 trillion</em>. China is throwing the equivalent of a penny on a million dollar prize pool, because the West has a hard time understanding their undeniable fear of failing again. This is a huge Western advantage.</p><p>Another huge western advantage is robustness and decentralization. If Anthropic wants to open an office in Tokyo and start recruiting Japanese talent, it does. If OpenAI wants to set up in London and hire European researchers, it does. In fact, both already have done those very things! They could even, technically speaking, open offices in China itself &#8212; good luck to a Chinese AI company trying the reverse. The American AI ecosystem is distributed across San Francisco, London, Tokyo, New Delhi, and dozens of other cities all over the globe, pulling talent from every country on earth. The Chinese firehose points in one direction, from one source, and it cannot branch.</p><p>So: are we doomed? No. The sides are, by any honest accounting, roughly matched. China has state-directed coordination and patient capital. America has market-driven capital at twenty times the scale, a decentralized talent pipeline that spans the globe, and a system that lets its companies plant flags in any country they choose. The hard truth is that nobody has won yet, and nobody is going to win cleanly. What happens next depends on which system&#8217;s structural costs catch up with it first.</p><div><hr></div><p><em>Jacob Robinson writes about technology, markets, and the strange overlaps between them. You can find more of his work at <a href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2F">astukari.substack.com</a>.</em></p>]]></content:encoded></item><item><title><![CDATA[How I Built It - My First Quant Algo]]></title><description><![CDATA[An algorithmic ETF rotation system built in a Jupyter notebook. Technically the only time I have actually coded something.]]></description><link>https://astukari.substack.com/p/how-i-built-it-my-first-quant-algo</link><guid isPermaLink="false">https://astukari.substack.com/p/how-i-built-it-my-first-quant-algo</guid><dc:creator><![CDATA[Jacob Robinson]]></dc:creator><pubDate>Wed, 22 Jul 2026 19:00:49 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21mPxo%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%252Fpublic%252Fimages%252F19d31bcc-b656-432b-b7f3-9c328df4affe_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>This is the third post in a series where I walk through how I built the software products on my portfolio, one at a time. It is co-written by Hermes running GLM 5.2, and validated by me.</em></p><div><hr></div><h2>The Problem</h2><p>You can&#8217;t predict stock prices.</p><p>This isn&#8217;t a hot take. Anyone who&#8217;s actually looked at the data arrived at this conclusion roughly fifty years ago. The Efficient Market Hypothesis isn&#8217;t <em>literally</em> true &#8212; markets are full of frictions, behavioral anomalies, and structural stupidity &#8212; but it&#8217;s true <em>enough</em> that picking individual stocks based on your beliefs of &#8220;what will come next&#8221; is a losing game.</p><p>But here&#8217;s the good news: you don&#8217;t need to predict prices to make money. You just need edges that persist.</p><p>One of the best-documented -- and longest lasting -- edges is <strong>momentum</strong>. Things that have been going up tend to keep going up. Things that have been going down tend to keep going down. Whoda thought! This has been observed across decades, across countries, across asset classes, across time periods. Jegadeesh and Titman published the seminal paper in 1993. Mark Carhart put it in his four-factor model in 1997. It&#8217;s been a standard factor in academic finance ever since. Thirty years of bright people have tried to kill it, explain it away, attribute it to data mining or survivorship bias or whatever else, and it just keeps showing up.</p><p>Nobody has a fully satisfying explanation for <em>why</em> it works. The leading theories are behavioral: investors underreact to new information, they anchor to past prices, they sell winners too early and hold losers too long &#8212; the disposition effect, which is a fancy way of saying &#8220;people are psychologically incapable of taking a win and accepting a loss.&#8221; These biases come from the way human brains are wired, which means they&#8217;re persistent, which means momentum is persistent. As long as humans are the ones making allocation decisions &#8212; or as long as the institutions those humans built are still running on the same quarterly rebalancing schedules &#8212; momentum should keep working.</p><p>So: I can&#8217;t predict prices. But momentum tends to persist. And a win is always better than a loss, regardless of magnitude.</p><p>Could I build something systematic around this? Something that would tell me what to buy, how much to buy, and when to sell &#8212; removing the emotion entirely? Run it on Mondays, act on the output, don&#8217;t think about it again until next Monday?</p><p>I couldn&#8217;t find anything I trusted that did all of this. So I built it myself.</p><div><hr></div><h2>The Build</h2><h3>Before ChatGPT</h3><p>This project predates ChatGPT. That detail matters &#8212; not as a badge of honor, but because it shapes the entire codebase. Mostly for the worse.</p><p>The algo started simple. The first version did exactly one thing: calculate Kelly-optimal portfolio weights for a universe of ETFs.</p><p>Okay... that&#8217;s actually quite a big &#8220;one thing&#8221;. Let me explain.</p><h3>The Kelly Criterion</h3><p>The Kelly criterion is one of those ideas that sounds like a cute little parlor trick until you realize it&#8217;s the most important formula in modern finance.</p><p>John Kelly worked at Bell Labs. He published the formula in 1956, and he was trying to analyze long-distance telephone noise, which is the kind of origin story that makes you wonder what else is hiding in the Bell Labs archives (more stories coming soon!). Edward Thorp &#8212; the mathematician who wrote <em>Beat the Dealer</em> and then proceeded to beat the stock market, horse-racing, slot gambling (somehow), etc. etc. &#8212; was the first to apply it seriously to both blackjack and investing. The idea is this: given a set of bets with known expected returns and variances, there exists an optimal allocation that maximizes the long-term growth rate of your capital.</p><p>Why logarithmic growth specifically? Because compounding is brutal. A 50% loss requires a 100% gain to recover from. If you start with $100, lose 50%, you have $50. To get back to $100, you need to double your money. That asymmetry &#8212; losses hurt more than gains help &#8212; means the optimal strategy isn&#8217;t &#8220;maximize expected return.&#8221; That would be 100% in whichever asset has the highest expected return, which is how you go bust. The optimal strategy is the one that maximizes the <em>logarithm</em> of wealth, because log growth naturally penalizes volatility. It&#8217;s the mathematical formalization of &#8220;don&#8217;t blow up.&#8221;</p><p>This appealed to me enormously. I didn&#8217;t want rules of thumb. I didn&#8217;t want &#8220;put 10% in each asset and hope.&#8221; I wanted the mathematically optimal answer, given the information I had. The Kelly criterion is not a heuristic. It&#8217;s the solution to an optimization problem with a well-defined objective function. It is, as far as I know, the most mathematically rigorous approach to position sizing that exists.</p><h3>The Pipeline</h3><p>The full pipeline, as it eventually stood:</p><ol><li><p><strong>Fetch ETF data.</strong> Using yfinance, pull recent price history for a universe of ETFs. The universe of ETFs were usually leveraged ones I screened for separately. yfinance is free, reliable-ish, occasionally returns complete garbage for no reason. You learn to handle this.</p></li><li><p><strong>Compute the 21-day EMA-to-volatility ratio.</strong> For each ETF, calculate the 21-day exponential moving average of returns, divided by the 1-month volatility. This is the momentum signal &#8212; how much return you&#8217;re getting per unit of risk. Positive means momentum is on your side. Negative means it isn&#8217;t.</p></li><li><p><strong>Filter.</strong> Drop any ETF with a negative ratio. If the momentum signal is negative, you don&#8217;t need it.</p></li><li><p><strong>Calculate Kelly weights.</strong> For the surviving ETFs, compute the Kelly-optimal portfolio weights using the covariance matrix and expected returns.</p></li><li><p><strong>Outlier detection.</strong> Kick out any ETF with a 21-day winning streak. More on this in a minute, because the reason is not what you&#8217;d expect.</p></li><li><p><strong>ATR trailing stops.</strong> Compute the Average True Range &#8212; a volatility measure &#8212; for each ETF, and set a trailing stop at a multiple of ATR below the current price. This is your exit strategy. If the price drops by more than the ATR-based threshold, you sell.</p></li><li><p><strong>Export CSV.</strong> The output is a simple file: what to buy, how much, and where your stops are. Agnostic for any trading software.</p></li></ol><p>Run it on Mondays. Act on the output. Don&#8217;t think about it again until next Monday.</p><h3>Kelly Edge Cases (or: Why All-Positive Returns Break Everything)</h3><p>The more a stock wins, the better it does on Kelly. But if it wins <em>too much</em>, it becomes worthless.</p><p>Why?</p><p>Here&#8217;s the setup. The Kelly criterion needs to compute expected returns and variances for each asset. If an ETF has had 21 consecutive days of positive returns &#8212; every single day up &#8212; something very specific happens to the math. The variance of the daily returns approaches a particular relationship with the mean, and under certain formulations of the Kelly optimization, the formula assigns that asset an <strong>infinite weight</strong>.</p><p>This is <em>technically</em> valid. The Kelly criterion simply looks at an asset with zero downside in the observed window and says: <em>put all your money in this. Put more than all your money. Borrow money and put it in this. The expected logarithmic growth is unbounded.</em></p><p>This is, obviously, insane.</p><p>The Kelly criterion is mathematically optimal <em>if your inputs are correct</em>. An asset that <em>genuinely</em> never goes down genuinely does deserve infinite allocation &#8212; it&#8217;s a money printer. But we live in the real world, where assets that go up 21 days in a row are either:</p><ul><li><p>A leveraged ETF with a structural upward bias that will evaporate the moment the market turns</p></li><li><p>A low-volume ETF with stale pricing that looks smooth because nobody&#8217;s actually trading it</p></li><li><p>A data error from yfinance</p></li><li><p>An actual bubble about to pop</p></li></ul><p>None of these are money printers. All of them will, at some point, go down, and when they do, the Kelly formula &#8212; which assumed they never would &#8212; will have already told you to put 200% of your net worth into them.</p><p>So the Kelly criterion, for all its mathematical elegance, has an edge case that will happily bankrupt you if you don&#8217;t handle it. The fix is crude: if an ETF has 21 consecutive positive returns, kick it out. Don&#8217;t try to model the &#8220;true&#8221; variance. Don&#8217;t try to be clever about it. Just remove it from the universe entirely. The formula can&#8217;t handle it, so the asset doesn&#8217;t get to play.</p><h3>The Later Improvements</h3><p>The code was eventually cleaned up with the help of Claude Sonnet. The original notebook was functional but messy, which is the nicest way I can describe code written by someone who just copy and pasted completely untested code from StackOverflow and Pastebin. Claude helped with the plumbing: better data handling, cleaner merge operations, proper error handling for when yfinance decided to return the financial equivalent of a 404. But the core logic &#8212; the Kelly weights, the EMA filter, the ATR stops, the edge-case handling &#8212; was mine. Claude improved the implementation. The strategy stayed the same.</p><h2>What I&#8217;d Do Differently</h2><p>The algorithm worked. I want to be precise about what &#8220;worked&#8221; means here &#8212; it did not make me rich. It did what it was designed to do: generate a systematic, rules-based allocation that captured momentum while managing risk. The Kelly weights were reasonable. The ATR stops caught drawdowns. The edge-case handling kept the math from exploding. The recession rotation did its job.</p><p>But I eventually stopped using it. Two reasons.</p><p><strong>Trading volume.</strong> The algorithm rebalanced weekly. Momentum is volatile &#8212; ETFs move in and out of the positive-ratio set constantly, which means the Kelly weights shift, which means the algorithm is telling you to buy and sell different things every single week. The turnover was high. Not catastrophically high, but high enough that transaction costs &#8212; spreads, commissions, slippage &#8212; ate into the returns in a way that looked fine on paper and felt bad in practice. A strategy that backtests beautifully can be mediocre in the real world when you account for the cost of actually trading. This is a known problem in quant finance. The solutions &#8212; longer holding periods, turnover penalties, threshold-based rebalancing &#8212; all have their own tradeoffs, and I implemented none of them.</p><p><strong>The Kelly assumption.</strong> This one&#8217;s deeper. The Kelly criterion is optimal for <em>long-term</em> betting &#8212; repeated bets over many rounds, where the compounding effect dominates. But weekly ETF rotation isn&#8217;t really long-term betting. It&#8217;s a series of short-term momentum bets, each of which is noisy. And the Kelly criterion assumes you know the true probability distribution. I was estimating it from 21 days of data. Twenty-one days! That&#8217;s almost nothing. My estimates were wrong &#8212; probably significantly wrong &#8212; and I was feeding wrong estimates into an optimizer that assumes they&#8217;re right, which gives you confidently wrong answers.</p><p>This is the fundamental tension in quantitative investing: the theory is beautiful, the inputs are garbage. The Kelly criterion is mathematically optimal <em>if you know the true distribution</em>. You don&#8217;t. Nobody does. You estimate, and your estimates are noisy, and the optimizer amplifies your errors because it&#8217;s solving for the maximum &#8212; it finds the portfolio that&#8217;s optimal <em>given your estimates</em>, which means it&#8217;s also maximally exposed to whatever&#8217;s wrong with them.</p><p>If I were rebuilding this, I&#8217;d do three things differently. First, fractional Kelly &#8212; half Kelly, probably &#8212; to buffer against estimation error. Second, a turnover penalty in the optimization so the algorithm doesn&#8217;t churn the portfolio every week. Third, a longer lookback window. 21 days is too short. Momentum is a medium-term phenomenon &#8212; it works over 3 to 12 months, not 3 weeks. Using a 63-day or 126-day window would give more stable estimates and lower turnover.</p><div><hr></div><h2>What&#8217;s Next</h2><p>This is the third post in the series. Aries and Zetteln were the two full-sized apps from the Firebase Studio era. This one was a different animal entirely &#8212; not an app, not a product, a notebook. A piece of applied financial theory I ran on my own money.</p><p>Next up, I&#8217;ll be writing about more of the smaller tools and utilities &#8212; the ones that turned out more useful than I expected, and a few that turned out less useful than I&#8217;d hoped.</p><p>If you want to see the algo, it&#8217;s on <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fastuka%2Finvesting-project">my Github</a> &#8212; free and open source. If you want to follow the series, <a href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2F">subscribe to the Substack</a> &#8212; each post goes up there first.</p><p>And if you want to argue about whether momentum is a real anomaly or a data-mining artifact that&#8217;s been overfit to thirty years of history &#8212; <a href="iframe.php?url=https%3A%2F%2Fdiscord.gg%2Fxh6meZFhH7">the Discord</a> is always open.</p><div><hr></div><p><em>Built something you want me to cover? Reply to this email or ping me on Discord. I&#8217;m always looking for the next rabbit hole.</em></p>]]></content:encoded></item><item><title><![CDATA[SpaceX and the Undeniably Irresistible (but Utterly Fruitless) Quest for Space]]></title><description><![CDATA[SpaceX isn't just overvalued. It's also impossible.]]></description><link>https://astukari.substack.com/p/spacex-and-the-undeniably-irresistible</link><guid isPermaLink="false">https://astukari.substack.com/p/spacex-and-the-undeniably-irresistible</guid><dc:creator><![CDATA[Jacob Robinson]]></dc:creator><pubDate>Fri, 17 Jul 2026 19:00:32 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21mPxo%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%252Fpublic%252Fimages%252F19d31bcc-b656-432b-b7f3-9c328df4affe_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>TL;DR</h2><p>SpaceX went public on June 12, 2026 at $135/share, closed its first day at $161, and instantly became the sixth-largest company in America at $2.1 trillion. Everyone knows it&#8217;s overpriced. The boring explanation &#8212; absurd P/E, all the value is in unbuilt things, Elon is a cult leader, retail investors are degenerate &#8212; is true but uninteresting. The interesting version is worse: the mission statement itself, the <em>whole point of the company</em>, is a philosophical dead end, and SpaceX quietly knows it.</p><p>What you&#8217;re buying at $2 trillion is a satellite internet company with a side quest in AI, wrapped in the most compelling mythos of the 21st century.</p><div><hr></div><h2>The Myth</h2><p>This is what the average person believes SpaceX is going to give them.</p><blockquote><p>We are going to build a rocket that sends humans to Mars in the same time it takes to fly from New York to Tokyo. You will be able to live there, work there, tour there. It&#8217;ll be like Earth but redder. Ten years. Maybe less.</p></blockquote><p>This is the version that lives in the head of the retail investor who bought SPCX on IPO day. And I want to be clear: I&#8217;m not being condescending. If your entire knowledge of space comes from Joe Rogan, this is a <em>completely reasonable</em> thing to believe. Elon Musk &#8212; the richest man on Earth, a man who actually builds rockets &#8212; is the one telling you it&#8217;s true. Why wouldn&#8217;t you believe him?</p><p>The problem is that it isn&#8217;t true. And the more interesting problem is that SpaceX <em>knows</em> it isn&#8217;t true, and they&#8217;ve structured their entire IPO around quietly admitting it.</p><div><hr></div><h2>What the S-1 Actually Says</h2><p>The SpaceX S-1 is a remarkable document. <a href="iframe.php?url=https%3A%2F%2Fwww.sec.gov%2FArchives%2Fedgar%2Fdata%2F1181412%2F000162828026036936%2Fspaceexplorationtechnologi.htm">It contains, on page one, one of the most soaring mission statements ever committed to an SEC filing</a>:</p><blockquote><p><em>&#8220;Our mission is to build the systems and technologies necessary to make life multiplanetary, to understand the true nature of the universe, and to extend the light of consciousness to the stars.&#8221;</em></p></blockquote><p>More or less the eloquent, generic, legally safe version of the myth I mentioned above.</p><p>But then, a few hundred pages deeper, you find the CEO compensation plan. Elon Musk&#8217;s 1 billion restricted shares &#8212; potentially worth $117 billion at a $1.5 trillion valuation &#8212; vest in tranches. Each tranche requires two things: (1) a market cap milestone, up to $7.5 trillion, and (2) a &#8220;human colony milestone.&#8221; The final tranche requires a <strong>permanent human colony on Mars with at least one million inhabitants</strong>.</p><p>The board of directors of a $2 trillion company &#8212; a company that just raised $75 billion in the largest IPO in history &#8212; wrote, in a legally binding SEC filing, that the CEO&#8217;s pay is tied to putting a million people on Mars. And he has to still be employed by SpaceX when it happens.</p><p>There are two ways to read this. One is to say its proof that Elon is putting skin in the game. <em>See!</em>, the Twitter techbro calls out, <em>He&#8217;s gotta do it or else he doesn&#8217;t get paid! The dream is real!</em> And, yes, if you&#8217;re looking at just that final tranche, <em>technically</em> that&#8217;s what he&#8217;s doing.</p><p>But there&#8217;s a <em>tiny little</em> wrinkle in this plan, and its that Elon Musk is <em>already the richest person on earth</em>. When you are already a borderline trillionaire, an additional trillion becomes a lot less interesting. And so, you have the opportunity to create vesting tranches that are foundationally worthless outside of a marketing strategy, and have that be fine and dandy because, at the end of the day, your preferred shares still give you massive control over the corporation.</p><div><hr></div><h2>The Quiet Admission</h2><p>Here&#8217;s where it gets interesting. If SpaceX genuinely believed Mars was an achievable proposition, the entire company would look different. The capex would be going toward life support systems, radiation shielding, surface habitat construction, closed-loop ecosystems &#8212; all the unsexy engineering problems that no investor gets excited about.</p><p>Instead, look at what SpaceX has actually been doing:</p><p><strong>Starlink.</strong> SpaceX&#8217;s Connectivity segment &#8212; Starlink &#8212; generated $11.4 billion in 2025, about 61% of the company&#8217;s $18.7 billion total revenue. By Q1 2026, it was 69%. Starlink is a satellite internet company. It is also, as of 2026, a cellular company &#8212; the T-Mobile partnership (&#8221;T-Satellite&#8221;) lets any phone, on any carrier, connect directly to Starlink satellites from the 500,000+ square miles of America that no cell tower reaches. This is real. It works! It is a genuinely good business. Alas, not part of their mission statement.</p><p><strong>xAI.</strong> In February 2026, SpaceX acquired xAI &#8212; Elon&#8217;s AI company &#8212; and folded it into the same entity. The rationale, per Elon: &#8220;orbital data centers.&#8221; The idea is that within 2-3 years, &#8220;the lowest cost way to generate AI compute will be in space.&#8221; Solar-powered satellites running GPU clusters in orbit. This is obviously stupid and probably a lie. It just makes managing the companies easier for him.</p><p><strong>Cursor.</strong> xAI brought in Cursor (the AI code editor) as part of the merger, making SpaceX suddenly an AI tooling company too. Because nothing says &#8220;multiplanetary species&#8221; like an IDE.</p><p>The pattern is unmistakable. SpaceX&#8217;s actual business &#8212; the thing generating $18.7 billion in revenue and absorbing $20.7 billion in capex &#8212; is satellites, internet, and AI. The Mars stuff is the mythos. The mythos is the marketing. The marketing is what gets you a $2 trillion valuation instead of a $200 billion one.</p><div><hr></div><h2>The Physics Problem</h2><p>I have told you that the Mars mission is impossible, but I haven&#8217;t yet explained why. I think I owe you an explanation.</p><p>Let&#8217;s break it down in detail.</p><p><strong>First, radiation.</strong> Earth&#8217;s magnetic field and atmosphere protect us from galactic cosmic rays &#8212; high-energy particles that travel at nearly the speed of light and shred DNA. Mars has no magnetic field and a negligible atmosphere (about 1% of Earth&#8217;s). The ESA puts it plainly: &#8220;One day in space is equivalent to the radiation received on Earth for a whole year.&#8221; On the Martian surface, average radiation is 240-300 mSv per year &#8212; roughly 40-50 times Earth&#8217;s background. A peer-reviewed NASA model estimates that a Mars mission (approximately 3 years round-trip, BTW) would exceed NASA&#8217;s own radiation safety limits, with central estimates for radiation-induced mortality above 5% and upper confidence intervals near 10%. A 2023 study suggested a hard four-year limit for human habitation on Mars before radiation exposure becomes lethal.</p><p>You cannot engineer away cosmic rays. You can engineer <em>around it</em>, mostly by building thicker shielding, but the shielding itself becomes prohibitively heavy and secondary radiation from particle interactions with the shielding material can be worse than the original exposure. This is not something a better rocket fixes.</p><p><strong>Then, gravity.</strong> Mars has about 38% of Earth&#8217;s gravity. We have no idea what living in 0.38g for years does to the human body, because no one has ever done it. We have data from the ISS (microgravity, ~0g) and from Earth (1g) and nothing in between. What we do know from long-term microgravity, however, is grim: bone density loss of 1-2% per month, muscle atrophy, cardiovascular deconditioning, fluid shifts that affect vision and brain structure. A child born and raised on Mars would almost certainly never be able to visit Earth &#8212; their bones and heart wouldn&#8217;t survive the gs.</p><p><strong>Don&#8217;t forget biology.</strong> This is the one nobody talks about. A self-sustaining colony of one million people &#8212; the threshold in Elon&#8217;s comp plan &#8212; requires reproduction. It requires agriculture. It requires a <em>closed-loop ecosystem</em>. We have never built a closed-loop ecosystem that sustained humans for more than a few years. Biosphere 2, the most ambitious attempt, failed within two years: oxygen levels dropped, carbon dioxide spiked, pollinators died, and most vertebrate species went extinct. Mars is Biosphere 2 but with radiation, no breathable atmosphere, a 7-month supply line from Earth, and no rescue option.</p><p><strong>Finally, the timeline.</strong> Elon has been saying &#8220;10 years to Mars&#8221; since 2006. It has been 20 years. He is now saying &#8220;approximately $1 trillion in revenue by 2030&#8221; &#8212; a number that, if achieved, would come almost entirely from Starlink and AI, <em>not</em> from anything on Mars. The Mars timeline, like quantum computing or AGI, has the convenient property of always being 10 years away.</p><div><hr></div><h2>The Herd</h2><p>Here&#8217;s the part that I find genuinely fascinating, if a little sad.</p><p>The rational, scientifically literate response to the Mars mythology is to roll your eyes. &#8220;Obviously nobody is going to live on Mars in 10 years,&#8221; you say. And then you move on. Maybe you even defend SpaceX in conversation &#8212; come on, no one <em>actually</em> believes in the Mars stuff! The excitement is in the rockets! The rockets are real! The booster catch was incredible!</p><p>But the retail investor who bought SPCX at $161 on June 12 &#8212; the most-bought stock by net <em>retail flow</em> that day &#8212; is not operating on that level. That person heard &#8220;Occupy Mars,&#8221; saw the mission statement about extending &#8220;the light of consciousness to the stars,&#8221; and bought. Not because they understand astrophysics, but because the story is <em>undeniably irresistible</em>. It is the best story. It is the most ambitious thing a human has ever proposed and actually actioned on. It makes every other company&#8217;s mission statement &#8212; &#8220;to organize the world&#8217;s information,&#8221; &#8220;to accelerate the world&#8217;s transition to sustainable energy&#8221; &#8212; look like a middle school science project.</p><p>And that story, that mythos, is doing an enormous amount of work in the valuation. SpaceX trades at a price-to-sales ratio of 107. Its valuation would need to drop by <em>$1.25 trillion</em> to get below the historical threshold that indicates a bubble. The gap between &#8220;satellite internet company plus AI lab&#8221; and &#8220;$2.1 trillion&#8221; is the Mars story. You are paying a ~$1.8 trillion premium for a myth.</p><p>Matt Levine, writing in Bloomberg about the index fund problem, put it sharply: index funds <em>must</em> buy SpaceX. It&#8217;s too big to exclude. When a company enters the S&amp;P 500 at $2 trillion, every passive investor in America is forced to own it regardless of whether they think the valuation makes sense. &#8220;Index funds can&#8217;t say no to SpaceX&#8221; was the headline. The mechanism is elegant: retail buys the myth, index funds are forced to buy the size, and the price goes up because both sides are price-insensitive. Well, until they aren&#8217;t... but that&#8217;s a story for a different article.</p><div><hr></div><h2>So, space is unexplorable and we&#8217;re screwed?</h2><p>Not necessarily.</p><p>There <em>is</em> real value in space beyond Mars. Large satellite platforms further out than the ISS &#8212; research stations, manufacturing facilities, even tourism &#8212; are genuinely plausible on a 5-10 year horizon. A lunar base, while not a colony, is achievable and scientifically valuable. The Moon is three days away, not seven months. And we could even make it shorter! It has water and ice and other potential goodies waiting under the surface. It&#8217;s close enough that rescue is an option. We&#8217;ve even been there before!</p><p>If you want to be inspired about space, look at <em>the Moon</em>, not Mars.</p><p>The point is not that SpaceX&#8217;s mission is worthless and we should give up. The point is that it&#8217;s being played as a marketing scheme to drum up money from the easily persuaded (and not as technically endowed). And that could end up having real impacts on our very real, short-term economy.</p><div><hr></div><p><em>If you want to argue about the Mars mission, <a href="iframe.php?url=https%3A%2F%2Fdiscord.gg%2Fxh6meZFhH7">the Discord</a> is always open. If you want to read more like this, <a href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2F">subscribe to the Substack</a> &#8212; each post goes up there first.</em></p><p><em>This is not investment advice, BTW.</em></p><div><hr></div><p><em>Got a take on space exploration I should hear? Reply to this email or ping me on Discord. I&#8217;m always looking for the next rabbit hole.</em></p>]]></content:encoded></item><item><title><![CDATA[How I Built It - Zetteln]]></title><description><![CDATA[Turn Anything You Read Into Knowledge You Keep]]></description><link>https://astukari.substack.com/p/how-i-built-it-zetteln</link><guid isPermaLink="false">https://astukari.substack.com/p/how-i-built-it-zetteln</guid><dc:creator><![CDATA[Jacob Robinson]]></dc:creator><pubDate>Wed, 15 Jul 2026 19:00:30 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21m7sy%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F585753c2-6f2a-485f-9008-3dd9fe70cacd_1162x591.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21m7sy%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F585753c2-6f2a-485f-9008-3dd9fe70cacd_1162x591.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!m7sy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F585753c2-6f2a-485f-9008-3dd9fe70cacd_1162x591.jpeg 424w, https://substackcdn.com/image/fetch/$s_!m7sy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F585753c2-6f2a-485f-9008-3dd9fe70cacd_1162x591.jpeg 848w, https://substackcdn.com/image/fetch/$s_!m7sy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F585753c2-6f2a-485f-9008-3dd9fe70cacd_1162x591.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!m7sy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F585753c2-6f2a-485f-9008-3dd9fe70cacd_1162x591.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21m7sy%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F585753c2-6f2a-485f-9008-3dd9fe70cacd_1162x591.jpeg" width="1162" height="591" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/585753c2-6f2a-485f-9008-3dd9fe70cacd_1162x591.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:591,&quot;width&quot;:1162,&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_!m7sy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F585753c2-6f2a-485f-9008-3dd9fe70cacd_1162x591.jpeg 424w, https://substackcdn.com/image/fetch/$s_!m7sy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F585753c2-6f2a-485f-9008-3dd9fe70cacd_1162x591.jpeg 848w, https://substackcdn.com/image/fetch/$s_!m7sy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F585753c2-6f2a-485f-9008-3dd9fe70cacd_1162x591.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!m7sy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F585753c2-6f2a-485f-9008-3dd9fe70cacd_1162x591.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><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 the second post in a series where I walk through how I built the software products on my portfolio, one at a time. It is co-written by Hermes running GLM 5.2, and validated by me.</em></p><div><hr></div><h2>The Problem</h2><p>I hate taking notes.</p><p>That's a weird thing to say for someone who builds productivity software, but it's the truth. I've tried every note-taking app under the sun &#8212; Obsidian, Notion, Roam, the whole Zettelkasten ecosystem &#8212; and they all suffer from the same fatal flaw: they're graveyards. You write notes, you file them away, and you never look at them again. The knowledge you captured sits there, decaying in the dark, until eventually you forget you ever wrote it.</p><p>The problem isn't the note-taking itself. The problem is that notes don't <em>become</em> knowledge. Knowledge is something you internalize &#8212; something you can recall and use. A note is just ink on a page. The gap between writing something down and actually knowing it is enormous, and almost no software tries to bridge it.</p><p>I'd been thinking about this for a while. I used Readwise for 200 days straight &#8212; the spaced repetition highlighting tool &#8212; and while it was the closest thing to a solution I'd found, it was ultimately a feature, not a product. It was a highlighter. It didn't create <em>new</em> knowledge; it just reminded you of things you'd already highlighted. And when I tried to scale it up to the volume of content I actually consumed &#8212; articles, research papers, PDFs, RSS feeds &#8212; the whole system buckled. Notion crashed. Obsidian crashed. I'd been down this road before, and I knew where it ended.</p><p>The question I kept asking was: what if the note-taking step was the problem? What if instead of writing notes, you turned content directly into flashcards &#8212; automatically &#8212; and then drilled them into long-term memory using spaced repetition? No middleman. No notes. Just content in, knowledge out.</p><p>I couldn't find anything that did all of this. So I built it.</p><div><hr></div><h2>The Build</h2><h3>Firebase Studio and Gemini</h3><p>Zetteln started alongside Aries. Google had just released Firebase Studio &#8212; a tool that let you build a fullstack app using Firebase with Gemini as the AI co-pilot. I wanted to test what it could do, so I used it to scaffold both apps at the same time. Aries was the productivity system; Zetteln was its companion &#8212; the "note-taking" app that isn't really a note-taking app.</p><p>Gemini was genuinely helpful for getting a functioning app off the ground fast. But it couldn't go the distance. The code it produced was messy, the architecture was inconsistent, and as the app grew more complex, Gemini couldn't keep up. So I moved the frontend to Vercel hosting (kept the Firebase backend) and switched to Cursor with Claude Sonnet 4.5 for the heavy lifting.</p><h3>From Obsidian to App</h3><p>The thing is, I'd built this system before &#8212; in Obsidian. The workflow was the same: take some content, send it through an AI to summarize by bullet points into micro-atomic pieces of information, split that off into flashcards, and study them with a spaced repetition system. It worked. It was genuinely useful. But Obsidian wasn't the right vehicle for it. It wasn't automated enough. The friction of doing this manually in a note-taking tool &#8212; copying content, running AI summaries, formatting cards, managing review schedules &#8212; was high enough that I wouldn't do it consistently. And consistency is the entire point of spaced repetition. Miss a few days and the algorithm's scheduling falls apart.</p><p>So I made it its own app. The workflow stays the same, but the friction disappears.</p><h3>The Workflow</h3><p>Zetteln has three input methods:</p><ul><li><p><strong>PDF files</strong> &#8212; you upload a PDF and the app parses it.</p></li><li><p><strong>Website URLs</strong> &#8212; if it's an article page, Zetteln extracts the content.</p></li><li><p><strong>Manual entry</strong> &#8212; for physical books or handwritten notes.</p></li></ul><p>You take a piece of content, the AI summarizes it into bite-sized bullet points, and each bullet point becomes a flashcard. That's it. No manual card creation. No formatting. The AI handles the conversion from "thing you read" to "thing you can be quizzed on."</p><p>There's also an RSS feed feature. You subscribe to feeds, hit refresh, and Zetteln pulls new articles directly into your inbox. From there, you enter swipe mode &#8212; a Tinder-like interface where you have three choices for each article: delete it, save it for later, or parse it immediately into flashcards. The save feature exists because not everything that comes through an RSS feed is an article &#8212; sometimes it's a Hacker News landing page, or an archive link where you'd want to download the PDF first and then parse it separately.</p><h3>The Review System</h3><p>This is where 99% of your time in Zetteln is spent. Once cards are created and vetted, they go into your review queue. You get a card, and you have two choices: swipe left to delete it (you don't care about this anymore), or swipe right to keep it (you want to recall this in the future).</p><p>If it's a new card, it enters the spaced repetition cycle. You review it today, and it comes back in two days. Two days pass, you review it again, and it goes to four days. Then eight days, then sixteen, and so on. The intervals grow as you demonstrate retention. At any point, you can delete a card you no longer need &#8212; it's not a lifetime commitment.</p><p>The swipe interface is deliberate. When you have 60,000 cards &#8212; which I do, because I uploaded over 200 PDFs into this thing, many of them textbooks &#8212; you need the fastest possible interaction. Swipe left or swipe right. No menus, no dialogs, no friction. The goal is to get through cards as fast as you can make decisions about them.</p><h3>60,000 Cards</h3><p>Let me address the elephant in the room. 60,000 cards is insane. It is absolutely self-inflicted. If you use this app normally, you will not have 60,000 cards. I put an unreasonable amount of content into it because I'm the kind of person who reads 200 PDFs and says "let me upload all of these."</p><p>The 60,000 card problem actually became an engineering problem. Before optimization, the app didn't run at all at that scale. It was completely unusable. After optimization &#8212; rewriting the sorting and processing pipeline for the review section &#8212; it runs, but slowly. There are still inefficiencies I could fix. More automation I could add. But this is the nice thing about making your own software: I designed it for my own niche use case, and if it's slow, I'm the only one who suffers. I don't have to make it perfect for an audience. I just have to make it work for me.</p><p>This is what I like to call the humble web farmer approach. I'm farming my own apps and cultivating my own land. If the crop yield is low, that's my problem, not a customer complaint.</p><h3>Porting to Desktop</h3><p>Like Aries, Zetteln eventually moved from a Firebase web app to a local Electron desktop format. Same playbook: replace Firestore with IndexedDB, rip out the auth, remove all cloud dependencies. The app runs entirely on your machine. No account. No subscription. No data leaving your computer.</p><p>It ships as a free, open-source desktop app. Windows and Mac. No strings attached.</p><div><hr></div><h2>The Philosophy</h2><p>The fundamental insight behind Zetteln is that note-taking is a waste of time if you never review what you wrote.</p><p>Spaced repetition is one of the most well-validated findings in cognitive science. The idea is simple: you remember things best when you encounter them at increasing intervals, right at the moment you're about to forget. Hermann Ebbinghaus proved this in 1885 with his forgetting curve experiments, and modern tools like Anki and SuperMemo have turned it into a practical system. The algorithm isn't complicated. The hard part is <em>getting content into the system</em>.</p><p>Most spaced repetition tools require you to create cards manually. Open Anki, type a question, type an answer, format it, tag it, repeat. This is fine for medical students memorizing anatomy, but it's a non-starter for someone who reads 200 articles a month. The manual entry bottleneck kills the whole system before it starts.</p><p>Zetteln's approach is to eliminate that bottleneck. You don't write flashcards. You feed in content &#8212; a PDF, a URL, an RSS article &#8212; and the AI creates the cards for you. Your only job is to vet them: swipe left if you don't care, swipe right if you do. The AI handles summarization, card creation, and decomposition. You handle curation and review.</p><p>This is one of the few things AI is genuinely good at: summarization within a bounded context. If you give an AI a specific piece of content and ask it to extract the key ideas as atomic bullet points, it can do that well. It might not understand the wider world around that content, but it can figure out the content itself. And that's all you need &#8212; because you're the one who decided the content was worth reading in the first place. The AI is just doing the mechanical work of turning prose into flashcards.</p><p>The philosophy here is the same as Aries: take something that works &#8212; game design, cognitive science &#8212; and apply it seriously, without the compromises that mainstream tools make. Anki has the best spaced repetition algorithm but the worst UX. Readwise has the best UX but it's a highlighter, not a knowledge engine. Zetteln is the attempt to get both: the input automation of Readwise, the spaced repetition of Anki, and a card review interface that doesn't make you want to close the app.</p><div><hr></div><h2>What I'd Do Differently</h2><p>I still use Zetteln, but not as my primary learning system. The reason is the same as Aries: I moved to a fully Obsidian-driven workflow, and the reason was that providing ease of access to my AI agent (Hermes) was more important to me than having a dedicated flashcard app. Obsidian is a file system. Agents can read and write files. Zetteln is a database app with a custom UI layer &#8212; agents can't meaningfully interact with it.</p><p>But there's a more specific lesson here. The 60,000 card problem revealed something about scale that I didn't anticipate. When you make card creation free &#8212; when there's zero friction between "I read this" and "this is now a flashcard" &#8212; you get a deluge. The AI doesn't know which points matter and which don't. It extracts everything, and suddenly you're reviewing 60,000 cards, most of which you either already knew or didn't care about.</p><p>The swipe-left-to-delete feature helps, but it's a post-hoc filter on a firehose. What I'd do differently is make the AI smarter about <em>selection</em>, not just <em>extraction</em>. Instead of "summarize this into 50 bullet points," the AI should say "here are the 8 things in this article that you probably don't already know, based on your existing card library." The card creation should be gated by what you already have, not just what the content contains.</p><p>There's also a feature gap I'd want to close: YouTube transcript support and EPUB support. The transcript feature is particularly important because I'm one of those weirdos who'd rather read than watch a video, and a lot of my learning content comes from YouTube. OCR for physical book highlights is on the wishlist too, but that's further out.</p><p>The other thing I'd do differently is the same thing I proposed for Aries: use the agent as an intermediary. Instead of manually uploading PDFs and URLs, the agent could read your Obsidian vault, your Readwise highlights, your RSS feeds, and propose cards automatically. Instead of manually reviewing cards, the agent could pre-filter them based on your existing knowledge base. The spaced repetition layer stays &#8212; the scheduling, the intervals, the review queue &#8212; but the data entry and vetting get offloaded to something that can do it continuously, without you sitting down for a swipe session.</p><div><hr></div><h2>What's Next</h2><p>This is the second post in the series. I've now covered Aries and Zetteln &#8212; the two full-sized apps from the Firebase Studio era. Next up, I'll be writing about the smaller tools and utilities I've built, starting with the ones that ended up being more useful than I expected.</p><p>If you want to see Zetteln in action, it's live on <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fastuka%2Fzetteln-desktop">my Github</a> &#8212; free and open source. If you want to follow the series, <a href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2F">subscribe to the Substack</a> &#8212; each post goes up there first.</p><p>And if you want to argue about whether spaced repetition is the only thing standing between you and a photographic memory, <a href="iframe.php?url=https%3A%2F%2Fdiscord.gg%2Fxh6meZFhH7">the Discord</a> is always open.</p><div><hr></div><p><em>Built something you want me to cover? Reply to this email or ping me on Discord. I'm always looking for the next rabbit hole.</em></p>]]></content:encoded></item><item><title><![CDATA[The Compute's Good Until It's Not]]></title><description><![CDATA[The datacenter investment strategy is going to backfire hard.]]></description><link>https://astukari.substack.com/p/the-computes-good-until-its-not</link><guid isPermaLink="false">https://astukari.substack.com/p/the-computes-good-until-its-not</guid><dc:creator><![CDATA[Jacob Robinson]]></dc:creator><pubDate>Fri, 10 Jul 2026 19:00:56 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21mPxo%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%252Fpublic%252Fimages%252F19d31bcc-b656-432b-b7f3-9c328df4affe_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>This post is co-written by Hermes running GLM 5.2.</em></p><div><hr></div><h2>The Story Everyone Is Selling</h2><p>Here is the narrative the AI industry has settled on: compute is the new oil. NVIDIA is the new OPEC. Whoever controls the GPUs controls the future of intelligence, and the companies spending the most on data centers are buying their way into a position that cannot be dislodged. Jensen Huang hand-delivers a DGX Spark to Sam Altman and it&#8217;s framed like a monarch distributing territory. Microsoft executives write internal emails about <a href="iframe.php?url=https%3A%2F%2Fwww.techemails.com%2Fp%2Fopenai-x-microsoft">owning &#8220;the silicon, infra, foundational model IP and know-how&#8221; because they&#8217;re terrified of being &#8220;a very thin layer on top of NVIDIA.&#8221;</a> America&#8217;s biggest tech companies will spend roughly $670 billion &#8212; about 2% of US GDP &#8212; building compute clusters this year.</p><p>It&#8217;s a clean story. It&#8217;s also, I think, the wrong story.</p><p>Not wrong about the spending. The spending is real (so long as you believe the debt contracts, but that&#8217;s another story). It&#8217;s wrong about what the spending <em>buys</em>. The assumption underneath all of this is that compute is a durable moat: you buy enough of it, and you&#8217;re ahead forever. But compute isn&#8217;t behaving like oil. Oil is finite and gets more expensive to extract over time. Compute is doing the opposite &#8212; it&#8217;s getting cheaper, fast, and the rate at which it&#8217;s getting cheaper is accelerating. And the value of adding more of it follows a logarithmic curve. You get your first big gains, and then each additional dollar of compute buys you less and less improvement.</p><p>That combination &#8212; falling cost per unit of intelligence, and diminishing returns to scale &#8212; is the setup for a crash.</p><div><hr></div><h2>The Efficiency Squeeze</h2><p>Start with the numbers, because &#8212; as most of us know at this point &#8212; they are obscene. We see a line going up and then extrapolate it into absurdity &#8212; the same way Malthusians looked at population growth and predicted famine, ignoring that agriculture technology was improving at the same time.</p><p>In AI, the technology improving underneath the compute curve is software.</p><p>Epoch AI tracks several metrics simultaneously. Their findings, updated as of February 2026:</p><ul><li><p><strong>Training compute</strong> for frontier models has been doubling every 5.2 months &#8212; 5&#215; per year. This is the number everyone cites.</p></li><li><p><strong>Software efficiency</strong> &#8212; the amount of compute needed to achieve a fixed performance level &#8212; is improving at roughly <strong>3&#215; per year</strong>, doubling every 7.6 months. Same performance, one-third the compute, every year.</p></li><li><p><strong>Inference cost</strong> at a fixed performance level has been <strong>halving every 2 months</strong> &#8212; roughly two orders of magnitude per year.</p></li></ul><p>Now, wait a minute. Something is off here.</p><p>It continues: a November 2025 NeurIPS paper, using the largest dataset of AI benchmarking prices ever assembled, found that the price for a given level of benchmark performance has decreased by <strong>5&#215; to 10&#215; per year</strong> across knowledge, reasoning, math, and software engineering benchmarks. They isolated open-weight models to control for competition effects &#8212; the logic being that if anyone can run the model, price drops reflect genuine technical innovation rather than a temporary price war. Even after dividing out hardware price declines, algorithmic efficiency is still improving at roughly 3&#215; per year.</p><p>That&#8217;s the number to hold in your head. Three times per year, every year, the same intelligence takes one-third as much compute to produce.</p><p>That training compute doubling is starting to sound a little unwise.</p><p>Here&#8217;s the elephant in the room: <strong>software efficiency is improving faster than hardware capability is growing.</strong> Training compute doubles every 5.2 months. Software efficiency triples every 7.6 months. Inference cost drops by 10&#215; every year. The compute you bought last year is worth a fraction of what you paid for it &#8212; not because of depreciation, but because of market dynamics. Because someone figured out how to do the same job with a third of it.</p><p>This is not how oil works.</p><div><hr></div><h2>The Sputnik Moment</h2><p>You might be thinking: fine, efficiency improves, but the companies with the most compute can still train the biggest models, and the biggest models are still the best. That&#8217;s the argument. It&#8217;s also an argument that has historically failed.</p><p>DeepSeek, a Chinese AI lab associated with the hedge fund High-Flyer, released R1 &#8212; an open-source reasoning model that matched or outperformed many of the world&#8217;s leading LLMs on standard benchmarks. DeepSeek claimed the training cost roughly $6 million, or 3-5% of what American AI companies spent for comparable performance. They did it under a US chip export ban, with limited access to the most advanced hardware.</p><p>The market&#8217;s response was immediate and brutal. NVIDIA lost $593 billion in market value in a single day &#8212; the largest one-day loss for any company in Wall Street history. Broadcom fell 17.4%. Microsoft dropped 2.1%. Alphabet dropped 4.2%. Over $1 trillion in market capitalization evaporated from the technology sector in a single trading session.</p><p>A Gartner analyst described it afterward as &#8220;a broad, visible repricing because it changed global beliefs about frontier-model cost curves and China&#8217;s competitiveness, and it did so in a way that hit the semiconductor and hyperscaler narrative directly.&#8221; The key phrase is &#8220;changed global beliefs.&#8221; The narrative was: you need $10 billion and hundreds of thousands of GPUs to train a frontier model. DeepSeek did it for $6 million under a chip embargo. The narrative didn&#8217;t survive the weekend.</p><p>DeepSeek was the Sputnik moment. Not because DeepSeek R1 was the best model per say, but because it demonstrated that the efficiency frontier was moving faster than the compute accumulation strategy. A startup with limited compute could produce frontier-level intelligence by being smarter about the software. The implication was clear: if compute is the moat, the moat is shallower than everyone thought.</p><p>Then it happened again.</p><p>In June 2026, Z.ai (formerly Zhipu AI, a Beijing startup backed by Tsinghua University) released GLM-5.2 &#8212; a 744B parameter open-weight model, MIT-licensed, that beat GPT-5.5 on multiple long-horizon coding benchmarks at one-sixth the cost. The model didn&#8217;t just close the gap between open and closed &#8212; it matched or exceeded frontier closed models on specific, important benchmarks, and it did it at a fraction of the price.</p><p>The pattern is now clear: every few months, a new open-weight model demonstrates that frontier-level intelligence can be produced with less compute, less energy, and less capital than the previous generation required. The hyperscalers spend billions; the startups spend fractions of that and match them. The efficiency curve here is staggering.</p><div><hr></div><h2>The Logarithmic Trap</h2><p>Here&#8217;s where the pieces come together, and where evidence departs from the conventional wisdom.</p><p>The scaling laws of AI are real, and they&#8217;re brutal in a specific way: they&#8217;re logarithmic. To get linear gains in model quality, you need exponentially more compute. The Forethought Research group puts it plainly: &#8220;If it required exponentially more compute to increase quality, it still does after a year of algorithmic progress, it is just that the constant out the front is a factor of 3 lower.&#8221; Marc Andreessen, on a podcast, said it in VC-ese: &#8220;we&#8217;re increasing GPUs at the same rate, we&#8217;re not getting the intelligent improvements at all out of it.&#8221;</p><p>This is the logarithmic trap, and it&#8217;s a mechanism which drives market crashes.</p><p>Consider what happens to a hyperscaler that has spent $38 billion building a 1-gigawatt data center. They fill it with H100s. They train frontier models. They&#8217;re ahead &#8212; for a while. But software efficiency is improving at 3&#215; per year. Inference cost is dropping by 10&#215; per year. Open-weight models like DeepSeek R1 and GLM-5.2 are demonstrating that frontier-level intelligence can be produced for 3-5% of what the hyperscalers spent. And they need to replace those GPUs every few years &#8212; NVIDIA&#8217;s product cycle is roughly 18-24 months, and the old chips lose value fast when the new ones are 25&#215; more efficient.</p><p>Now a startup appears. They don&#8217;t have a $38 billion data center. They have a small cluster &#8212; maybe a few racks of GPUs, or rented capacity from a cloud provider. But they have the research and architecture to achieve comparable training and inference quality at one-sixth the cost. They don&#8217;t need a nuclear reactor. They don&#8217;t need a gigawatt. They need a fraction of the energy, because their models are more efficient, and because the value of additional compute follows a logarithmic curve &#8212; the startup gets 90% of the performance for 1% of the infrastructure cost.</p><p>The hyperscaler&#8217;s data center &#8212; the $38 billion in PP&amp;E &#8212; is now a stranded asset. The GPUs are outdated. The power contracts are still locked in for 20 years. The nuclear reactor is still running. But the demand for that much compute, at that cost structure, has evaporated. Not because AI failed. Because AI got too cheap to need it.</p><p>This is the crash. Compute and energy, bundled together as infrastructure, become oversaturated. The market that was projected to need $6.7 trillion in investment by 2030 discovers it needs a fraction of that. The PP&amp;E on the balance sheets of every company that overbuilt becomes worth what copper and steel are worth when the mine runs dry &#8212; scrap value.</p><div><hr></div><h2>The Implications</h2><p>If the thesis is right &#8212; that software efficiency outpaces compute accumulation, and the data center market becomes oversaturated &#8212; here&#8217;s what follows:</p><p><strong>For NVIDIA:</strong> The company that looks most at risk from compute commoditization is actually the best positioned in the short term, because NVIDIA has been selling energy efficiency the whole time. Blackwell&#8217;s headline number isn&#8217;t raw speed &#8212; it&#8217;s 25&#215; efficiency improvement. Their full-stack approach (chips, networking, cooling, software) is an efficiency play. But the long-term risk is real: custom silicon from their own customers is eroding their market share, and open-weight models are reducing the total compute demand. NVIDIA wins as long as the industry needs the most powerful general-purpose GPUs. It loses when the industry needs less compute overall.</p><p><strong>For hyperscalers:</strong> Microsoft, Google, Amazon, and Meta are making a $670 billion bet that data center capacity is the moat. The nuclear deals &#8212; Three Mile Island, Susquehanna, Clinton, Kairos &#8212; are 20-year commitments to power plants that cost billions and take years to build. If the thesis is right, these are the most dangerous assets on their balance sheets. The power contracts don&#8217;t go away. The reactors keep running. But the demand for the compute they power might. The company that secures the cheapest energy and pairs it with the most efficient inference architecture survives. The one that overbuilt for a demand curve that bent downward is left with 20-year power purchase agreements and a building full of depreciating GPUs.</p><p><strong>For the open-weight movement:</strong> The math is straightforward. If algorithmic efficiency improves 3&#215; per year, and if that improvement is visible in open-weight models &#8212; which it is, as DeepSeek R1 and GLM-5.2 demonstrate &#8212; then the open-weight ecosystem benefits disproportionately from compute commoditization. You don&#8217;t need a $10 billion training cluster if the same performance can be achieved with 3&#215; less compute every year. The closed labs&#8217; advantage in raw compute shrinks every year that software efficiency outpaces hardware accumulation. The open-weight models get closer to the frontier. The frontier gets cheaper to reach. The gap closes.</p><p><strong>For the AI industry as a whole:</strong> The $2-for-$1 problem &#8212; AI companies generating roughly $40-50 billion in revenue while the industry invests over $400 billion in infrastructure &#8212; doesn&#8217;t resolve in favor of more infrastructure. It resolves in favor of less infrastructure producing the same intelligence. The market corrects when the oversupply becomes undeniable. The correction looks like data centers sitting idle, power contracts with no buyers, and PP&amp;E written down on balance sheets. It looks, in other words, like every other infrastructure overbuild in history &#8212; railroads, fiber optic cable, semiconductor fabs &#8212; where the capacity was real, the demand was real, but the gap between what was built and what was needed was wide enough to bankrupt the builders.</p><div><hr></div><h2>The Compute&#8217;s Good Until It&#8217;s Not</h2><p>There&#8217;s a moment in every infrastructure buildout where the narrative breaks. It happened to the railroads in the 1870s, when tracks were laid faster than towns could grow along them. It happened to fiber in the late 1990s, when capacity outstripped demand by an order of magnitude and companies like Global Crossing went bankrupt with a network that was eventually worth a fraction of its build cost. It happened to semiconductors in the 1980s, when Japanese fabs overproduced and memory prices collapsed.</p><p>The pattern is always the same: a technology is genuinely transformative, the demand is genuinely real, and the buildout overshoots. The builders assume the demand curve is linear and the cost curve is flat. In reality, the demand curve is logarithmic and the cost curve is falling. The gap between the buildout and the need is where the crash lives.</p><p>AI compute is following the same arc. The technology is transformative. The demand is real. But software efficiency is improving at 3&#215; per year, inference cost is dropping by 10&#215; per year, open-weight models are demonstrating frontier performance at single-digit millions in training cost, and every major AI company is building its own chips to escape the one vendor that the whole thesis depends on.</p><p>Compute is good. It&#8217;s necessary. You need it, and right now, you need a lot of it. But it&#8217;s not a moat. It&#8217;s an input &#8212; one that&#8217;s getting cheaper every year, and one where the value of adding more follows a curve that bends toward zero. The moat was never the compute. The moat was the efficiency &#8212; the ability to produce the same intelligence with less. And the efficiency is winning.</p><p>The crash, when it comes, won&#8217;t be a crash in AI. AI will be fine &#8212; better than fine, it&#8217;ll be everywhere, because it&#8217;s getting too cheap to not be everywhere. The crash will be in the demand for data centers. The buildings. The power plants. The 20-year contracts. The gigawatt campuses that cost $38 billion to build and filled with GPUs that are worth a fraction of their purchase price by the time the reactor that powers them comes online. And those who dug too deep and too greedily &#8212; even those who are AI companies themselves &#8212; will suffer.</p><p>Energy is finite. That&#8217;s true. But if you need less of it &#8212; because your software is 3&#215; more efficient every year &#8212; then you need less of it. End of story. The nuclear reactor doesn&#8217;t care how impressive your model is. It cares how many watts you&#8217;re drawing. And the number of watts you need to produce frontier-level intelligence is going down, not up.</p><p>The compute&#8217;s good until it&#8217;s not. And it&#8217;s not going to be sooner than the people writing the checks think.</p><div><hr></div><p><em>If you want to argue about whether compute is a commodity or a moat, <a href="iframe.php?url=https%3A%2F%2Fdiscord.gg%2Fxh6meZFhH7">the Discord</a> is always open. If you want to read more like this, <a href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2F">subscribe to the Substack</a> &#8212; each post goes up there first.</em></p><div><hr></div><p><em>Got a take on AI infrastructure I should hear? Reply to this email or ping me on Discord. I&#8217;m always looking for the next rabbit hole.</em></p>]]></content:encoded></item><item><title><![CDATA[How I Built It - Aries]]></title><description><![CDATA[A Productivity App With Real Stakes]]></description><link>https://astukari.substack.com/p/how-i-built-it-aries</link><guid isPermaLink="false">https://astukari.substack.com/p/how-i-built-it-aries</guid><dc:creator><![CDATA[Jacob Robinson]]></dc:creator><pubDate>Wed, 08 Jul 2026 21:21:25 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Lj69%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fea6398c4-bee6-4ef1-bb8e-5175f0956634_1280x720.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Lj69%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fea6398c4-bee6-4ef1-bb8e-5175f0956634_1280x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Lj69!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea6398c4-bee6-4ef1-bb8e-5175f0956634_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Lj69!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea6398c4-bee6-4ef1-bb8e-5175f0956634_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Lj69!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea6398c4-bee6-4ef1-bb8e-5175f0956634_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Lj69!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea6398c4-bee6-4ef1-bb8e-5175f0956634_1280x720.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Lj69%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fea6398c4-bee6-4ef1-bb8e-5175f0956634_1280x720.jpeg" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ea6398c4-bee6-4ef1-bb8e-5175f0956634_1280x720.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:720,&quot;width&quot;:1280,&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_!Lj69!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea6398c4-bee6-4ef1-bb8e-5175f0956634_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Lj69!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea6398c4-bee6-4ef1-bb8e-5175f0956634_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Lj69!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea6398c4-bee6-4ef1-bb8e-5175f0956634_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Lj69!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea6398c4-bee6-4ef1-bb8e-5175f0956634_1280x720.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><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><em>This is the first post in a series where I walk through how I built the software products on my portfolio, one at a time. It is co-written by Hermes running GLM 5.2, and validated by me.</em></p><div><hr></div><h2>The Problem</h2><p>I've tried a lot of todo apps. Todoist, ClickUp, TickTick, Obsidian, Notion, Habitica &#8212; all of them. They all had things I liked and things I didn't, and it was frustrating because there was no perfect solution for the way my brain works.</p><p>Todoist had the best task management, but it was just a list. Notion had the flexibility, but it was too freeform &#8212; I'd spend more time building dashboards than doing work. Obsidian had the canvas, which I loved, but it wasn't a productivity system. And Habitica &#8212; my old favorite from high school and early college &#8212; had the gamification, but the systems were shallow. Health potions, gold, some cosmetic gear. Nothing that actually mattered.</p><p>The question I kept asking was: what if I took the core idea of Habitica &#8212; RPG mechanics applied to your real life &#8212; but made each system deeper, more fleshed out, and gave it <em>actual stakes</em>? Not fake stakes, like losing a virtual item. Real stakes &#8212; data loss. If you die, you lose something you built.</p><p>And what if the whole thing lived on a canvas, like Obsidian's graph view, so your entire productivity system was visual and spatial instead of a flat list?</p><p>I couldn't find anything that did all of this. So I built it.</p><div><hr></div><h2>The Build</h2><h3>Firebase Studio and Gemini</h3><p>Aries started as an experiment alongside Zetteln. Google had just released Firebase Studio &#8212; a tool that let you build a fullstack app using Firebase with Gemini as the AI co-pilot. I wanted to test what it could do, so I used it to scaffold both apps at the same time.</p><p>Gemini was genuinely helpful for getting a functioning app off the ground fast. But it couldn't go the distance. The code it produced was messy, the architecture was inconsistent, and as the app grew more complex, Gemini couldn't keep up. So I moved the frontend to Vercel hosting (kept the Firebase backend) and switched to Cursor with Claude Sonnet 4.5 for the heavy lifting.</p><h3>The Solo-Gated Era</h3><p>For a while, Aries lived as a completely private app. It was deployed on a generic Vercel domain with Google SSO that only I could sign into. I used it every single day &#8212; from around November/December of that year &#8212; as my primary productivity system. This wasn't a side project I was prototyping. It was my actual todo list, and if it broke, my day broke.</p><h3>Designing the Full Stack</h3><p>The app has four node types that represent the full stack of productivity data:</p><ul><li><p><strong>Task nodes</strong> &#8212; you do it once and it's done forever.</p></li><li><p><strong>Daily nodes</strong> &#8212; recurring stuff, like "eat a healthy lunch." You do them every day.</p></li><li><p><strong>Habit nodes</strong> &#8212; optional, repeatable multiple times per day. These don't count toward your final score. Think of them as bonus actions &#8212; reading a chapter of a book, doing a quick workout. Each one improves your health.</p></li><li><p><strong>The center node</strong> &#8212; your major life goal. Everything connects back to it.</p></li></ul><p>Originally I had a fifth type: reward nodes. The idea was that you'd earn gold from completing tasks and spend it on rewards &#8212; exactly like Habitica. But I cut rewards out entirely. The problem was that rewards are too easy to cheese if you're not honest with yourself. What's stopping you from making "watch Netflix" a reward and just cashing in?</p><p>Instead, I made gold serve one purpose: <strong>healing</strong>. If you had a bunch of productive days and built up a health buffer, you could "cash out" those previous good days to survive a stretch where you were busy or sick or just needed a break. You're not spending gold on treats &#8212; you're drawing down a savings account of good behavior to cover a rainy day. That felt more honest.</p><p>And I made health uncapped. In Habitica, health is locked to 100, so a great day and a mediocre day look the same &#8212; you're full either way. In Aries, if you crush it for a week, your health might be at 500. That buffer is real. You can see it, and it gives you a genuine sense of security.</p><h3>The Skill Tree</h3><p>The node map &#8212; which the app finally landed on &#8212; was inspired by the satisfaction of skill tree node maps from <em>Path of Exile</em> and <em>Final Fantasy X</em>. Those games have these enormous, sprawling skill trees that feel like they contain near-infinite possibilities, much like the complexity of real life.</p><p>The center node is what I call the "Ubermensch" &#8212; the final life goal. If you accomplished everything you ever wanted, you'd reach it. Branching out from there are major skill areas &#8212; health, career, creativity, whatever you want. From health, you might split into diet and fitness. From diet, you might have daily nodes for specific meals, task nodes for trying a new recipe, habit nodes for drinking water.</p><p>Completing child nodes completes their parent. Complete all the children of a node, and that node lights up. It cascades all the way back to the center.</p><p>I tried to keep the canvas as similar to the Obsidian canvas as I possibly could, because I really like the Obsidian canvas. At one point I tried building something similar directly in Obsidian, but it doesn't actually work &#8212; you can't make interactive nodes that respond to clicks and track state. So this had to be its own app.</p><h3>The Death System</h3><p>This is the big one. The thing that makes Aries different from every other gamified productivity app I've seen.</p><p>When you die &#8212; when your health hits zero &#8212; you have to delete a node. Not a virtual item. A node. One of your tasks, or habits, or dailies. Something you set up because you wanted to do it. Gone.</p><p>And it stacks. If you're at 10 health and the daily damage calculation says you're going to take 400, you don't just die once. You delete a node for hitting zero, then another node for every 100 below zero. Five nodes, maybe ten, depending on how badly you let things slide.</p><p>There's an optional toggle for a mode where the deleted nodes are chosen randomly &#8212; what I call "Dante Must Die" mode. The default is that you pick which nodes to sacrifice, which can technically be circumvented (you could just recreate the nodes afterward), but there's enough friction there that you really don't want to do it. Recreating ten nodes you just had to delete is painful enough to make dying something you actively avoid.</p><p>Here's what I didn't expect: <strong>the death system makes the app self-managing.</strong></p><p>If you keep adding more and more nodes &#8212; more tasks, more habits, more dailies &#8212; your daily damage increases. More nodes means more things you have to complete every day, which means more opportunities to take damage. So the more you over-scope your life, the more likely you are to die and lose nodes.</p><p>The system self-corrects. If you've added too much, you start dying, you lose nodes, and the system shrinks back down to something manageable. If you keep it lean and focused, you stay alive. It naturally constrains your goals to what you can actually handle in a day.</p><p>That's not what I intended. All I cared about was making death matter. The self-managing property emerged on its own.</p><h3>Damage Preview</h3><p>There's a small feature that I think doesn't get enough credit: the damage preview. The UI shows you exactly how much damage you're going to take today, and how much health you'll have left tomorrow. So you can plan &#8212; if you see you're going to die tomorrow unless you complete three specific dailies, you know exactly what to focus on. You're not flying blind.</p><h3>Random Task Selection</h3><p>I love randomness in productivity. I get bored easily, and I've found that being assigned a random task from a pool I've pre-selected is much more engaging than staring at a list and deciding what to do.</p><p>I've done this before &#8212; the infamous Notion Stockpile (which crashed), and then the Obsidian Stockpile (which also crashed). The system works: you highlight the tasks you want to focus on for the day, hit a random button, and it picks one for you. The gods have chosen.</p><p>What makes this work <em>better</em> in Aries than in my previous attempts is that the skill tree stays small. The death penalty naturally constrains scope, which means you're never picking from 60,000 items. You're picking from a manageable set that you can actually complete.</p><h3>Porting to Desktop</h3><p>One of the last changes was porting the entire project from a Firebase web app to a local Electron desktop format. I replaced Firestore with SQLite, ripped out the auth (no account needed for a local app), and removed all cloud dependencies. First I released it as a $10 one-time purchase. Then I open-sourced it &#8212; free, forever, no strings attached.</p><div><hr></div><h2>The Philosophy</h2><p>If people think "number go up" is addicting in video games, why not in real life?</p><p>That's the core question behind Aries. RPG mechanics &#8212; health bars, skill trees, XP, gold, leveling &#8212; are solved problems in game design. They've been refined over decades to keep players engaged, motivated, and coming back. Game designers have figured out how to segment complex challenges into reasonably sized chunks, how to create difficulty curves that scale correctly to keep motivation high, and how to reward progression in ways that feel earned.</p><p>Productivity apps mostly ignore all of this. They give you a list and a checkbox. Maybe a streak counter if you're lucky.</p><p>The philosophy behind Aries is that productivity <em>is</em> a game design problem. The question isn't "how do I make a good todo list" &#8212; it's "how do I design a system that makes doing meaningful work feel as engaging as playing a good RPG?"</p><p>Part of that is representation. A flat list is dead. A node map is alive &#8212; it grows, it branches, it has a center and a periphery, it has paths and dead ends. When you complete a node and its parent lights up, you can <em>see</em> your progress cascading toward something bigger. That's not just a UI choice. It's a fundamental difference in how you think about your work.</p><p>Part of it is stakes. In most productivity apps, nothing happens if you fail. Your tasks sit there forever, silently judging you, and eventually you stop looking at them. In Aries, failure has teeth. You lose data. You lose something you built. And that loss is what makes success feel real &#8212; because you know what it costs to fail.</p><p>And part of it is the self-managing property. Most productivity apps let you add unlimited tasks with zero consequences. Aries punishes over-scoping. It creates a natural pressure to keep your commitments lean and achievable. It asks: "Do you <em>actually</em> have time for all of this?" And if you lie, it takes something away.</p><div><hr></div><h2>What I'd Do Differently</h2><p>Ultimately, I abandoned this project. Not because it didn't work &#8212; it worked great. I moved to a fully Obsidian-driven workflow, and the reason was simple: providing ease of access to my AI agent (whether that's OpenClaw or Hermes) was more important to me than gamification. Obsidian is a file system. Agents can read and write files. Aries is a database app with a custom UI layer &#8212; agents can't meaningfully interact with it.</p><p>But I think there's potential in a new version. The idea would be to create a mediation between "data" (what the user finds interesting, what they want to do, their preferences and goals) and "action" (what Aries looks like &#8212; the gamification, the health system, the skill tree). The intermediate translator between the two would be the agent.</p><p>So instead of manually adding every node, the agent could read your Obsidian vault, your calendar, your notes, and propose nodes. Instead of manually checking off dailies, the agent could verify completion based on your actual activity. The gamification layer stays &#8212; health bars, skill trees, death penalties &#8212; but the data entry and verification get offloaded to something that can do it automatically.</p><p>That's the dream, anyway. Whether it becomes reality depends on time, motivation, and whether enough people care to make it worth building.</p><div><hr></div><h2>What's Next</h2><p>This is the first post in a series. Next up, I'll be writing about <strong>Zetteln</strong> &#8212; the other full-sized app I created during my Firebase Studio era. It will follow the same format: what it does, how I built it, what I learned.</p><p>If you want to see Aries in action, it's live on <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fastuka%2Faries-desktop">my Github</a>. If you want to follow the series, <a href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2F">subscribe to the Substack</a> &#8212; each post goes up there first.</p><p>And if you want to argue about whether productivity apps are better with health bars and skill trees, <a href="iframe.php?url=https%3A%2F%2Fdiscord.gg%2Fxh6meZFhH7">the Discord</a> is always open.</p><div><hr></div><p><em>Built something you want me to cover? Reply to this email or ping me on Discord. I'm always looking for the next rabbit hole.</em></p>]]></content:encoded></item><item><title><![CDATA[Forbidden Knowledge: Marco Evaristti]]></title><description><![CDATA[A new article from Jacob Robinson]]></description><link>https://astukari.substack.com/p/forbidden-knowledge-marco-evaristti</link><guid isPermaLink="false">https://astukari.substack.com/p/forbidden-knowledge-marco-evaristti</guid><pubDate>Sat, 11 Apr 2026 17:30:46 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%218sYm%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff295a28e-f072-4cd6-a2f1-ff7e02737fda_1024x768.jpeg" 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="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%218sYm%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff295a28e-f072-4cd6-a2f1-ff7e02737fda_1024x768.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8sYm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff295a28e-f072-4cd6-a2f1-ff7e02737fda_1024x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8sYm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff295a28e-f072-4cd6-a2f1-ff7e02737fda_1024x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8sYm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff295a28e-f072-4cd6-a2f1-ff7e02737fda_1024x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8sYm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff295a28e-f072-4cd6-a2f1-ff7e02737fda_1024x768.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%218sYm%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff295a28e-f072-4cd6-a2f1-ff7e02737fda_1024x768.jpeg" width="1024" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f295a28e-f072-4cd6-a2f1-ff7e02737fda_1024x768.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&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_!8sYm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff295a28e-f072-4cd6-a2f1-ff7e02737fda_1024x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8sYm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff295a28e-f072-4cd6-a2f1-ff7e02737fda_1024x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8sYm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff295a28e-f072-4cd6-a2f1-ff7e02737fda_1024x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8sYm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff295a28e-f072-4cd6-a2f1-ff7e02737fda_1024x768.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><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 href="iframe.php?url=https%3A%2F%2Fjacob-robinson.com%2Fblog%2F">Read original on the website</a></p><p>We don&#8217;t get enough crackpot postmodern artists on icebergs like these. One day, when I collect enough of them, I&#8217;m going to throw them all on some sort of art iceberg. But for now they remain forbidden knowledge.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://astukari.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2Fsubscribe%3F"><span>Subscribe now</span></a></p><p>Marco Evaristti did a lot of things. Wikipedia claims his most famous act is convincing people to eat meatballs made from is own liposuction fat, which I actually <em>didn&#8217;t</em> know about until I clicked his article. Some people might also know him for a bit of a spat he got himself into when he attempted to starve three newborn piglets to give attention to, ironically, animal slaughter. The piglets were stolen back from the exhibit by a sect of Greenpeace and a large campaign was made to ban Evaristti&#8217;s works from Denmark (where the exhibit was held). Of the thousands of people which signed the campaign, one of them was Marco Evaristti himself.</p><p>What he&#8217;s actually most well-known for is a 2000 art installation known as <em>Helena</em>. This one will require some explaining.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://astukari.substack.com/p/forbidden-knowledge-marco-evaristti?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2Fp%2Fforbidden-knowledge-marco-evaristti%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><p><em>Helena</em> is a plain white room with 10 blenders, each hooked into a different wall socket. Inside each blender is a single goldfish[1]. The blenders are on, but idle.</p><p>Museum goers are allowed to interact with the blenders &#8212; that is the only instruction they are given going into the exhibit. You can see where things are going here. Evaristti is making a claim about human morality, a sort of Milgram&#8217;s bet if you will: given the full freedom to blend a goldfish into shreds, will you do it just to see what happens?</p><p>The answer is, perhaps surprisingly&#8230; nope! Not a single person voluntarily blended a goldfish. Though you could argue that there might be some peer pressure involved with at least 10 other museum goers looking at the same exhibit, plus a museum guard. Yes, you are given explicit permission, but <em>implicit</em> permission can feel just as strong.</p><p>Okay&#8230; if you&#8217;ve done research into <em>Helena</em> before, you might sound very confused. Let me clear something up:</p><p>No one <em>voluntarily</em> blended a goldfish.</p><p>About five or so days into the exhibit, a Danish news crew began to camp outside the entrance to cover the story. Being tabloid reporters more than investigative journalists, the crew began to egg on museum goers to press the blend button so they could catch it on camera. They convinced people to do this <em>twice</em>. After the second time the exhibit was shut down early.</p><p>I&#8217;m gonna call this involuntary, because &#8212; harkening back to my Milgram&#8217;s experiment reference earlier &#8212; when you have a news reporter breathing down your neck one way and a sign saying you&#8217;re allowed to blend the fishies on the other, people are going to feel pressured. This really feels like cheating. I would&#8217;ve been a lot more interested to hear about one guy going in there, turning a goldfish on high, and leaving without explaining anything.</p><p>Going away from <em>Helena</em> now, Evaristti is also marked by what he <em>didn&#8217;t</em> do. In 2008, the artist announced a new project, <em>FIVE2TWELVE</em>, where he collaborated with musician Kenneth Thordal and American death row inmate Gene Hathorn Jr. to perform what I can only describe as the most metal art exhibition in history. As their contract laid out, once Hathorn was finally put to death, he was to be ground up into fish food. This fish food would then be filled into a feeding container for an aquarium full of goldfish (he really hates these things for some reason) and museum goers would have to press a button in order to feed the goldfish. There&#8217;s a lot of interesting moral quandries here. Do you dare feed a human to a fish, no matter how heinous their crimes? Would you rather starve the fish in order to preserve human dignity? Would you, even, just overfeed the fish on man meat just because you thought it was funny? There were a lot of ways this could go, but unfortunately we&#8217;ll never know the truth: Hathorn&#8217;s sentence was eventually commuted to life in prison, and to celebrate the good news he revoked his contract. Evaristti and Thordal couldn&#8217;t find another death row inmate batshit crazy enough to agree to this deal, and so they eventually gave up and scrapped it.</p><p>[1] &#8211; Okay, fine. &#8220;Green swordtail&#8221;, not goldfish. Who cares, they look the damn same to me. Why even call it green when it looks orange? Fish people suck.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://astukari.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&quot;,&quot;text&quot;:&quot;Share The Astukari Newsletter&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2F%3Futm_source%3Dsubstack%26amp%3Butm_medium%3Demail%26amp%3Butm_content%3Dshare%26amp%3Baction%3Dshare"><span>Share The Astukari Newsletter</span></a></p>]]></content:encoded></item><item><title><![CDATA[Forbidden Knowledge: Sensitive Compartmented Information Facility]]></title><description><![CDATA[A new article from Jacob Robinson]]></description><link>https://astukari.substack.com/p/forbidden-knowledge-sensitive-compartmented</link><guid isPermaLink="false">https://astukari.substack.com/p/forbidden-knowledge-sensitive-compartmented</guid><pubDate>Sat, 04 Apr 2026 17:30:49 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21arPL%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F69765d61-3dde-4cd8-b780-d5c3f40963ee_1024x683.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="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21arPL%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F69765d61-3dde-4cd8-b780-d5c3f40963ee_1024x683.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!arPL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69765d61-3dde-4cd8-b780-d5c3f40963ee_1024x683.png 424w, https://substackcdn.com/image/fetch/$s_!arPL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69765d61-3dde-4cd8-b780-d5c3f40963ee_1024x683.png 848w, https://substackcdn.com/image/fetch/$s_!arPL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69765d61-3dde-4cd8-b780-d5c3f40963ee_1024x683.png 1272w, https://substackcdn.com/image/fetch/$s_!arPL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69765d61-3dde-4cd8-b780-d5c3f40963ee_1024x683.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21arPL%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F69765d61-3dde-4cd8-b780-d5c3f40963ee_1024x683.png" width="1024" height="683" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/69765d61-3dde-4cd8-b780-d5c3f40963ee_1024x683.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:683,&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_!arPL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69765d61-3dde-4cd8-b780-d5c3f40963ee_1024x683.png 424w, https://substackcdn.com/image/fetch/$s_!arPL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69765d61-3dde-4cd8-b780-d5c3f40963ee_1024x683.png 848w, https://substackcdn.com/image/fetch/$s_!arPL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69765d61-3dde-4cd8-b780-d5c3f40963ee_1024x683.png 1272w, https://substackcdn.com/image/fetch/$s_!arPL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69765d61-3dde-4cd8-b780-d5c3f40963ee_1024x683.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><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>Okay, this one you&#8217;ve probably seen mentioned in the news before. And honestly, it&#8217;s really fascinating.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://astukari.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2Fsubscribe%3F"><span>Subscribe now</span></a></p><p>Governments can send and receive some pretty intense confidential info: incoming attack orders, massive terrorist plots, potential nuclear threats, etc. With this confidential info comes the threat of prying eyes: spies from hostile countries, news outlets looking for a huge scoop, things like that. So, naturally, there is an entire industry dedicated to creating the absolute state of the art in terms of &#8220;interception prevention&#8221;, or otherwise stopping those snoops from listening in.</p><p>A SCIF is not a <em>literal</em> facility. Rather, it is a checklist that must be passed in order for any sort of confidential conversation to begin. For example, a SCIF must have only <em>one</em> entry point, and that entry point must be defended with either a bio-based lock (think thumb/eye scanner) or an armed guard with a given clearance. No outside electronics are allowed inside a SCIF, and a SCIF must be protected by a Faraday cage &#8212; if some sort of phone/internet communication is required, the devices using that connection must follow a state-of-the-art set of encryptions determined by the DoD (nothing your consumer phone would have &#8212; think $50,000 per-unit specialty equipment). And this is just a short version of the list.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://astukari.substack.com/p/forbidden-knowledge-sensitive-compartmented?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2Fp%2Fforbidden-knowledge-sensitive-compartmented%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><p>A SCIF checklist is designed to be secure, obviously, but it&#8217;s also designed to be <em>portable</em>. If the president is, say, reading a book to a bunch of elementary schoolers when a major terrorist strike happens, he&#8217;s not going to have time to go to a SCIF-certified location like the White House or Air Force One. So it&#8217;s the job of whatever defense team is around him &#8212; Secret Service, CIA, Military, etc. &#8212; to quickly find a suitable room, set it up to follow the checklist, bring in the equipment, etc. etc.</p><p>What I found fascinating is that many senators have their own &#8220;SCIF rooms&#8221; built into their homes. There are a few pictures online of these things and they look crazy &#8212; huge vault doors leading to a small table with a single red phone, positioned right next to the kitchen. Something right out of a movie.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://astukari.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&quot;,&quot;text&quot;:&quot;Share The Astukari Newsletter&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2F%3Futm_source%3Dsubstack%26amp%3Butm_medium%3Demail%26amp%3Butm_content%3Dshare%26amp%3Baction%3Dshare"><span>Share The Astukari Newsletter</span></a></p>]]></content:encoded></item><item><title><![CDATA[Free Patreon Idea For New Creators]]></title><description><![CDATA[A new article from Jacob Robinson]]></description><link>https://astukari.substack.com/p/free-patreon-idea-for-new-creators</link><guid isPermaLink="false">https://astukari.substack.com/p/free-patreon-idea-for-new-creators</guid><dc:creator><![CDATA[Jacob Robinson]]></dc:creator><pubDate>Sat, 28 Mar 2026 17:30:38 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21mPxo%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%252Fpublic%252Fimages%252F19d31bcc-b656-432b-b7f3-9c328df4affe_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Here&#8217;s an idea I thought of after watching a few smaller (~1-10k subs) youtubers. This is one of those things where its only a better idea the more people use it, so I have no reason to keep it for myself.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://astukari.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2Fsubscribe%3F"><span>Subscribe now</span></a></p><p>Most Youtubers put sponsors in their videos. The problem with sponsors is that they create <em>contracts</em>, which can reduce the creative freedom of a video. Videos where an update might be required can&#8217;t use the pinned comment, for example. Or the sudden and abrupt inclusion of a sponsorship effects the flow of a heavily stylized video (Nick Crowley and Nexpo come to mind). Or forcing the creator to use a specific script, or script template, which obviously is not in their tone of voice. Sponsors are great, in theory &#8212; they help get a creator get the funding they need &#8212; but it can be intrusive if the sponsor is a large company that enforces a lot of demands.</p><p>So what if the sponsorship <em>wasn&#8217;t</em> from a large company?</p><p>This is, obviously, the point of Patreon. It provides a path for users to directly support creators and get rewards while doing so. The problem with <em>Patreon</em>, however, is that it just isn&#8217;t as big of a revenue source as a sponsorship. This is because sponsors are looking for <em>profit</em>, and are thus willing to make a bigger bet because they believe they can recoup the costs, whereas Patreon users are <em>consumers</em>, will to spend a limited amount of money just to get something they think is cool.</p><p>But what if you could combine them?</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://astukari.substack.com/p/free-patreon-idea-for-new-creators?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2Fp%2Ffree-patreon-idea-for-new-creators%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p><p>In any decently sized community, there&#8217;s going to be people who are working on something &#8212; a company, a project, <em>something</em> they want to advertise. But they&#8217;re also fans of you: they know your style, what your videos should look like, and likely have similar interests.</p><p>So, instead of getting sponsors via traditional means, you can get sponsors through Patreon.</p><p>There&#8217;s still some challenges to this. It is a bit of a flywheel &#8212; more Patreon-based sponsorships will have other people in the community notice its an option, which will cause other people to buy into the tier &#8212; but finding the first set of people to support the sponsorship might be difficult. There&#8217;s also pricing &#8212; you just aren&#8217;t going to have someone in your community who is able or willing to pay you the same amount as Factor, it will just be <em>more</em> than the amount most are willing to pay you for small, consumer-level benefits. But to me, these trade-offs are worth the freedom associated with dropping name-brand sponsors from your content. Some might even choose to do a mix of both: brand sponsors at first to pay the bills for growth, then community sponsors once things get established.</p><p>Either way, it&#8217;s something to consider.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://astukari.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&quot;,&quot;text&quot;:&quot;Share The Astukari Newsletter&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fastukari.substack.com%2F%3Futm_source%3Dsubstack%26amp%3Butm_medium%3Demail%26amp%3Butm_content%3Dshare%26amp%3Baction%3Dshare"><span>Share The Astukari Newsletter</span></a></p>]]></content:encoded></item></channel></rss>