<?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[State Transition]]></title><description><![CDATA[Thoughts on business, technology, and death]]></description><link>https://www.statetransition.co</link><image><url>https://substackcdn.com/image/fetch/$s_!QUi5!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9550697d-5b3e-4be2-aea6-c305db3ef825_276x276.png</url><title>State Transition</title><link>https://www.statetransition.co</link></image><generator>Substack</generator><lastBuildDate>Thu, 09 Apr 2026 20:54:17 GMT</lastBuildDate><atom:link href="https://www.statetransition.co/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Glenn Stovall]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[statetransition@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[statetransition@substack.com]]></itunes:email><itunes:name><![CDATA[Glenn Stovall]]></itunes:name></itunes:owner><itunes:author><![CDATA[Glenn Stovall]]></itunes:author><googleplay:owner><![CDATA[statetransition@substack.com]]></googleplay:owner><googleplay:email><![CDATA[statetransition@substack.com]]></googleplay:email><googleplay:author><![CDATA[Glenn Stovall]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[New Year's Resolutions and Spring Cleaning should swap places]]></title><description><![CDATA[At the edges no.20]]></description><link>https://www.statetransition.co/p/new-years-resolutions-and-spring</link><guid isPermaLink="false">https://www.statetransition.co/p/new-years-resolutions-and-spring</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Tue, 31 Mar 2026 10:42:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aWWO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded8d6ca-01f1-4986-b2e0-e0c281633098_800x519.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="https://substackcdn.com/image/fetch/$s_!aWWO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded8d6ca-01f1-4986-b2e0-e0c281633098_800x519.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aWWO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded8d6ca-01f1-4986-b2e0-e0c281633098_800x519.jpeg 424w, https://substackcdn.com/image/fetch/$s_!aWWO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded8d6ca-01f1-4986-b2e0-e0c281633098_800x519.jpeg 848w, https://substackcdn.com/image/fetch/$s_!aWWO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded8d6ca-01f1-4986-b2e0-e0c281633098_800x519.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!aWWO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded8d6ca-01f1-4986-b2e0-e0c281633098_800x519.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aWWO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded8d6ca-01f1-4986-b2e0-e0c281633098_800x519.jpeg" width="800" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ded8d6ca-01f1-4986-b2e0-e0c281633098_800x519.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102160,&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://www.statetransition.co/i/192714413?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded8d6ca-01f1-4986-b2e0-e0c281633098_800x519.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_!aWWO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded8d6ca-01f1-4986-b2e0-e0c281633098_800x519.jpeg 424w, https://substackcdn.com/image/fetch/$s_!aWWO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded8d6ca-01f1-4986-b2e0-e0c281633098_800x519.jpeg 848w, https://substackcdn.com/image/fetch/$s_!aWWO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded8d6ca-01f1-4986-b2e0-e0c281633098_800x519.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!aWWO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded8d6ca-01f1-4986-b2e0-e0c281633098_800x519.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://www.nga.gov/artworks/70356-spring">Spring</a>, Joseph Rubens Powell. watercolor and gouache over graphite on wove paper 1988.20.27</figcaption></figure></div><p></p><p>New Year&#8217;s is a terrible time to stick to a resolution (or follow a <a href="https://www.statetransition.co/p/this-new-years-try-a-strategy-instead">new strategy</a>.) Spring is not a great time to be cleaning. The air is warmer, the days are longer. I don&#8217;t want to be cooped up in an attic, going through the remnants of old hobbies. I want to be sitting on patios drinking margaritas with the people that I love. It&#8217;s much more effective to spend the time between years cleaning and leverage spring energy to propel change in your life.</p><p>After Christmas, there is a natural rhythm for cleaning up and reorganizing your physical space. Rolling up Christmas lights, stuffing them back in the closet. figuring out where to put new gifts you received, and what to get rid of to make space for them. It&#8217;s the last week of the year, the closest we get to the capitalism meat grinder taking a beat.</p><p>This period is perfect for clearing the deck and closing loops. Wrap up those projects. Get ready for tax season. Getting the house in order physically, mentally, and spiritually. In Japan, they call it Oosouji, &#8220;big cleaning.&#8221;</p><p>Then, January rolls in. It&#8217;s dark. It&#8217;s cold. The elements test you with the shittiest weather, rain 3-5 degrees above freezing. All of the chill of snow without any of the fun. I would choose a tornado over a 36&#8457; storm. I force myself up at 5 am to make it to the gym. It is beyond crowded. I do what I can. I&#8217;d work out outside, but you know, the rain.</p><p>I stay home. I open the work laptop. A 12 encircled red greets me. An inbox full of people who had the audacity to circle back in the new year.</p><p>I press on. February rolls around. Statistically, the worst month for seasonal depression. Whatever seasonal joy I had in the reserves is gone. If I was doing good on eating habits, too bad, combo breaker: Girl Scout cookies are back. I am not trying to be my best self right now. I am trying to <em>survive.</em></p><p>And I always do. The sun rises, soup season comes to a close. People crawl out of their blankets. I was walking to my car from the doctor&#8217;s office, and a woman at the crosswalk, apropos of nothing, looked at me and says &#8216;wow it&#8217;s so beautiful out today!&#8217; There is an <em>energy</em> in the air.</p><p>When the sun rises, so does serotonin. A <a href="https://www.cell.com/current-biology/fulltext/S0960-9822(16)31522-6">2017 study in </a><em><a href="https://www.cell.com/current-biology/fulltext/S0960-9822(16)31522-6">Current Biology</a></em><a href="https://www.cell.com/current-biology/fulltext/S0960-9822(16)31522-6"> by Stothard et al.</a> showed that humans&#8217; circadian rhythms shift earlier in spring. People wake up more energized, more biased towards action, with more daylight to act on it.</p><p>Trying to be resolute in January is working against nature. Doing so in spring is working in harmony with it.</p><p>And as a bonus, the gym will be less crowded.</p>]]></content:encoded></item><item><title><![CDATA[The product triad]]></title><description><![CDATA[Product thinking, management, and practice]]></description><link>https://www.statetransition.co/p/the-product-triad</link><guid isPermaLink="false">https://www.statetransition.co/p/the-product-triad</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Tue, 03 Mar 2026 11:49:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!koBE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0543e0a-d83c-4b1e-abdc-9829c67ad20d_800x569.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="https://substackcdn.com/image/fetch/$s_!koBE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0543e0a-d83c-4b1e-abdc-9829c67ad20d_800x569.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!koBE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0543e0a-d83c-4b1e-abdc-9829c67ad20d_800x569.jpeg 424w, https://substackcdn.com/image/fetch/$s_!koBE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0543e0a-d83c-4b1e-abdc-9829c67ad20d_800x569.jpeg 848w, https://substackcdn.com/image/fetch/$s_!koBE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0543e0a-d83c-4b1e-abdc-9829c67ad20d_800x569.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!koBE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0543e0a-d83c-4b1e-abdc-9829c67ad20d_800x569.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!koBE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0543e0a-d83c-4b1e-abdc-9829c67ad20d_800x569.jpeg" width="800" height="569" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d0543e0a-d83c-4b1e-abdc-9829c67ad20d_800x569.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:569,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:183345,&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://www.statetransition.co/i/189754927?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0543e0a-d83c-4b1e-abdc-9829c67ad20d_800x569.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_!koBE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0543e0a-d83c-4b1e-abdc-9829c67ad20d_800x569.jpeg 424w, https://substackcdn.com/image/fetch/$s_!koBE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0543e0a-d83c-4b1e-abdc-9829c67ad20d_800x569.jpeg 848w, https://substackcdn.com/image/fetch/$s_!koBE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0543e0a-d83c-4b1e-abdc-9829c67ad20d_800x569.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!koBE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0543e0a-d83c-4b1e-abdc-9829c67ad20d_800x569.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Landscape with a Pyramid and Classical Ruins, Franz Innocenz Josef Kobell</figcaption></figure></div><p></p><p>The Product Triad is my three-tiered model of how I deconstruct the &#8216;skill of product&#8217;. It's the model I'm using to organize <em><a href="https://www.statetransition.co/p/why-im-writing-a-book-for-engineers">Own the Outcome</a></em>.</p><p><strong>Product thinking:</strong> Innovating and evaluating products using your intuition and taste.</p><p><strong>Product management:</strong> The art and science of making tradeoffs between stakeholder goals, customer desires, and engineering capacity.</p><p><strong>Product practice:</strong> Bringing product thinking to bear when designing, coding, writing, and communicating.</p><h2>Product thinking</h2><p><strong>Product sense</strong> (also sometimes called <strong>Product intuition</strong>) often feels inscrutable. &#8220;I&#8217;ll know a good product when I see it.&#8221; To the outsider, it looks like magic, as if some people see the world differently and are more in tune with design. But how does that work?</p><p>Intuition is the subconscious process of making predictions, developing expectations, spotting relevant cues, deciding what&#8217;s important, and applying or inventing solutions. For more on developing these skills, see the sample chapter <a href="https://www.statetransition.co/p/how-to-improve-your-product-intuition">How to improve your product intuition</a></p><p>I draw a distinction between intuition and <strong>product taste.</strong> Intuition drives your output, but taste informs it. Taste also shapes what you take in. Taste combines <strong>empathy for the user</strong>, <strong>domain knowledge</strong> of the situation, and your <strong>creative ability</strong>. Your creative ability is how skilled you are at inventing, identifying, and remixing existing solutions to solve problems. I&#8217;m borrowing this definition from Shreya Doshi&#8217;s <a href="https://www.tryexponent.com/blog/product-sense-interview">How to improve your product sense</a>.</p><p>Are some people born with better taste, more skill, and greater vision for what&#8217;s possible? Possibly, but it can be trained. You can <a href="https://www.statetransition.co/p/how-to-improve-your-product-intuition">intentionally improve your product intuition</a> and cultivate your taste.</p><h2>Product management</h2><p><strong>Product management</strong>&#8212;the only one of the three you can get as a job title&#8212;is about deciding what gets built and why.</p><p>Product managers have to be aware of <strong>customer desires</strong> and collect and absorb feedback. They read between the lines and understand what&#8217;s going on in customers&#8217; heads. The only way to know what&#8217;s important is to have good taste. The only way to understand your users is to have empathy for them.</p><p>Then, they must understand <strong>stakeholder goals.</strong> Most commonly, the stakeholder is the business, organization, or client signing your paychecks. If you&#8217;re building a product for yourself, then the stakeholder is you. They will have multiple goals around <strong>monetization</strong> &amp; <strong>growth</strong>, which vary based on their industry, monetization model, how they&#8217;re financed, and where they are in the product lifecycle.</p><p>To get anything done requires <strong>engineering capacity.</strong> Engineering capacity is made up of the resources you have available, how fast you can build, and what constraints you have from <strong>tech debt</strong>, <strong>governments</strong>, and the <strong>laws of physics</strong>. It&#8217;s why we can&#8217;t give customers and stakeholders everything they ever wanted. If you could, this wouldn&#8217;t be any fun.</p><h2>Product practice</h2><p>Intuition and taste are great, but only if they change the output of your work. Product managers can write a tome of roadmaps, user stories, and business cases, but none of it matters if those artifacts aren&#8217;t well-informed and actionable.</p><p>Building a better product isn&#8217;t something you can sit down and do, any more than eating healthier is a task you can check off your to-do list and be done. It&#8217;s a new way of seeing the world. A different way of practicing your craft. You bring it to bear in the hundreds of tiny decisions you make every day. How you pay attention to detail and what you do about it.</p><p>It permeates every part of the product experience. How it&#8217;s built. How it works. The words used to describe it.</p><p>There&#8217;s no such thing as a solo creative process. All design is collaborative, even if it&#8217;s between a creator and a single user. We have to bring this to how we work with others. Within an organization, the only way to be effective is to bring this to your output and <a href="https://www.statetransition.co/p/trust-over-titles-the-engineers-guide">build trust and influence</a>. You need to communicate effectively, persuade, and push back on your teammates.</p><p>Everything is a product. The software you build, the documents you create, the dinner parties you throw. Hopefully, this framework can help you do that a little bit better.</p><p><strong><a href="https://engineering-product.kit.com/0d5f0028f8">Sign up to be notified</a></strong> when my book on product thinking for engineers is available for purchase.</p>]]></content:encoded></item><item><title><![CDATA[Jenkins Strategems 2]]></title><description><![CDATA[At the Edges no.19]]></description><link>https://www.statetransition.co/p/jenkins-strategems-2</link><guid isPermaLink="false">https://www.statetransition.co/p/jenkins-strategems-2</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Wed, 25 Feb 2026 13:22:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pbSO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62896bec-120f-46cc-a4f5-bd0ddf62a786_800x586.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="https://substackcdn.com/image/fetch/$s_!pbSO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62896bec-120f-46cc-a4f5-bd0ddf62a786_800x586.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pbSO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62896bec-120f-46cc-a4f5-bd0ddf62a786_800x586.jpeg 424w, https://substackcdn.com/image/fetch/$s_!pbSO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62896bec-120f-46cc-a4f5-bd0ddf62a786_800x586.jpeg 848w, https://substackcdn.com/image/fetch/$s_!pbSO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62896bec-120f-46cc-a4f5-bd0ddf62a786_800x586.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!pbSO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62896bec-120f-46cc-a4f5-bd0ddf62a786_800x586.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pbSO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62896bec-120f-46cc-a4f5-bd0ddf62a786_800x586.jpeg" width="800" height="586" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/62896bec-120f-46cc-a4f5-bd0ddf62a786_800x586.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:586,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:151036,&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://www.statetransition.co/i/189111371?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62896bec-120f-46cc-a4f5-bd0ddf62a786_800x586.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_!pbSO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62896bec-120f-46cc-a4f5-bd0ddf62a786_800x586.jpeg 424w, https://substackcdn.com/image/fetch/$s_!pbSO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62896bec-120f-46cc-a4f5-bd0ddf62a786_800x586.jpeg 848w, https://substackcdn.com/image/fetch/$s_!pbSO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62896bec-120f-46cc-a4f5-bd0ddf62a786_800x586.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!pbSO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62896bec-120f-46cc-a4f5-bd0ddf62a786_800x586.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>Creation of the Universe, </strong><a href="https://www.nga.gov/artists/2776-giovanni-domenico-tiepolo">Giovanni Domenico Tiepolo</a> Artist, Venetian, 1727 - 1804</figcaption></figure></div><p>In April, I wrote about <a href="https://www.statetransition.co/p/jenkins-strategems">some of the techniques</a> for putting my <a href="https://www.statetransition.co/p/my-leeroy-jenkins-year">Leeroy Jenkins ethos</a> into action. The reception was positive, so here are five more. These are centered around building momentum and getting started when you're stuck.</p><h2>1 - Break Inertia</h2><p>The hardest part is getting started, so make getting started dead simple. If you are stuck in a doom loop, move. Physically move. Stand up. Flap your arms. Anything to get you physically moving. Not starting a project? Do anything. Sketch a note. Archive an email. Create an empty file. Anything! It&#8217;s all about pattern breaking.</p><h2>2 - Just Push Buttons</h2><p>Don&#8217;t know how to get started? Start. Action produces information. You will learn more by doing than by theorizing. I&#8217;m reminded of a quote from Ricki Heicklen about their quantitative trading school:</p><blockquote><p>So when people walk through the door, the very first thing we do is have them start trading. Absolute number one, immediately just throw people in without explaining the rules, without explaining too much logic about what is all the syntax going to look like? We say, &#8220;Hey, we&#8217;re going to go around, play this trading game,&#8221; and we get them started and correct as they go. And that&#8217;s because a very very big part of our pedagogical philosophy is that <strong>the best way to learn how to trade is to trade.</strong></p></blockquote><p>&#8220;You need sufficient knowledge to get started&#8221; is a self-limiting belief.  Getting started is how you know what to do next.</p><h2>3 - Ask an AI</h2><p>If you have no idea where to get started, an LLM can get the juices flowing. But to the first point, be wary of planning disguised as procrastination.</p><p>I wouldn&#8217;t take any plan at face value, but if you don&#8217;t know what to do next, brain dump whatever facts, wants, desires, and constraints you have, then prompt your model of choice(if you don&#8217;t have a model of choice it&#8217;a Opus 4.6) with something like:</p><blockquote><p>I would like to (achieve this goal, build this product, write an essay about this). Study (my notes) Interview me and ask me questions to build out (a step-by-step implementation plan, list of potential actions). (that plan should include A, B, C)</p></blockquote><p>Tweak as needed, then go through the exercise. Don&#8217;t give the AI solutions. Give it problems, and see where it goes. Even if the plan is bad, the questions could get your brain moving and spark other ideas. You&#8217;re exploring, not handing agency over to a flanker.</p><h2>4 - Moments over Systems</h2><p>As James Clear says, &#8220;You don&#8217;t rise to the level of your goals, you fall to the level of your systems.&#8221; While there&#8217;s truth to this, it can nerd snipe people into believing &#8220;you need a system to get started.&#8221; You don&#8217;t. System or not, you can make decisions and seize good moments.</p><p>Systems help with long-term change. But they hurt when you dodge short-term wins because you&#8217;re fixated on some bigger fix you&#8217;ll put into place &#8220;one day.&#8221;</p><p>You can pass on that glass of wine with dinner. You can order the grilled entree instead of the fried one. You can make one good decision in a single moment. You don&#8217;t need a diet plan, a nutritionist, or an app with macros and charts. You can be good without being perfect.</p><p>And besides, what is a system but a way to make the good choices more consistently?</p><h2>5 - Spontaneous Deep Work Sprints</h2><p>Ive read many productivity and management books, and one of the most consistent pieces of advice I see is this: the secret to getting a lot done is long, uninterrupted time blocks. They suggest you book appointments with yourself and put them on your calendar. Start the blocks like you&#8217;re going to the movies: use the bathroom and grab a snack before you lock in.</p><p>I&#8217;ve tried this several times, and it never sticks. Some productivity tricks work for some people, but personally, I have never been able to take &#8220;an appointment with myself&#8221; seriously. Hard as I try, I never stick to the work block. The other challenge is distractions: I&#8217;m on the manager schedule, and things come up needing immediate attention. Other times it&#8217;s slow, where I&#8217;m monitoring and on-call, ready to hop in where needed.</p><p>What works for me is grabbing time blocks when I can get them. I don&#8217;t schedule them, but when I have a deep work task, and I spot open time on the horizon, I decide then and there to lock in for 30, 45, or 60 minutes. The shorter timeframes are a catalyst: How much can I knock out in a sprint? I don&#8217;t think knowledge workers sprint enough, going as hard as they can for a short burst.</p><p>&#8220;Sprint&#8221; has lost its meaning in tech. You cannot sprint for 2 weeks. A sprint should feel fast, feel hard, feel uncomfortable. You should take a break after a sprint. Consider a working HIIT session.</p><p>It&#8217;s &#8216;moments over systems&#8217; in practice. I can&#8217;t reliably block off time, but I can be opportunistic about the time presented to me.</p><h2>Conclusion</h2><p>Putting these together, I realize struggling to get started is being trapped by the Nirvana fallacy: You don&#8217;t start today because there could be better conditions tomorrow. When in fact, these are lies we tell ourselves, mental labor we bear. If we were to look at it, we would see that it is pointless. We can throw it away. We can walk lighter, freer.</p><p>You don&#8217;t need motivation to start; you need to start to build motivation. You don&#8217;t need a system or a plan to take action; you need to take action before you have a system. You don&#8217;t need to make an appointment with your future self; you just need to move.</p>]]></content:encoded></item><item><title><![CDATA[The 4 dimensions of advisory work]]></title><description><![CDATA[When to coach, when to consult, when to mentor, and when to manage]]></description><link>https://www.statetransition.co/p/the-4-dimensions-of-advisory-work</link><guid isPermaLink="false">https://www.statetransition.co/p/the-4-dimensions-of-advisory-work</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Mon, 16 Feb 2026 15:32:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!my2d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb9a790-54ec-4fc2-8be8-39fbc00791b9_800x611.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="https://substackcdn.com/image/fetch/$s_!my2d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb9a790-54ec-4fc2-8be8-39fbc00791b9_800x611.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!my2d!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb9a790-54ec-4fc2-8be8-39fbc00791b9_800x611.jpeg 424w, https://substackcdn.com/image/fetch/$s_!my2d!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb9a790-54ec-4fc2-8be8-39fbc00791b9_800x611.jpeg 848w, https://substackcdn.com/image/fetch/$s_!my2d!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb9a790-54ec-4fc2-8be8-39fbc00791b9_800x611.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!my2d!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb9a790-54ec-4fc2-8be8-39fbc00791b9_800x611.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!my2d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb9a790-54ec-4fc2-8be8-39fbc00791b9_800x611.jpeg" width="800" height="611" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4bb9a790-54ec-4fc2-8be8-39fbc00791b9_800x611.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:611,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:173708,&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://www.statetransition.co/i/188148321?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb9a790-54ec-4fc2-8be8-39fbc00791b9_800x611.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_!my2d!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb9a790-54ec-4fc2-8be8-39fbc00791b9_800x611.jpeg 424w, https://substackcdn.com/image/fetch/$s_!my2d!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb9a790-54ec-4fc2-8be8-39fbc00791b9_800x611.jpeg 848w, https://substackcdn.com/image/fetch/$s_!my2d!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb9a790-54ec-4fc2-8be8-39fbc00791b9_800x611.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!my2d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bb9a790-54ec-4fc2-8be8-39fbc00791b9_800x611.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong><a href="https://www.nga.gov/artworks/143845-caricatures-clerics-and-priests">Caricatures of Clerics and Priests, </a></strong><a href="https://www.nga.gov/artworks/143845-caricatures-clerics-and-priests">1640s or 1650s(?) Pier Francesco Mola</a></figcaption></figure></div><p>Over my career, I&#8217;ve often left meetings flummoxed as to why my help wasn&#8217;t landing. &#8220;I can help the client optimize their funnel. Why aren&#8217;t they listening?&#8221; &#8220;I told this report exactly what they needed to do to solve their problem, but why did they seem annoyed?&#8221; I&#8217;ve now come to realize there are [different ways to advise people](https://www.statetransition.co/p/consulting-models-and-failure-modesat), and it&#8217;s crucial to know which skill to apply when.</p><p>There are four kinds of work you can do in an advisory role: coaching, consulting, mentoring, and managing. These terms seem interchangeable, but they&#8217;re not. They&#8217;re distinct skillsets that serve different purposes. Apply the wrong skill to the wrong problem, and you could get disastrous results.</p><h2>The 4 types of advisory work </h2><h3>Coaching</h3><p>Coaching is <strong>people-oriented</strong>. The primary goal of coaching is to help people grow and achieve their goals. To coach effectively, you need to listen actively and ask good questions. A good coach will get you to give an answer to a question that surprises even yourself.</p><h3>Consulting</h3><p>Consulting is <strong>solutions-oriented</strong>. The goal is to deliver information, expertise, and strategy. When consulting, you need to identify root causes and be able to give advice in a way people will hear. After a good consultation, you&#8217;ll feel you have a strategy and know exactly why you&#8217;re implementing it.</p><h3>Managing</h3><p>Managing is <strong>project-oriented</strong>. The goal is to close loops, move needles, and track performance. The most valuable management traits are the willingness to have uncomfortable conversations, make decisions, and take ownership. A good manager sets a high-quality bar, holds you to it, and <a href="https://www.statetransition.co/p/engineering-management-as-talent">brings out your best performance</a>.</p><h3>Mentoring</h3><p>Mentoring is <strong>expertise-oriented.</strong> The goal is to share specific examples and lessons that help someone build knowledge and expertise. The most valuable mentoring skills are contextualizing expertise and showing, not telling. Your Miyagis, your Yodas, your Professors Xavier.</p><p></p><h2>What happens when you apply the wrong skill</h2><p></p><p></p><h2>Know your role and shut your mouth</h2><p>When I was a freelance web developer, I wanted to position myself as a &#8216;strategic partner&#8217; for two reasons: the work was more interesting, and I could charge a higher hourly rate. I rubbed some clients the wrong way when I tried to contribute to the overall vision.</p><p>Once at a local bar, I ordered a whiskey bramble. &#8220;Are you <em>sure?</em>&#8220; the server replied, &#8220;It&#8217;s a fruity and sugary drink.&#8221; I felt judged. I knew what I was doing; I was not looking for a more &#8220;masculine&#8221; order. If I want to put blackberry liqueur and lemon juice in my booze until it tastes like Dimetapp, that&#8217;s my business and mine alone. I understood how some of my clients must have felt.</p><p>You can&#8217;t coach those who don&#8217;t want to change, or consult those who don&#8217;t want advice. At best, you waste your time. At worst, you damage relationships. Unsolicited coaching or consulting is the professional equivalent of mansplaining.</p><p></p><h3>When to help people, and when to let them struggle</h3><p>When mentoring, your goal is to give answers. When coaching, your goal is to ask questions and help the coachee discover answers within themselves. The challenge is knowing when to help and when to step back and let people figure it out. It&#8217;s tempting to jump in and offer solutions when you see someone struggling. Growth requires discomfort; there is value in wrestling with a thorny challenge.</p><p>A heuristic: <strong>frustration is ok, confusion is not</strong>. People can grind on hard problems, but when they have zero idea what to try next, nudge them in the right direction.</p><p></p><h2>Using the model </h2><p>How would you rate yourself on each of these, on a scale of 1 to 10? If you broke your week down into a pie chart of the four types, what would it look like? When you think through the four models, you can pinpoint where to focus when skilling up.</p><p>&#8220;Are they asking for expertise, or do they just want a pair of hands?&#8221; &#8220;Does this person need help, or do I need to set expectations and hold them to it?&#8221; The four models help you pick the right tool for the job. This is why I think it&#8217;s important to draw these distinctions. If you can recognize when to apply each skill, you can be a more effective leader.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Case study: How Rare Studios Pivoted Their Way to a Masterpiece]]></title><description><![CDATA[Why their 'Legend of Zelda' game was never meant to be]]></description><link>https://www.statetransition.co/p/case-study-how-rare-studios-pivoted</link><guid isPermaLink="false">https://www.statetransition.co/p/case-study-how-rare-studios-pivoted</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Mon, 09 Feb 2026 12:02:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-3x7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f62bb62-63c4-4366-b3e9-8ad1e5070373_640x480.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="https://substackcdn.com/image/fetch/$s_!-3x7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f62bb62-63c4-4366-b3e9-8ad1e5070373_640x480.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-3x7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f62bb62-63c4-4366-b3e9-8ad1e5070373_640x480.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-3x7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f62bb62-63c4-4366-b3e9-8ad1e5070373_640x480.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-3x7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f62bb62-63c4-4366-b3e9-8ad1e5070373_640x480.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-3x7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f62bb62-63c4-4366-b3e9-8ad1e5070373_640x480.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-3x7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f62bb62-63c4-4366-b3e9-8ad1e5070373_640x480.jpeg" width="640" height="480" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0f62bb62-63c4-4366-b3e9-8ad1e5070373_640x480.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:38850,&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://www.statetransition.co/i/187294048?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f62bb62-63c4-4366-b3e9-8ad1e5070373_640x480.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_!-3x7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f62bb62-63c4-4366-b3e9-8ad1e5070373_640x480.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-3x7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f62bb62-63c4-4366-b3e9-8ad1e5070373_640x480.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-3x7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f62bb62-63c4-4366-b3e9-8ad1e5070373_640x480.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-3x7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f62bb62-63c4-4366-b3e9-8ad1e5070373_640x480.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In 1995, riding high on <em>Donkey Kong Country</em>, Rare kicked off a new project titled <em>Dream: Land of Giants<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></em>, a fantasy adventure game. Donkey Kong Country had been a revelation the year before. Rare put a fresh spin on the platforming genre with new environments, a two-player tag system where each character had distinct strengths and weaknesses, and pre-rendered graphics: 3D models captured as 2D sprites. It looked and played like nothing anyone had seen. It felt like the next step in evolution for platformers after <em>Super Mario World</em>.</p><p>If Donkey Kong Country could stand toe to toe with Super Mario World, Rare figured they could build another masterpiece on the scale of <em>Legend of Zelda</em>.</p><p>Project Dream did spawn another hit, but it looked nothing like the original vision. Here&#8217;s how Rare iterated and pivoted their way to the final product.</p><h2>Initial feedback was tepid</h2><p>In the initial beta, players explored a fantasy/fairytale setting. You played as Edson, assisted by his pet dog Dinger. This two-character system expanded on the Donkey/Diddy duality of DKC.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HF98!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48f36dc7-9043-4386-a1c2-65dc3c6f4941_843x649.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HF98!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48f36dc7-9043-4386-a1c2-65dc3c6f4941_843x649.png 424w, https://substackcdn.com/image/fetch/$s_!HF98!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48f36dc7-9043-4386-a1c2-65dc3c6f4941_843x649.png 848w, https://substackcdn.com/image/fetch/$s_!HF98!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48f36dc7-9043-4386-a1c2-65dc3c6f4941_843x649.png 1272w, https://substackcdn.com/image/fetch/$s_!HF98!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48f36dc7-9043-4386-a1c2-65dc3c6f4941_843x649.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HF98!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48f36dc7-9043-4386-a1c2-65dc3c6f4941_843x649.png" width="843" height="649" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/48f36dc7-9043-4386-a1c2-65dc3c6f4941_843x649.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:649,&quot;width&quot;:843,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:810847,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/187294048?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48f36dc7-9043-4386-a1c2-65dc3c6f4941_843x649.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HF98!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48f36dc7-9043-4386-a1c2-65dc3c6f4941_843x649.png 424w, https://substackcdn.com/image/fetch/$s_!HF98!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48f36dc7-9043-4386-a1c2-65dc3c6f4941_843x649.png 848w, https://substackcdn.com/image/fetch/$s_!HF98!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48f36dc7-9043-4386-a1c2-65dc3c6f4941_843x649.png 1272w, https://substackcdn.com/image/fetch/$s_!HF98!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48f36dc7-9043-4386-a1c2-65dc3c6f4941_843x649.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Then, Project Dream ran into two problems that forced a pivot. First, the technological landscape shifted. The SNES was riding into the sunset to make way for the <em>Nintendo 64</em>. The game became a 3D project, as was the style at the time. They built a new rendering system for the new hardware.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6gWj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa56a12ae-8fd2-4c9a-a633-bcd0b58035cb_715x686.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6gWj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa56a12ae-8fd2-4c9a-a633-bcd0b58035cb_715x686.png 424w, https://substackcdn.com/image/fetch/$s_!6gWj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa56a12ae-8fd2-4c9a-a633-bcd0b58035cb_715x686.png 848w, https://substackcdn.com/image/fetch/$s_!6gWj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa56a12ae-8fd2-4c9a-a633-bcd0b58035cb_715x686.png 1272w, https://substackcdn.com/image/fetch/$s_!6gWj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa56a12ae-8fd2-4c9a-a633-bcd0b58035cb_715x686.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6gWj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa56a12ae-8fd2-4c9a-a633-bcd0b58035cb_715x686.png" width="715" height="686" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a56a12ae-8fd2-4c9a-a633-bcd0b58035cb_715x686.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:686,&quot;width&quot;:715,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:295366,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/187294048?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa56a12ae-8fd2-4c9a-a633-bcd0b58035cb_715x686.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6gWj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa56a12ae-8fd2-4c9a-a633-bcd0b58035cb_715x686.png 424w, https://substackcdn.com/image/fetch/$s_!6gWj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa56a12ae-8fd2-4c9a-a633-bcd0b58035cb_715x686.png 848w, https://substackcdn.com/image/fetch/$s_!6gWj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa56a12ae-8fd2-4c9a-a633-bcd0b58035cb_715x686.png 1272w, https://substackcdn.com/image/fetch/$s_!6gWj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa56a12ae-8fd2-4c9a-a633-bcd0b58035cb_715x686.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Second, playtests delivered bad news. The setting was too cliche, too bland, and didn't engage players. They moved to a "harder-edged piratey theme." But changing the environment wasn't enough. The game still felt generic and lacked a hook. So they started experimenting with character designs. One of them: a sword-wielding bear named Banjo.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lSX4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e3e2bf5-583a-4cfd-ad26-c722b13a1852_532x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lSX4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e3e2bf5-583a-4cfd-ad26-c722b13a1852_532x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lSX4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e3e2bf5-583a-4cfd-ad26-c722b13a1852_532x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lSX4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e3e2bf5-583a-4cfd-ad26-c722b13a1852_532x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lSX4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e3e2bf5-583a-4cfd-ad26-c722b13a1852_532x720.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lSX4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e3e2bf5-583a-4cfd-ad26-c722b13a1852_532x720.jpeg" width="532" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e3e2bf5-583a-4cfd-ad26-c722b13a1852_532x720.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:532,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:65363,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/187294048?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e3e2bf5-583a-4cfd-ad26-c722b13a1852_532x720.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_!lSX4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e3e2bf5-583a-4cfd-ad26-c722b13a1852_532x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lSX4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e3e2bf5-583a-4cfd-ad26-c722b13a1852_532x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lSX4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e3e2bf5-583a-4cfd-ad26-c722b13a1852_532x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lSX4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e3e2bf5-583a-4cfd-ad26-c722b13a1852_532x720.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>They pressed on, and got some good news and some bad news. The bad news? Their new rendering system was so deep and complex that the game would take far too long to finish. The good news? Everybody <strong>loves</strong> the bear.</p><p>The project got scrapped. Started again. Now the bear is the main character, his sidekick a bird named Kazooie who lives in his backpack. It wasn&#8217;t until the fourth restart of the project that Rare struck gold again.</p><h2>The final result </h2><p>Then <em>Mario 64</em> launched and redefined the platforming genre, dragging it into the 3D era. Banjo felt archaic. The game evolved into a 3D platformer, closer to Mario again. <em>Banjo Kazooie</em> went on to be a smash success, and ranks among the best 3D platformers of its era<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!geVu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F687da2d4-087b-4390-9e00-5b4a56235fc7_800x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!geVu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F687da2d4-087b-4390-9e00-5b4a56235fc7_800x600.png 424w, https://substackcdn.com/image/fetch/$s_!geVu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F687da2d4-087b-4390-9e00-5b4a56235fc7_800x600.png 848w, https://substackcdn.com/image/fetch/$s_!geVu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F687da2d4-087b-4390-9e00-5b4a56235fc7_800x600.png 1272w, https://substackcdn.com/image/fetch/$s_!geVu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F687da2d4-087b-4390-9e00-5b4a56235fc7_800x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!geVu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F687da2d4-087b-4390-9e00-5b4a56235fc7_800x600.png" width="800" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/687da2d4-087b-4390-9e00-5b4a56235fc7_800x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:303261,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/187294048?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F687da2d4-087b-4390-9e00-5b4a56235fc7_800x600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!geVu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F687da2d4-087b-4390-9e00-5b4a56235fc7_800x600.png 424w, https://substackcdn.com/image/fetch/$s_!geVu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F687da2d4-087b-4390-9e00-5b4a56235fc7_800x600.png 848w, https://substackcdn.com/image/fetch/$s_!geVu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F687da2d4-087b-4390-9e00-5b4a56235fc7_800x600.png 1272w, https://substackcdn.com/image/fetch/$s_!geVu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F687da2d4-087b-4390-9e00-5b4a56235fc7_800x600.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>If you've ever wondered how game companies come up with ideas like "Bear and his bird friend rescue his sister from a wicked witch," now you know. Banjo-Kazooie could have never started as Banjo-Kazooie. Traces of the original iterations survived. The main villain, Gruntilda &#8220;Grunty&#8221; the Witch, is a wicked witch fairy tale trope. Levels like Treasure Trove Cove harken back to the project&#8217;s pirate era. The end result required its circuitous journey. </p><p></p><h2>What we can learn from this </h2><p>Here's the thing about Rare: they cared about the core idea, and were willing to torch <em>everything else</em> to chase it. They dropped characters, settings, themes, rendering engines, and entire prototypes. It was never about fantasy, or pirates, or bears. It's about friends exploring a fascinating world.</p><div id="youtube2-w72kj20YNA0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;w72kj20YNA0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/w72kj20YNA0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p></p><p>This is an excerpt from my upcoming book on product thinking for engineers, <em>Own the Outcome</em>. <strong><a href="https://engineering-product.kit.com/0d5f0028f8">Sign up to be notified</a></strong> when it is available for purchase.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p><a href="https://banjokazooie.fandom.com/wiki/Project_Dream">Project Dream fan wiki</a></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>no.2 on <a href="https://www.metacritic.com/browse/game/all/3d-platformer/all-time/metascore/?releaseYearMin=1958&amp;releaseYearMax=2000&amp;genre=3d-platformer&amp;page=1">Metacritic for pre-2000 3D platformers</a></p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[Mistakes I Made Building My AI Assistant (And What I Learned)]]></title><description><![CDATA[How I used Claude Code and Obsidian to build an Agentic Agent (part 3)]]></description><link>https://www.statetransition.co/p/mistakes-i-made-building-my-ai-assistant</link><guid isPermaLink="false">https://www.statetransition.co/p/mistakes-i-made-building-my-ai-assistant</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Mon, 02 Feb 2026 13:15:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yJE2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80606214-2ecb-475d-be46-1c794bf8246c_1024x576.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This is the third and final post in my series on building an agentic assistant. In part 1, I explored the idea of agentic agents themselves. In part 2, I broke down the building blocks people can use with these systems. For this part, I will walk through my process and how I think about building these parts of systems.</p><h5>Previous posts:</h5><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;c747b8f7-26b5-4b4d-9b22-4e8648b4c39c&quot;,&quot;caption&quot;:&quot;My feeds have been overrun with take after take after take after take after take about how \&quot;Claude Code isn't just for code anymore.\&quot; Everyone seems to be supercharging their \&quot;second brains\&quot; and building \&quot;LifeOSes\&quot; and \&quot;Agentic Assistants.\&quot; So, of course I had to try it. And I was surprised how quickly I was willing to let it run a small part of my life.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Claudatouillie&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:5359155,&quot;name&quot;:&quot;Glenn Stovall&quot;,&quot;bio&quot;:&quot;Senior frontend engineer in FinTech - writing about dealing with change &amp; uncertainty at a personal and global level &quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/3ac21bd5-9b5a-4be4-9fa1-f1f9e73f61c7_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-19T18:07:20.959Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/00db9d7d-83df-422f-8bf3-7aa7b989d3dd_2000x1000.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.statetransition.co/p/claudatouillie&quot;,&quot;section_name&quot;:&quot;Root Nodes&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:184855146,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:1,&quot;publication_id&quot;:1196304,&quot;publication_name&quot;:&quot;State Transition&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!QUi5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9550697d-5b3e-4be2-aea6-c305db3ef825_276x276.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;c863fb77-7652-49ca-991e-81e313a57505&quot;,&quot;caption&quot;:&quot;This is part 2 in my series on building agentic assistants. I&#8217;ve been iterating on one that helps me do my job as an engineering manager. In part 1, I looked at this emerging pattern. It usually involves combining Claude Code with the Opus 4.5 model and&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Building Blocks of Agentic Agents&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:5359155,&quot;name&quot;:&quot;Glenn Stovall&quot;,&quot;bio&quot;:&quot;Senior frontend engineer in FinTech - writing about dealing with change &amp; uncertainty at a personal and global level &quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/3ac21bd5-9b5a-4be4-9fa1-f1f9e73f61c7_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-26T12:03:23.756Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!UOy7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ec59e-90e6-43ee-b3eb-7f932737fc9e_480x343.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.statetransition.co/p/building-blocks-of-agentic-agents&quot;,&quot;section_name&quot;:&quot;Root Nodes&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:185634813,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:2,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1196304,&quot;publication_name&quot;:&quot;State Transition&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!QUi5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9550697d-5b3e-4be2-aea6-c305db3ef825_276x276.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p><p>In the past few weeks, agentic assistants have gone from helping people schedule meetings to [kickstarting a &#8220;religion&#8221; on Clanker Reddit](https://molt.church/). I&#8217;ve worked through multiple iterations of engineering management tooling and realized three things:</p><p>1. There is a certain skill to building these kinds of systems.</p><p>2. It requires a mental shift in how you work to use them effectively.</p><p>3. If you aren&#8217;t careful, you can get lost in the sauce and spend too much time working on your &#8216;systems&#8217; instead of being productive.</p><p></p><h2>1 - The art of agentic agent design</h2><h3>Context is everything</h3><p><strong>Context</strong> is the information you give the LLM to work with. The value you can get out of AI is directly proportional to how much of your work you can put in plain text.</p><p>When starting, <strong>build a capture spot:</strong> a place to easily capture data throughout your day. It could be a folder, an Obsidian vault, anything. It&#8217;s a reversible decision, don&#8217;t overthink it. You don&#8217;t want to think about where you put stuff.</p><p>Then, <strong>document processes</strong>. Start noticing repetitive tasks, and how you might automate them, in all or in part. The more structured and repeatable the process, the more effective the tool will be. Remember the rule: if you do the same thing three times, write it down.</p><p></p><h3>Think in building blocks</h3><p>In <a href="https://www.statetransition.co/p/building-blocks-of-agentic-agents">building blocks of agentic agents</a>, I inventoried the individual units of a system. A skill, a standard operating procedure, a file, a folder&#8212;these can all be blocks. In software development, blocks are "modules" or "units of code." When working with these systems, it helps to think in building blocks.</p><p>There are three software development heuristics I&#8217;ve found useful with modules and building blocks alike: </p><ol><li><p><strong>The Single Responsibility Principle</strong> - A block should only have one job or responsibility.</p></li><li><p><strong>Loose coupling</strong> - A block should depend on other blocks as little as possible.</p></li><li><p><strong>High cohesion</strong> - The elements of a block should belong together.</p></li></ol><p>You shouldn't try to build one skill that does everything. Even a single process could have several sub-processes. Let's say you want to build your system to help you better handle meetings. That may include:</p><ol><li><p>A skill that reviews your notes and helps you prep for meetings</p></li><li><p>A skill that integrates with your calendar to schedule meetings</p></li><li><p>A 3rd-party tool that transcribes meetings and adds them to your capture spot</p></li><li><p>A skill that processes meeting transcriptions and pulls out relevant information</p></li></ol><p>hink about building each part of the system individually. You don&#8217;t have to solve everything. Solving one piece can be a win.</p><p>It requires practice to figure out the right level of abstraction for &#8216;block.&#8217; From above, I could in theory have a different skill for each type of meeting. It may be valuable, it may be overkill. How similar are the meetings? That&#8217;s where cohesion comes into play.</p><p>If you can&#8217;t describe what a block does without using the word &#8220;and&#8221; twice, it should be split up.</p><p>When you want to modify or swap out a block, you want to do so with as little friction and side effects as possible. Building self-contained single purpose tooling speeds up iteration.</p><p>Check out Anthropic&#8217;s <a href="https://github.com/anthropics/claude-plugins-official/tree/main/plugins">collection of official plugins</a>. Imagine if you had to install all of them just to use one feature. Instead, they split their tooling into a few dozen different blocks, so you can pick and choose what to bring into your system.</p><p>Single responsibility applies to chats as well. LLMs get dumber the longer they run. They keep every message in context. The further you are from your initial instructions, the more likely they are to drift. Mistakes and misunderstandings accumulate<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. Better to clear out the chat and start a new one every time you switch tasks. Even if you are doing the same kind of task many times over, it can be useful to start fresh regularly.</p><p></p><h3>Define your primitives </h3><p>When starting, think about the primitives of your work and how to model them in plain text. A primitive is any core object you want in your system. Here are some examples from mine:</p><ul><li><p>projects</p></li><li><p>tasks</p></li><li><p>people</p></li><li><p>teams</p></li><li><p>meetings</p></li></ul><p>What's fun is coming up with features that map to your idiosyncrasies, that you don't find in many other projects. I added the <code>monkey</code> primitive, inspired by the HBR piece "<a href="https://hbr.org/1999/11/management-time-whos-got-the-monkey">Management Time: Who's got the Monkey</a>?" I can track when I'm waiting on a response or feedback from someone (monkey on their back) or someone is waiting on something from me (monkey on my back).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yJE2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80606214-2ecb-475d-be46-1c794bf8246c_1024x576.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yJE2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80606214-2ecb-475d-be46-1c794bf8246c_1024x576.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yJE2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80606214-2ecb-475d-be46-1c794bf8246c_1024x576.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yJE2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80606214-2ecb-475d-be46-1c794bf8246c_1024x576.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yJE2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80606214-2ecb-475d-be46-1c794bf8246c_1024x576.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yJE2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80606214-2ecb-475d-be46-1c794bf8246c_1024x576.jpeg" width="1024" height="576" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/80606214-2ecb-475d-be46-1c794bf8246c_1024x576.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:576,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:74198,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/186607212?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80606214-2ecb-475d-be46-1c794bf8246c_1024x576.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_!yJE2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80606214-2ecb-475d-be46-1c794bf8246c_1024x576.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yJE2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80606214-2ecb-475d-be46-1c794bf8246c_1024x576.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yJE2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80606214-2ecb-475d-be46-1c794bf8246c_1024x576.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yJE2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80606214-2ecb-475d-be46-1c794bf8246c_1024x576.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Project management in 1996, 2026</figcaption></figure></div><p></p><h3>Iteration is (also) everything</h3><p>Fighter pilot John Boyd gave us the OODA loop: observe, orient, decide, act. Read the situation, pick your move, execute, repeat. You don&#8217;t have time to strategize in the middle of a dogfight. You have to act fast and stay in the flow.</p><blockquote><p>In a tactical sense, these multi-dimensional interactions suggest a spontaneous, synthetic/creative, and flowing action/counteraction, rather than a step-by-step, analytical/logical, and discrete move/countermove game. &#8212; <a href="https://www.ausairpower.net/JRB/poc.pdf">John Boyd, Patterns of Conflict, p.177</a></p></blockquote><p>AI enables OODA looping at a quicker tempo. You can build, test, and iterate faster than ever before. Experimentation is fast and cheap. Don&#8217;t be afraid to try something, and throw it away if it doesn&#8217;t work. There will be throwaway work. This isn&#8217;t waste; this is part of the process. In creative work there is a cycle of expansion and compression.</p><p>That&#8217;s why you want well-designed modules. Faster to iterate on small, well-contained subsystems than a sprawling mess.</p><p>The difference between a good product and a great one is the number of iteration loops. Quality in creative work comes from labor, not genius. Author John McPhee wrote the book &#8220;<a href="https://us.macmillan.com/books/9780374712396/draftno4/">Draft No. 4</a>.&#8221; You don&#8217;t have to read it&#8212;the title alone can make you a better author if you&#8217;ve never considered starting a draft over for the fourth time.</p><p>Don&#8217;t try to get things perfect on the first shot. Make something, examine what went wrong, adjust your system, and try again.</p><h3>Use LLMs for design &amp; ideation</h3><p>Whenever I start a non-trivial piece of work, I go through this "spec-driven development" process:</p><ol><li><p>Sketch out a plan of what you want to achieve. Provide as much context as you can. Let&#8217;s call this doc <code>spec.md</code></p></li><li><p><strong>Here&#8217;s the important step many skip:</strong> Go to Claude with this prompt: <code>study spec.md. interview me and ask me questions so you can improve the spec and then write an implementation plan.</code></p></li><li><p>After you answer the questions, ask it to write an implementation plan.</p></li><li><p><strong>Start a new chat</strong> and ask it to start on the next phase of the implementation plan. (Planning and building are two different tasks, so we clear the memory.)</p></li></ol><p>You can even take it a step before <em>that</em>, and ask the LLM to figure out how you could use the LLM. <a href="https://x.com/krispuckett/status/2008039258926514532">A tweet from my former coworker Kris Puckett</a>:</p><blockquote><p>Based on what I shared, ask me 5-7 questions to understand my workflow better. Then suggest 3 things I could build, ranked by impact vs complexity.</p></blockquote><p>Work in these kinds of loops. Get comfortable with them. I can&#8217;t emphasize this enough. More iterations get you to where you want to be faster.</p><h2>2 - A mental shift in how you work </h2><h3>Try working chat-first</h3><p>The best way to figure out what LLMs can do is to start working chat-first. Whatever you want to do, start with a prompt. If you are already comfortable working in text, this shouldn&#8217;t be a large shift for you.</p><h3>The Dual Loop Framework</h3><p>When I&#8217;m cooking, I have two Claude terminals open in parallel. I call these, borrowing terminology from <em><a href="https://michaelegerbercompanies.com/product/the-e-myth-revisited/">The E-Myth Revisited</a></em>: the &#8220;working on the business&#8221; loop and the &#8220;working in the business&#8221; loop. The &#8220;on the business&#8221; loop is the system working on itself. I notice a problem, and I deal with it there. The &#8220;in the business&#8221; loop is getting the work done. These are separate enough that they can work together without running into one another.</p><p>That&#8217;s why you want well-designed modules. Easier to parallelize work with small, well-contained subsystems than with a sprawling mess.</p><h3>The out-to-lunch task</h3><p>Occasionally, there will be tasks that take a while for the LLM to complete. Something that has helped me: kick these off when you leave at the end of the day, or go to lunch. The agent can chug away while you&#8217;re away, and you can review the output when you return.</p><h2>3 - Avoid getting lost in the sauce</h2><p>Years ago, I spent too much time playing the game <em>Cookie Clicker</em><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>. This is an idle game where you click a cookie. It taught us all that number-go-up is fun in and of itself&#8212;you don&#8217;t need the game itself to be fun. There was something hypnotic about building up the cookie clicker system and letting it farm points in the background.</p><p>If you&#8217;ve been sniped by similar dopamine-hijacking games, watch yourself when working with an LLM. They are a Skinner box, a slot machine where the jackpot is that it does your job for you. They can be hypnotic, even addictive.</p><p>There may come a time when you&#8217;ve heard of vibe coding, you are tired of typing in a chat box, and so you decide to build a piece of software to support your system. That&#8217;s awesome, and you can make a powerful tool. Just maintain focus, and don&#8217;t get too distracted building the system instead of building with the system.</p><p>I justify this meta-work to myself because I see the value as two-fold: It&#8217;s not just a productivity system, it&#8217;s a skunkworks project to test new LLM-powered coding techniques. Still, there are diminishing returns on that as well.</p><p>If you go down this route, a few words of caution:</p><p>Think hard about the architecture, languages, and data storage tools you use to build your system. These will be the hardest to reverse. If you have no idea, I recommend building it as a web app you run locally, with NextJS, TypeScript, SQLite, and a UI framework of your choosing.</p><p>Make sure your system has back pressure. Add testing and typechecking early and keep them up to date.</p><p></p><h2>4 - Where do we go from here? </h2><p>It&#8217;s nice to have a system that can automate some tasks for me, and take random unstructured data and help keep it organized. A big part of management is making sure everyone has the information they need, knows who to ask, and is empowered to make decisions.</p><p>A question I&#8217;ve asked myself during my recent career transition: Which job is more AI-proof, an engineering manager or an engineer? After using LLMs for both, I feel confident that both are safe. LLMs cannot replace the systems design skills needed to engineer software that scales and has a long lifespan. LLMs cannot provide the human connection, empathy, and support that a good manager, mentor, or coach can.</p><p></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><ol><li><p>&#8220;Lost in the Middle: How Language Models Use Long Contexts&#8221; by Liu et al. (2023) from Stanford/Berkeley. <a href="https://arxiv.org/abs/2307.03172">https://arxiv.org/abs/2307.03172</a></p></li></ol><p></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>I put this link in the footer instead of inline, so you can give it a good think before you click it and go back to that place: <a href="https://orteil.dashnet.org/cookieclicker/">Cookie Clicker</a></p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[Building Blocks of Agentic Agents]]></title><description><![CDATA[How I used Claude Code and Obsidian to build an Agentic Agent (part 2)]]></description><link>https://www.statetransition.co/p/building-blocks-of-agentic-agents</link><guid isPermaLink="false">https://www.statetransition.co/p/building-blocks-of-agentic-agents</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Mon, 26 Jan 2026 12:03:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!UOy7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ec59e-90e6-43ee-b3eb-7f932737fc9e_480x343.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This is part 2 in my series on building agentic assistants. I&#8217;ve been iterating on one that helps me do my job as an engineering manager. In part 1, I looked at this emerging pattern. It usually involves combining <a href="https://code.claude.com/">Claude Code</a> with the Opus 4.5 model and <a href="https://obsidian.md/">Obsidian</a> .</p><p>Read part 1 here:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;01446a48-713e-4f80-b88a-6d04ed21d01f&quot;,&quot;caption&quot;:&quot;My feeds have been overrun with take after take after take after take after take about how \&quot;Claude Code isn't just for code anymore.\&quot; Everyone seems to be supercharging their \&quot;second brains\&quot; and building \&quot;LifeOSes\&quot; and \&quot;Agentic Assistants.\&quot; So, of course I had to try it. And I was surprised how quickly I was willing to let it run a small part of my life.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Claudatouillie&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:5359155,&quot;name&quot;:&quot;Glenn Stovall&quot;,&quot;bio&quot;:&quot;Senior frontend engineer in FinTech - writing about dealing with change &amp; uncertainty at a personal and global level &quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/3ac21bd5-9b5a-4be4-9fa1-f1f9e73f61c7_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-19T18:07:20.959Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/00db9d7d-83df-422f-8bf3-7aa7b989d3dd_2000x1000.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.statetransition.co/p/claudatouillie&quot;,&quot;section_name&quot;:&quot;Root Nodes&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:184855146,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:1,&quot;publication_id&quot;:1196304,&quot;publication_name&quot;:&quot;State Transition&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!QUi5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9550697d-5b3e-4be2-aea6-c305db3ef825_276x276.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><h2>A bin of building blocks</h2><p>When I was a kid, I loved Lego. What kid didn't? Most of the time, I had a bin, a menagerie of simple colors and cubic pieces. Christmas was the only time I got a set, with themed pieces and instructions. A medieval castle is a medieval castle set, but a bin? It can be anything! It could even be a castle!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UOy7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ec59e-90e6-43ee-b3eb-7f932737fc9e_480x343.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UOy7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ec59e-90e6-43ee-b3eb-7f932737fc9e_480x343.jpeg 424w, https://substackcdn.com/image/fetch/$s_!UOy7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ec59e-90e6-43ee-b3eb-7f932737fc9e_480x343.jpeg 848w, https://substackcdn.com/image/fetch/$s_!UOy7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ec59e-90e6-43ee-b3eb-7f932737fc9e_480x343.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!UOy7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ec59e-90e6-43ee-b3eb-7f932737fc9e_480x343.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UOy7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ec59e-90e6-43ee-b3eb-7f932737fc9e_480x343.jpeg" width="480" height="343" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/145ec59e-90e6-43ee-b3eb-7f932737fc9e_480x343.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:343,&quot;width&quot;:480,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:53433,&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://www.statetransition.co/i/185634813?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ec59e-90e6-43ee-b3eb-7f932737fc9e_480x343.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_!UOy7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ec59e-90e6-43ee-b3eb-7f932737fc9e_480x343.jpeg 424w, https://substackcdn.com/image/fetch/$s_!UOy7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ec59e-90e6-43ee-b3eb-7f932737fc9e_480x343.jpeg 848w, https://substackcdn.com/image/fetch/$s_!UOy7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ec59e-90e6-43ee-b3eb-7f932737fc9e_480x343.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!UOy7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ec59e-90e6-43ee-b3eb-7f932737fc9e_480x343.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">1992 was a good Christmas. </figcaption></figure></div><p>The joy of personalized software is that it can be anything, built by you, for you. Instead of giving you instrcutions, I&#8217;m giving you a bin. You can study the list, and think about how you can connect these together to build not just any system, but your system.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Tvri!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ea7d2b-1a8b-42c7-8b29-59e32ad6c18c_1800x1200.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Tvri!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ea7d2b-1a8b-42c7-8b29-59e32ad6c18c_1800x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Tvri!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ea7d2b-1a8b-42c7-8b29-59e32ad6c18c_1800x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Tvri!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ea7d2b-1a8b-42c7-8b29-59e32ad6c18c_1800x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Tvri!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ea7d2b-1a8b-42c7-8b29-59e32ad6c18c_1800x1200.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Tvri!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ea7d2b-1a8b-42c7-8b29-59e32ad6c18c_1800x1200.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e5ea7d2b-1a8b-42c7-8b29-59e32ad6c18c_1800x1200.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;:253660,&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;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/185634813?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ea7d2b-1a8b-42c7-8b29-59e32ad6c18c_1800x1200.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_!Tvri!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ea7d2b-1a8b-42c7-8b29-59e32ad6c18c_1800x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Tvri!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ea7d2b-1a8b-42c7-8b29-59e32ad6c18c_1800x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Tvri!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ea7d2b-1a8b-42c7-8b29-59e32ad6c18c_1800x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Tvri!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5ea7d2b-1a8b-42c7-8b29-59e32ad6c18c_1800x1200.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Vibe-coded systems in a nutshell. </figcaption></figure></div><h2>An example</h2><p>I have projects and tasks stored in <strong>Obsidian</strong> files. Then I added a <code>prioritizer</code> <strong>agent</strong> with a rubric for prioritizing tasks, and a <code>/plan-day</code> command that fetches my agenda from Google Calendar via the <code>gog</code> <strong>skill</strong> and uses that to rough out a plan for the day. Then it creates a daily journal note for me, with the agenda at the top.</p><p>Each bolded word is one Lego in the system. Now to break down what each Lego looks like and how they fit together.</p><p></p><div><hr></div><h2>1 - Basic Tools</h2><h2>Claude</h2><p><a href="https://claude.ai/">Claude</a>, built by Anthropic, is the tool I&#8217;m most bullish on. I have a theory that the first follower into a market ends up winning. The Sega Saturn crashed, the Sony Playstation thrived. N*Sync had bigger hits than the Backstreet Boys. ChatGPT is the default, but I find Anthropic&#8217;s tooling more useful, so I&#8217;ll focus on it.</p><p>Four ways to interact with Claude:</p><ol><li><p><strong>Standard</strong> - I&#8217;m lumping the web browser and mobile apps together here. It&#8217;s fine if you just want to ask a question, but there is little room to systemize.</p></li><li><p><strong>Installed app</strong> - the chat, but a little more featured. You can manage integrations and connect to your file system.</p></li><li><p><strong>Cowork</strong> - a research preview behind the paywall, <a href="https://www.anthropic.com/cowork">Claude Cowork</a> is Anthropic&#8217;s response to latent demand for agentic personal assistants. I haven&#8217;t tried this one yet because my preferred method is...</p></li><li><p><strong>Claude Code</strong> - a command-line tool that leverages Anthropic&#8217;s LLMs. My personal favorite. The command line is the most powerful way to use the computer and the one I&#8217;m most used to as a programmer. The terminal can be intimidating, but if you&#8217;re moving your work towards text files and automation, it&#8217;s a useful skill to have, and not as hard as it looks.</p></li></ol><p>Think of the command line like cooking: it&#8217;s as complicated and skill-based as you want it to be. Some people are master chefs who know a litany of techniques. Some, like me, are more utilitarian. I can roast a vegetable, fry an egg, pop a tart. You don&#8217;t have to be an expert. A few skills go a long way.</p><p>A demo of cowork:</p><div id="youtube2-WBNZpAWhw5E" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;WBNZpAWhw5E&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/WBNZpAWhw5E?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>Obsidian</h2><p>Obsidian is a note-taking tool. The perfect mix of simplicity, utility, and power. You write notes stored as plain-text files. You can link files with wikilinks like <code>[[this]]</code>. Thousands of plugins are available to extend functionality. You can add graphs (<a href="https://obsidian.md/plugins?id=obsidian-excalidraw-plugin">Excalidraw</a>), queries (<a href="https://obsidian.md/plugins?id=dataview">Dataview</a>), or task management (<a href="https://obsidian.md/plugins?id=obsidian-tasks-plugin">Tasks</a>).  If you're interested in an Obsidian + Claude Code setup, there's a plugin that brings a terminal directly into your notes. Plain text is the easiest way to feed an LLM. It gives you permanent storage that is readable and writable by man and machine alike. </p><h3>Optional: IDE (Cursor or VSCode)</h3><p>If you&#8217;re getting into managing code as part of this exercise, you may want a tool for editing it. These super-powered text editors are called IDEs (Integrated Development Environments). The two best options: <a href="https://code.visualstudio.com/">VSCode</a>, Microsoft&#8217;s editor and the standard choice in the biz, and <a href="https://cursor.sh/">Cursor</a>, an AI-powered fork. You can use AI via Cursor directly, but if you&#8217;re using Claude Code it may not be necessary<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>.</p><p></p><h2>Extending Claude Code</h2><p>Assume any LLM-based tool is 60% ready-to-go out of the box. You have to put in some effort to get it working how you want. It doesn&#8217;t know you, your goals, or your processes. The better you are at getting context out of your head and into <a href="https://www.markdownguide.org/">Markdown</a> files, the more effective you&#8217;ll be. Claude offers a variety of structures to customize and amplify its abilities:</p><h3>Claude.md</h3><p>If you&#8217;re getting started, put your rules and general logic into <a href="https://code.claude.com/docs/en/configuration#claudemd">Claude.md</a>. Think of this as an initial prompt Claude has at the start of every conversation. You can tell it how you want it to behave, your goals, boundaries, and constraints. Here&#8217;s an example (credit to Alex Hillman for this one) to set a communication style:</p><pre><code><code>## Communication Style</code>
<code>- Never end sentences with ellipses (...) - it comes across as passive aggressive</code>
<code>- Ask questions one at a time</code>
<code>- Acknowledge requests neutrally without enthusiasm inflation</code>
<code>- Skip validation language ("great idea!", "perfect!", "excellent!", "amazing!", "kick ass!")</code>
<code>- Skip affirmations ("you're right!", "exactly!", "absolutely!")</code>
<code>- Use neutral confirmations: "Got it", "On it", "Understood", "Starting now"</code>
<code>- Focus on execution over commentary</code></code></pre><p>&#128161; <strong>Pro-tip</strong>: Claude loves structured information. Headers and bulleted lists are easier for it to parse.</p><h3>Slash commands</h3><p><a href="https://code.claude.com/docs/en/interactive-mode#built-in-commands">Slash commands</a> are reusable commands you call while typing into the terminal. Claude has many built in by default, like <code>/clear</code> to empty its memory and <code>/model</code> to select the model. You can also write custom commands for repeatable processes.</p><p>If you aren&#8217;t sure how to write a slash command (and this will be a recurring theme), ask Claude to write one for you. LLMs are adept at writing text that LLMs can read. You can ask Claude to make modifications later, or go in and make more surgical edits yourself.</p><p><strong>Example:</strong> have a <code>/fetch-calendar</code> command that gets your daily agenda, or a <code>/line-edit</code> command that does an editing pass on your article.</p><p></p><h3>Agents</h3><p>If you do this for a while, your Claude.md file will get large. You&#8217;ll realize a lot of the rules only matter in certain contexts. When that happens, break it down into <a href="https://code.claude.com/docs/en/sub-agents">agent files</a>. Claude has a slash command, <code>/agents</code>, to help you write them.</p><p><strong>Example:</strong> I have a <code>frontend-engineer</code> agent that knows how to write code according to my guidelines and style. I have an <code>appointment-maker</code> that knows my meeting preferences and how it integrates with Google Calendar (more on integrations in a bit).</p><p></p><h2>MCPs</h2><p><a href="https://code.claude.com/docs/en/mcp">MCPs</a>, short for Model Context Protocol, bridge Claude and third-party systems. Think: wrapper for an API. Claude has a list of common MCPs people integrate with.</p><p><strong>Example:</strong> Two that I find useful, that you can install with a single command, are <strong>Notion</strong> and <strong><a href="https://playwright.dev/">Playwright</a>.</strong> If you use Notion for work, this gives your system an easy way to read and write files. Playwright, and this is a fun one, gives Claude the ability to open and use a web browser. You can add it with a single command: </p><pre><code><code>claude mcp add playwright npx &#8216;@playwright/mcp@latest&#8217;</code></code></pre><p>In theory, Playwright is the only MCP you need to integrate with every website on the planet. It&#8217;s slower and less reliable than direct integrations, though. If you&#8217;re worried about handling credentials, what I do is say: &#8220;If you run into a login or account verification page, show it to me and I&#8217;ll log in.&#8221; Then the system won&#8217;t have access to your credentials.</p><p>Unlike agents and slash commands, I never write custom MCPs. Some are useful, but I find skills and scripted integrations more effective. Still, I can&#8217;t deny a one-line command for web access is powerful. If you want to dive deeper on why MCPs may not be the best choice, highly recommend: <a href="https://lucumr.pocoo.org/2025/8/18/code-mcps/">Your MCP doesn&#8217;t need 30 tools, it needs code.</a></p><p></p><h2>Skills</h2><p><a href="https://code.claude.com/docs/en/skills">Skills</a> add extended capabilities to Claude&#8217;s toolkit. They contain three key parts: a <code>SKILL.md</code> file explaining what it is, what it does, and how; <strong>scripts</strong>, code the skill can execute; and <strong>examples</strong>, which the skill uses to inform its work. Skills can be used by you, or by an agent.</p><p><em>(As a rule, Claude loves patterns and examples. Show, don&#8217;t tell, if you want consistency).</em></p><p>When starting with skills, shop the shelf. Anthropic offers skills you can download: <a href="https://github.com/anthropics/skills">Anthropic skills library</a>. A few that might interest you:</p><ul><li><p><code>skill-creator</code> - always install this one. You&#8217;ll want it when you start creating custom skills.</p></li><li><p>The ones that allow Claude to read and write other file types: <code>pdf</code>, <code>pptx</code>, <code>docx</code>, <code>xlsx</code>.</p></li></ul><p>Another source worth checking: <a href="https://github.com/clawdbot/clawdbot">Clawdbot</a>. Clawdbot is an open-source, out-of-the-box agent framework. You could start using it as a base, but be warned, it can get expensive. Anthropic has two billing models: Monthly (a set amount of usage each month) and API billing (charges per use). Clawdbot runs exclusively on API billing, which can get pricey. I have run up $25 bills in a couple hours of usage.</p><p>BUT, Clawdbot is open source, which means you can browse its internal skill library and copy some into your project. Here are a few I&#8217;ve been experimenting with:</p><ul><li><p><code>gog</code> - integration with Google Drive and Google Calendar.</p></li><li><p><code>obsidian</code> - for creating Obsidian bases.</p></li><li><p><code>things-mac</code> - integrate with my personal todo list app.</p></li><li><p><code>apple-reminders</code> - programmatically set reminders for myself.</p></li></ul><p>There are many ways to manage context in Claude Code. For a deeper dive, I recommend <a href="https://colinmcnamara.com/blog/understanding-skills-agents-and-mcp-in-claude-code">Understanding Skills, Agents, Subagents, and MCP in Claude Code: When to Use What</a></p><p></p><div><hr></div><h2>2 - Data structures</h2><p>How will you store and manage the data you&#8217;re working with? As stated earlier, plain text is king. Plain text integrates with everything. Free forever. Lasts forever. Start with plain text files. Two syntaxes in particular:</p><h3>Markdown</h3><p>Markdown is the lingua franca of plain-text formatting. You can apply simple syntax: bolding, headers, links, lists. No, you cannot change the font or colors. Yes, this is a feature. Everything I write, I draft in Markdown first.</p><p>Example</p><pre><code><code># Markdown

This is a paragraph in markdown. Some text is *bold* and some is _italic_. You can have a

## Hierarchy

### Of Headings

#### To give your document structure

You can even
* make
* a
* list.
</code></code></pre><ul><li><p><strong>Frontmatter</strong> - <a href="https://www.markdownlang.com/advanced/frontmatter.html">Frontmatter</a> is a flavor of YAML (which stands for &#8220;YAML Ain&#8217;t a Markup Language&#8221;... yes, it&#8217;s a corny recursive acronym). All you need to know: it lets you add structured data to a Markdown file. In Obsidian, these are called &#8220;properties.&#8221;</p></li></ul><p>Example:</p><pre><code><code>---
title: Building blocks of agentic systems
publish_date: 2026-01-26
section: Root Nodes
blogchain: Prompt Protocols
---
</code></code></pre><h3>JSON</h3><p>The next step up: JSON files, which stands for &#8220;JavaScript Object Notation.&#8221; JSON is a file of nested structured objects. Common use case: config files. Once you start a Claude project, you&#8217;ll see <code>./claude/settings.json</code> as an example.</p><pre><code><code>{
  title: "Building blocks of agentic systems",
  publishDate: "2026-01-26",
  section: "Root Nodes",
  blogchain: "Prompt Protocols"
}
</code></code></pre><h2>SQLite</h2><p><a href="https://sqlite.org/">SQLite</a> is a dead simple database that lives in a single file. Useful when you have several types of data and want to map relationships between them. SQLite helps when you need to aggregate records or create relations between them. If you&#8217;re an accountant who&#8217;s put 600 transactions in Markdown files, it might be time to consider SQLite.</p><div><hr></div><h2>3 - Computing</h2><p>LLMs are cool and advanced, but as we&#8217;ve seen with plain text, the most powerful tooling combines them with simple computing practices that have been around for decades.</p><p>You may have seen the GPT &#8216;gotcha&#8217; where many LLMs could not correctly count the number of &#8216;R&#8217;s in the word &#8216;Strawberry&#8217;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EKSN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14a244bc-b77c-4bb7-8fc1-84ef0209570d_1102x678.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EKSN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14a244bc-b77c-4bb7-8fc1-84ef0209570d_1102x678.webp 424w, https://substackcdn.com/image/fetch/$s_!EKSN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14a244bc-b77c-4bb7-8fc1-84ef0209570d_1102x678.webp 848w, https://substackcdn.com/image/fetch/$s_!EKSN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14a244bc-b77c-4bb7-8fc1-84ef0209570d_1102x678.webp 1272w, https://substackcdn.com/image/fetch/$s_!EKSN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14a244bc-b77c-4bb7-8fc1-84ef0209570d_1102x678.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EKSN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14a244bc-b77c-4bb7-8fc1-84ef0209570d_1102x678.webp" width="1102" height="678" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/14a244bc-b77c-4bb7-8fc1-84ef0209570d_1102x678.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:678,&quot;width&quot;:1102,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11856,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/185634813?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14a244bc-b77c-4bb7-8fc1-84ef0209570d_1102x678.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EKSN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14a244bc-b77c-4bb7-8fc1-84ef0209570d_1102x678.webp 424w, https://substackcdn.com/image/fetch/$s_!EKSN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14a244bc-b77c-4bb7-8fc1-84ef0209570d_1102x678.webp 848w, https://substackcdn.com/image/fetch/$s_!EKSN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14a244bc-b77c-4bb7-8fc1-84ef0209570d_1102x678.webp 1272w, https://substackcdn.com/image/fetch/$s_!EKSN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14a244bc-b77c-4bb7-8fc1-84ef0209570d_1102x678.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A brief explanation of why this happens (hat tip to <a href="https://prompt.16x.engineer/blog/why-chatgpt-cant-count-rs-in-strawberry">Zhu Liang</a>):</p><p>LLMs break text into smaller chunks for processing through a process called <strong>tokenization.</strong> Then they catalog them with <strong>token IDs.</strong> When an LLM &#8220;sees&#8221; the word &#8220;strawberry,&#8221; what it gets is a series of token IDs {496, 675, 15717} that map to certain tokens {&#8221;str&#8221;,&#8221;aw&#8221;,&#8221;berry&#8221;}. It sees 2 tokens with an &#8216;R&#8217;, so it thinks there are two &#8216;R&#8217;s.</p><p>Now, let&#8217;s compare that to Python code that does the same thing.</p><pre><code><code>word = "Strawberry"
word.count('r')
</code></code></pre><p>None of that tokenizing and indexing. Your computer doesn&#8217;t have to send a prompt to a model in a data center and wait for a response. It just. Counts. the. letters.</p><p>What I&#8217;m saying: there&#8217;s a lot of work that doesn&#8217;t require intelligence. If a process is repeatable and doesn&#8217;t require judgment or abstract reasoning, you&#8217;re better off having code do the job than an LLM.</p><h3>Scripts</h3><p>But hasn&#8217;t this always been possible? Code to automate tasks is nothing new. What&#8217;s new is how easy it is to have an LLM write simple scripts for you and run them. This is what made the command line interface such a powerful pattern: LLMs run on text. Command lines are built on a philosophy of text in, text out. Combine them and you can build powerful systems.</p><p>A script is a single-file, single-purpose computer program. Typically written in Bash, Python, or JavaScript. Sometimes the model writes, executes, and deletes a script behind the scenes.</p><h3>Web based UIs</h3><p>Some tasks are arduous to work in via text. Maybe you want to add some pizazz to your work. One option: ask Claude to build a small web page or app that runs on your local computer.</p><p>It will <em>not</em> get it right the first time. There will be bugs. You&#8217;ll need to iterate.</p><p>Be wary: this is an easy rabbit hole. If you aren&#8217;t careful, iterating and maintaining your UI system becomes a job of its own and a distraction from your original goals.</p><p>I prefer Next.js for these. You also don&#8217;t need great design skills: several free off-the-shelf design systems exist. Here&#8217;s a list. Pick one that matches your vibe:</p><ul><li><p><a href="https://www.retroui.dev/">Retro UI</a></p></li><li><p><a href="https://www.aisdkagents.com/">AI SDK Agents</a></p></li><li><p><a href="https://www.cult-ui.com/">Cult UI</a></p></li><li><p><a href="https://tailark.com/">Tailark</a></p></li><li><p><a href="https://kokonutui.com/">Kokonut UI</a></p></li><li><p><a href="https://magicui.design/">Magic UI</a></p></li><li><p><a href="https://www.eldoraui.site/">Eldora UI</a></p></li><li><p><a href="https://ui.aceternity.com/">Aceternity UI</a></p></li><li><p><a href="https://ui.shadcn.com/">shadcn/ui</a></p></li><li><p><a href="https://kiboui.com/">Kibo UI</a></p></li><li><p><a href="https://mantine.dev/">Mantine</a></p></li><li><p><a href="https://www.naiveui.com/">Naive UI</a></p></li><li><p><a href="https://ionicframework.com/">Ionic Framework</a></p></li><li><p><a href="https://shoelace.style/">Shoelace</a></p></li><li><p><a href="https://daisyui.com/">daisyUI</a></p></li><li><p><a href="https://www.getpapercss.com/">Paper CSS</a></p></li></ul><h3>Cron</h3><p><a href="https://en.wikipedia.org/wiki/Cron">Cron</a> jobs let you run scripts or commands at regular intervals. Maybe you wrote a &#8220;check-inbox&#8221; command that you run manually to sync with your inbox. With a cron, you could have it run every hour. Crons let you trigger scripts at different parts of the day.</p><h3>Version control (Git)</h3><p>I don&#8217;t know how other document-based knowledge workers survive without a version control system like <a href="https://git-scm.com/">Git</a>. Git lets you keep a changelog of all committed changesets to your pile of files. Typically it&#8217;s used for code, but nothing stops you from using it for Markdown files. You can also create branches, like a temporary copy, and try something. If it works, you merge changes into your main copy. If it doesn&#8217;t, throw the branch away, no harm done, no permanent changes made.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UQKx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29540e97-537d-4b3c-8482-768a0dd8c0b1_330x478.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UQKx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29540e97-537d-4b3c-8482-768a0dd8c0b1_330x478.png 424w, https://substackcdn.com/image/fetch/$s_!UQKx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29540e97-537d-4b3c-8482-768a0dd8c0b1_330x478.png 848w, https://substackcdn.com/image/fetch/$s_!UQKx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29540e97-537d-4b3c-8482-768a0dd8c0b1_330x478.png 1272w, https://substackcdn.com/image/fetch/$s_!UQKx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29540e97-537d-4b3c-8482-768a0dd8c0b1_330x478.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UQKx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29540e97-537d-4b3c-8482-768a0dd8c0b1_330x478.png" width="330" height="478" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29540e97-537d-4b3c-8482-768a0dd8c0b1_330x478.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:478,&quot;width&quot;:330,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:48767,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/185634813?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29540e97-537d-4b3c-8482-768a0dd8c0b1_330x478.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UQKx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29540e97-537d-4b3c-8482-768a0dd8c0b1_330x478.png 424w, https://substackcdn.com/image/fetch/$s_!UQKx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29540e97-537d-4b3c-8482-768a0dd8c0b1_330x478.png 848w, https://substackcdn.com/image/fetch/$s_!UQKx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29540e97-537d-4b3c-8482-768a0dd8c0b1_330x478.png 1272w, https://substackcdn.com/image/fetch/$s_!UQKx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29540e97-537d-4b3c-8482-768a0dd8c0b1_330x478.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://xkcd.com/1597/">https://xkcd.com/1597/</a></figcaption></figure></div><p>Version control lets you iterate fearlessly. You can also use tools like <a href="https://github.com/">GitHub</a> to back up your work online, and even share it publicly.</p><p>A good rule of thumb: add a directive to your Claude.md to make a git commit when it finishes a unit of work.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PvOD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219383a2-ce2c-4038-a706-ce5e72e0f19e_878x501.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PvOD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219383a2-ce2c-4038-a706-ce5e72e0f19e_878x501.png 424w, https://substackcdn.com/image/fetch/$s_!PvOD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219383a2-ce2c-4038-a706-ce5e72e0f19e_878x501.png 848w, https://substackcdn.com/image/fetch/$s_!PvOD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219383a2-ce2c-4038-a706-ce5e72e0f19e_878x501.png 1272w, https://substackcdn.com/image/fetch/$s_!PvOD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219383a2-ce2c-4038-a706-ce5e72e0f19e_878x501.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PvOD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219383a2-ce2c-4038-a706-ce5e72e0f19e_878x501.png" width="878" height="501" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/219383a2-ce2c-4038-a706-ce5e72e0f19e_878x501.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:501,&quot;width&quot;:878,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:114552,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/185634813?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219383a2-ce2c-4038-a706-ce5e72e0f19e_878x501.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PvOD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219383a2-ce2c-4038-a706-ce5e72e0f19e_878x501.png 424w, https://substackcdn.com/image/fetch/$s_!PvOD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219383a2-ce2c-4038-a706-ce5e72e0f19e_878x501.png 848w, https://substackcdn.com/image/fetch/$s_!PvOD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219383a2-ce2c-4038-a706-ce5e72e0f19e_878x501.png 1272w, https://substackcdn.com/image/fetch/$s_!PvOD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219383a2-ce2c-4038-a706-ce5e72e0f19e_878x501.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://xkcd.com/1296/">https://xkcd.com/1296/</a></figcaption></figure></div><p></p><div><hr></div><h2>4 - Integrations</h2><p>Lastly, think about what tools you use in your day-to-day work. Apps your job provides, or tools you use personally to be more productive. Common culprits: Email, Google Drive, Notion, Slack, task trackers, and calendar apps.</p><p>Can you think of ways you might want your system to interact with them? To fetch data, write to them, or take actions? See if they have a publicly available MCP or API. Maybe you can find a Claude Code skill on GitHub or another marketplace. Between all of this, there are ways to create new slash commands, skills, or documents that help you do your job more effectively.</p><h2>What comes next</h2><p>Building these systems takes time and several rounds of iteration. In the next and final part, I&#8217;ll go through my notes and process for building my agentic assistant over the past few weeks.</p><h4><strong>Update: </strong>Part 3 is live: </h4><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;f2ba74dc-f400-4dfd-8e48-fad3145abf87&quot;,&quot;caption&quot;:&quot;This is the third and final post in my series on building an agentic assistant. In part 1, I explored the idea of agentic agents themselves. In part 2, I broke down the building blocks people can use with these systems. For this part, I will walk through my process and how I think about building these parts of systems.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;md&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Mistakes I Made Building My AI Assistant (And What I Learned)&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:5359155,&quot;name&quot;:&quot;Glenn Stovall&quot;,&quot;bio&quot;:&quot;Senior frontend engineer in FinTech - writing about dealing with change &amp; uncertainty at a personal and global level &quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/3ac21bd5-9b5a-4be4-9fa1-f1f9e73f61c7_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-02-02T13:15:24.182Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!yJE2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80606214-2ecb-475d-be46-1c794bf8246c_1024x576.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.statetransition.co/p/mistakes-i-made-building-my-ai-assistant&quot;,&quot;section_name&quot;:&quot;Root Nodes&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:186607212,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1196304,&quot;publication_name&quot;:&quot;State Transition&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!QUi5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9550697d-5b3e-4be2-aea6-c305db3ef825_276x276.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.statetransition.co/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>For further reading, check out <a href="https://medium.com/@404officenotfound/the-complete-guide-setting-up-claude-code-with-wsl-and-cursor-on-windows-f8be35b8d04b">The Complete Guide: Setting up Claude Code with WSL and Cursor on Windows</a></p></div></div>]]></content:encoded></item><item><title><![CDATA[Claudatouillie]]></title><description><![CDATA[How I used Claude Code and Obsidian to build an Agentic Agent (part 1)]]></description><link>https://www.statetransition.co/p/claudatouillie</link><guid isPermaLink="false">https://www.statetransition.co/p/claudatouillie</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Mon, 19 Jan 2026 18:07:20 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/00db9d7d-83df-422f-8bf3-7aa7b989d3dd_2000x1000.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p>My feeds have been overrun with <a href="https://www.lennysnewsletter.com/p/how-to-build-your-pm-second-brain">take</a> after <a href="https://thezvi.substack.com/p/claude-coworks">take</a> after <a href="https://www.bensbites.com/p/claude-code-for-everybod">take</a> after <a href="https://hannahstulberg.substack.com/p/claude-code-for-everything-finally">take</a> after <a href="https://www.lennysnewsletter.com/p/everyone-should-be-using-claude-code">take</a> about how "Claude Code isn't just for code anymore." Everyone seems to be supercharging their "second brains" and building "LifeOSes" and "Agentic Assistants." So, of course I had to try it. And I was surprised how quickly I was willing to let it run a small part of my life.</p><p></p><p><a href="https://www.anthropic.com/news/claude-opus-4-5">Opus 4.5</a> was a step-level change. Anthropic's model hit a point where it's smart, fast, and reliable enough that people, myself included, can hand off tasks to it with a good amount of confidence. Then <a href="https://clawd.bot/">Clawdbot</a> got people's heads turning. The "Claude Code for everyone" era begins. I am become Linguini, Opus, my rat.</p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/ctbeiser/status/2011301974491480256&quot;,&quot;full_text&quot;:&quot;In 2026 you&#8217;re gonna start to meet people who are claudatouilling themselves. They will be fitter, happier, and more productive than they have ever been before and also very boring.&quot;,&quot;username&quot;:&quot;ctbeiser&quot;,&quot;name&quot;:&quot;Chris Beiser&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1830787972049911810/2xcD01Jv_normal.jpg&quot;,&quot;date&quot;:&quot;2026-01-14T04:58:53.000Z&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:30,&quot;retweet_count&quot;:25,&quot;like_count&quot;:952,&quot;impression_count&quot;:64652,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;belowTheFold&quot;:false}" data-component-name="Twitter2ToDOM"></div><p>I was already keeping an engineering manager notebook, inspired by <a href="https://7ctos.com/the-ctos-hidden-notebook-by-etienne-de-bruin/">the CTO's hidden notebook</a>. I've long believed in the <a href="https://stephango.com/file-over-app">file over app</a> philosophy. I was already using Claude Code for note cleanup and line editing. Then, my step-level change came when I watched Alex Hillman's video demonstrating his "JFDI system":</p><div id="youtube2-yjO9UHIunSE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;yjO9UHIunSE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/yjO9UHIunSE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>After watching, I started building new tooling around my day-to-day work. I went from manually tracking meetings in Obsidian to having an agent fetch my calendar, book my meetings, and pull in AI transcriptions and synthesizing them into status updates and task lists.</p><h2>A different kind of unicorn&#8230;</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!broW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6c5e63-4285-4530-bf6d-0fa369e08014_1080x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!broW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6c5e63-4285-4530-bf6d-0fa369e08014_1080x1080.png 424w, https://substackcdn.com/image/fetch/$s_!broW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6c5e63-4285-4530-bf6d-0fa369e08014_1080x1080.png 848w, https://substackcdn.com/image/fetch/$s_!broW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6c5e63-4285-4530-bf6d-0fa369e08014_1080x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!broW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6c5e63-4285-4530-bf6d-0fa369e08014_1080x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!broW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6c5e63-4285-4530-bf6d-0fa369e08014_1080x1080.png" width="1080" height="1080" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e6c5e63-4285-4530-bf6d-0fa369e08014_1080x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1080,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:345098,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/184855146?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6c5e63-4285-4530-bf6d-0fa369e08014_1080x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!broW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6c5e63-4285-4530-bf6d-0fa369e08014_1080x1080.png 424w, https://substackcdn.com/image/fetch/$s_!broW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6c5e63-4285-4530-bf6d-0fa369e08014_1080x1080.png 848w, https://substackcdn.com/image/fetch/$s_!broW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6c5e63-4285-4530-bf6d-0fa369e08014_1080x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!broW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6c5e63-4285-4530-bf6d-0fa369e08014_1080x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Alex hit on something in his video: no project management system or CRM ever fits quite right. Work is idiosyncratic. Everyone has unique contexts, motivations, strengths, and foibles. <a href="https://x.com/ashebytes/status/2008180483658579991">Ashe Magalhaes</a> has a wholesome system with a compliments workflow, birthday reminders, a custom friend social feed, and gratitude journaling.</p><p>Vaughn Tan hits on this in <a href="https://vaughntan.org/boringtinytools">Boring Tiny Tools</a>: &#8220;Generative AI coding tools now enable high-utility, highly customised, but narrowly scoped software.&#8221;</p><p>A new genre of software is emerging. Maybe &#8220;Unicorn&#8221; will no longer refer to a billion-dollar company, but to rare, one-of-a-kind precision software, tailor-made just for you.</p><h2>&#8230;if you can build them</h2><p>But don&#8217;t expect a magic silver bullet. Despite what people selling AI courses tell you, I don&#8217;t know that Claude Code is for &#8220;everyone.&#8221; I&#8217;m not gatekeeping or acting superior, only setting expectations for what raising your rat looks like.</p><p>Do you have systems? Can you get them out of your head, breaking them into components with clear instructions, constraints, and success criteria? Sure, you can get a system up in a couple of hours, but larger gains take many, many rounds of iteration. Alex keeps a <a href="https://github.com/alexknowshtml/andy-timeline?">dev log</a> of his assistant (or at least he did; this <a href="https://github.com/alexknowshtml/andy-timeline/blob/main/timeline-curator.md">prompt</a> implies his agent is now self-blogging). He&#8217;s at 96 days and counting.</p><p>I was already taking notes to a near-unhealthy degree and tracking tasks in markdown files. It helps that I have 15 years of experience as an engineer. Turning fuzzy business requirements into code is kinda my jam.</p><p>Could this eventually be a job I have? Acting as a translator and transcriber for people who can&#8217;t cross the brain-to-LLM bridge? Vaughn Tan thinks so. Again from Boring Tiny Tools:</p><blockquote><p>What's missing is someone to bridge that gap. Someone who can help articulate workflow needs in ways that can be rapidly prototyped, who can evaluate where a Boring Tiny Tool would make sense, and who can help grow an internal organisational culture for doing this systemically.<br><br>This requires an unusual combination: understanding of product strategy, enough technical fluency to evaluate what's feasible, and deep appreciation for how work actually happens versus how organisations think it happens. It also requires not having a vested interest in any particular technical solution.</p></blockquote><p>Could I build a system like this for someone else? Technically, yes, but I&#8217;m not convinced it would be good. It would be better to teach or collaborate with people and let them figure out what to build and how to get there. You have to cook with your rat.</p><p>This piece <a href="https://hannahstulberg.substack.com/p/claude-code-for-everything-finally">attempts to teach Claude Code for the non-engineer</a>. If you&#8217;re the target reader, I&#8217;d love to hear if you found it valuable, or if it&#8217;s all still mind-boggling.</p><p>If you want someone to riff with on this stuff, shoot me an email or DM.</p><p>But for now, I&#8217;m off to do another few rounds of iteration on my agentic agent, whom I&#8217;ve christened Agentic Agent, because I hate anthropomorphizing AI. Next week, I&#8217;ll go into more detail about how I built my initial prototype. </p><p></p><h4><strong>Update: </strong>Read parts 2 and 3 here: </h4><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;d3960a98-0d2a-42a6-b5fd-21b6c16682b8&quot;,&quot;caption&quot;:&quot;This is part 2 in my series on building agentic assistants. I&#8217;ve been iterating on one that helps me do my job as an engineering manager. In part 1, I looked at this emerging pattern. It usually involves combining Claude Code with the Opus 4.5 model and&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;md&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Building Blocks of Agentic Agents&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:5359155,&quot;name&quot;:&quot;Glenn Stovall&quot;,&quot;bio&quot;:&quot;Senior frontend engineer in FinTech - writing about dealing with change &amp; uncertainty at a personal and global level &quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/3ac21bd5-9b5a-4be4-9fa1-f1f9e73f61c7_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-26T12:03:23.756Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!UOy7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ec59e-90e6-43ee-b3eb-7f932737fc9e_480x343.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.statetransition.co/p/building-blocks-of-agentic-agents&quot;,&quot;section_name&quot;:&quot;Root Nodes&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:185634813,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1196304,&quot;publication_name&quot;:&quot;State Transition&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!QUi5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9550697d-5b3e-4be2-aea6-c305db3ef825_276x276.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;ecf5ee6f-e155-4bf3-8843-2fd54a2040d3&quot;,&quot;caption&quot;:&quot;This is the third and final post in my series on building an agentic assistant. In part 1, I explored the idea of agentic agents themselves. In part 2, I broke down the building blocks people can use with these systems. For this part, I will walk through my process and how I think about building these parts of systems.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;md&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Mistakes I Made Building My AI Assistant (And What I Learned)&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:5359155,&quot;name&quot;:&quot;Glenn Stovall&quot;,&quot;bio&quot;:&quot;Senior frontend engineer in FinTech - writing about dealing with change &amp; uncertainty at a personal and global level &quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/3ac21bd5-9b5a-4be4-9fa1-f1f9e73f61c7_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-02-02T13:15:24.182Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!yJE2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80606214-2ecb-475d-be46-1c794bf8246c_1024x576.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.statetransition.co/p/mistakes-i-made-building-my-ai-assistant&quot;,&quot;section_name&quot;:&quot;Root Nodes&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:186607212,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1196304,&quot;publication_name&quot;:&quot;State Transition&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!QUi5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9550697d-5b3e-4be2-aea6-c305db3ef825_276x276.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.statetransition.co/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Anti-agentic design]]></title><description><![CDATA[When products are bad and people should feel bad for making them that way]]></description><link>https://www.statetransition.co/p/anti-agentic-design</link><guid isPermaLink="false">https://www.statetransition.co/p/anti-agentic-design</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Sun, 11 Jan 2026 12:39:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!i_15!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7767df-6482-4b31-82fe-42d704f60951_549x800.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="https://substackcdn.com/image/fetch/$s_!i_15!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7767df-6482-4b31-82fe-42d704f60951_549x800.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!i_15!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7767df-6482-4b31-82fe-42d704f60951_549x800.jpeg 424w, https://substackcdn.com/image/fetch/$s_!i_15!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7767df-6482-4b31-82fe-42d704f60951_549x800.jpeg 848w, https://substackcdn.com/image/fetch/$s_!i_15!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7767df-6482-4b31-82fe-42d704f60951_549x800.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!i_15!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7767df-6482-4b31-82fe-42d704f60951_549x800.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!i_15!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7767df-6482-4b31-82fe-42d704f60951_549x800.jpeg" width="549" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5e7767df-6482-4b31-82fe-42d704f60951_549x800.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:549,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:209649,&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://www.statetransition.co/i/184201692?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7767df-6482-4b31-82fe-42d704f60951_549x800.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_!i_15!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7767df-6482-4b31-82fe-42d704f60951_549x800.jpeg 424w, https://substackcdn.com/image/fetch/$s_!i_15!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7767df-6482-4b31-82fe-42d704f60951_549x800.jpeg 848w, https://substackcdn.com/image/fetch/$s_!i_15!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7767df-6482-4b31-82fe-42d704f60951_549x800.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!i_15!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7767df-6482-4b31-82fe-42d704f60951_549x800.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Don Quixote about to Strike the Helmet, Jean-Honor&#233; Fragonard, 1780s, inverted</figcaption></figure></div><p></p><p></p><p>In part one, I took a look at patterns of software design that help enable your user's agency. In this piece, I'm examining the patterns that are used to strip away agency. In the pattern language of product design, these are the swear words.</p><p></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;c3f6e865-5900-4478-82b2-b05e7b6aecc5&quot;,&quot;caption&quot;:&quot;(This post is an excerpt from my upcoming book on product thinking for engineers. Sign up to be notified when it is available for purchase.)&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Building software that amplifies agency&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:5359155,&quot;name&quot;:&quot;Glenn Stovall&quot;,&quot;bio&quot;:&quot;Senior frontend engineer in FinTech - writing about dealing with change &amp; uncertainty at a personal and global level &quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/3ac21bd5-9b5a-4be4-9fa1-f1f9e73f61c7_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-02T11:47:35.581Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!ZNgK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa132e552-c5f7-4696-b871-a7f586fbb817_549x800.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.statetransition.co/p/building-software-that-amplifies&quot;,&quot;section_name&quot;:&quot;Product Thinking Book&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:183229852,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:2,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1196304,&quot;publication_name&quot;:&quot;State Transition&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!QUi5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9550697d-5b3e-4be2-aea6-c305db3ef825_276x276.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p><h2>1 - Needy programs</h2><p>There has been a shift in how technology interacts with users. I sensed this for a long time, but couldn&#8217;t articulate it. That is, until Niki Tonsky captured it with the term &#8220;<a href="https://tonsky.me/blog/needy-programs/">needy programs</a>.&#8221;</p><blockquote><p>Older programs were all about what you need: you can do this, that, whatever you want, just let me know. You were in control, you were giving orders, and programs obeyed. - Niki Tonsky</p></blockquote><p>Need programs get in the user&#8217;s way, and put the wants of the software provider over the needs of the person using it.</p><h3>Accounts</h3><p>I hate it when I buy something from an online store, a niche gift from a place I don&#8217;t plan on returning to, and now I have an account with them. To paraphrase Mitch Hedberg, I give you money, you send me a package. There is no need to bring email subscriptions into this. I not 15% off of my next purchase, I want you to get off of my back about a next purchase.</p><h3>Updates</h3><p>A man shopping for a washing machine sees on the label that it has Wi-Fi capabilities. He approaches a floor person. &#8220;Why does a washing machine need internet access?&#8221;</p><p>&#8220;So the manufacturer can install security updates,&#8221; responds the employee.</p><p>&#8220;Why does a washing machine need security updates?&#8221;</p><p>&#8220;Because it&#8217;s connected to the internet!&#8221;</p><p>I once sat down to play a game on my Playstation 5 and was greeted with a barrage of pop-ups. The game needed updates. The console needed updates. The freaking <em>television</em>? Updates.<sup>[1]</sup>. I&#8217;m showing my age, but I miss when you could plug a cartridge into a system, turn it on, and it would just <em>go.</em></p><h3>Notifications</h3><p>We are bombarded by notifications. Product teams know we cannot resist the siren&#8217;s call of the red numbered dot. We sit there popping these pimples on our smartphones, hoping they don&#8217;t come back. Notifying the user is fine in some cases but should be used sparingly. Notifications are a to-do list the user didn&#8217;t sign up for.</p><h3>Login Modal Ambushes</h3><p>I don&#8217;t need to know about your new feature the moment I log in. I logged in to do a task, and these in-app advertisements are getting in my way.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hBRb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecda4710-3163-4a80-a751-74dcd2bbd220_1410x1436.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hBRb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecda4710-3163-4a80-a751-74dcd2bbd220_1410x1436.png 424w, https://substackcdn.com/image/fetch/$s_!hBRb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecda4710-3163-4a80-a751-74dcd2bbd220_1410x1436.png 848w, https://substackcdn.com/image/fetch/$s_!hBRb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecda4710-3163-4a80-a751-74dcd2bbd220_1410x1436.png 1272w, https://substackcdn.com/image/fetch/$s_!hBRb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecda4710-3163-4a80-a751-74dcd2bbd220_1410x1436.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hBRb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecda4710-3163-4a80-a751-74dcd2bbd220_1410x1436.png" width="1410" height="1436" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ecda4710-3163-4a80-a751-74dcd2bbd220_1410x1436.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1436,&quot;width&quot;:1410,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:504285,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/184201692?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecda4710-3163-4a80-a751-74dcd2bbd220_1410x1436.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hBRb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecda4710-3163-4a80-a751-74dcd2bbd220_1410x1436.png 424w, https://substackcdn.com/image/fetch/$s_!hBRb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecda4710-3163-4a80-a751-74dcd2bbd220_1410x1436.png 848w, https://substackcdn.com/image/fetch/$s_!hBRb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecda4710-3163-4a80-a751-74dcd2bbd220_1410x1436.png 1272w, https://substackcdn.com/image/fetch/$s_!hBRb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecda4710-3163-4a80-a751-74dcd2bbd220_1410x1436.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">At least it gave me another example for this article</figcaption></figure></div><h3>Bloat</h3><p>I purchased a smart TV and, to my surprise, the home screen lagged the first time I turned it on. Response time was slow and the interface was difficult to use. The home screen had ads, pre-installed garbage apps, home connect features, and background processes running for speech control, AI features, and metrics collection. I had to find a tutorial online and spend 20 minutes in the settings getting the television to a usable state. I considered setting up an LG developer account so I could enable developer mode and disable <em>even more stuff.</em>, I should not have to do this level of tech support on a brand new product. Lord help me if my in-laws ever buy an LG TV.</p><p></p><h2>2 - Removing decisions</h2><p>You should make decisions as easy as possible for users. But be wary, simpler isn&#8217;t always better.</p><p>We want software to be easy. Ideally, it makes decisions as easy as possible for us. But at times, this can go to far: simplification can steal choice away from the user. It&#8217;s the difference between a Prix Fixe menu and an airline that doesn&#8217;t let you choose your seat.</p><h3>Overly simplifying interfaces</h3><p>Consider touch screens in modern cars. It&#8217;s a cleaner look, replacing a swath of dials and buttons with a sleek screen. When I was growing up, we didn&#8217;t have radio buttons in forms, only buttons on the car stereo.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FBiB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F207670d0-8ad3-4880-97fa-4819eabf71b5_427x177.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FBiB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F207670d0-8ad3-4880-97fa-4819eabf71b5_427x177.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FBiB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F207670d0-8ad3-4880-97fa-4819eabf71b5_427x177.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FBiB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F207670d0-8ad3-4880-97fa-4819eabf71b5_427x177.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FBiB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F207670d0-8ad3-4880-97fa-4819eabf71b5_427x177.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FBiB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F207670d0-8ad3-4880-97fa-4819eabf71b5_427x177.jpeg" width="427" height="177" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/207670d0-8ad3-4880-97fa-4819eabf71b5_427x177.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:177,&quot;width&quot;:427,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:14217,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/184201692?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F207670d0-8ad3-4880-97fa-4819eabf71b5_427x177.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_!FBiB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F207670d0-8ad3-4880-97fa-4819eabf71b5_427x177.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FBiB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F207670d0-8ad3-4880-97fa-4819eabf71b5_427x177.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FBiB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F207670d0-8ad3-4880-97fa-4819eabf71b5_427x177.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FBiB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F207670d0-8ad3-4880-97fa-4819eabf71b5_427x177.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><p>This simplicity comes with a cost. You no longer get the satisfying <em>thonk</em> sound when you switch stations. And a <a href="https://cosmobc.com/touchscreens-in-cars-safety-warning/">study by a Swedish car magazine</a> shows that drivers take four times longer to complete a task on a touch screen compared to analog controls. This isn&#8217;t an inconvenience, it&#8217;s dangerous. The simplified design removed affordances. Drivers can no longer feel their way around the controls. drivers have to navigate menus to find the settings they&#8217;re looking for.</p><h3>Greedy defaults</h3><p>Smart defaults make selections for the user to reduce cognitive load. Greedy defaults exploit the shortcuts the user&#8217;s brain takes to get them to act against their own self-interest. A common example: a checkbox for &#8220;subscribe for updates&#8221; in a store checkout page that&#8217;s already set to yes. Many applications have tracking and other behaviors that benefit only the company turned on by default.</p><h3>Hijacking the user&#8217;s machine</h3><p>Only steal the user&#8217;s focus when it&#8217;s helpful to them, not to force their hand. Users own their machines and should decide what to do with them.</p><p>Respect the machine&#8217;s default behavior. Don&#8217;t override basic functionality within your application, or behaviors expected within an element. Examples: removing the ability to right-click on items, disabling the esc key, or having a video with no way to stop or scrub playback.</p><h3>Holding the user hostage</h3><p>Some applications force users to stay within a process, or worse, in a subscription, without their consent. If they can quit, they make it difficult. Give users opportunities to cancel out of any process. Let them stop a process and come back to it later. Users should be free to come and go as they please. It&#8217;s an app, not a cult.</p><p>This goes for their data too. Your application should let users export their data and take it elsewhere. Part of the genius of the Unix philosophy is that every program takes plain text as input and returns plain text as output. Use common file formats and sensible structures. Be more like Unix.</p><p>Don&#8217;t implement cancellation flows that are intentionally confusing, long-winded, or hidden. If someone can sign up for a product online, they should be able to cancel online, without picking up the telephone.</p><h3>Case study: Algorithmic feeds</h3><p>This is a whole other article, but I believe Google killing their Reader product contributed to the global rise of far-right fascist movements. Between 2013-2016, the way users consumed information via the internet changed. All major social media applications switched to algorithmic feeds. At the same time, Google killed their RSS reader to push people toward their own algorithmic feed product, Google+. Creators started making content for the algorithm instead of building more natural ways of connecting and sharing information. It wasn&#8217;t apparent at the time, but in retrospect it was a foundational shift from people searching out content to having content pushed at them. From pull to push.</p><p>Researchers have defined what they call <strong>attentional agency</strong>. Imagine a tug-of-war with the <em>agent</em> (user) on one side, the <em>advocate</em> (person controlling the algorithms) on the other, and the <em>platform</em> as the battlefield. Advocates give you options to select from based on what they think will increase engagement, not what best matches what you asked for. Chronological feeds contain <a href="https://arxiv.org/html/2406.17097v1">50% less hateful content and 3x the amount of links to news sources</a> on average. Algorithmic feeds have more tabloids and mainstream news; chronological feeds have more local sources.</p><p>Users spend <a href="https://www.npr.org/2023/07/27/1190383104/new-study-shows-just-how-facebooks-algorithm-shapes-conservative-and-liberal-bub">73% more time on and engage nearly 20x as much</a> with an algorithmic feed vs. a chronological one. Users also experience a <a href="https://knightcolumbia.org/content/engagement-user-satisfaction-and-the-amplification-of-divisive-content-on-social-media">palpable increase in anger (0.47 SD), anxiety (0.23 SD), sadness (0.22 SD), and a 21% increase in hostility toward out-groups</a>.</p><p>The metrics the business cares about went up, with a real cost for the user. We feel worse, we have less control, and the platforms profit.</p><p></p><h2>3 - Defrauding the user</h2><p>Sometimes using the internet, it feels like everything is a little bit of a grift. If it isn&#8217;t in your face, it&#8217;s behind your back.</p><h3>Deceptive pricing practices</h3><p>As of 2023, Google Workspace offered two pricing tiers: Business Plus and the more expensive Business Starter. Starter was not available during signup. The only way to get it was to sign up for the more expensive plan, then downgrade. Users should be informed about how much they will pay, what they will receive, and whether it&#8217;s one-time or recurring.</p><h3>Fake Urgency &amp; Social Proof</h3><p>Every time I see a store with &#8220;only 2 left!&#8221; there always seem to be only 2 left. Like the general store in <em>O Brother Where Art Thou</em>, these places are a goddamn anomaly. Authentic urgency is fine, but creating imaginary scarcity is fraud.</p><h3>Public by default</h3><p>Applications with a social component tend to default to everything being public. While this is useful for catching senators with questionable Venmo transactions, it&#8217;s harmful to users at scale. Users should opt-in to behavior that could pose a risk, and sharing things online poses a risk.</p><h3>Pricing page traps</h3><p>Ever click on a feature and instead of getting it, you get an upsell to the paid option? Actions should do what the user expects.</p><p></p><h2>4 - Emotional Manipulation</h2><p>This is the big one. Many &#8220;growth hackers&#8221; and product people don&#8217;t understand the difference between persuasion and manipulation. There&#8217;s nothing wrong with being aware of emotion in design (if you want to explore that topic, I recommend Aaron Walter&#8217;s <em><a href="https://www.aarronwalter.com/book">Designing for Emotion</a></em>). The problem arises when you use these techniques to make people act out of fear instead of from a place of agency.</p><h3>Confirmshaming</h3><p>Opt-out buttons worded in a belittling or derogatory manner, making users feel bad about declining. A chilling example, care of <a href="https://www.deceptive.design/types/confirmshaming">Deceptive Design</a> (who coined the term):</p><p>The eCommerce website mimedic.com sells first aid packs and medical supplies. They used the following pop-up when asking for permission to send website notifications:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qdj0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cbecf0a-c09d-4932-8ccf-bf3a95288636_680x275.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qdj0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cbecf0a-c09d-4932-8ccf-bf3a95288636_680x275.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qdj0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cbecf0a-c09d-4932-8ccf-bf3a95288636_680x275.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qdj0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cbecf0a-c09d-4932-8ccf-bf3a95288636_680x275.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qdj0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cbecf0a-c09d-4932-8ccf-bf3a95288636_680x275.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qdj0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cbecf0a-c09d-4932-8ccf-bf3a95288636_680x275.jpeg" width="680" height="275" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0cbecf0a-c09d-4932-8ccf-bf3a95288636_680x275.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:275,&quot;width&quot;:680,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:32874,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/184201692?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cbecf0a-c09d-4932-8ccf-bf3a95288636_680x275.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_!qdj0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cbecf0a-c09d-4932-8ccf-bf3a95288636_680x275.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qdj0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cbecf0a-c09d-4932-8ccf-bf3a95288636_680x275.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qdj0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cbecf0a-c09d-4932-8ccf-bf3a95288636_680x275.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qdj0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cbecf0a-c09d-4932-8ccf-bf3a95288636_680x275.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">In-browser notifications? Guess I&#8217;ll die then&#8230;</figcaption></figure></div><p>The copy "no, I don't want to stay alive" is troubling, given the context of serving people who have been exposed to trauma and death in their work.</p><p></p><h3>Gamification &amp; Gambling Mechanics</h3><p>Gamification adds game mechanics to systems with the element of play stripped away. Leaderboards, quests, achievements, unlocks, and XP to drive behavior. It is psychologically manipulative. Uber rolled out a &#8220;quest&#8221; feature for drivers, offering bonus cash for hitting milestones. But as drivers got close to their goal, Uber fed them lower-paying rides, keeping them behind the wheel longer. They&#8217;re out driving, eyes burning, concentration fraying. Uber isn&#8217;t helping drivers have fun; it&#8217;s putting them and others at risk to increase profits.</p><p>Gamification can have positive effects too. I used to go to a CrossFit gym, fully aware that CrossFit is just gamified workouts. But it worked: it kept me coming back and got me in better shape.</p><p>Duolingo exemplifies the duality of gamification. On the paid plan, they use it to encourage language learning. On the free plan, they use it to encourage upgrading to the paid plan.</p><p>When you see gamified systems, ask: What behaviors is the system pushing? Who benefits most?</p><h3>Engagement at any cost</h3><p>The state of social media makes sense once you see how the numbers work. The algorithms are not trying to show you what you want to see; they&#8217;re trying to show you what will keep you engaged. Engagement can come from interest and curiosity, but it can also come from outrage, hatred, shock, anxiety, and fear. The latter is much easier and more effective.</p><h2>You are the last line of defense</h2><p>As software engineers, we are responsible for the work we put out into the world. Technology is powerful and has real impacts on society. I am reminded of <a href="https://www.youtube.com/watch?v=UmUm7oBqCVw">an interview with Bo Burnham</a> on the attention economy:</p><div id="youtube2-UmUm7oBqCVw" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;UmUm7oBqCVw&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/UmUm7oBqCVw?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><blockquote><p>We used to colonize land. Now, it&#8217;s human attention. These companies&#8212;tech companies, social platforms&#8212;they&#8217;re coming for every second of your life. At first, they were trying to capture your free time, but now, every single moment you are alive is a moment you could be looking at your phone, gathering data, and being targeted with advertising.</p><p>And it&#8217;s not like there&#8217;s some evil mastermind. It&#8217;s just capitalism, and it keeps growing. These companies have to report to shareholders, so they can&#8217;t stay stagnant. Every year, platforms like Twitter or YouTube need their growth numbers up. The whole model is, &#8216;How do we get more of you, more of your attention?&#8217;</p><p>After we&#8217;ve colonized the entire earth, the only space left was the human mind and every minute of our time. Now, they&#8217;re trying to colonize every minute of your life. If you&#8217;re not online, that&#8217;s time they aren&#8217;t gathering data, targeting ads, or monetizing you. That&#8217;s what&#8217;s really happening.</p></blockquote><p>I understand that pushing back against these asks is not easy. But I am reminded of another quote, this time from Jerry Garcia:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GSwS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5573f517-d0b8-4706-b720-019fb598a27d_1080x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GSwS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5573f517-d0b8-4706-b720-019fb598a27d_1080x1080.png 424w, https://substackcdn.com/image/fetch/$s_!GSwS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5573f517-d0b8-4706-b720-019fb598a27d_1080x1080.png 848w, https://substackcdn.com/image/fetch/$s_!GSwS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5573f517-d0b8-4706-b720-019fb598a27d_1080x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!GSwS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5573f517-d0b8-4706-b720-019fb598a27d_1080x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GSwS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5573f517-d0b8-4706-b720-019fb598a27d_1080x1080.png" width="1080" height="1080" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5573f517-d0b8-4706-b720-019fb598a27d_1080x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1080,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:778217,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/184201692?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5573f517-d0b8-4706-b720-019fb598a27d_1080x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GSwS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5573f517-d0b8-4706-b720-019fb598a27d_1080x1080.png 424w, https://substackcdn.com/image/fetch/$s_!GSwS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5573f517-d0b8-4706-b720-019fb598a27d_1080x1080.png 848w, https://substackcdn.com/image/fetch/$s_!GSwS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5573f517-d0b8-4706-b720-019fb598a27d_1080x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!GSwS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5573f517-d0b8-4706-b720-019fb598a27d_1080x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p>This is an excerpt from my upcoming book on product thinking for engineers. <strong><a href="https://engineering-product.kit.com/0d5f0028f8">Sign up to be notified</a></strong> when it is available for purchase.</p></div>]]></content:encoded></item><item><title><![CDATA[Building software that amplifies agency]]></title><description><![CDATA[Stop building for coercion, start building for empowerment]]></description><link>https://www.statetransition.co/p/building-software-that-amplifies</link><guid isPermaLink="false">https://www.statetransition.co/p/building-software-that-amplifies</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Fri, 02 Jan 2026 11:47:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ZNgK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa132e552-c5f7-4696-b871-a7f586fbb817_549x800.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="https://substackcdn.com/image/fetch/$s_!ZNgK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa132e552-c5f7-4696-b871-a7f586fbb817_549x800.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZNgK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa132e552-c5f7-4696-b871-a7f586fbb817_549x800.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZNgK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa132e552-c5f7-4696-b871-a7f586fbb817_549x800.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZNgK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa132e552-c5f7-4696-b871-a7f586fbb817_549x800.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZNgK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa132e552-c5f7-4696-b871-a7f586fbb817_549x800.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZNgK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa132e552-c5f7-4696-b871-a7f586fbb817_549x800.jpeg" width="549" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a132e552-c5f7-4696-b871-a7f586fbb817_549x800.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:549,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:155017,&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://www.statetransition.co/i/183229852?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa132e552-c5f7-4696-b871-a7f586fbb817_549x800.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_!ZNgK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa132e552-c5f7-4696-b871-a7f586fbb817_549x800.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZNgK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa132e552-c5f7-4696-b871-a7f586fbb817_549x800.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZNgK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa132e552-c5f7-4696-b871-a7f586fbb817_549x800.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZNgK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa132e552-c5f7-4696-b871-a7f586fbb817_549x800.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Don Quixote about to Strike the Helmet, Jean-Honor&#233; Fragonard, 1780s</figcaption></figure></div><p><em>(This post is an excerpt from my upcoming book on product thinking for engineers. <strong><a href="https://engineering-product.kit.com/0d5f0028f8">Sign up to be notified</a></strong> when it is available for purchase.)</em></p><div><hr></div><p></p><p>Software feels more abusive each day, as if its annoyed it has to interact with you to get your money. Every time we log in, we accept cookies, dismiss a pop-up for the latest feature, watch an ad, hand over our phone numbers for &#8220;verification,&#8221; watch another ad, and then discover the free thing we used is now behind a paywall. Enshittification abounds. Software used to be a tool. Now products stay in control, stripping users of agency.</p><p>How can we do better? How do we design software that creates a more <strong>agentic user</strong>? A user who feels empowered to make decisions. Who takes action by choice, not coercion. Who sets a goal, believes it is achievable, and takes steps to accomplish it. Who can figure out the parts of the system that are unknown or unclear. Who trusts the tool will behave as expected, without unforeseen consequences, and provides a clear sense of where they are and where they&#8217;re going next. They approach tasks from a place of calm and control.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q3hz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e887c0e-3835-4d82-9b3e-cdfd1fd61f36_1080x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q3hz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e887c0e-3835-4d82-9b3e-cdfd1fd61f36_1080x1080.png 424w, https://substackcdn.com/image/fetch/$s_!Q3hz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e887c0e-3835-4d82-9b3e-cdfd1fd61f36_1080x1080.png 848w, https://substackcdn.com/image/fetch/$s_!Q3hz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e887c0e-3835-4d82-9b3e-cdfd1fd61f36_1080x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!Q3hz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e887c0e-3835-4d82-9b3e-cdfd1fd61f36_1080x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q3hz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e887c0e-3835-4d82-9b3e-cdfd1fd61f36_1080x1080.png" width="1080" height="1080" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e887c0e-3835-4d82-9b3e-cdfd1fd61f36_1080x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1080,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:662708,&quot;alt&quot;:&quot;\&quot;Here's what our product can do\&quot; and \&quot;Here's what you can do with our product\&quot; sound similar, but they are completely different approaches. &#8212; Jason Fried&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/183229852?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e887c0e-3835-4d82-9b3e-cdfd1fd61f36_1080x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&quot;Here's what our product can do&quot; and &quot;Here's what you can do with our product&quot; sound similar, but they are completely different approaches. &#8212; Jason Fried" title="&quot;Here's what our product can do&quot; and &quot;Here's what you can do with our product&quot; sound similar, but they are completely different approaches. &#8212; Jason Fried" srcset="https://substackcdn.com/image/fetch/$s_!Q3hz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e887c0e-3835-4d82-9b3e-cdfd1fd61f36_1080x1080.png 424w, https://substackcdn.com/image/fetch/$s_!Q3hz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e887c0e-3835-4d82-9b3e-cdfd1fd61f36_1080x1080.png 848w, https://substackcdn.com/image/fetch/$s_!Q3hz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e887c0e-3835-4d82-9b3e-cdfd1fd61f36_1080x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!Q3hz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e887c0e-3835-4d82-9b3e-cdfd1fd61f36_1080x1080.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Case study: Unix Core Library </h2><p>The Unix core library epitomizes many elements of agentic user design. A suite of 100ish single-purpose command-line tools, built at the foundational level of the OS, empowers the user to do whatever they want with text files. <code>find</code> to look for files, <code>grep</code> to search their contents, <code>awk</code> to process them, <code>rm</code> to remove them.</p><p>In the 1970s, Bell Labs had a tool-based culture. Engineers were encouraged to build tooling to solve their own problems. If others found them useful, they would roll the tools up into the Unix operating system. These tools were built around the three-pronged Unix design philosophy:</p><ol><li><p>Do one thing and do it well.</p></li><li><p>Write programs that work together.</p></li><li><p>Everything is a file.</p></li></ol><p>This way, instead of building products to solve every problem, they could build utilities people could apply to single fixes. They were building screwdrivers and gears so that other people could build specialized machinery. This philosophy led to the creation of agency-friendly software:</p><p><strong>Setting and achieving goals:</strong> Users can compose tools together with pipes to create complex workflows for any text-based goal. If everything is a file, then anything is achievable.</p><p><strong>Doing tasks because you decide to:</strong> The tool never suggests or manipulates. No &#8220;recommended workflows,&#8221; no attempts to influence your choices. It sits idle until you give it explicit commands.</p><p><strong>Figureoutable:</strong> I won&#8217;t pretend using the Unix tooling is easy. It requires skill to wield. But the tools follow consistent conventions: flags with <code>-</code> or <code>--</code>, stdin/stdout patterns, and exit codes. Every tool has man pages and <code>--help</code> flags. Documentation is comprehensive and built in. Users can discover capabilities and see examples. Learn one tool&#8217;s patterns, and you&#8217;ve learned them all.</p><p><strong>Empowered to make decisions:</strong> Tools don&#8217;t make hidden decisions on your behalf. You choose verbosity levels, output formats, error handling, and behavior. Every option is exposed as a flag. The tool does what you tell it.</p><p><strong>No surprises:</strong> Every tool does its one job, no more, no less. <code>grep</code> always searches, <code>sort</code> always sorts. Tools are deterministic and transparent.</p><p><strong>Useful feedback:</strong> Clear separation of stdout (results) and stderr (errors). Exit codes signal success (0) or failure (non-zero). Feedback is a file (everything is a file), parseable, so you can build on it.</p><p>The Unix CLI embodies &#8220;here&#8217;s what you can do&#8221; rather than &#8220;here&#8217;s what the product does.&#8221;</p><p>What lessons can we take from this and apply to building products?</p><h2>Build software that is both simple and powerful</h2><p></p><p>Products should be simple enough for novices and powerful for experts. Examples of power user features:</p><ol><li><p><strong>Hotkeys:</strong> I hope to one day be the kind of person who never touches the mouse. Hotkeys help people move faster when they&#8217;re willing to learn them.</p></li><li><p><strong>Command palettes:</strong> A cousin of hotkeys, command palettes let users complete tasks via text instead of clicking and dragging.</p></li><li><p><strong>Macros:</strong> Excel lets users script macros in VBA.</p></li><li><p><strong>Advanced configuration:</strong> Give users more customization for those who want it. (Warning: these can create maintenance debt if you&#8217;re not careful.)</p></li></ol><p></p><h2>Anticipate the user getting stuck, and toss them a rope</h2><p>Users will get stuck. Anticipate what bogs them down and be there when they need you most:</p><ol><li><p><strong>Confused.</strong> Make first-time use as simple as possible. Affordances and consistency clarify what to do next.</p></li><li><p><strong>Stuck.</strong> Offer help, tips, or support docs to help them figure out the next step.</p></li><li><p><strong>Unmotivated.</strong> Show progress, offer wins along the way, and connect the current task to their ultimate goal.</p></li><li><p><strong>Distracted.</strong> Remove irrelevant elements from the view.</p></li><li><p><strong>The task is hard and there&#8217;s nothing you can do about it.</strong> Acknowledge it. As Jake the Dog said in <em>Adventure Time</em>: &#8220;Dude, suckin&#8217; at something is the first step to being sorta good at something.&#8221;</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bJDQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf85ff5f-f02d-4acf-8121-6b1bd6e87ace_500x629.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bJDQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf85ff5f-f02d-4acf-8121-6b1bd6e87ace_500x629.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bJDQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf85ff5f-f02d-4acf-8121-6b1bd6e87ace_500x629.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bJDQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf85ff5f-f02d-4acf-8121-6b1bd6e87ace_500x629.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bJDQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf85ff5f-f02d-4acf-8121-6b1bd6e87ace_500x629.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bJDQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf85ff5f-f02d-4acf-8121-6b1bd6e87ace_500x629.jpeg" width="500" height="629" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/af85ff5f-f02d-4acf-8121-6b1bd6e87ace_500x629.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:629,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:37513,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/183229852?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf85ff5f-f02d-4acf-8121-6b1bd6e87ace_500x629.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_!bJDQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf85ff5f-f02d-4acf-8121-6b1bd6e87ace_500x629.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bJDQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf85ff5f-f02d-4acf-8121-6b1bd6e87ace_500x629.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bJDQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf85ff5f-f02d-4acf-8121-6b1bd6e87ace_500x629.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bJDQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf85ff5f-f02d-4acf-8121-6b1bd6e87ace_500x629.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Robots &amp; Iron Man Suits </h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-E0M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F586034e2-b3a2-4631-821a-19424168fc32_1456x1028.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-E0M!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F586034e2-b3a2-4631-821a-19424168fc32_1456x1028.png 424w, https://substackcdn.com/image/fetch/$s_!-E0M!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F586034e2-b3a2-4631-821a-19424168fc32_1456x1028.png 848w, https://substackcdn.com/image/fetch/$s_!-E0M!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F586034e2-b3a2-4631-821a-19424168fc32_1456x1028.png 1272w, https://substackcdn.com/image/fetch/$s_!-E0M!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F586034e2-b3a2-4631-821a-19424168fc32_1456x1028.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-E0M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F586034e2-b3a2-4631-821a-19424168fc32_1456x1028.png" width="1456" height="1028" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/586034e2-b3a2-4631-821a-19424168fc32_1456x1028.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1028,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:117337,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/183229852?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F586034e2-b3a2-4631-821a-19424168fc32_1456x1028.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-E0M!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F586034e2-b3a2-4631-821a-19424168fc32_1456x1028.png 424w, https://substackcdn.com/image/fetch/$s_!-E0M!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F586034e2-b3a2-4631-821a-19424168fc32_1456x1028.png 848w, https://substackcdn.com/image/fetch/$s_!-E0M!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F586034e2-b3a2-4631-821a-19424168fc32_1456x1028.png 1272w, https://substackcdn.com/image/fetch/$s_!-E0M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F586034e2-b3a2-4631-821a-19424168fc32_1456x1028.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p>People don&#8217;t buy products. They buy better versions of themselves &#8212; Samuel Hulick, Onboarding consultant</p></div><p>There are two patterns technology can take when doing a task: It does it for you, or it makes you better. I call these <strong>robots</strong> and <strong>Iron Man suits.</strong> A <strong>robot</strong> handles something for the user. An <strong>Iron Man suit</strong> amplifies their abilities. GitHub Actions are robots. VSCode is an Iron Man suit. Everyone thinks ChatGPT is a robot, but it&#8217;s an Iron Man suit. Both can either enhance or take away agency.</p><h3>Robots </h3><p>With robots, the user hands off the task. For example, autopay for bills, CI/CD pipelines, and email filters. These patterns work best when:</p><ul><li><p>The task is repetitive and boring</p></li><li><p>Success criteria are clear and measurable</p></li><li><p>It&#8217;s recurring and predictable</p></li></ul><p>Robots increase agency when they let you complete a task you otherwise couldn&#8217;t, or remove a task you don&#8217;t want to do from your plate entirely. Automated bill pay means you never have to think about when to pay your bill.</p><p>If you&#8217;ve watched any Sci-fi, you can imagine how this type of automation could start working against the user&#8217;s best interest. When software starts making decisions, it may do so against the user&#8217;s interests. Pod bay doors are all well and good until they won&#8217;t open. A bed that warms to the perfect temperature is nice until an <a href="http://arstechnica.com/gadgets/2025/10/smart-beds-leave-sleepers-hot-and-bothered-during-aws-outage/">AWS outage contorts it into an unusable position</a>. They can become a black box that removes a user&#8217;s understanding and ability to decide. They can be difficult or impossible to modify.</p><p>Aim to take work off the user&#8217;s plate only when you can preserve their ability to decide and receive feedback.</p><h3>Iron Man suits </h3><p>Iron Man suits enhance the user&#8217;s abilities. Examples: feature-rich IDEs and design tools like Figma. Consider this approach when:</p><ul><li><p>The task requires subjective judgment and creativity</p></li><li><p>The user needs to understand what&#8217;s happening</p></li><li><p>The user is practicing a skill they can improve</p></li></ul><p>Iron Man suits increase agency by giving you more power to complete tasks. I&#8217;m no designer, but tools like Figma and Canva enable me to communicate more visually. They enable me to complete a task I otherwise couldn&#8217;t.</p><p>The opposite happens when the Iron Man suit becomes a burden, adding to your workload instead of lightening it. Salesforce is configurable, but it&#8217;s <em>so</em> configurable that configuring it becomes a full-time job. Ticket trackers like Jira can streamline project management, but can also become a job unto themselves. Digital notebooks like Obsidian and OneNote can help you manage knowledge better, but can also become a <a href="https://www.statetransition.co/p/couples-therapy-for-you-and-your">burden instead of fuel for creative work</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jvHX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1815d-70c9-4c9a-8ae3-9408b2a470c4_260x374.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jvHX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1815d-70c9-4c9a-8ae3-9408b2a470c4_260x374.gif 424w, https://substackcdn.com/image/fetch/$s_!jvHX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1815d-70c9-4c9a-8ae3-9408b2a470c4_260x374.gif 848w, https://substackcdn.com/image/fetch/$s_!jvHX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1815d-70c9-4c9a-8ae3-9408b2a470c4_260x374.gif 1272w, https://substackcdn.com/image/fetch/$s_!jvHX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1815d-70c9-4c9a-8ae3-9408b2a470c4_260x374.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jvHX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1815d-70c9-4c9a-8ae3-9408b2a470c4_260x374.gif" width="320" height="460.3076923076923" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4ee1815d-70c9-4c9a-8ae3-9408b2a470c4_260x374.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:374,&quot;width&quot;:260,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1891825,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/183229852?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1815d-70c9-4c9a-8ae3-9408b2a470c4_260x374.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jvHX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1815d-70c9-4c9a-8ae3-9408b2a470c4_260x374.gif 424w, https://substackcdn.com/image/fetch/$s_!jvHX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1815d-70c9-4c9a-8ae3-9408b2a470c4_260x374.gif 848w, https://substackcdn.com/image/fetch/$s_!jvHX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1815d-70c9-4c9a-8ae3-9408b2a470c4_260x374.gif 1272w, https://substackcdn.com/image/fetch/$s_!jvHX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1815d-70c9-4c9a-8ae3-9408b2a470c4_260x374.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2>Simplify decisions</h2><p>Decision fatigue is real. If users feel it in your product, they may leave and never return. Make decisions few and easy, while preserving agency.</p><p><strong>Keep choices to a minimum.</strong> Hick&#8217;s law: the time to make a decision increases with the number of choices. If you can&#8217;t reduce the number of choices, group them or give users ways to sort and filter (autocomplete, for example).</p><p><strong>Give them smart defaults.</strong> A smart default is a choice that&#8217;s right most of the time. Make the right thing easy and the wrong thing hard.</p><p><strong>Defer choices.</strong> If a choice doesn&#8217;t need to be made now, let the user make it later.</p><h2>Agentic User Patterns</h2><p>From looking at what agency is, how people attack it, and how others have put it into practice, we can form some patterns to guide us: We give users as few decisions as they need, but no fewer. We offer all the information and feedback they need to decide, but no more. We build products that do what they promise, when they promise, and nothing else.</p><h2>Remember your place</h2><p>Software is a tool for the user. The user is not a tool for your product. Design for agency: empower users to decide, feel confident, feel safe, and get shit done.</p><div><hr></div><p>Thank you for reading. This post is part 1 of a 2-part series. The following post will explore this one&#8217;s shadow, anti-agentic dark patterns. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.statetransition.co/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.statetransition.co/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[This New Year's, try a strategy instead of a resolution]]></title><description><![CDATA[At the edges no. 18]]></description><link>https://www.statetransition.co/p/this-new-years-try-a-strategy-instead</link><guid isPermaLink="false">https://www.statetransition.co/p/this-new-years-try-a-strategy-instead</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Mon, 29 Dec 2025 14:37:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!niBF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e12a1ba-4ee1-44bf-8fa8-19fc99c40d4a_680x800.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="https://substackcdn.com/image/fetch/$s_!niBF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e12a1ba-4ee1-44bf-8fa8-19fc99c40d4a_680x800.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!niBF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e12a1ba-4ee1-44bf-8fa8-19fc99c40d4a_680x800.jpeg 424w, https://substackcdn.com/image/fetch/$s_!niBF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e12a1ba-4ee1-44bf-8fa8-19fc99c40d4a_680x800.jpeg 848w, https://substackcdn.com/image/fetch/$s_!niBF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e12a1ba-4ee1-44bf-8fa8-19fc99c40d4a_680x800.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!niBF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e12a1ba-4ee1-44bf-8fa8-19fc99c40d4a_680x800.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!niBF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e12a1ba-4ee1-44bf-8fa8-19fc99c40d4a_680x800.jpeg" width="680" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e12a1ba-4ee1-44bf-8fa8-19fc99c40d4a_680x800.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:680,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:249520,&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://www.statetransition.co/i/182862033?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e12a1ba-4ee1-44bf-8fa8-19fc99c40d4a_680x800.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_!niBF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e12a1ba-4ee1-44bf-8fa8-19fc99c40d4a_680x800.jpeg 424w, https://substackcdn.com/image/fetch/$s_!niBF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e12a1ba-4ee1-44bf-8fa8-19fc99c40d4a_680x800.jpeg 848w, https://substackcdn.com/image/fetch/$s_!niBF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e12a1ba-4ee1-44bf-8fa8-19fc99c40d4a_680x800.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!niBF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e12a1ba-4ee1-44bf-8fa8-19fc99c40d4a_680x800.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">New Year&#8217;s Day, J.J. Lankes, 1934</figcaption></figure></div><p>It&#8217;s that time of year. The final week, where the worst versions of ourselves plan for the better versions we&#8217;ll be next year. We crawl out of the pile of discarded wrapping paper and plates. The background drone of holiday films begins to fade. The time to lock in approaches.</p><p>We all know resolutions are a fantasy. Most fail to lead to permanent change. Resolutions feel like a burden, like an exam you&#8217;re going to fail instead of a book that shows you a new way of thinking. You hit the gym for a week or three, then start to miss. It becomes a stressor. You toss the resolution in a desk drawer and ignore it until Q4 reflection time.</p><p>Last year, I found a different approach: I didn&#8217;t go in with a New Year&#8217;s resolution. I went into 2025 with a <strong>New Year&#8217;s strategy</strong>.</p><p>A resolution is a statement of a goal. Strategy is a framework that shapes decisions. Resolutions are rigid, strategies are flexible. Resolutions are narrow. Strategy is holistic. Resolutions lack a system for dealing with changing contexts. A strategy helps you decide what you&#8217;re going to do, how to prioritize, and empowers you to make decisions with confidence.</p><h2>How to write a strategy</h2><p>The word &#8216;Strategy&#8217; conjures images of McKinsey consultants billing $600/hr to create slide decks. Decks with lots of charts. Charts that will do more harm than good. Strategy need not be highfalutin, and unlike McKinsey consultants, can deliver real value and change. Here&#8217;s a dead-simple summary of what I mean by strategy, riffing on the &#8216;kernel&#8217; idea from &#8216;<a href="https://www.goodreads.com/book/show/11721966-good-strategy-bad-strategy">Good Strategy / Bad Strategy</a>.&#8217; A strategy has four parts:</p><ol><li><p><strong>Goal</strong> - What do you want to accomplish?</p></li><li><p><strong>Diagnosis</strong> - What&#8217;s wrong?</p></li><li><p><strong>Guiding policy</strong> - Your approach, what to do, what not to do.</p></li><li><p><strong>Coherent Actions</strong> - How can you put this into practice?</p></li></ol><p>That&#8217;s it. It doesn&#8217;t need to be a huge document or grandiose idea. It could be a paragraph. It could be a <em>sentence.</em> <em>WWJD</em> is a complete strategy.</p><p>(Tech bros made that weird, too, by the way)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rOf0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc841a900-dd44-41be-b1c3-d1051e9550ab_1124x1412.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rOf0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc841a900-dd44-41be-b1c3-d1051e9550ab_1124x1412.png 424w, https://substackcdn.com/image/fetch/$s_!rOf0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc841a900-dd44-41be-b1c3-d1051e9550ab_1124x1412.png 848w, https://substackcdn.com/image/fetch/$s_!rOf0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc841a900-dd44-41be-b1c3-d1051e9550ab_1124x1412.png 1272w, https://substackcdn.com/image/fetch/$s_!rOf0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc841a900-dd44-41be-b1c3-d1051e9550ab_1124x1412.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rOf0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc841a900-dd44-41be-b1c3-d1051e9550ab_1124x1412.png" width="1124" height="1412" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c841a900-dd44-41be-b1c3-d1051e9550ab_1124x1412.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1412,&quot;width&quot;:1124,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:922629,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/182862033?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc841a900-dd44-41be-b1c3-d1051e9550ab_1124x1412.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rOf0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc841a900-dd44-41be-b1c3-d1051e9550ab_1124x1412.png 424w, https://substackcdn.com/image/fetch/$s_!rOf0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc841a900-dd44-41be-b1c3-d1051e9550ab_1124x1412.png 848w, https://substackcdn.com/image/fetch/$s_!rOf0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc841a900-dd44-41be-b1c3-d1051e9550ab_1124x1412.png 1272w, https://substackcdn.com/image/fetch/$s_!rOf0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc841a900-dd44-41be-b1c3-d1051e9550ab_1124x1412.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Why remember God's word when you can store it in the cloud? (<a href="https://www.amazon.com/LIAISE-Wearable-Bracelet-Christian-Wristband/dp/B0CQKNL1JB?th=1">Amazon</a>)</figcaption></figure></div><h3>An example</h3><blockquote><p>Imagine you're driving from San Francisco to Seattle, and you want to get there in under 12 hours. That's your goal. For those unfamiliar with the West Coast geography, 12 hours is a theoretically doable timeframe but the variance can be high. It's possible to lose 2 hours if you pass Portland at the wrong time, and there are several other traffic bottlenecks.</p><p><br>A possible strategy to achieve this somewhat optimistic goal would be to <strong>use multiple drivers to enable continuous driving while optimizing around traffic patterns rather than absolute distance or speed.</strong></p><p><br>The strategy isn't "take I-5" or "drive fast", it's a higher-level approach that introduces new possibilities (can drive straight through), adds constraints (need to coordinate schedules), and impacts other decisions that might be made (no need for a sleeping stop). It's a set of fundamental approaches which generate a cascade of tactical decisions: when to swap drivers, timing of departures to avoid city traffic, length of rest periods, etc.</p><p><br><a href="https://writing.pupius.co.uk/you-need-to-be-more-strategic-dc473a2aa319">Dan Pupius, You need to be more strategic - A primer on strategy for software engineers</a></p></blockquote><p>At the start of the year, I declared 2025 my '<a href="https://www.statetransition.co/p/my-leeroy-jenkins-year">year of actionable thinking</a>', and I crafted the 'Leeroy Jenkins Strategy':</p><ol><li><p><strong>Goal</strong> - Spend less time overthinking, more time on execution</p></li><li><p><strong>Diagnosis</strong> - Too much time spent on planning and <a href="https://www.statetransition.co/p/a-healthy-information-diet-is-more">infotainment</a>.</p></li><li><p><strong>General policies</strong> - Be intentional about planning and research. All information should be actionable. Favor taking small next actions and focus on progress over perfection.</p></li><li><p><strong>Coherent Actions</strong> - See <a href="https://www.statetransition.co/p/jenkins-strategems">Jenkins Strategems</a>, <a href="https://www.statetransition.co/p/just-push-buttons">Just Push Buttons</a></p></li></ol><p></p><p>At the beginning of the year, I was also moving from IC to engineering manager. I didn&#8217;t know what the job would entail. But having a strategy meant I could apply my original goal to novel areas. I could learn what questions to ask in meetings to drive decisions and keep us out of a planning bog.</p><h3>An anti-example</h3><p>My stated goal of <a href="https://www.statetransition.co/p/nanowrimo-style-challenge-trip-report">publishing 10 posts in December</a>. I had a goal, but lacked a diagnosis. I hadn&#8217;t considered the amount of holiday planning and activities, the &#8216;get it in by Q4&#8217; work push, the general crud, the persistent cough all parents of young children have in winter. The sun, despite all the negative feedback, continues to set at 4:47pm. How can I be expected to hustle when the sun can barely put in a full day&#8217;s work?</p><p></p><h2>3 ways to keep yourself honest </h2><p>Once you have a strategy, you have to ensure you put it into action. Wisdom is realizing this video is sincere:</p><div id="youtube2-ZXsQAXx_ao0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;ZXsQAXx_ao0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/ZXsQAXx_ao0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>What helped me:</p><p><strong>Regular check-ins</strong> - If you take away one thing from this post, let it be this: If you want to focus on a goal for the long term, set up a system to bring your attention to it regularly. Add a recurring task to your to-do list. Slap a sticky note on your bathroom mirror. Wear a charm or bracelet.</p><p><strong>Strategy-driven preparation</strong> - What can you do <em>today</em> to enact your strategy in the future? Strategy can help you in the moment, but also beforehand, in planning and preparation. Map your route before you leave.</p><p><strong>The Focusing Question</strong> - I&#8217;m a stan for Gary Keller&#8217;s <a href="https://the1thing.com/book/">The One Thing</a>. Though I&#8217;ll admit you can get 90% of the value by asking yourself the &#8220;Focusing Question&#8221;, both regularly and when you don&#8217;t know what to do next: &#8220;What&#8217;s the one thing I can do such that by doing it everything else will be easier or unnecessary?&#8221;</p><p>What do you want to accomplish next year? How could you write a strategy to achieve it?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Lp5-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce7c0ef-0a90-4d9c-9b3f-5f061463d30b_338x342.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Lp5-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce7c0ef-0a90-4d9c-9b3f-5f061463d30b_338x342.png 424w, https://substackcdn.com/image/fetch/$s_!Lp5-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce7c0ef-0a90-4d9c-9b3f-5f061463d30b_338x342.png 848w, https://substackcdn.com/image/fetch/$s_!Lp5-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce7c0ef-0a90-4d9c-9b3f-5f061463d30b_338x342.png 1272w, https://substackcdn.com/image/fetch/$s_!Lp5-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce7c0ef-0a90-4d9c-9b3f-5f061463d30b_338x342.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Lp5-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce7c0ef-0a90-4d9c-9b3f-5f061463d30b_338x342.png" width="338" height="342" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1ce7c0ef-0a90-4d9c-9b3f-5f061463d30b_338x342.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:342,&quot;width&quot;:338,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:85353,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/182862033?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce7c0ef-0a90-4d9c-9b3f-5f061463d30b_338x342.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Lp5-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce7c0ef-0a90-4d9c-9b3f-5f061463d30b_338x342.png 424w, https://substackcdn.com/image/fetch/$s_!Lp5-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce7c0ef-0a90-4d9c-9b3f-5f061463d30b_338x342.png 848w, https://substackcdn.com/image/fetch/$s_!Lp5-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce7c0ef-0a90-4d9c-9b3f-5f061463d30b_338x342.png 1272w, https://substackcdn.com/image/fetch/$s_!Lp5-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce7c0ef-0a90-4d9c-9b3f-5f061463d30b_338x342.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">DO IT!</figcaption></figure></div><p>Maybe I should make a WWSLaBD bracelet &#129300;</p>]]></content:encoded></item><item><title><![CDATA[The product taste equation]]></title><description><![CDATA[empathy + domain Knowledge + creativity]]></description><link>https://www.statetransition.co/p/the-product-taste-equation</link><guid isPermaLink="false">https://www.statetransition.co/p/the-product-taste-equation</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Thu, 18 Dec 2025 17:54:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!owVL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ba5fab7-bbcd-4765-b0f1-273e63ee957c_629x800.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="https://substackcdn.com/image/fetch/$s_!owVL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ba5fab7-bbcd-4765-b0f1-273e63ee957c_629x800.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!owVL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ba5fab7-bbcd-4765-b0f1-273e63ee957c_629x800.jpeg 424w, https://substackcdn.com/image/fetch/$s_!owVL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ba5fab7-bbcd-4765-b0f1-273e63ee957c_629x800.jpeg 848w, https://substackcdn.com/image/fetch/$s_!owVL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ba5fab7-bbcd-4765-b0f1-273e63ee957c_629x800.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!owVL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ba5fab7-bbcd-4765-b0f1-273e63ee957c_629x800.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!owVL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ba5fab7-bbcd-4765-b0f1-273e63ee957c_629x800.jpeg" width="629" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0ba5fab7-bbcd-4765-b0f1-273e63ee957c_629x800.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:629,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:151164,&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://www.statetransition.co/i/181990105?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ba5fab7-bbcd-4765-b0f1-273e63ee957c_629x800.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_!owVL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ba5fab7-bbcd-4765-b0f1-273e63ee957c_629x800.jpeg 424w, https://substackcdn.com/image/fetch/$s_!owVL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ba5fab7-bbcd-4765-b0f1-273e63ee957c_629x800.jpeg 848w, https://substackcdn.com/image/fetch/$s_!owVL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ba5fab7-bbcd-4765-b0f1-273e63ee957c_629x800.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!owVL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ba5fab7-bbcd-4765-b0f1-273e63ee957c_629x800.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>Studies of a Sled and Various Household Objects, </strong>c. 1870-1890 Enoch Wood Perry, Jr.</figcaption></figure></div><h2>What is product taste?</h2><p>Product taste is hard to define. The most useful model I&#8217;ve found comes from Shreya Doshi&#8217;s &#8220;<a href="https://www.tryexponent.com/blog/product-sense-interview">How to Improve Your Product Sense</a>.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>&#8221; She decomposes it into three parts, stated here as &#8220;<strong>The Product Taste Equation:&#8221;</strong></p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;Product Taste = empathy + domain Knowledge + creativity&quot;,&quot;id&quot;:&quot;KJHKGMWVPR&quot;}" data-component-name="LatexBlockToDOM"></div><p></p><p><strong>Empathy:</strong> Caring about the needs of the user and how they feel when they use your product. Defining problems and recognizing opportunities.</p><p><strong>Domain knowledge:</strong> Knowledge about the space you can bring to bear on the problem; the set of tools you have at your disposal to solve that problem.</p><p><strong>Creativity:</strong> Your capability to invent, identify, combine, and remix solutions to solve problems.</p><p>Taste is used to make subjective value judgements in your work. You apply all of these factors, together, to inform and improve both the inputs and outputs of your work.</p><p></p><h3>Taste requires coherence</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!feLL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d572ee3-d692-4c79-a6dc-f1c95ca20cdd_1456x807.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!feLL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d572ee3-d692-4c79-a6dc-f1c95ca20cdd_1456x807.webp 424w, https://substackcdn.com/image/fetch/$s_!feLL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d572ee3-d692-4c79-a6dc-f1c95ca20cdd_1456x807.webp 848w, https://substackcdn.com/image/fetch/$s_!feLL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d572ee3-d692-4c79-a6dc-f1c95ca20cdd_1456x807.webp 1272w, https://substackcdn.com/image/fetch/$s_!feLL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d572ee3-d692-4c79-a6dc-f1c95ca20cdd_1456x807.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!feLL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d572ee3-d692-4c79-a6dc-f1c95ca20cdd_1456x807.webp" width="1456" height="807" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5d572ee3-d692-4c79-a6dc-f1c95ca20cdd_1456x807.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:807,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:49508,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/181990105?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d572ee3-d692-4c79-a6dc-f1c95ca20cdd_1456x807.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!feLL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d572ee3-d692-4c79-a6dc-f1c95ca20cdd_1456x807.webp 424w, https://substackcdn.com/image/fetch/$s_!feLL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d572ee3-d692-4c79-a6dc-f1c95ca20cdd_1456x807.webp 848w, https://substackcdn.com/image/fetch/$s_!feLL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d572ee3-d692-4c79-a6dc-f1c95ca20cdd_1456x807.webp 1272w, https://substackcdn.com/image/fetch/$s_!feLL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d572ee3-d692-4c79-a6dc-f1c95ca20cdd_1456x807.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Source: <a href="https://www.resextensa.co/p/form-context-and-fit">Form, Context and Fit</a>, Res Extensa, Coleman McCormick</figcaption></figure></div><p>Taste is about fitting all three values together in a way that makes sense. A product made with good taste meets all of the goals, values, and preferences of the users and the creator.</p><p>Taste isn&#8217;t about deciding what&#8217;s &#8220;good&#8221; or what&#8217;s &#8220;bad.&#8221; It&#8217;s about deciding what is coherent and what isn&#8217;t. In his 1964 work Notes on the Synthesis of Form, Christopher Alexander describes a system of relationships he calls the &#8220;ensemble&#8221; of <strong>form</strong>, <strong>context</strong>, and <strong>fitness between them</strong>. Form is the shape and structure of a product. Context is the environment in which the product is used. <strong>Fitness</strong> describes how the product matches the intended function within its context.</p><p>Good taste is about deciding what works in context. Coherence is fitness. Good taste is being able to recognize a good fit. Taste brings clarity.</p><p></p><h3>Taste as filter</h3><p>When you can see what is coherent, you can begin to emphasize what matters most, and downplay or eliminate what doesn&#8217;t. These decisions happen at every part of the creative process:</p><p><strong>When looking at data and analytics:</strong> Data can inform value judgements, but it cannot replace them. When we listen to numbers, we still decide which numbers are worth listening to and how much weight to give them. Taste is applied when people believe they are being purely objective. Leaning on &#8220;But the numbers say&#8221; without further justification is a cop-out.</p><p><strong>When collecting qualitative customer data:</strong>&nbsp;Your taste dictates what questions you ask, and where you dig deeper and ask follow-ups. Like data, it helps you decide which feedback to listen to and which to ignore.</p><p><strong>Prioritization</strong>: What do you solve first? Is a problem worth solving at all? Which strength should you play towards? All of these are ultimately questions of taste.</p><p></p><h3>Taste is attention to detail</h3><p>You can tell when someone has put in the effort to pay attention to every little detail of an application. You see it in intentionally designed loading states, in thoughtful, useful error messages. When you hit a weird edge case and the product is one step ahead of you, handling it gracefully. And you think, &#8220;Wow, they thought about everything.&#8221; </p><p>Details compound.</p><p>I was once sitting at a cocktail lounge on a business trip to SF, and I overheard a bartender teaching a new hire how to make a mojito. He talked about the order of the ingredients and how many ice cubes. How many mint leaves to put into the drink, and how to arrange them. He talked about how these details affected the drink's flavor and presentation. He mentioned that the person can see you making the drink, so the performance of making it is part of the service.</p><p>Did you know Spotify&#8217;s shuffle isn&#8217;t truly random? It avoids playing the same artist twice in five songs. Those are the kinds of details that separate good products from great ones. When you&#8217;ve put your empathy for the user over what is &#8216;technically correct.&#8217;</p><p></p><h3>Taste in software engineering</h3><p>What does taste look like when applied to writing code? At a foundational level, you may have ideas on what type of code you prefer to write. Do you write lots of small, single-purpose components, or larger, more utilitarian ones? How do you feel about TailwindCSS?<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a></p><p>Another form of taste shows in early systems design: realizing what&#8217;s changeable and what isn&#8217;t. Certain database decisions and interfaces will be difficult to change in the future, while others are more malleable. Some things are one-way doors, and some decisions reverse easily. The trick is knowing which one is which.</p><p>Software taste is about writing code that best fits your context. Coding with coherence. If you write software for a company with coding standards, you stick to those standards over your own.</p><p>It&#8217;s important to remember that in-code interfaces are a product. They are made with a purpose, for an audience (other engineers).</p><p></p><h3>Taste is idiosyncratic</h3><p>Everyone&#8217;s taste is different. Every company and every product exists in a different context. That&#8217;s what makes developing your taste worth investing in. Doing so will help you live a life that&#8217;s more coherent with both what you want and what you like. It is also specific to certain skillsets and proclivities.</p><p>For example, I feel I have a decent sense of what makes a good product or process. I&#8217;m smarter than the average bear when it comes to non-fiction business writing, else we wouldn&#8217;t be here together right now. I will <em>never</em> share my Spotify playlists, lest you see the cringy 00s nu-metal of my youth that I still listen to today.</p><p>The product taste equation includes <em>your</em> domain expertise. You can&#8217;t be an expert at everything. If you aren&#8217;t sure where to start developing your taste, start with what you&#8217;re best at.</p><p></p><h2>How do you tell the difference between product taste, subjective preference, and bullshit?</h2><p>You might be thinking, If taste is subjective and personal, why should anyone else listen or believe you? Why should you listen to anyone else?</p><p>One aspect of believability is a consistent track record of wins. Has the person had successes before? Do they seem to be right more often than not? Why do people let Rick Rubin produce albums? Because he got the best out of Jay-Z, Lana Del Rey, Adele, Weezer, Slipknot, Slayer, Black Sabbath, Johnny Cash, The Mars Volta, Macy Gray, and Tom Petty. If he&#8217;s producing your album, chances are he can get the best out of you to.</p><div id="youtube2-oJX7ifJaIAE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;oJX7ifJaIAE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/oJX7ifJaIAE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>For subjective decisions, you can still be more objective on what you and others are applying that judgment to. Are you trying to decide what&#8217;s best for the user or for you? Are you trying to justify your pitch, or are you seeking the truth? Are you applying taste, or stroking your ego?</p><p>You can typically tell when someone knows what they talk about or cares about others. I once heard a product manager say in a meeting, &#8220;Here are the actions we want the user to take.&#8221; Which, to me, is at least a yellow flag. What does it say when they are more focused on driving the user towards what they want, instead of trying to empower the user to do what they want to do?</p><p>The best way to detect bullshit is to watch for inconsistencies and a lack of ability to explain why they are making a decision, from any logical, emotional, or aesthetic endpoint.</p><p>There will never be a complete answer. How do you decide who to listen to and who to ignore? Are you ahead of me this time? That&#8217;s right, it&#8217;s applying your taste.</p><div><hr></div><p>This is an excerpt from my upcoming book on product thinking for engineers. <strong><a href="https://engineering-product.kit.com/0d5f0028f8">Sign up to be notified</a></strong> when it is available for purchase.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>&#8220;Product sense&#8221; and &#8220;product taste&#8221; are interchangeable.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>For those who aren&#8217;t frontend developers, TailwindCSS is a design framework based on &#8216;utility CSS.&#8217; It&#8217;s a divisive pattern. Some people love using it, others can&#8217;t stand it.</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[Apply product taste requires making difficult cuts ]]></title><description><![CDATA[Subtraction as a solution]]></description><link>https://www.statetransition.co/p/apply-product-taste-requires-making</link><guid isPermaLink="false">https://www.statetransition.co/p/apply-product-taste-requires-making</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Fri, 12 Dec 2025 21:51:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qUWQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbfe4c22-f1ac-4dfc-a9aa-e0dd15e92df3_800x585.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="https://substackcdn.com/image/fetch/$s_!qUWQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbfe4c22-f1ac-4dfc-a9aa-e0dd15e92df3_800x585.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qUWQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbfe4c22-f1ac-4dfc-a9aa-e0dd15e92df3_800x585.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qUWQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbfe4c22-f1ac-4dfc-a9aa-e0dd15e92df3_800x585.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qUWQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbfe4c22-f1ac-4dfc-a9aa-e0dd15e92df3_800x585.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qUWQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbfe4c22-f1ac-4dfc-a9aa-e0dd15e92df3_800x585.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qUWQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbfe4c22-f1ac-4dfc-a9aa-e0dd15e92df3_800x585.jpeg" width="800" height="585" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fbfe4c22-f1ac-4dfc-a9aa-e0dd15e92df3_800x585.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:585,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:170292,&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://www.statetransition.co/i/181143948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbfe4c22-f1ac-4dfc-a9aa-e0dd15e92df3_800x585.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_!qUWQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbfe4c22-f1ac-4dfc-a9aa-e0dd15e92df3_800x585.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qUWQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbfe4c22-f1ac-4dfc-a9aa-e0dd15e92df3_800x585.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qUWQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbfe4c22-f1ac-4dfc-a9aa-e0dd15e92df3_800x585.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qUWQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbfe4c22-f1ac-4dfc-a9aa-e0dd15e92df3_800x585.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Peasant Removing His Shoe,  Jacques Callot c.1617</figcaption></figure></div><p>Making cuts is easy when you&#8217;re removing the noise, fixing the bugs, and polishing the edges. It&#8217;s much harder to say no to a good idea. Or maybe that should be, a &#8220;good enough&#8221; idea. But the ability to do so is an essential skill if you want to do good work. It&#8217;s asking &#8220;why&#8221; instead of &#8220;why not?&#8221; when it comes to product decisions. There&#8217;s an old Stephen King quote:  </p><blockquote><p>Kill your darlings, kill your darlings, even when it breaks your egocentric little scribbler&#8217;s heart, kill your darlings.</p><p>&#8212; Stephen King, On Writing: A Memoir of the Craft</p></blockquote><p>Deciding to get rid of something *hurts.* Taste requires leaning into that pain, seeking it out. Relishing it. </p><p>When working through the draft for my product engineering book, I wasn&#8217;t just removing clunky word choices and fixing run-on sentences. I cut *chapters*. Thousands of words representing days of my time.  If the chapters were bad, this would be easy. But they were good points, and useful information to people. But they were incoherent with the central idea and goal of this book.  A good chapter can make a good book worse if it doesn&#8217;t fit. Even if they were useful, they would take up more of the reader&#8217;s time, and risk distracting, you or much worse, boring them. </p><p>For an anti-example, see enterprise software. Checklist-based design that is built not for the people who use it, but for the procurement departments who purchase it. It&#8217;s a maximalist model: More features = more boxes checked = more potential sales. </p><p>Making cuts is often difficult and never popular. No one sits down at their performance review and gets high marks for the features they *didn&#8217;t* build in the last six months It&#8217;s one thing to kill your darlings, it&#8217;s something else entirely to kill someone else&#8217;s.. Sometimes the best you can do is &#8216;yes and...&#8217; the direction somewhere else. If it&#8217;s about killing product feature, explain the costs of keeping it around, and what it&#8217;s keeping you from. </p><p>Humans are naturally biased against subtraction. We think in more. It can help to think of creation through subtraction: You are making space for what matters; You are gathering more resources to put towards other work.  What does removing this get us? </p><p></p><p>This is an excerpt from my upcoming book on product thinking for engineers. <strong><a href="https://engineering-product.kit.com/0d5f0028f8">Sign up to be notified</a></strong> when it is available for purchase.</p>]]></content:encoded></item><item><title><![CDATA[NaNoWriMo-style challenge trip report]]></title><description><![CDATA[How I wrote 24,000 words in 30 days]]></description><link>https://www.statetransition.co/p/nanowrimo-style-challenge-trip-report</link><guid isPermaLink="false">https://www.statetransition.co/p/nanowrimo-style-challenge-trip-report</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Thu, 04 Dec 2025 11:05:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DJkq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e1d38e-de56-437b-a026-6dcde8841e27_752x599.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DJkq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e1d38e-de56-437b-a026-6dcde8841e27_752x599.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DJkq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e1d38e-de56-437b-a026-6dcde8841e27_752x599.webp 424w, https://substackcdn.com/image/fetch/$s_!DJkq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e1d38e-de56-437b-a026-6dcde8841e27_752x599.webp 848w, https://substackcdn.com/image/fetch/$s_!DJkq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e1d38e-de56-437b-a026-6dcde8841e27_752x599.webp 1272w, https://substackcdn.com/image/fetch/$s_!DJkq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e1d38e-de56-437b-a026-6dcde8841e27_752x599.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DJkq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e1d38e-de56-437b-a026-6dcde8841e27_752x599.webp" width="752" height="599" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/00e1d38e-de56-437b-a026-6dcde8841e27_752x599.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:599,&quot;width&quot;:752,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:155882,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/180691062?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e1d38e-de56-437b-a026-6dcde8841e27_752x599.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DJkq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e1d38e-de56-437b-a026-6dcde8841e27_752x599.webp 424w, https://substackcdn.com/image/fetch/$s_!DJkq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e1d38e-de56-437b-a026-6dcde8841e27_752x599.webp 848w, https://substackcdn.com/image/fetch/$s_!DJkq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e1d38e-de56-437b-a026-6dcde8841e27_752x599.webp 1272w, https://substackcdn.com/image/fetch/$s_!DJkq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e1d38e-de56-437b-a026-6dcde8841e27_752x599.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">New and Improved View of the Comparative Heights, of the Principal Mountains and Lengths of the Principal Rivers in the World, W. R. Gardner (1823)</figcaption></figure></div><div class="pullquote"><p>Beyond the mountains, more mountains &#8212; Haitian Proverb</p></div><p>Victorious over my November writing challenge, I&#8217;m feeling a mix of exhaustion and pride in what I&#8217;ve accomplished, mixed with excitement and terror for what comes next.</p><p>I challenged myself to grow my Product Thinking book <a href="https://www.statetransition.co/p/im-committing-to-a-nanowrimo-style">up to a 150-page draft by the end of November</a>. From June 2024 to October 2025, I wrote 21,000 words (~70 pages). In November, I wrote another 24,000 (~80 pages)<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> words to reach the goal.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yIjO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2e12fc-998e-4913-b4f0-a04445a250f1_827x510.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yIjO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2e12fc-998e-4913-b4f0-a04445a250f1_827x510.png 424w, https://substackcdn.com/image/fetch/$s_!yIjO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2e12fc-998e-4913-b4f0-a04445a250f1_827x510.png 848w, https://substackcdn.com/image/fetch/$s_!yIjO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2e12fc-998e-4913-b4f0-a04445a250f1_827x510.png 1272w, https://substackcdn.com/image/fetch/$s_!yIjO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2e12fc-998e-4913-b4f0-a04445a250f1_827x510.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yIjO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2e12fc-998e-4913-b4f0-a04445a250f1_827x510.png" width="827" height="510" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bb2e12fc-998e-4913-b4f0-a04445a250f1_827x510.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:510,&quot;width&quot;:827,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31499,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/180691062?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2e12fc-998e-4913-b4f0-a04445a250f1_827x510.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yIjO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2e12fc-998e-4913-b4f0-a04445a250f1_827x510.png 424w, https://substackcdn.com/image/fetch/$s_!yIjO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2e12fc-998e-4913-b4f0-a04445a250f1_827x510.png 848w, https://substackcdn.com/image/fetch/$s_!yIjO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2e12fc-998e-4913-b4f0-a04445a250f1_827x510.png 1272w, https://substackcdn.com/image/fetch/$s_!yIjO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2e12fc-998e-4913-b4f0-a04445a250f1_827x510.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Here&#8217;s what I learned:</p><h2>Number go up is stupidly, infuriatingly effective</h2><p>It&#8217;s been a while since I challenged myself like this, and even longer since I succeeded at one. Apparently, the secret was to set up a spreadsheet, share it with a few friends, and track my progress.</p><p>I suspect it was the accountability in particular. I don&#8217;t know if they looked, but I knew that they <em>could.</em></p><p>I kind of hate how effective this was on me. I am well aware of how companies use gamification to manipulate you: I am on day 87 of my Duolingo streak and I don&#8217;t even quiero aprendar Espa&#241;ol anymore. I didn&#8217;t think it would work if I did it to myself.</p><h3>But it comes with a cost</h3><p>The metric was a tradeoff: I hit the goal. I have a lot of wet clay to work with. But I also spent a lot of time in &#8216;shitty first draft&#8217; mode. I hesitated to edit because editing means fewer words, especially towards the end when it was down to the wire.</p><p>But in exchange, I have content to work with, I&#8217;ve built new writing skills, and I have more confidence that I can take on large self-directed projects. Worth it.</p><h2>Being Consistent-ish</h2><p>I needed to hit 778 words per day on average to reach my goal. But if I knocked out 2,000 in a day, I could take a day off and still be on track. I liked that the structure was consistent-ish. I wasn&#8217;t beholden to perfect daily consistency, awkwardly explaining to my in-laws why I&#8217;m furtively typing during Thanksgiving dinner.</p><p>There&#8217;s an apocryphal quote from Jerry Seinfeld about forming an unbreakable chain:</p><blockquote><p>Seinfeld&#8217;s advice was &#8220;to get a big wall calendar that has a whole year on one page and hang it on a prominent wall,&#8221; then get &#8220;a big red magic marker.&#8221; According to the 2007 legend, it was Seinfeld himself who repeatedly emphasized the phrase &#8220;don&#8217;t break the chain.&#8221;</p></blockquote><p>Later, in an interview with Oliver Burkeman, Seinfeld revealed he never meant this to be taken so literally:</p><blockquote><p>&#8216;It&#8217;s so dumb it doesn&#8217;t even seem to be worth talking about!&#8217; Seinfeld told me. &#8216;If you&#8217;re a runner and you want to be a better runner, you say, well, I&#8217;ll run every day, and I&#8217;ll mark an X on the calendar every day I run! I can&#8217;t believe this was useful information to anybody. Really? There are people who think &#8220;I&#8217;ll just sit around and do absolutely nothing, and somehow the work will get done&#8221;?&#8217;<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a></p></blockquote><p>Perfect streaks can be counterproductive. Chain systems can become a restraint instead of a motivator. If my Duolingo streak ever gets reset to 1, I promise you there will not be another 2.</p><p>We all have off days. Why punish yourself for being human?</p><h2>Strengthening my words-per-session muscle</h2><p>Before he founded Kit, Nathan Barry kept a writing streak of 1,000 words per day. He cited the &#8220;Seinfeld Strategy&#8221; as inspiration. He did this for 80 days and published <em>The App Design Handbook.</em> When I first heard about this, it sounded impossible. 1,000 words? That&#8217;s so many! How do you have that much to say, and so consistently? </p><p>Now, I&#8217;ve put in reps. 1,000 words feels easier now. That doesn&#8217;t mean I plan to bloviate and pump up my word count. What I do have now is ways to go deeper and make the material actionable: finding case studies to illustrate and adding exercises to put into practice. It&#8217;s not about using more words; it&#8217;s about having more of value to say using as few words as possible<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a>.</p><p>I have no interest in writing a book on product theory. Knowledge is useless without strategies to put it into action. So, I lifted techniques from <a href="https://diataxis.fr/">Diataxis</a>, a framework for writing actionable documentation. It gave me more ways to think and talk about topics.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tCW6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa466bb0a-0b3f-4523-bcd5-09b57eeb84ef_1920x1080.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tCW6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa466bb0a-0b3f-4523-bcd5-09b57eeb84ef_1920x1080.webp 424w, https://substackcdn.com/image/fetch/$s_!tCW6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa466bb0a-0b3f-4523-bcd5-09b57eeb84ef_1920x1080.webp 848w, https://substackcdn.com/image/fetch/$s_!tCW6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa466bb0a-0b3f-4523-bcd5-09b57eeb84ef_1920x1080.webp 1272w, https://substackcdn.com/image/fetch/$s_!tCW6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa466bb0a-0b3f-4523-bcd5-09b57eeb84ef_1920x1080.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tCW6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa466bb0a-0b3f-4523-bcd5-09b57eeb84ef_1920x1080.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a466bb0a-0b3f-4523-bcd5-09b57eeb84ef_1920x1080.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:42568,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/180691062?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa466bb0a-0b3f-4523-bcd5-09b57eeb84ef_1920x1080.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tCW6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa466bb0a-0b3f-4523-bcd5-09b57eeb84ef_1920x1080.webp 424w, https://substackcdn.com/image/fetch/$s_!tCW6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa466bb0a-0b3f-4523-bcd5-09b57eeb84ef_1920x1080.webp 848w, https://substackcdn.com/image/fetch/$s_!tCW6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa466bb0a-0b3f-4523-bcd5-09b57eeb84ef_1920x1080.webp 1272w, https://substackcdn.com/image/fetch/$s_!tCW6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa466bb0a-0b3f-4523-bcd5-09b57eeb84ef_1920x1080.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>For example, <a href="https://www.statetransition.co/p/the-big-list-of-product-thinking">The Big List of Product Heuristics</a> is reference, <a href="https://www.statetransition.co/p/trust-over-titles-the-engineers-guide">Trust Over Titles: The Engineer&#8217;s Guide to Workplace Influence</a> is a how-to guide, <a href="https://www.statetransition.co/p/how-to-improve-your-product-intuition">How to Improve Your Product Intuition</a> is explanation.</p><h2>What comes next</h2><p>I&#8217;ve spent enough time in monk mode, typing away mostly to myself. My next steps are to socialize the work, collect feedback, and keep iterating. I&#8217;m doing this in two ways:</p><ol><li><p><strong>Another challenge</strong> - I&#8217;m setting a goal to publish 10 posts on Substack in December. A TenPoWriMo, if you will. Some, but not all, will be content from November edited into blog-shaped objects fit for human consumption. I&#8217;m excited to share thoughts on product taste and designing for agency soon.</p></li><li><p><strong>Another beta book</strong> - I&#8217;m putting together a 20-30 page beta book from samples, and sending it out to readers for another round of feedback.</p></li></ol><p>It&#8217;s been so long. It feels like I&#8217;ve done so much, and I&#8217;m just getting started. Beyond the mountains, more mountains.</p><p><em><strong><a href="https://engineering-product.kit.com/0d5f0028f8">Sign up to be notified</a></strong> when my book on product thinking for engineers is available for purchase.</em></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>&#8220;How long is a page?&#8221; varies, but 250-300 words is a good-enough estimate. I used 300*15 to land on the 45,000-word target. </p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>Burkeman, Oliver. Meditations for Mortals: Four Weeks to Embrace Your Limitations and Make Time for What Counts (p. 66).</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>Language should be simple, too, though I cannot resist the temptation to occasionally toss in a college word like &#8216;bloviate.&#8217; </p></div></div>]]></content:encoded></item><item><title><![CDATA[Proudct thinking round-up no.1 ]]></title><description><![CDATA[What I'm reading while doing book research]]></description><link>https://www.statetransition.co/p/proudct-thinking-round-up-no1</link><guid isPermaLink="false">https://www.statetransition.co/p/proudct-thinking-round-up-no1</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Fri, 28 Nov 2025 12:21:06 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b4f14f3d-3936-4a59-9ed7-a7a7f7b17e37_614x800.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>I&#8217;m finding a bunch of great stuff while researching the Product Thinking book. This mini-series is where I&#8217;m sharing the best finds.</em></p><h2>1 - <a href="https://tonsky.me/blog/needy-programs/">Needy programs, Niki Tonsky</a></h2><p>Programs used to center what you need. Now software is all about what it wants from you. Requiring an account when you don&#8217;t need one, constant updating, notifications, pop-up windows announcing features you didn&#8217;t ask for. I appreciate that Niki coined a phrase for something I&#8217;ve observed all over the place.</p><h2>2 - <a href="https://newsletter.posthog.com/p/collaboration-sucks">Collaboration sucks, Charles Cook</a></h2><p>Don&#8217;t waste time in meetings and &#8220;collaboration&#8221; that doesn&#8217;t improve the product or lead to decisions. Instead, be a driver. Ship things yourself.</p><h2>3 - <a href="https://www.seangoedecke.com/seeing-like-a-software-company/">Seeing like a software company, Sean Goedecke</a></h2><p>This article brought clarity to = everything I&#8217;ve puzzled over about annual planning processes. Engineers love efficiency, legibility runs counter to efficiency, but legibility delivers utility when planning, making tradeoffs, and securing long-term enterprise deals. Seeing through the lens of legibility clarifies decisions up the ladder.</p><h2>4 - <a href="https://anthonyhobday.com/sideprojects/interactionconcepts/">A list of every interaction concept, Anthony Hobday</a></h2><p>As a hoarding digital goblin, I gotta respect a quality collection like this one. A superb resource for thinking about how users think about interaction design. Props to Anthony for putting it together.</p><h2>5 - <a href="https://paulbuchheit.blogspot.com/2010/02/if-your-product-is-great-it-doesnt-need.html">If your product is great, it doesn&#8217;t need to be good, Paul Buchheit</a></h2><p>A classic from the engineer who built the prototypes for Gmail and Adsense. An antidote to &#8220;more features = better&#8221; thinking. Instead, pick three key attributes or features, nail those things, then forget everything else. If you knock the core feature out of the park, users will overlook and forgive more than you&#8217;d expect. By focusing, you&#8217;re forced to find the true essence and value of your product.</p><p></p><div><hr></div><p><em><strong><a href="https://engineering-product.kit.com/0d5f0028f8">Sign up to be notified</a></strong> when my book on product thinking for engineers is available for purchase.</em></p><p>Got a recommendation for something I should read? Drop it in the comments!</p>]]></content:encoded></item><item><title><![CDATA[What the art and science of chicken sexing can teach us about product thinking]]></title><description><![CDATA[Implicit vs. intentional learning]]></description><link>https://www.statetransition.co/p/what-the-art-and-science-of-chicken</link><guid isPermaLink="false">https://www.statetransition.co/p/what-the-art-and-science-of-chicken</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Tue, 25 Nov 2025 11:51:38 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/28beb281-6b1a-4675-b00b-f3bd2327960d_500x281.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Commercial egg farms need to distinguish between male and female chickens as soon as possible.</p><p>Poultry farms want to divert resources to female chickens early to increase egg production. Poultry owners once had to wait until chicks were 5 to 6 weeks old, when adult feathers started to come in, before they could separate the chickens. Then, in the 1920s, <a href="https://web-archive.southampton.ac.uk/cogprints.org/3255/1/chicken.pdf">the art of chicken sexing was invented in Japan</a>.</p><p>Expert chicken sexers can look at a 1-day-old chick and identify its gender instantly. It was the free 2-day shipping of the early agriculture era. They can categorize 800 to 1,200 chicks per day with 99% accuracy. Ask them how they can tell, and they say, &#8220;I don&#8217;t know.&#8221;</p><p>How can they do this? How does one learn such a skill?</p><p>The training is simple. At the Zen-Nippon chicken sexing school (imagine graduating high school and telling your parents your post-grad plan was <em>that</em>), trainees are shown chicks, make a guess, then get told if they&#8217;re right or wrong. They do this several times in a tight feedback loop.</p><p>Over time, their accuracy improves. They aren&#8217;t sure why.</p><h3>We can learn to pick up on decision points, even if we don&#8217;t know what they are.</h3><p>Subconsciously, our minds use heuristics to make decisions, even when we aren&#8217;t aware of what the heuristics are or what they judge.</p><p>We can learn to discriminate between objects and form categorizations from exposure to instances. The more features you build and the more you see, the more likely you&#8217;ll &#8220;just know&#8221; a solution to a problem when one comes up in a meeting, even if you don&#8217;t know how you reached that conclusion.</p><p>These processes are known as <strong>implicit learning.</strong> Times when learning takes place in the absence of awareness, and without access to what has been learned. While this knowledge is not available via introspection, it can be enhanced with <strong>intentional learning.</strong> When you learn intentionally, you are applying examination to the work.</p><p>Designers may look like or even feel they&#8217;re shifting and nudging as they iterate on an interface. In reality, they process a high level of decision points on some level: they consider more lines, edges, colors, interactions, and features than they could articulate. That&#8217;s not to say there isn&#8217;t reasoning, or that designers cannot reason. But they don&#8217;t have to.</p><p>The more proficiency you gain understanding and recognizing quality product, the less time and energy you spend making these decisions.</p><p><em>This is an excerpt from my upcoming book on product thinking for engineers. <strong><a href="https://engineering-product.kit.com/0d5f0028f8">Sign up to be notified</a></strong> when it is available for purchase.</em></p>]]></content:encoded></item><item><title><![CDATA[The big list of product thinking heuristics]]></title><description><![CDATA[(Below is the most complete collection of product thinking and design heuristics I&#8217;ve compiled for System is as System does.]]></description><link>https://www.statetransition.co/p/the-big-list-of-product-thinking</link><guid isPermaLink="false">https://www.statetransition.co/p/the-big-list-of-product-thinking</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Thu, 20 Nov 2025 00:02:33 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/5a9d3a12-c030-47bd-8e4c-54507519f676_614x800.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>(Below is the most complete collection of product thinking and design heuristics I&#8217;ve compiled for System is as System does. I think it stands on its own as a useful resource, so publishing here, hoping you find it helpful.)<br><br></em>Have one I should add? Let me know in the comments! <em> </em></p><h2>Attention</h2><p><strong>Banner blindness</strong> - People ignore elements similar to a common pattern if they&#8217;re not interested in that type of content, even if they aren&#8217;t sure what that content is.</p><p><strong>Color</strong> - Stand-out colors grab people&#8217;s attention.</p><p><strong>Doherty Threshold</strong> - People&#8217;s attention and productivity increase when interaction response is within 400 milliseconds.</p><p><strong>Focus</strong> - Interfaces should contain the information needed and nothing more.</p><p><strong>F-Pattern</strong> - Users scan web content in an F-shaped pattern, reading the first lines fully, then scanning down the left side.</p><p><strong>Inattentional blindness</strong> - People might not see something they&#8217;re not looking for.</p><p><strong>Jakob&#8217;s Law</strong> - People spend most of their time using digital products other than yours.</p><p><strong>Novelty bias</strong> - People pay attention to new things.</p><p><strong>Scanning</strong> - People look for information quickly. Information and interfaces can be designed to make scanning easier.</p><p><strong>Visual weight</strong> - Attention is drawn to items with the most visual weight.</p><p><strong>Z-Pattern</strong> - On pages with less text, eye movement follows a Z-pattern from top-left to top-right, then diagonally down and across.</p><h2>Communication</h2><p><strong>Anticipation</strong> - Products should communicate with knowledge of what comes next.</p><p><strong>Context-specific communication</strong> - Communication style should suit the context people are using the software in (for example, Mailchimp stops being jovial when there are problems or error messages).</p><p><strong>Denotative color</strong> - Colors are assigned a specific meaning, either culturally or by the design.</p><p><strong>Empty states</strong> - Empty states should communicate well with the user.</p><p><strong>Preview changes</strong> - Show users previews of changes in real time and how the action will affect something as they consider options.</p><p><strong>Status visibility</strong> - The product should keep users informed about what is going on.</p><p><strong>Useful animation</strong> - Animation can help the user understand how the interface works.</p><h2>Complexity</h2><p><strong>Bloat</strong> - Bloat is a function of too many features for too little cognitive space.</p><p><strong>Combinatorics</strong> - If two or more sets of elements can be combined, then you have to account for X * Y total potential outcomes.</p><p><strong>Discoverability</strong> - There should be ways for users to explore and discover how the software application works on their own.</p><p><strong>Four methods of simplification</strong> - Remove, organize, hide, displace.</p><p><strong>Halstead complexity measures. </strong>The higher the number of inputs, the amount and depth of nested elements, the types of actions available, the higher the complexity, the potential branching logic paths, the higher the complexity. The previous sentence would score quite high. </p><p><strong>Law of Pr&#228;gnanz</strong> - People interpret groups of complex and ambiguous shapes in the simplest form possible.</p><p><strong>Operational simplicity vs perceived simplicity</strong> - Working simple vs. looking simple. These can be at odds.</p><p><strong>Simple &amp; powerful</strong> - Products should be simple enough for novices and powerful for experts.</p><p><strong>Tesler&#8217;s Law</strong> - A system&#8217;s complexity cannot be simplified beyond its condition to function. Simple interfaces require complex code.</p><h2>Context</h2><p><strong>Affordances</strong> - The design of a thing should tell you how to use it. For example, a form field for postal code should only be long enough for 5-9 characters.</p><p><strong>External consistency</strong> - Things should behave similar to examples outside of your design.</p><p><strong>Familiarity</strong> - The design should speak the users&#8217; language and follow real-world conventions.</p><p><strong>Internal Consistency</strong> - Words, actions, and other affordances should have consistent meaning.</p><p><strong>Pre-attentive processing</strong> - People unconsciously take in information about their environment before they take it in consciously.</p><h2>Copywriting</h2><p><strong>Document</strong> - Build a product that doesn&#8217;t require documentation, then document it anyway.</p><p><strong>Grouping</strong> - Group similar items or action under group titles.</p><p><strong>Inverted Pyramid</strong> - Present the most important information first, followed by supporting details.</p><p><strong>People don&#8217;t read</strong> - Assume people don&#8217;t read the text in software.</p><p><strong>Readability</strong> - Use typography that ensures your text is readable in your interface.</p><p><strong>Specific actions</strong> - Actions should be specific so the user knows what will happen.</p><p></p><h2>Decisions</h2><p><strong>Choice overload</strong> - Too many options hurt users&#8217; decision-making ability. How they feel about the experience as a whole can be impacted as a result.</p><p><strong>Deferred choices</strong> - If actions aren&#8217;t required now, they should be possible to leave until later.</p><p><strong>Hick&#8217;s law</strong> - The time it takes to make a decision increases as the number of choices increases.</p><p><strong>Smart defaults</strong> - Make the right thing easy and the wrong thing hard.</p><h2>Errors</h2><p><strong>Emergency exits</strong> - Users can quickly correct mistakes or backtrack on choices.</p><p><strong>Error prevention</strong> - Prevent errors where you can and provide clear feedback when you can&#8217;t.</p><p><strong>Error recovery</strong> - Error messages should provide a solution.</p><p><strong>Graceful degradation</strong> - When errors or failures occur, the system should continue to function in a reduced capacity rather than failing completely.</p><p><strong>Worst-case design</strong> - Interfaces should be designed to cover the worst-case scenario.</p><h2>Forms</h2><p><strong>In-line errors over global errors</strong> - Better to show errors in proximity to where they happened.</p><p><strong>Labels over placeholders</strong> - Placeholders disappear, are not accessible.</p><p><strong>Mark optional or required fields</strong> - You don&#8217;t have to mark them all but mark one or the other.</p><p><strong>Radio buttons vs. Checkboxes</strong> - Radio buttons are single select, checkboxes are multi-select</p><p><strong>Validation</strong> - Include logic to check that a field has been filled out correctly.</p><h2>Interaction</h2><p><strong>Buttons vs Links</strong> - Buttons take actions, links go places</p><p><strong>Confidence</strong> - The user should have confidence that performing an action will have the outcome they expect.</p><p><strong>Control redundancy</strong> - It can be good to have multiple ways to perform an action - i.e. a keyboard shortcut, a button, a menu item.</p><p><strong>Fitt&#8217;s Law</strong> - The time it takes to click a target based on the target&#8217;s size, distance, and position.</p><p><strong>Keyboard-only interaction</strong> - Some people interact with software with their keyboard only, either for accessibility or power-user reasons.</p><p><strong>Object permanence</strong> - Objects should not appear and disappear as if by magic, it should be made clear why they did through animation, layout, or some other tool.</p><p><strong>Postel&#8217;s Law</strong> - Be liberal in what input you accept from the user, and limited in what you ask of them.</p><p><strong>Principle of Least Astonishment</strong> - Systems should behave in the way users expect; surprising behavior should be avoided.</p><p><strong>Simulated physical interaction</strong> - Items moving with momentum can help communicate how the application works.</p><h2>Layout</h2><p><strong>Cause-and-effect</strong> - It should be clear what changes an action caused to happen.</p><p><strong>Conditional elements</strong> - Hide elements if they are not relevant to the user.</p><p><strong>Control proximity</strong> - Controls should be near what they affect.</p><p><strong>Law of common region</strong> - When elements are positioned together within a region or boundary, the user perceives those elements as belonging together.</p><p><strong>Law of connectedness</strong> - We assume elements connected by color, lines, frames, or arrows are part of a related group.</p><p><strong>Law of Continuity</strong> - The eye follows lines, curves, and sequences of elements.</p><p><strong>Law of Proximity</strong> - Similar items should be closer, unrelated items should be further apart.</p><p><strong>Law of similarity</strong> - Elements that look similar will be perceived as being a related group.</p><h2>Memory</h2><p><strong>Miller&#8217;s Law</strong> - People hold an average of seven things in their working memory they can identify.</p><p><strong>Negativity bias</strong> - People remember bad experiences more than the good. The bad feelings of losing $20 is stronger than the good feelings of winning $20.</p><p><strong>Recognition over recall</strong> - The machine is the user&#8217;s memory, not the other way around. A GUI lets you recognize commands, a CLI requires you to remember them.</p><p><strong>Serial position effect</strong> - Users are most likely to remember the first and last items in a sequence.</p><p><strong>Spatial memory</strong> - People remember elements by their position.</p><p><strong>The Von Restorff Effect</strong> - One visually unique object will be remembered among a group of visually similar objects.</p><p><strong>Zeigarnik Effect</strong> - Uncompleted or interrupted tasks stick in people&#8217;s memories more than completed tasks. Give users ways to track incomplete tasks in-app so they don&#8217;t have to do it in memory.</p><h2>Speed</h2><p><strong>Doherty Threshold</strong> - Productivity soars when a computer and its users interact at a pace (&lt;400ms) that ensures that neither has to wait on the other.</p><p><strong>Immediate Feedback</strong> - Systems should respond immediately to user actions to maintain flow and confidence.</p><p><strong>Latency</strong> - People assume a system is lower quality if interactions take more than 100ms.</p><p><strong>Parkinson&#8217;s Law</strong> - A task expands to fill the time allotted for its completion. Design tasks to take as little time as possible. Give users estimates on how long things will take.</p><h2>Task Flows</h2><p><strong>Communicate progress</strong> - Provide users with clear progress or task status visibility to keep them motivated.</p><p><strong>Escape hatches</strong> - Provide the user with a way to abandon what they are doing.</p><p><strong>Goal-Gradient Effect</strong> - The closer a user gets to a goal the more motivated they are, and the faster they move to complete it.</p><p><strong>Incremental construction</strong> - A person might need to start on something now, add to it later, work on it over time, etc.</p><p><strong>Midstream task change</strong> - Sometimes people change what they want to do in the middle of doing it.</p><p><strong>Minimize clicks</strong> - Reduce the number of clicks &amp; actions a user needs to complete a task.</p><p><strong>Progressive disclosure</strong> - Display things in stages instead of all at once.</p><p><strong>Remove steps</strong> - Steps the user shouldn&#8217;t have to take should be removed.</p><p><strong>Save progress</strong> - Provide the user a way to save and come back to a task in case they get detoured.</p><p><strong>Streamlined repetition</strong> - If something needs to be repeated it should be possible to repeat it endlessly.</p><h2>Quality</h2><p><strong>Aesthetic-Usability Effect</strong> - People are more tolerant of minor usability problems when an interface has an aesthetically pleasing design.</p><p><strong>Paper cuts</strong> - Lots of small usability issues add up to a negative experience.</p><p><strong>Peak-End Rule</strong> - People judge experiences mainly on how they end.</p><p><strong>Sturgeon&#8217;s Law</strong> - 90% of everything is crap.</p><p></p><div><hr></div><p><strong><a href="https://engineering-product.kit.com/0d5f0028f8">Sign up to be notified</a></strong> when my book on product thinking for engineers, is available for purchase.</p><div><hr></div><h2>Sources</h2><ol><li><p><a href="https://www.nngroup.com/articles/ten-usability-heuristics/">Nielsen&#8217;s 10 Usability Heuristics for User Interface Design</a> </p></li><li><p><a href="https://anthonyhobday.com/sideprojects/interactionconcepts/">Every Interaction Design Concept</a> </p></li><li><p><a href="https://lawsofux.com/">Laws of UX</a>  </p></li></ol><p></p>]]></content:encoded></item><item><title><![CDATA[I'm committing to a NaNoWriMo-style Challenge for this book]]></title><description><![CDATA[Goal: 45,000 words by 12/1]]></description><link>https://www.statetransition.co/p/im-committing-to-a-nanowrimo-style</link><guid isPermaLink="false">https://www.statetransition.co/p/im-committing-to-a-nanowrimo-style</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Sat, 01 Nov 2025 12:55:47 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8932b5d0-142f-4810-9f60-a745a5a9f220_800x681.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Even though the official <a href="https://storyempire.com/2025/04/28/nanowrimo-closing-what-went-wrong-what-will-replace/">NaNoWriMo project is dead</a><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>, I&#8217;ve decided to use it as inspiration to make headway on the &#8220;Product Thinking for Engineers&#8221; book project.</p><p>The traditional NaNoWriMo challenge is: </p><ol><li><p>50,000 words</p></li><li><p>Start from scratch</p></li><li><p>All words related to the project count. </p></li></ol><p>I&#8217;m doing it differently: </p><ol><li><p>I&#8217;m aiming for 45,000 words, not 50,000. This is roughly 150 pages, the minimum I consider a viable book length.</p></li><li><p>I&#8217;m starting with an existing manuscript at 21,733 words. </p></li><li><p>Only words in the manuscript count. Notes, outlines, blog posts, etc., do not.</p><p></p></li></ol><p>This means an average of 776 words, or 2.5 pages, every day. That feels difficult but achievable. I&#8217;m ready to finish this project, and I hope this will be the kick-in-the-pants that I need. The clock silences the ego. </p><p>For that reason, this Substack will be on the back burner for a month. I may post some drafts and content along the way if it feels worth sharing, or a random post if I have an itch<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>, but no promises. Then I will spend December getting back on my usual bullshit or recovering from the burnout of this challenge. Only time will tell.</p><p>I&#8217;m doing this along with a couple of people from the Useful Books author community. If you&#8217;re interested in taking on a similar challenge, respond in the comments or DM me. We can help keep each other accountable.</p><p>See you soon, hope you had a happy Halloween! &#128123;</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>&#128532;</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>In my experience, work begets work. Maybe I&#8217;m wrong, and all this extra book writing will result in even more content here, book-related or not. </p></div></div>]]></content:encoded></item><item><title><![CDATA[Recommendation Game]]></title><description><![CDATA[only YOU can prevent algorithms]]></description><link>https://www.statetransition.co/p/recommendation-game</link><guid isPermaLink="false">https://www.statetransition.co/p/recommendation-game</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Wed, 15 Oct 2025 12:33:19 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e6001f86-5983-44ee-a72d-200d46562466_800x667.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>How much of what you consumed today was suggested to you by an algorithmic &#8220;for you&#8221; feed?</p><p>There&#8217;s a game at play here. Six, give you more content than you can handle, informed by all the personal information they&#8217;ve collected. They engage you, drain you, and monetize you. They make money by stealing your attention and making your life worse. That&#8217;s an asymmetric game. We can&#8217;t win.</p><p>There&#8217;s another game. One where we share with each other. The way the internet once was. Thoughtful, human-to-human recommendations. That&#8217;s our co-op game. We can all win that one.</p><p>I find the most interesting books through recommendations from interesting people. Conversations with friends. Or, references in books or recommendations from their authors. The Algorithm will only show me things it thinks I&#8217;ll like based on its profile of me. Only a person can show me something that&#8217;ll <em>change</em> me, that I&#8217;ve never seen before, based on <em>who I am</em>. For example, <a href="https://www.goodreads.com/book/show/49046725-the-uncertainty-mindset">The Uncertainty Mindset</a> fundamentally changed how I think about business. It&#8217;s criminally under read, and I never would&#8217;ve found it if someone hadn&#8217;t told me about it.</p><p></p><h2>Good recommendation game</h2><p>There&#8217;s an art to making good recommendations. If you want people to appreciate what you&#8217;re giving them, you need good recommendation game. You make recommendations valuable by making them <strong>specific</strong> and <strong>unique.</strong> Recommendations are something of a homework assignment. You owe it to the recipient to put in some effort on your end.</p><p>A recommendation is more likely to land if you:</p><ul><li><p>Explain <em>why</em> you&#8217;re recommending this thing in this context</p></li><li><p>Summarize the value and explain why it&#8217;s worth their time</p></li><li><p>Call out a specific feature or pull an excerpt of what you&#8217;re recommending</p></li><li><p>Recommend one onboarding piece instead of an artist&#8217;s catalog or YouTube channel,</p></li><li><p>Share a list of 3-5 items. Telling me you have &#8220;60 AI tools I should add to my dev workflow&#8221; tells me nothing</p></li><li><p>Give them a &#8216;hook&#8217; that explains how your recommendation connects to their interests or work</p></li><li><p>Give a comment that helps the OP explore their original idea further, or asks an interesting question of them.</p></li></ul><p>A couple of threads worth reading on recommendation game: <a href="https://x.com/vgr/status/1157733517100404736">1</a>, <a href="https://x.com/GretchenAMcC/status/1231288832596811776">2</a></p><p></p><h2>Be a tour guide</h2><p>We are smothered by infinite content. People are hungry for guidance on what&#8217;s worthy of attention. They want help finding the top 1% among the slop.</p><p>You can be a tour guide by sharing your best finds. You can help others navigate. Recommendations are a public service. Doesn&#8217;t have to be a comment or convo, can be a post, that helps people without you even realizing it.</p><p></p><h2>The Call to Action</h2><p>Send me your reading lists! Your playlists! Your books, articles, podcasts, songs, and videos that had a profound impact on you. The ones that changed rewired your brain. Made you feel alive.</p><p>Tell me why. Practice writing an impactful recommendation in the comments. &#128071;</p>]]></content:encoded></item><item><title><![CDATA[State of the book, October 2025]]></title><description><![CDATA[State of the book no.1]]></description><link>https://www.statetransition.co/p/state-of-the-book-october-2025</link><guid isPermaLink="false">https://www.statetransition.co/p/state-of-the-book-october-2025</guid><dc:creator><![CDATA[Glenn Stovall]]></dc:creator><pubDate>Mon, 13 Oct 2025 12:27:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!P8r_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a4b1988-a8ac-4898-93b8-8fb0ec7eefa9_818x333.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It&#8217;s been a while since I&#8217;ve posted about my product thinking for engineers book, <em>System is as System does.</em> Turns out writing an entire book is the most psychologically challenging thing I&#8217;ve ever done. I can say from experience that finishing a book is more difficult than quitting smoking.</p><p>I promised &#8216;behind-the-scenes&#8217; of the process when I kicked this off, so here goes. The two big stumbling blocks I hit, and where I&#8217;m aiming to go next.</p><h2>The story so far</h2><p>My goal was to create a &#8216;beta book ': a 20-30 page version of the book that I could send to a few beta readers for feedback. After a lot of writing, I ended up with 60 pages of content.</p><p><strong>Roadblock 1: Initial beta doom loop.</strong> Working on something that large, for that long, and showing it to someone in a messy, unfinished state is <em>terrifying.</em> I spiral between &#8220;it&#8217;s not good enough&#8221; and &#8220;this isn&#8217;t fast enough.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!P8r_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a4b1988-a8ac-4898-93b8-8fb0ec7eefa9_818x333.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!P8r_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a4b1988-a8ac-4898-93b8-8fb0ec7eefa9_818x333.png 424w, https://substackcdn.com/image/fetch/$s_!P8r_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a4b1988-a8ac-4898-93b8-8fb0ec7eefa9_818x333.png 848w, https://substackcdn.com/image/fetch/$s_!P8r_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a4b1988-a8ac-4898-93b8-8fb0ec7eefa9_818x333.png 1272w, https://substackcdn.com/image/fetch/$s_!P8r_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a4b1988-a8ac-4898-93b8-8fb0ec7eefa9_818x333.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!P8r_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a4b1988-a8ac-4898-93b8-8fb0ec7eefa9_818x333.png" width="818" height="333" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a4b1988-a8ac-4898-93b8-8fb0ec7eefa9_818x333.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:333,&quot;width&quot;:818,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:32123,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.statetransition.co/i/176034690?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a4b1988-a8ac-4898-93b8-8fb0ec7eefa9_818x333.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!P8r_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a4b1988-a8ac-4898-93b8-8fb0ec7eefa9_818x333.png 424w, https://substackcdn.com/image/fetch/$s_!P8r_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a4b1988-a8ac-4898-93b8-8fb0ec7eefa9_818x333.png 848w, https://substackcdn.com/image/fetch/$s_!P8r_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a4b1988-a8ac-4898-93b8-8fb0ec7eefa9_818x333.png 1272w, https://substackcdn.com/image/fetch/$s_!P8r_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a4b1988-a8ac-4898-93b8-8fb0ec7eefa9_818x333.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Eventually, I printed out the book, went over the whole thing with a red pen, and worked it into something I was comfortable showing people. The physical book set a good boundary. Editing in paper is more taxing than dragging and dropping digital blocks. Whatever came out of this phase, I decided that was the beta book.</p><h2>The feedback</h2><p>I was able to find some wonderful people who were willing to take the time to provide honest feedback. (You know who you are, much love &#10084;&#65039;).</p><p>Beta reading was painful and indispensable. Design is a collaborative process, and writing a useful non-fiction book is a design problem.</p><p>Key points:</p><ol><li><p><strong>More case studies, more examples, more exercises</strong>. I need to do a better job of painting a picture and putting the principles into action</p></li><li><p>Some topics were underexplored, such as <strong>taste</strong> and <strong>social responsibility</strong>.</p></li><li><p>I need to spend more time <strong>explaining and clarifying complex ideas</strong>, like the recognition-primed decision-making model</p></li></ol><p><strong>sticking point 2: The pile of grist?</strong> Grist is the raw material from wheat that is processed into flour and other useful commodities. I am sitting here with 60 pages, 133 notes, comments, and an ever-growing pile of articles, papers, books, and videos to sift through for research. I am buried in grist.</p><p>How in the world am I going to get from here to a polished 150-250 pages, which is my goal? I feel like I signed up for a marathon and just hit a wall on mile six. It has felt overwhelming thinking about how much further I have to go.</p><h2>The plan</h2><p>Stop overthinking, start anywhere. <a href="https://www.statetransition.co/p/my-leeroy-jenkins-year">Same monster I&#8217;ve fought all. year</a>. I&#8217;ll start cleaning up small mistakes, adding new information as I discover it, and applying the feedback I&#8217;ve received so far.</p><h3>Focus </h3><p>I am going to double down on the sections that are working and cut on the ones that aren&#8217;t. I&#8217;ll dive deeper into building product intuition and collaborating with others. I&#8217;ll cut back or reduce the focus on things like prioritization and estimation. That content might end up as content on this site.</p><h3>Interviews </h3><p>I am going to reach out and interview product-focused engineers, product managers, and designers across a variety of companies. This will help me collect more case studies and cover blind spots.</p><h3>Read the canon </h3><p>I heard (obviously false but truthy) that if you read the 4 books on the canon of a subject, you&#8217;re more knowledgeable about that subject than 98% of people. So, figure I need to start by digging into the most often recommended books on my subject:</p><ul><li><p><a href="https://www.goodreads.com/book/show/840.The_Design_of_Everyday_Things">The Design of Everyday Things</a></p></li><li><p><a href="https://www.goodreads.com/book/show/52283963-the-mom-test?">The Mom Test: How to talk to customers &amp; learn if your business is a good idea when everyone is lying to you</a></p></li><li><p><a href="https://www.goodreads.com/book/show/35249663-inspired">Inspired: How to Create Tech Products Customers Love</a></p></li><li><p><a href="https://www.goodreads.com/book/show/25814544-sprint?">Sprint: How to Solve Big Problems and Test New Ideas in Just Five Days</a></p></li><li><p><a href="https://www.goodreads.com/book/show/10127019-the-lean-startup">The Lean Startup</a></p></li></ul><h3>Collect</h3><p>I love hoarding examples and frameworks like a little digital goblin<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. As I go, I want to build reference materials on product thinking models, usability heuristics. Like when Anthony Hobday made a list of <a href="https://anthonyhobday.com/sideprojects/interactionconcepts/">every interaction concept</a>. </p><p></p><h2>Want to help?</h2><p>DM or email me if you&#8217;re interested in being a future beta reader. Or if you know any product-focused engineers who have a story to tell, I&#8217;d love an intro :)</p><p>Also, if you want to have a conversation about product thinking, taste, why engineers should care about this, or the obligations engineers have to their impact on society and the world writ large, reach out via DM or email, I&#8217;d love to have an interesting conversation!</p><p>The more interesting conversations I have, the better the book will be in the end. Hell, having an excuse to kick off interesting conversations is one of the reasons I started this project.</p><p><strong><a href="https://engineering-product.kit.com/0d5f0028f8">Sign up to be notified</a></strong> when my book on product thinking for engineers is available for purchase.</p><p></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Look, I already made one, a small but mighty reading list of the product thinking canon!</p><p></p></div></div>]]></content:encoded></item></channel></rss>