<?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[Refactoring]]></title><description><![CDATA[Learn how to make your engineering team ship faster and better. Read weekly by 170,000+ engineers and managers]]></description><link>https://refactoring.fm</link><image><url>https://substackcdn.com/image/fetch/$s_!CR5A!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png</url><title>Refactoring</title><link>https://refactoring.fm</link></image><generator>Substack</generator><lastBuildDate>Sat, 18 Apr 2026 22:07:34 GMT</lastBuildDate><atom:link href="https://refactoring.fm/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Refactoring ETS]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[refactoring@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[refactoring@substack.com]]></itunes:email><itunes:name><![CDATA[Luca Rossi]]></itunes:name></itunes:owner><itunes:author><![CDATA[Luca Rossi]]></itunes:author><googleplay:owner><![CDATA[refactoring@substack.com]]></googleplay:owner><googleplay:email><![CDATA[refactoring@substack.com]]></googleplay:email><googleplay:author><![CDATA[Luca Rossi]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[AI Coding meets Code Health 🪄 — with Stuart Caborn]]></title><description><![CDATA[Watch now | Refactoring Podcast &#8226; Episode 61]]></description><link>https://refactoring.fm/p/ai-coding-meets-code-health-with</link><guid isPermaLink="false">https://refactoring.fm/p/ai-coding-meets-code-health-with</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Fri, 17 Apr 2026 07:01:17 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/194274334/842d647b625d80917cb00b8d08ddf68a.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<div id="youtube2-msEjXJhL0HM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;msEjXJhL0HM&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/msEjXJhL0HM?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><div class="pullquote"><p style="text-align: center;"><em><strong>Listen now:<br><a href="https://www.youtube.com/@refactoringclub">YouTube</a> | <a href="https://podcasts.apple.com/us/podcast/refactoring-podcast/id1719137305">Apple</a> | <a href="https://open.spotify.com/show/7Luds9dmzZDoDC8Q7EMbSw">Spotify</a></strong></em></p></div><p>Today's guest is <strong>Stuart Caborn</strong>, Distinguished Engineer at <a href="https://www.loveholidays.com/">Loveholidays</a>, an online travel agency with millions of customers worldwide.</p><p>Stuart's team is doing AI coding for real:</p><ul><li><p>Each engineer deploys to production more than <strong>80 times a month</strong></p></li><li><p>Over <strong>60% of production code is written by AI</strong></p></li><li><p>All while maintaining an elite change failure rate under 1%, and <strong>perfect code health</strong>.</p></li></ul><div><hr></div><blockquote><p><em><strong>If you like the podcast, please give us a rating on your platform of choice! It means a lot to us &#8212; that&#8217;s how other people discover the show! &#11088;&#11088;&#11088;&#11088;&#11088;</strong></em></p></blockquote><div><hr></div><h2>&#129351; Interview Summary</h2><p>If you are a <strong>&#128274; paid subscriber &#128274;</strong> you will find my own <em>summary</em> of the interview below.</p><p>It&#8217;s the <strong>5-minute takeaways</strong> of what we talked about, with timestamps to the relevant video moments, for those who don&#8217;t have time to sit through the 1-hour chat.</p><p>Here is the agenda for today:</p><ol><li><p><strong>&#9992;&#65039; The complexity of online travel</strong></p></li><li><p><strong>&#127973; Code health before AI</strong></p></li><li><p><strong>&#129302; Becoming an AI-first engineering team</strong></p></li><li><p><strong>&#128737;&#65039; Guardrails, reviews, and trusting the machine</strong></p></li><li><p><strong>&#128260; How AI is changing the development process</strong></p></li></ol><p>&#10240;Let&#8217;s dive in &#128071;</p><div><hr></div>
      <p>
          <a href="https://refactoring.fm/p/ai-coding-meets-code-health-with">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Introducing the AI Club 🪄]]></title><description><![CDATA[A new monthly gathering for Refactoring community members]]></description><link>https://refactoring.fm/p/introducing-the-ai-club</link><guid isPermaLink="false">https://refactoring.fm/p/introducing-the-ai-club</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Wed, 15 Apr 2026 07:03:04 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f2cd68bf-0153-4ae0-83e5-872a611b8e9f_1240x640.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey there! This is a special edition to announce I am starting a private <strong>AI Club</strong> for members of the Refactoring community!</p><p>These are going to be <strong>monthly online gatherings</strong> where people can share wins and learnings from using AI, ask questions, and stay up to date about what works.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;http://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Join our AI Club &#129668;&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="http://refactoring.fm/subscribe?"><span>Join our AI Club &#129668;</span></a></p><p>So today&#8217;s post is to explain 1) why I am starting it, and<strong> </strong>2) how it works.</p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RBE3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8f559d-8449-4100-b2a1-423c00067b18_2736x920.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RBE3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8f559d-8449-4100-b2a1-423c00067b18_2736x920.png 424w, https://substackcdn.com/image/fetch/$s_!RBE3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8f559d-8449-4100-b2a1-423c00067b18_2736x920.png 848w, https://substackcdn.com/image/fetch/$s_!RBE3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8f559d-8449-4100-b2a1-423c00067b18_2736x920.png 1272w, https://substackcdn.com/image/fetch/$s_!RBE3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8f559d-8449-4100-b2a1-423c00067b18_2736x920.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RBE3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8f559d-8449-4100-b2a1-423c00067b18_2736x920.png" width="1456" height="490" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cf8f559d-8449-4100-b2a1-423c00067b18_2736x920.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:490,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1848471,&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://refactoring.fm/i/194076528?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8f559d-8449-4100-b2a1-423c00067b18_2736x920.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_!RBE3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8f559d-8449-4100-b2a1-423c00067b18_2736x920.png 424w, https://substackcdn.com/image/fetch/$s_!RBE3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8f559d-8449-4100-b2a1-423c00067b18_2736x920.png 848w, https://substackcdn.com/image/fetch/$s_!RBE3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8f559d-8449-4100-b2a1-423c00067b18_2736x920.png 1272w, https://substackcdn.com/image/fetch/$s_!RBE3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8f559d-8449-4100-b2a1-423c00067b18_2736x920.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>&#127919; Why I am starting an AI Club</h2><p>By now AI has taken over most of the online conversation about software engineering.</p><p>As <a href="https://refactoring.fm/p/updates-to-my-ai-coding-workflow">I wrote last week</a>, I think this is&#8230; largely correct. AI coding is so <em>big</em> and meaningful that figuring it out feels like the #1 priority for us as an industry. I don&#8217;t think we are misguided on this.</p><p>However, we are also in this <strong>very confusing stage</strong> where everyone is just trying things for themselves:</p><ul><li><p>Most teams have little-to-no shared practices / artifacts / ceremonies about AI.</p></li><li><p>Opinions online are all over the place, and it&#8217;s hard to know who to trust.</p></li><li><p>Most of us have very little time to try things out, and zero dedicated time at work to do so.</p></li></ul><p>All of this against a backdrop of anxiety, layoffs, FOMO, and doomsday predictions.</p><p>Yay!</p><p>AI is also changing how I think about my responsibilities with Refactoring. It is changing the topics I cover, how I spend my time (I am back to coding, a lot), and the type of conversations I have with people.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!y_TJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25d63e9-3149-4db8-9971-6662593b171d_1508x402.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!y_TJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25d63e9-3149-4db8-9971-6662593b171d_1508x402.png 424w, https://substackcdn.com/image/fetch/$s_!y_TJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25d63e9-3149-4db8-9971-6662593b171d_1508x402.png 848w, https://substackcdn.com/image/fetch/$s_!y_TJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25d63e9-3149-4db8-9971-6662593b171d_1508x402.png 1272w, https://substackcdn.com/image/fetch/$s_!y_TJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25d63e9-3149-4db8-9971-6662593b171d_1508x402.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!y_TJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25d63e9-3149-4db8-9971-6662593b171d_1508x402.png" width="1456" height="388" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b25d63e9-3149-4db8-9971-6662593b171d_1508x402.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:388,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:59776,&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://refactoring.fm/i/194076528?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25d63e9-3149-4db8-9971-6662593b171d_1508x402.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!y_TJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25d63e9-3149-4db8-9971-6662593b171d_1508x402.png 424w, https://substackcdn.com/image/fetch/$s_!y_TJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25d63e9-3149-4db8-9971-6662593b171d_1508x402.png 848w, https://substackcdn.com/image/fetch/$s_!y_TJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25d63e9-3149-4db8-9971-6662593b171d_1508x402.png 1272w, https://substackcdn.com/image/fetch/$s_!y_TJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb25d63e9-3149-4db8-9971-6662593b171d_1508x402.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">Before 2026, in my most active year I did ~950 commits. This year I have done 3300 so far&#8230; in two months.</figcaption></figure></div><p>So, Refactoring should <strong>help you run better engineering teams</strong>, and a big part of that now is about using AI well &#8212; together, as humans.</p><p>So I want to host <strong>good conversations</strong> about it, where people share what they are learning: the exciting wins, the humbling failures, and everything in between.</p><p>Sharing things with others not only makes us <strong>grow faster together</strong> &#8212; it&#8217;s also great to fight back against anxiety, impostor syndrome, and all the pressure that comes with the push for AI adoption.</p><p>So let&#8217;s use the <strong>Refactoring community as your extended team</strong>, where we compare notes and learn things together.</p><div><hr></div><h2>&#8505;&#65039; How it works</h2><p>Here is the gist:</p><ul><li><p>Monthy 1-hour chat, hosted in the Refactoring Community.</p></li><li><p>As with all-things-community, it&#8217;s for paid Refactoring members. We gate this to keep people committed and ensure high quality.</p></li><li><p>Like our monthly mastermind, it&#8217;s facilitated by real engineering coaches, <a href="https://monkeysthumb.co.uk/">Joel</a> and <a href="https://www.seckington.com/">Melinda</a>.</p></li><li><p>I always join the call personally and share the things I have learned throughout the month</p></li><li><p>Everyone who joins can share their own &#8220;aha&#8221; moments &#8212; a win, or just something that genuinely surprised them &#8212; ask questions, and get to know other community members</p></li><li><p>Takeaways from the conversation are shared afterwards in the community in written form, for those who are not able to join.</p></li><li><p>Finally, for paid Refactoring subscribers, in the newsletter I will also publish monthly AI updates that combine my own experiments with things that surfaced in community calls.</p></li></ul><p>All in all it&#8217;s very simple. We&#8217;ll host the first one <strong>on May 8th</strong>, and we&#8217;ll always have them on the first Friday of the month, at rotating times to allow everyone to participate.</p><div><hr></div><h2>&#128274; About the Refactoring subscription</h2><p>Allow me a quick paragraph about the Refactoring subscription, which you might be considering joining.</p><p>It&#8217;s $15/month, or $150/year, to access the <a href="https://refactoring.fm/p/refactoring-community">Refactoring community</a>, all of our archive (300+ articles) carefully organized by topic, plus our weekly original long-forms about the latest and greatest engineering practices.</p><p>The community has bi-weekly events, professionally run, that alone would cost &gt;$100 to join &#8212; each!</p><p>So if Refactoring helps you make <strong>just </strong><em><strong>one</strong></em><strong> better decision</strong>, thanks to something you read, or learned from someone in the community, chances are the subscription repaid itself for the full year.</p><p>I would love to have you onboard! 1500+ engineers have joined this already &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;http://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Join our AI Club &#129668;&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="http://refactoring.fm/subscribe?"><span>Join our AI Club &#129668;</span></a></p><div><hr></div><p>And that&#8217;s it for today!</p><p>Sincerely &#128075;<br>Luca</p>]]></content:encoded></item><item><title><![CDATA[Asking engineers, signal areas, and weekly readings 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #203]]></description><link>https://refactoring.fm/p/asking-engineers-signal-areas-and</link><guid isPermaLink="false">https://refactoring.fm/p/asking-engineers-signal-areas-and</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 13 Apr 2026 07:39:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dofp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, Luca here, welcome to a weekly edition of the</em>&#128161;<em> <strong>Monday Ideas</strong> </em>&#128161;<em> from Refactoring! To access all our articles, library, and community, subscribe to the <a href="https://refactoring.fm/about">full version</a>.</em></p><div><hr></div><h2><a href="https://www.augmentcode.com/blog/confidence-is-the-new-bottleneck">How Augment Code is going AI-native</a></h2><p><em>Today&#8217;s sponsor is <a href="https://www.augmentcode.com/">Augment Code</a>!</em></p><p>The guys at Augment have been documenting how they are transforming their engineering team to be AI-first, in several great blog posts:</p><ul><li><p><a href="https://www.augmentcode.com/blog/how-we-hire-ai-native-engineers-now">How we hire AI-native engineers now</a></p></li><li><p><a href="https://www.augmentcode.com/blog/confidence-is-the-new-bottleneck">Confidence is the new bottleneck</a></p></li></ul><p>They would also love to hear from other leaders going through the same thing, and have been running a quick survey for this. You can find it below &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://form.typeform.com/to/iYpaa0lo&quot;,&quot;text&quot;:&quot;Check out the 5-min survey&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://form.typeform.com/to/iYpaa0lo"><span>Check out the 5-min survey</span></a></p><div><hr></div><h1>&#128161; Just ask engineers</h1><p>By now, as of 2026, there is <a href="https://refactoring.fm/p/the-era-of-the-software-factory?utm_source=publication-search">solid consensus</a> that good developer experience is <em>upstream</em> of how your engineering team performs as a whole. And good devex is, in turn, mostly about <strong>removing friction</strong> from the daily work of engineers.</p><p>To remove friction you first need to know where it hides. What are the biggest blockers for your team? What is slow, hard, or simply a waste of time?</p><p>As engineers, we have a natural bias towards <strong>telemetry</strong> &#8212; quantitative data taken automatically from our processes, so we can debug it as if it were software. This is increasingly backed by research, from <a href="https://refactoring.fm/p/accelerate">Accelerate</a> onwards, and I have written extensively about it:</p><ul><li><p><a href="https://refactoring.fm/p/how-to-get-started-with-engineering">How to get started with engineering metrics</a></p></li><li><p><a href="https://refactoring.fm/p/whats-next-in-measuring-dev-productivity?utm_source=publication-search">What&#8217;s next in measuring dev productivity</a></p></li><li><p><a href="https://refactoring.fm/p/you-have-metrics-now-what?utm_source=publication-search">You have metrics, now what?</a></p></li></ul><p>To summarize what I think about metrics: <strong>they are good, but they are not enough</strong>. Most metrics are <em>cues</em> that something is (or is not) working, but they don&#8217;t tell you what the problem is. They are <em>lagging indicators</em>: to find the actual blockers, you need to dig deeper.</p><p>How? The answer is usually deceptively simple: <strong>ask engineers</strong>. They know.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dofp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dofp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png 424w, https://substackcdn.com/image/fetch/$s_!dofp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png 848w, https://substackcdn.com/image/fetch/$s_!dofp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png 1272w, https://substackcdn.com/image/fetch/$s_!dofp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dofp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png" width="1456" height="638" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:638,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:398366,&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://refactoring.fm/i/193797604?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.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_!dofp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png 424w, https://substackcdn.com/image/fetch/$s_!dofp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png 848w, https://substackcdn.com/image/fetch/$s_!dofp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png 1272w, https://substackcdn.com/image/fetch/$s_!dofp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.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>If you combine <strong>qualitative</strong> signal from engineers&#8217; opinions with <strong>quantitative</strong> data from your systems, you&#8217;ll be <em>unstoppable</em>. But counterintuitively, most managers find it harder to do the former&#8212;have good conversations to identify problems&#8212;than the latter.</p><p>So, I am a fan of doing the so-called <strong>Listening Tour</strong>, whose name I lifted from <em><a href="https://developerexperiencebook.com/">Frictionless</a></em>, but whose execution I tweaked based on my own experience. I wrote a full piece about it at the start of the year, and I still stand by it &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:185828322,&quot;url&quot;:&quot;https://refactoring.fm/p/the-listening-tour&quot;,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;The Listening Tour &#128222;&quot;,&quot;truncated_body_text&quot;:&quot;For the last month I have been running a program for CTOs and VPs of small to mid-size companies to help them make their engineering teams ship faster.&quot;,&quot;date&quot;:&quot;2026-01-28T08:00:22.619Z&quot;,&quot;like_count&quot;:35,&quot;comment_count&quot;:3,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;profile_set_up_at&quot;:&quot;2021-06-04T06:23:53.965Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-11-15T17:35:42.775Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:247311,&quot;user_id&quot;:6835984,&quot;publication_id&quot;:64099,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:64099,&quot;name&quot;:&quot;Refactoring&quot;,&quot;subdomain&quot;:&quot;refactoring&quot;,&quot;custom_domain&quot;:&quot;refactoring.fm&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Learn how to make your engineering team ship faster and better. Read weekly by 170,000+ engineers and managers&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;author_id&quot;:6835984,&quot;primary_user_id&quot;:6835984,&quot;theme_var_background_pop&quot;:&quot;#2096ff&quot;,&quot;created_at&quot;:&quot;2020-07-06T14:20:40.525Z&quot;,&quot;email_from_name&quot;:&quot;&#127744; Refactoring&quot;,&quot;copyright&quot;:&quot;Refactoring ETS&quot;,&quot;founding_plan_name&quot;:&quot;&#127942; Community plan&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79ab7b78-71cf-42d2-a607-3aa18960cb64_2400x572.png&quot;}}],&quot;twitter_screen_name&quot;:&quot;lucaronin&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000,&quot;status&quot;:{&quot;bestsellerTier&quot;:1000,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:1000},&quot;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/the-listening-tour?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!CR5A!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png" loading="lazy"><span class="embedded-post-publication-name">Refactoring</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">The Listening Tour &#128222;</div></div><div class="embedded-post-body">For the last month I have been running a program for CTOs and VPs of small to mid-size companies to help them make their engineering teams ship faster&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">3 months ago &#183; 35 likes &#183; 3 comments &#183; Luca Rossi</div></a></div><div><hr></div><h1>&#127897;&#65039; Past behavior predicts future results</h1><p>With tech chops getting a bit <em>diluted</em> by AI, <strong>behavioral interviews</strong> have recently gotten into the spotlight as a crucial way to select good engineers. Always have been? Probably &#8212; but today, even more so.</p><p>I recently talked about this <a href="https://refactoring.fm/p/how-to-master-behavioral-interviews-e75">on the podcast with Austin McDonald</a>, former hiring committee chair at Meta. Austin said behavioral interviewers are essentially <strong>forecasters</strong>: they study your past performance to predict your future results. And, with people, this generally works (unlike with financial portfolios!)</p><p>Austin breaks down what interviewers look for into <strong>signal areas</strong>:</p><ul><li><p><strong>&#127919; Scope &amp; ownership</strong> &#8212; how large a project can you handle, and do you drive it forward without being asked?</p></li><li><p><strong>&#127787;&#65039; Ambiguity &amp; perseverance</strong> &#8212; how do you navigate unclear situations and push through setbacks?</p></li><li><p><strong>&#129309; Conflict resolution, communication &amp; leadership</strong> &#8212; how do you handle disagreements, convey ideas, and rally teams?</p></li></ul><p>These signal areas map closely to most company values, but not always one-to-one. Newer AI companies like Anthropic, for instance, look for safety-oriented signals about thinking through the implications of building AI.</p><p>So Austin recommends combining general areas with company-specific research&#8212;their website, recruiter conversations, YouTube talks&#8212;to build a complete picture of what you&#8217;ll be assessed on.</p><blockquote><p><em><strong>&#8220;Every question they ask has this kind of thing behind it. Especially follow-up questions. People often forget &#8212; when they get a follow-up question, they just think the person wants more information. Instead, think: why are they asking me this?&#8221;</strong></em></p></blockquote><p>In fact, companies exist on a wide spectrum:</p><ul><li><p>Amazon sits at one extreme end with <a href="https://www.amazon.jobs/content/en/our-workplace/leadership-principles">16 rigorously enforced leadership principles</a>.</p></li><li><p>Meta is in the middle with <a href="https://www.metacareers.com/swe-prep-onsite">five structured behavioral areas</a>.</p></li><li><p>Google has traditionally leaned more technical.</p></li></ul><p>Here is the full interview with Austen:</p><div id="youtube2-dIUZ8AcCfLg" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;dIUZ8AcCfLg&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/dIUZ8AcCfLg?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>You can also find it on &#127911; <strong><a href="https://open.spotify.com/episode/5dTyUawGzRizbC8PJPsPIG?si=5c3a2c5c494b4e73">Spotify</a></strong> and &#128236; <strong><a href="https://refactoring.fm/p/how-to-master-behavioral-interviews-e75">Substack</a></strong></p><div><hr></div><h1>&#128218; Weekly Readings</h1><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://piechowski.io/post/git-commands-before-reading-code/">The Git Commands I Run Before Reading Any Code</a></h4><h5>3 min &#8226; by Ally Piechowski</h5><p>Great piece that makes you understand the power of version control history. There is so much you can understand about a codebase (and a team) by running simple git commands. Hotspots, bus factor, bug clusters, crisis patterns &#8212; all from git history.</p><div><hr></div><h4>&#129352; <a href="https://martinfowler.com/articles/reduce-friction-ai/feedback-flywheel.html">Feedback Flywheel</a></h4><h5>10 min &#8226; by Rahul Garg</h5><p>I really liked this article &#8212; it&#8217;s very practical and proposes some novel angles to AI feedback. Every AI interaction generates signal: prompts that worked, context that was missing, patterns that failed. Rahul proposes a structured practice that takes learnings from AI sessions and feeds them back into the team&#8217;s shared artifacts.</p><div><hr></div><h4>&#129353; <a href="https://newsletter.whatsmyjob.club/archive/the-human-weight-of-it/">The Human Weight of It</a></h4><h5>7 min &#8226; by Cate Huston</h5><p>Can Claude replace coaching? Cate has been experimenting: using AI for structured issues, but keeping her human coach for the <em>messier</em> stuff. AI is great when you need structure and validation. But when you need to feel <em>seen</em>, you need the human weight of someone else&#8217;s confidence in you. I loved it.</p><div><hr></div><p>And that&#8217;s it for today! If you are finding this newsletter valuable, <strong>subscribe to the full version</strong>!</p><p>1700+ engineers and managers have joined already, and they receive our flagship weekly long-form articles about <strong>how to ship faster</strong> and <strong>work better together</strong>! Learn more about the <a href="http://refactoring.fm/about">benefits of the paid plan here</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Make your team ship faster!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p>See you next week!<br>Luca</p>]]></content:encoded></item><item><title><![CDATA[Updates to my AI Coding Workflow]]></title><description><![CDATA[As of April 2026]]></description><link>https://refactoring.fm/p/updates-to-my-ai-coding-workflow</link><guid isPermaLink="false">https://refactoring.fm/p/updates-to-my-ai-coding-workflow</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Wed, 08 Apr 2026 07:12:58 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7c31c0da-a80c-463b-8804-c108402a8d19_1200x800.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>About a month ago I wrote an article about my <a href="https://refactoring.fm/p/my-ai-coding-workflow">AI coding workflow</a>, and it <em>instantly</em> became the most popular Refactoring article of all time.</p><p>I received a lot of private comments, most of which can be organized into two categories:</p><ul><li><p>People wanting to learn more about the <strong>coding workflow</strong> itself.</p></li><li><p>People wanting to learn more about the <strong>note-taking</strong> <strong>app</strong> I am building.</p></li></ul><p>Both types of comments motivated me <em>a lot</em>, to the point where I decided to make all of this an official part of my Refactoring work, as follows:</p><ul><li><p>I am going to build this app for real, make it free and open source for everyone, and keep working on it as an ongoing effort.</p></li><li><p>I am going to report my learnings about AI coding as part of the regular writing schedule, let&#8217;s say once a month or so.</p></li></ul><p>I am convinced this is the right thing to do because, frankly, <strong>getting AI coding right is the #1 problem in software engineering</strong> today, and it&#8217;s not even close.</p><p>The economics of software are changing so much that there is no part of the process that is <em>safe</em>. Code reviews, QA, planning, staffing, traditional management &#8212; everything feels up for grabs and <em>downstream </em>of what happens with coding.</p><p>Also, while I love doing research and talking with others (e.g. on the podcast), opinions are so scattered across the board that I feel the strong need to try things myself, and do so in a serious, ongoing way.</p><p>So here is today&#8217;s agenda:</p><ul><li><p>&#128167; <strong>Building Tolaria</strong> &#8212; a personal knowledge management app for the age of AI.</p></li><li><p>&#129438; <strong>OpenClaw vs Claude Code</strong> &#8212; how I use them, and to do what.</p></li><li><p>&#128295; <strong>Coding workflow</strong> &#8212; what changed vs one month ago, and what stayed the same.</p></li><li><p>&#128209; <strong>ADRs</strong> &#8212; the best recent addition to my coding.</p></li><li><p>&#127912; <strong>Product workflow</strong> &#8212; how I create specs.</p></li><li><p><strong>&#128184; How much I am spending</strong> &#8212; because I know y&#8217;all want to know that.</p></li><li><p>&#129302; <strong>CLAUDE.md</strong> &#8212; bonus: my current Claude file, attached in full.</p></li></ul><p>Let&#8217;s dive in!</p><div><hr></div><h2>&#128167; Building Tolaria</h2><p>In the last article I said that what I was building didn&#8217;t matter much, well now it kinda does, because you are going to hear a lot more about it in the future.</p><p><strong><a href="http://tolaria.md/">Tolaria</a></strong> is a personal knowledge management app, extremely opinionated and tailored for my own personal use, but I hope it can be useful to others too.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BUFS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4b8312-6b90-4b72-845a-32b773fd50fa_2934x2983.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BUFS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4b8312-6b90-4b72-845a-32b773fd50fa_2934x2983.png 424w, https://substackcdn.com/image/fetch/$s_!BUFS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4b8312-6b90-4b72-845a-32b773fd50fa_2934x2983.png 848w, https://substackcdn.com/image/fetch/$s_!BUFS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4b8312-6b90-4b72-845a-32b773fd50fa_2934x2983.png 1272w, https://substackcdn.com/image/fetch/$s_!BUFS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4b8312-6b90-4b72-845a-32b773fd50fa_2934x2983.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BUFS!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4b8312-6b90-4b72-845a-32b773fd50fa_2934x2983.png" width="1200" height="1219.7802197802198" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5e4b8312-6b90-4b72-845a-32b773fd50fa_2934x2983.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1480,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:3089503,&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://refactoring.fm/i/193368488?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4b8312-6b90-4b72-845a-32b773fd50fa_2934x2983.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BUFS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4b8312-6b90-4b72-845a-32b773fd50fa_2934x2983.png 424w, https://substackcdn.com/image/fetch/$s_!BUFS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4b8312-6b90-4b72-845a-32b773fd50fa_2934x2983.png 848w, https://substackcdn.com/image/fetch/$s_!BUFS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4b8312-6b90-4b72-845a-32b773fd50fa_2934x2983.png 1272w, https://substackcdn.com/image/fetch/$s_!BUFS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4b8312-6b90-4b72-845a-32b773fd50fa_2934x2983.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It&#8217;s worth noting that this is not a particularly original idea. There exist plenty of tools in this space &#8212; Notion, Obsidian, Craft, Roam, and more &#8212; and most of them are very well made. Still, I know plenty of smart people who lately have been experimenting with weird setups. </p><p>Just last week, <a href="https://x.com/karpathy/status/2039805659525644595">Karpathy wrote a viral tweet</a> exactly about that.</p><p>Why such a renewed excitement around <strong>knowledge management</strong>? Because everyone who tries to work <em>seriously</em> with AI agents eventually understands that this is a core problem to solve: continuously <em>supplying</em> agents with reliable, up-to-date information about your life and work, and creating a good collaboration surface on these.</p><p>I suspect this still feels a bit abstract, so I&#8217;ll make a few examples from my own work:</p><ul><li><p>An agent should periodically fetch meeting summaries from tools like Fathom or Fireflies, create a note for the meeting with the summary and action items, and link the note to individual attendees (each of whom should have a page for themselves). If there are attendees who are <em>new</em>, the agent should create individual notes for each of them, enriching my personal CRM.</p></li><li><p>An agent should receive voice notes from me and turn them into long-term notes and tasks, and connect them to the relevant existing pages.</p></li><li><p>An agent should take every new article I write and split it into atomic evergreen ideas, connect them to similar ideas I have already saved in the past, and better organize my knowledge base so that it&#8217;s easier to write new articles in the future.</p></li><li><p>An agent should suggest new article topics and podcast guests based on my recent readings and how these connect to things I have written in the past and interviews I already did.</p></li></ul><p>In terms of intelligence required, most of these tasks are <strong>trivial</strong>. But they need a good collaboration surface 1) for agents to fetch the relevant info and 2) for me to work well with them.</p><p><a href="https://tolaria.md/">Tolaria</a> is my attempt to build this for myself first, and hopefully for some others too.</p><p>It will be completely<strong> free and open source</strong>, so that it also works as a <strong>visible artifact</strong> of my <em>understanding</em> of how to create products with AI, for other people to inspect.</p><p>At any given time, if you want to know e.g. what I write in my CLAUDE.md, or how I write docs, or what types of tests I write and which I don&#8217;t &#8212; you shouldn&#8217;t just <em>trust</em> my articles, you should be able to go to the repo and see for yourself.</p><p>This way, the ideas you read on Refactoring become the result of three things:</p><ul><li><p><strong>&#128218; Research</strong> &#8212; I read and collect experiences from others.</p></li><li><p>&#128172; <strong>Conversations</strong> &#8212; I go deeper by running community events and 1:1 podcast interviews.</p></li><li><p>&#128295; <strong>Personal work</strong> &#8212; I do coding and product development myself to stress-test these beliefs.</p></li></ul><p>All of these elements are meant to be <em>public</em>: you can get <a href="https://refactoring.fm/i/193052967/weekly-readings">weekly digests</a> of what I read, listen to the <a href="https://refactoring.fm/podcast">podcast conversations</a>, <a href="https://refactoring.fm/p/refactoring-community">join the community</a> to chat with me (and others), and inspect the Tolaria codebase (soon!) to see how I write code.</p><p>Tolaria is not ready yet but it will be in a couple of weeks!</p><p>So where are we today? Here is an exec summary. Since I started working on it around mid Feb, here is what I got:</p><ul><li><p><strong>1526 commits</strong> &#8212; that is ~30 commits/day on average</p></li><li><p><strong>~70K LOCs</strong> &#8212; about 45 lines / commit</p></li><li><p><strong>~3000 tests</strong> &#8212; about 85% coverage</p></li><li><p><strong>9.5/10 code health</strong> &#8212; as measured by CodeScene</p></li><li><p><strong>40+ ADRs</strong> &#8212; to track our core tech choices, plus three summary docs for Architecture, Abstractions, and Getting Started.</p></li></ul><p>That&#8217;s 2.5x the amount of code we had last month (we were at 20K LOCs), with better code health (9.5 vs 9.3), and better docs. I am still not writing any code, and I am still reading very little of it.</p><p>The product also got way better to the point where, by now, I have fully replaced my Notion workspace. It still feels surreal to say that out loud, after 6+ years of really intensive Notion usage, but here we are.</p><p>So let&#8217;s get into how I work on it, starting with coding &#128071;</p><div><hr></div><h2>&#129438; OpenClaw vs Claude Code</h2><p>In last month&#8217;s <a href="https://refactoring.fm/p/my-ai-coding-workflow">post</a> I said that basically I acted as CEO, OpenClaw worked as a PM, and Claude Code worked as a team of designers + engineers.</p><p>Has any of this changed? Yes, and no. Roles are still kinda the same, but I am not using Claude Code strictly <em>together</em> with OpenClaw anymore, in the sense that the latter directs the former, but more in an async way. This change has been driven by three reasons:</p><ul><li><p>&#128184; <strong>Cost</strong> &#8212; the initial workflow in which OpenClaw steered CC all the time was wildly inefficient in terms of token spend.</p></li><li><p>&#127891; <strong>Capabilities</strong> &#8212; CC has caught up with a lot of OpenClaw stuff. Most of all, it has loops now.</p></li><li><p>&#128110;&#8205;&#9794;&#65039; <strong>Legal</strong> &#8212; most recently, Anthropic has explicitly banned this type of usage, but to be fair I had stopped it already.</p></li></ul><p>So by now my OpenClaw and Claude Code work on separate things, in a completely asynchronous way:</p><ul><li><p>OpenClaw turns my inputs into product specs, checks on the general status of things, brainstorms new ideas, and in general does the work that benefits from <em>broad</em> context.</p></li><li><p>Claude Code does all the technical work, including coding, writing ADRs and docs, and, crucially, QA, that was done by OpenClaw before.</p></li></ul><p>OpenClaw doesn&#8217;t interact with Claude Code anymore, but it periodically checks that it doesn&#8217;t get stuck or crashes (which can happen for a variety of reasons). In that case, it restarts it.</p><div><hr></div><h2>&#128295; Coding workflow</h2><p>This article is largely meant to work as a <em>delta</em> vs my original AI coding article to highlight things that have changed, but it&#8217;s also worth noting the good stuff that <em>has not changed.</em></p><p>The highest leverage parts of the AI coding workflow are <em>still</em> probably the CI gates on <strong>code health</strong> and <strong>test coverage</strong>. These gates exist in two places:</p>
      <p>
          <a href="https://refactoring.fm/p/updates-to-my-ai-coding-workflow">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA["Why" context, functional teams, and weekly readings 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #202]]></description><link>https://refactoring.fm/p/why-context-functional-teams-and</link><guid isPermaLink="false">https://refactoring.fm/p/why-context-functional-teams-and</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 06 Apr 2026 07:12:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0UaP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, Luca here, welcome to a weekly edition of the</em>&#128161;<em> <strong>Monday Ideas</strong> </em>&#128161;<em> from Refactoring! To access all our articles, library, and community, subscribe to the <a href="https://refactoring.fm/about">full version</a>:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Make your team ship faster!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p><em>Resources: </em>&#127963;&#65039;<em> <strong><a href="https://refactoring.fm/p/library-tracks">Library</a></strong> &#8226; </em>&#128172;<em> <strong><a href="https://refactoring.fm/p/refactoring-community">Community</a> </strong>&#8226;<strong> </strong></em><strong>&#127897;&#65039;</strong><em><strong> <a href="https://refactoring.fm/podcast">Podcast</a> </strong>&#8226; </em>&#128227;<em> <strong><a href="https://airtable.com/app6T1no2xUAkvqqI/pagmohBDjtBNk9dKY/form">Advertise</a> </strong></em></p><div><hr></div><blockquote><h2>Build with <em><a href="https://www.augmentcode.com/product/intent">Intent</a> &#128301;</em></h2><p><em>This is brought to you by today&#8217;s sponsor, <a href="https://www.augmentcode.com/">Augment Code</a>!</em></p><p><em>It is no secret that I am a fan of what Augment Code is building, and I am especially a big fan of <a href="https://www.augmentcode.com/product/intent">Intent</a>, their developer workspace where agents are coordinated via live specs.</em></p><p><em>Intent was created by Amelia Wattenberger, with whom I <a href="https://refactoring.fm/p/what-comes-after-the-ide-with-amelia">talked on the podcast</a> last month about what comes after the IDE. We also wrote an <a href="https://refactoring.fm/p/the-telephone-game-of-software">article together</a> about what it means to translate specs at different altitudes, from the original product intent (pun intended) to the final code. We called it: the telephone game of software &#128071;</em></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;deeea281-350d-4765-9d82-6dffa025625d&quot;,&quot;caption&quot;:&quot;My favorite byproduct of the AI shift in engineering is that it is making us think harder at workflows and ideas we have taken for granted for a long time.&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;The Telephone Game of Software&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000}],&quot;post_date&quot;:&quot;2026-03-25T08:42:59.887Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b8713384-a4c2-4057-b6c2-731abcc0d68b_2382x1580.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/the-telephone-game-of-software&quot;,&quot;section_name&quot;:&quot;&#129525; Essays&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:191761060,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:36,&quot;comment_count&quot;:0,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p><em>You can learn more about Intent, Augment Code, and Amelia&#8217;s work below.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.augmentcode.com/product/intent&quot;,&quot;text&quot;:&quot;Learn more about Intent&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.augmentcode.com/product/intent"><span>Learn more about Intent</span></a></p></blockquote><div><hr></div><h1>1) &#127919; In your AI context, share the <em>why</em></h1><p>Most of the conversation about how to create good AI context for coding focuses on <em>tactical</em> parts, like PRDs, tech specs, or dev process conventions.</p><p>These are obviously important, and basically cover <em>what</em> should be done, and <em>how</em>.</p><p>There is a third category of context, though, that feels a bit underrated today, which is about the <strong>why</strong>.</p><p>Let&#8217;s say you are not simply developing a new feature, but you want to get help from the AI to find architecture improvements, refactoring opportunities, or make some product strategy. To do that, the <em>what</em> is still up in the air, and the <em>how</em> is largely not relevant yet. Instead, you need context on <em>why</em> something would be valuable to have.</p><p><em><strong>Why</strong></em><strong> context</strong> can be evergreen (e.g. your principles, values, the business domain), about the future (e.g. your quarter goals), and about the past (e.g. your past goals, ADRs).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0UaP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0UaP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png 424w, https://substackcdn.com/image/fetch/$s_!0UaP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png 848w, https://substackcdn.com/image/fetch/$s_!0UaP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!0UaP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0UaP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png" width="1456" height="844" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:844,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:387654,&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://refactoring.fm/i/193052967?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.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_!0UaP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png 424w, https://substackcdn.com/image/fetch/$s_!0UaP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png 848w, https://substackcdn.com/image/fetch/$s_!0UaP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!0UaP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.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>This stuff is not <em>always</em> important to perform some task, but in cases where it is, it is invaluable. So, before you even think about AI, you can ask yourself questions like:</p><ul><li><p><em>How much of this is written down?</em></p></li><li><p><em>Has everyone access to it? Do they know where it is?</em></p></li><li><p><em>Do people think it&#8217;s important? What does it happen if they ignore it?</em></p></li></ul><p>I wrote a full guide about context engineering earlier this year &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:177872864,&quot;url&quot;:&quot;https://refactoring.fm/p/managing-context-for-ai-coding&quot;,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;How to Manage Context in AI Coding &#128209;&quot;,&quot;truncated_body_text&quot;:&quot;Last month I had the privilege to keynote at the CTO Craft Conference in Berlin, where I tried to paint a broad picture of how engineering teams are using AI today.&quot;,&quot;date&quot;:&quot;2025-11-05T08:01:35.835Z&quot;,&quot;like_count&quot;:57,&quot;comment_count&quot;:1,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;profile_set_up_at&quot;:&quot;2021-06-04T06:23:53.965Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-11-15T17:35:42.775Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:247311,&quot;user_id&quot;:6835984,&quot;publication_id&quot;:64099,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:64099,&quot;name&quot;:&quot;Refactoring&quot;,&quot;subdomain&quot;:&quot;refactoring&quot;,&quot;custom_domain&quot;:&quot;refactoring.fm&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Learn how to make your engineering team ship faster and better. Read weekly by 170,000+ engineers and managers&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;author_id&quot;:6835984,&quot;primary_user_id&quot;:6835984,&quot;theme_var_background_pop&quot;:&quot;#2096ff&quot;,&quot;created_at&quot;:&quot;2020-07-06T14:20:40.525Z&quot;,&quot;email_from_name&quot;:&quot;&#127744; Refactoring&quot;,&quot;copyright&quot;:&quot;Refactoring ETS&quot;,&quot;founding_plan_name&quot;:&quot;&#127942; Community plan&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79ab7b78-71cf-42d2-a607-3aa18960cb64_2400x572.png&quot;}}],&quot;twitter_screen_name&quot;:&quot;lucaronin&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000,&quot;status&quot;:{&quot;bestsellerTier&quot;:1000,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:1000},&quot;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/managing-context-for-ai-coding?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!CR5A!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png" loading="lazy"><span class="embedded-post-publication-name">Refactoring</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">How to Manage Context in AI Coding &#128209;</div></div><div class="embedded-post-body">Last month I had the privilege to keynote at the CTO Craft Conference in Berlin, where I tried to paint a broad picture of how engineering teams are using AI today&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">5 months ago &#183; 57 likes &#183; 1 comment &#183; Luca Rossi</div></a></div><div><hr></div><h1>2) &#127897;&#65039; Functional vs cross-functional teams</h1><p>A couple of months ago I interviewed <strong>Gon&#231;alo Silva</strong>, CTO at <a href="https://doist.com/">Doist</a>.</p><p>Among other things, Gon&#231;alo told me Doist organizes engineering into functional teams (Android, iOS, Frontend, Backend, &#8230;) rather than cross-functional product teams, because it allows them to create a culture of deep expertise and passion:</p><blockquote><p><em><strong>&#8220;When we hire for our Android team, we go after people who are really passionate about Android, and then we put them in an Android team where they own the Android apps. When you pair control and passion, usually you get a lot of taste back.&#8221;</strong></em></p></blockquote><p>To ship features, they assemble temporary squads each quarter, staffing them based on project needs. This creates flexibility: e.g. when COVID hit, they were able to pivot almost the entire company to work on <a href="https://twist.com/">Twist</a> within four weeks.</p><p>The flip side is that <em>continuity</em> can suffer. A feature might launch, but two months later when interesting feedback arrives, nobody&#8217;s actively working on it anymore. So there&#8217;s no perfect system, and Doist intentionally optimizes for agility over long-lived domain expertise.</p><p>Their product team is also extremely lean: just four people (including the head of product) supporting about 30 engineers working on product-related work. Engineers are expected to be autonomous and opinionated: they dogfood their own products daily, so everyone has informed perspectives on what to build next.</p><p>Here is the full interview with Gon&#231;alo:</p><div id="youtube2-zaGmjQzmR-I" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;zaGmjQzmR-I&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/zaGmjQzmR-I?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>You can also find it on &#127911; <strong><a href="https://open.spotify.com/episode/3NCLKPNCEHKiqOTjPQi1rb?si=10d44545a12847ea">Spotify</a></strong> and &#128236; <strong><a href="https://refactoring.fm/p/how-todoist-is-built-with-goncalo">Substack</a></strong></p><div><hr></div><h1>&#128218; Weekly Readings</h1><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://apenwarr.ca/log/20260316">Every Layer of Review Makes You 10x Slower</a></h4><h5>11 min &#8226; by Avery Pennarun</h5><p>Awesome piece that many many people I know need to read. Every layer of review makes your process exponentially slower &#8212; and AI can speed up the coding part, but it does nothing against the time spent <em>waiting</em> for others to do stuff. Reducing reviews is less about AI and more about building a culture of quality and trust.</p><div><hr></div><h4>&#129352; <a href="https://annievella.com/posts/the-middle-loop/">The Middle Loop</a></h4><h5>7 min &#8226; by Annie Vella</h5><p>AI is shifting engineering work from <em>creation</em> to <em>verification</em>: Annie calls it the <em>middle loop</em>, sitting between the inner loop (writing code) and the outer loop (CI/CD, deploy). A useful mental model for how the day-to-day of engineering is evolving.</p><div><hr></div><h4>&#129353; <a href="https://alexhwoods.com/dont-let-ai-write-for-you/">Don&#8217;t Let AI Write For You</a></h4><h5>2 min &#8226; by Alex Woods</h5><p>Writing is fundamentally about <em>structuring your thinking</em>. Producing text is simply a (nice) byproduct of it. So, using LLMs to write for you undermines both your credibility and your ability to reason deeply. Use them for research and brainstorming, but the final words should be yours.</p><div><hr></div><h4>4) <a href="https://larahogan.me/blog/ai-aha-team-meetings/">AI &#8220;Aha&#8221; Team Meetings</a></h4><h5>7 min &#8226; by Lara Hogan</h5><p>There&#8217;s a growing gap between engineers who are thriving with AI tools and those who feel left behind. Lara held many interviews to learn more about how teams work today. She proposes regular team meetings where people share their AI <em>aha moments</em>: tips, tricks, and even mistakes.</p><div><hr></div><p>And that&#8217;s it for today! If you are finding this newsletter valuable, <strong>subscribe to the full version</strong>!</p><p>1700+ engineers and managers have joined already, and they receive our flagship weekly long-form articles about <strong>how to ship faster</strong> and <strong>work better together</strong>! Learn more about the <a href="http://refactoring.fm/about">benefits of the paid plan here</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Make your team ship faster!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p>See you next week!<br>Luca</p>]]></content:encoded></item><item><title><![CDATA[Every Engineer Is a Manager Now 🤖 — with Chris Lattner]]></title><description><![CDATA[Watch now | Refactoring Podcast &#8226; Episode 60]]></description><link>https://refactoring.fm/p/every-engineer-is-a-manager-now-with</link><guid isPermaLink="false">https://refactoring.fm/p/every-engineer-is-a-manager-now-with</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Fri, 03 Apr 2026 07:03:15 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/192704261/64e49b7ac57430be939daf60bafd5c5d.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<div id="youtube2-PLQs_hHTzSk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;PLQs_hHTzSk&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/PLQs_hHTzSk?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><div class="pullquote"><p style="text-align: center;"><em><strong>Listen now:<br><a href="https://www.youtube.com/@refactoringclub">YouTube</a> | <a href="https://podcasts.apple.com/us/podcast/refactoring-podcast/id1719137305">Apple</a> | <a href="https://open.spotify.com/show/7Luds9dmzZDoDC8Q7EMbSw">Spotify</a></strong></em></p></div><p>Today&#8217;s guest is <strong>Chris Lattner</strong>, one of the most important engineers for modern computing. Chris invented key compiler infrastructure tech like LLVM and MLIR, but he&#8217;s also the inventor of the Swift language, a key contributor in bringing Google TPUs to market, and a lot more. Today he&#8217;s the founder and CEO of <a href="https://modular.com/">Modular</a>, where he&#8217;s reinventing AI infrastructure to make software portable across GPUs and platforms.</p><p>With Chris, we talked about <strong>his vision for AI and computing</strong>. We talked about how Modular&#8217;s mission makes us closer to a future where AI is open and portable. And we talked about open source, how AI is both empowering and straining contributors, how it&#8217;s changing intellectual property, and what workflows we need to change as engineers.</p><p>Finally, we discussed how AI is <strong>changing software craftsmanship</strong>, how he&#8217;s bullish about junior engineers, and a lot more.</p><div><hr></div><blockquote><p><em><strong>If you like the podcast, please give us a rating on your platform of choice! It means a lot to us &#8212; that&#8217;s how other people discover the show! &#11088;&#11088;&#11088;&#11088;&#11088;</strong></em></p></blockquote><div><hr></div><h2>&#129351; Interview Summary</h2><p>If you are a <strong>&#128274; paid subscriber &#128274;</strong> you will find my own <em>summary</em> of the interview below.</p><p>It&#8217;s the <strong>5-minute takeaways</strong> of what we talked about, with timestamps to the relevant video moments, for those who don&#8217;t have time to sit through the 1-hour chat</p><p>Here is the agenda for today:</p><ol><li><p><strong>&#128295; Modular&#8217;s mission and the GPU accessibility gap</strong></p></li><li><p><strong>&#127760; Open source in the age of AI</strong></p></li><li><p><strong>&#9889; AI and software craftsmanship</strong></p></li><li><p><strong>&#128105;&#8205;&#128187; Junior engineers, manager thinking, and team building</strong></p></li><li><p><strong>&#127959;&#65039; Best practices under pressure</strong></p></li></ol><p>Let&#8217;s dive in &#128071;</p><div><hr></div>
      <p>
          <a href="https://refactoring.fm/p/every-engineer-is-a-manager-now-with">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[How to Grow your Software Factory]]></title><description><![CDATA[Rules, modules, and the path to AI leverage]]></description><link>https://refactoring.fm/p/growing-your-sofware-factory</link><guid isPermaLink="false">https://refactoring.fm/p/growing-your-sofware-factory</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Wed, 01 Apr 2026 07:02:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FXrO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F939d8dd5-a30e-4c7f-96cd-560960e6c1fd_2110x1300.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last month I published <a href="https://refactoring.fm/p/the-era-of-the-software-factory">The Era of the Software Factory</a>, where I commented on the latest <a href="https://circleci.com/software-delivery-data-explorer/">State of Software Delivery</a> together with Rob Zuber, a good friend and CTO of CircleCI.</p><p>In that piece we argued that software engineering was undergoing a transformation from craftsmanship to factory work, with the gap between elite and average teams being more and mor&#8230;</p>
      <p>
          <a href="https://refactoring.fm/p/growing-your-sofware-factory">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Leadership archetypes, perfect teams, and weekly readings 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #201]]></description><link>https://refactoring.fm/p/leadership-archetypes-perfect-teams</link><guid isPermaLink="false">https://refactoring.fm/p/leadership-archetypes-perfect-teams</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 30 Mar 2026 07:02:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!JM_W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facd641e3-e58c-4c97-af71-69d0c511124e_594x494.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, Luca here, welcome to a weekly edition of the</em>&#128161;<em> <strong>Monday Ideas</strong> </em>&#128161;<em> from Refactoring! </em></p><p><em>I am repeating <a href="https://refactoring.fm/p/slave-software-polarities-and-weekly">last week&#8217;s experiment</a> of adding the best articles I have read last week, other than the classic weekly ideas. Let me know if you like it!</em></p><p><em>To access all our articles, library, community, and support my work, subscribe to the <a href="https://refactoring.fm/about">full version of Refactoring</a>.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/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://refactoring.fm/subscribe?"><span>Subscribe now</span></a></p>
      <p>
          <a href="https://refactoring.fm/p/leadership-archetypes-perfect-teams">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Telephone Game of Software]]></title><description><![CDATA[How to navigate the journey from intent to code]]></description><link>https://refactoring.fm/p/the-telephone-game-of-software</link><guid isPermaLink="false">https://refactoring.fm/p/the-telephone-game-of-software</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Wed, 25 Mar 2026 08:42:59 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b8713384-a4c2-4057-b6c2-731abcc0d68b_2382x1580.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>My favorite <em>byproduct</em> of the AI shift in engineering is that it is making us think harder at workflows and ideas we have taken for granted for a long time.</p><p>In some cases, we even <em>invented</em> words we didn&#8217;t use before, like <em>context</em>, or, one of my favorite lately, <em>intent</em>. These words are <em>abstractions</em>&#8212;our bread and butter as engineers&#8212;and are born out of the necessity to discuss ideas, understand what&#8217;s going on, and improve how we work.</p><p>The <em>intent</em> concept is both important and, AFAIK, quite novel. These days you may hear it in sentences like &#8220;<em>making sure PMs&#8217; intent is captured into specs</em>&#8221;, or &#8220;<em>AI code should reflect the engineers&#8217; intent</em>&#8221;.</p><p>This angle frames software engineering as a <strong>translation act</strong> between something you want to achieve and what gets actually captured in <em>artifacts</em> like specs, UI design, up until code. If we continue this analogy, translation happens at every step, with different steps following different rules. Many engineering practices exist essentially to <em>reduce</em> the error rate of such translation.</p><p>So, seen through this lens, software development becomes an elaborated version of <a href="https://en.wikipedia.org/wiki/Telephone_game">the telephone game</a>. You win the game if the message is passed properly and ends up in&#8230; production.</p><p>That said, what the <em>steps</em> of the telephone game are (or should be), or what the best winning strategy is, frankly, it&#8217;s all up for discussion today. Should we write big specs beforehand? Should we keep human code reviews? <em>Who</em> should do this and that, and when, and how often?</p><p>Today I want to explore this, taking from what I have personally learned from my <a href="https://refactoring.fm/p/my-ai-coding-workflow">recent coding efforts</a>, and ideas I bounced off with <a href="https://www.linkedin.com/in/wattenberger">Amelia Wattenberger</a>, who <a href="https://refactoring.fm/p/what-comes-after-the-ide-with-amelia">I interviewed last week</a> on the podcast, and is joining me today on this piece.</p><p>So here is the agenda for today:</p><ul><li><p>&#128256; <strong>From intent to code</strong> &#8212; the journey of translating what you really want to do</p></li><li><p><strong>&#129521; Creating good platform</strong> &#8212; for each step of the journey, so AI doesn&#8217;t mess things up.</p></li><li><p><strong>&#128747; Staying at the right altitude</strong> &#8212; evolve your artifacts to match what you want to inspect</p></li><li><p><strong>&#128300; Using product to improve understanding</strong> &#8212; not just to <em>implement</em> it.</p></li></ul><p>Let&#8217;s dive in!</p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XE7W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6709e936-78a6-4eb6-9123-b2c127a1d998_2512x832.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XE7W!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6709e936-78a6-4eb6-9123-b2c127a1d998_2512x832.png 424w, https://substackcdn.com/image/fetch/$s_!XE7W!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6709e936-78a6-4eb6-9123-b2c127a1d998_2512x832.png 848w, https://substackcdn.com/image/fetch/$s_!XE7W!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6709e936-78a6-4eb6-9123-b2c127a1d998_2512x832.png 1272w, https://substackcdn.com/image/fetch/$s_!XE7W!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6709e936-78a6-4eb6-9123-b2c127a1d998_2512x832.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XE7W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6709e936-78a6-4eb6-9123-b2c127a1d998_2512x832.png" width="1456" height="482" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6709e936-78a6-4eb6-9123-b2c127a1d998_2512x832.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:482,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:969213,&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://refactoring.fm/i/191761060?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6709e936-78a6-4eb6-9123-b2c127a1d998_2512x832.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_!XE7W!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6709e936-78a6-4eb6-9123-b2c127a1d998_2512x832.png 424w, https://substackcdn.com/image/fetch/$s_!XE7W!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6709e936-78a6-4eb6-9123-b2c127a1d998_2512x832.png 848w, https://substackcdn.com/image/fetch/$s_!XE7W!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6709e936-78a6-4eb6-9123-b2c127a1d998_2512x832.png 1272w, https://substackcdn.com/image/fetch/$s_!XE7W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6709e936-78a6-4eb6-9123-b2c127a1d998_2512x832.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><hr></div><p><em>Disclaimer: Amelia works at <a href="https://www.augmentcode.com/">Augment Code</a> and created <a href="https://www.augmentcode.com/product/intent">Intent</a>, a developer workspace with strong opinions about all of this. Augment is a long-time partner of Refactoring, I use it, I am a fan, and I am happy if you check it out.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.augmentcode.com/product/intent&quot;,&quot;text&quot;:&quot;Learn more about Intent&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.augmentcode.com/product/intent"><span>Learn more about Intent</span></a></p><p><em>However, we are not here to promote Augment today, but rather compare notes about problems and try to predict where the puck is going. (The puck, Luca? In a telephone game? Yes)</em></p><div><hr></div><h2>&#128256; From Intent to Code</h2><p>Starting from something you want to achieve on the product you are building, then it&#8217;s a <em>long way</em> to encode that into, well, code.</p><p>Intermediate steps may vary based on your process, but you probably have some version of these:</p><h3>1) Product intent</h3><p>A high-level, one or two-sentence version of what you want to build. It may only live in your head.</p><p>Making an example from my own experiments (I am building <a href="http://tolaria.md/">an editor</a>), let&#8217;s say I want to add <em>split panes</em>, like many editors have. In my head, that&#8217;s it. I don&#8217;t think about it a lot more.</p><h3>2) Product specs</h3><p>Product intent needs to be turned into a <em>spec</em>, like a PRD, which needs to stay <em>faithful</em> to my original intent, while deciding a lot more things.</p><p>How is this triggered? Is there a button? What does it look like? What about keyboard shortcuts? What happens if I drag a tab from one pane to the other? And more.</p><p>Some of these are just <em>additional detail</em>, but some might derail the feature in a direction I didn&#8217;t intend. For example, a legitimate interpretation might be to open up the tab in a new window, which is not what I want.</p><h3>3) UI/UX design</h3><p>Product specs are turned into design specs. What it looks like, how it behaves, where it lives.</p><h3>4) System design</h3><p>Product and design specs <em>inform</em> the strategy to implement this with code. Abstractions that should be reused or created, data structures (when relevant), migrations, instrumentation, testing, rollout and rollback, and more.</p><h3>5) Code!</h3><p>Finally, there&#8217;s code! All of this turns into a bunch of LOCs, to be pushed, reviewed, and released in prod.</p><p>Phew. That&#8217;s a lot of work.</p><p>Of course YMMV and you may skip creating actual <em>artifacts</em> for some of these steps, based on the complexity of the work at hand, and your team's workflows. But there are at least <strong>decisions to be made</strong> about all of these, even without the artifacts:</p><ul><li><p>Every step adds details that the previous kept implicit or simply did not consider.</p></li><li><p>Every step can act as a <em>lossy translation</em> of the original intent. It can miss important details or interpret them incorrectly.</p></li></ul><p>What is our goal with respect to this process? The ultimate goal is always to <strong>ship value to customers as fast as possible</strong>, so you can get feedback and iterate.</p><p>To ship fast you want to avoid <em>rework</em>: you want to reduce the misunderstandings between the various steps and the mistakes that would make work move backwards instead of forwards. You want code abstractions that match the PRD, a PRD that matches the product intent, and not getting to the point where a review fails and some of this gets back to the drawing board.</p><p>This angle is relevant with humans, and <em>especially</em> relevant with AI. AI models today are <em>really</em> good, and it feels most of their mistakes now come from <em>not understanding</em> what you wanted, rather than e.g. bad coding skills.</p><p>So how do you get good at this? The most convincing way, to me, is:</p><ul><li><p><strong>Creating good platform for each step</strong> &#8212; which acts as guardrails and helps you minimize the amount of <em>intent</em> you need to encode into specs.</p></li><li><p><strong>Use specs as active collaboration surface</strong> &#8212; updating it with more details as the work progresses, so it stays at the right altitude all the time. Kudos to Amelia for making me think about this.</p></li></ul><p>Let&#8217;s explore both &#128071;</p><div><hr></div><h2>&#129521; Create good platform for each step</h2>
      <p>
          <a href="https://refactoring.fm/p/the-telephone-game-of-software">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Slave software, polarities, and weekly readings 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #200!]]></description><link>https://refactoring.fm/p/slave-software-polarities-and-weekly</link><guid isPermaLink="false">https://refactoring.fm/p/slave-software-polarities-and-weekly</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 23 Mar 2026 08:01:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CR5A!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey there, Luca here! This is our <strong>200th edition</strong> of the Monday Ideas! &#127881;&#127882;</p><p>To celebrate this milestone I want to experiment with some tweaks. Instead of our classic three ideas, today I am going to post:</p><ol><li><p>&#129525; One idea from a recent <strong>article</strong> I wrote.</p></li><li><p>&#127897;&#65039; One idea from a recent <strong>podcast interview</strong> we did.</p></li><li><p>&#128218; A small digest of the <strong>best articles</strong> I have read this week&#8230;</p></li></ol>
      <p>
          <a href="https://refactoring.fm/p/slave-software-polarities-and-weekly">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[What Comes After the IDE 🖥️ — with Amelia Wattenberger]]></title><description><![CDATA[Watch now | Refactoring Podcast &#8226; Episode 59]]></description><link>https://refactoring.fm/p/what-comes-after-the-ide-with-amelia</link><guid isPermaLink="false">https://refactoring.fm/p/what-comes-after-the-ide-with-amelia</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Fri, 20 Mar 2026 08:36:45 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/191384400/938f192d207d3c4fd57e953b4fe8a1df.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<div id="youtube2-79sDQ7JXVvQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;79sDQ7JXVvQ&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/79sDQ7JXVvQ?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><div class="pullquote"><p style="text-align: center;"><em><strong>Listen now:<br><a href="https://www.youtube.com/@refactoringclub">YouTube</a> | <a href="https://podcasts.apple.com/us/podcast/refactoring-podcast/id1719137305">Apple</a> | <a href="https://open.spotify.com/show/7Luds9dmzZDoDC8Q7EMbSw">Spotify</a></strong></em></p></div><p>Today&#8217;s guest is <strong>Amelia Wattenberger</strong>, former principal research engineer at GitHub and now Partner at Sutter Hill Ventures.</p><p>But she&#8217;s also a Product Lead at Augment Code, where she developed <a href="https://www.augmentcode.com/product/intent">Intent</a>, a developer workspace for orchestrating AI coding agents and delivering complex work. So this is a fascinating chat into the future and the present of software development with someone who has clearly been at the very frontier of this for many years.</p><div><hr></div><blockquote><p><em><strong>If you like the podcast, please give us a rating on your platform of choice! It means a lot to us &#8212; that&#8217;s how other people discover the show! &#11088;&#11088;&#11088;&#11088;&#11088;</strong></em></p></blockquote><div><hr></div><h2>&#129351; Interview Summary</h2><p>If you are a <strong>&#128274; paid subscriber &#128274;</strong> you will find my own <em>summary</em> of the interview below.</p><p>It&#8217;s the <strong>5-minute takeaways</strong> of what we talked about, with timestamps to the relevant video moments, for those who don&#8217;t have time to sit through the 1-hour chat.</p><p>Here is the agenda for today:</p><ol><li><p><strong>&#129513; What is Intent and why rethink the IDE</strong></p></li><li><p><strong>&#129302; Orchestrating agents and smart defaults</strong></p></li><li><p><strong>&#128203; The living spec as a control plane</strong></p></li><li><p><strong>&#128640; How AI multiplies (or doesn&#8217;t) different engineers</strong></p></li><li><p><strong>&#128302; The changing shape of roles and specialization</strong></p></li></ol><p>&#10240;Let&#8217;s dive in &#128071;</p><div><hr></div><h2>1) &#129513; What is Intent and why rethink the IDE</h2><p>The IDE has been around for nearly half a century, and every single pixel in it is devoted to reading and understanding code. But as AI agents get better at the nitty-gritty of code comprehension, Amelia argues our role as developers is shifting toward <strong>higher levels of abstraction</strong> &#8212; and our tools haven&#8217;t caught up.</p><p>Intent is Augment Code&#8217;s take on what comes <em>after</em> the IDE. Its core primitive is the <strong>workspace</strong>: for any piece of work, you spin up an isolated environment that bundles a copy of your codebase (with its own branch and Git worktree), a set of agents, rich markdown notes, terminals, and a spec. You can run multiple workspaces at once, switching between tasks without the mental overhead of juggling Git branches or remembering scattered chat conversations.</p><blockquote><p><em><strong>&#8220;Every single pixel in the IDE is devoted to reading and understanding code. And it feels like as agents get better at the nitty-gritty, our role as developers has changed, where we&#8217;re working more at higher levels of abstraction, where we have more leverage.&#8221;</strong></em></p></blockquote><p>Amelia describes how we&#8217;ve essentially &#8220;hacked&#8221; AI into existing primitives &#8212; chat in the IDE, chat on the command line, chat on GitHub &#8212; without rethinking what the interface should look like when developers spend more time on <strong>intent and planning</strong> rather than writing individual lines of code. Intent is an exploration of that question.</p><h2>2) &#129302; Orchestrating agents and smart defaults</h2><p>One of Intent&#8217;s most opinionated design choices is how it handles agent orchestration. By default, the app ships with <strong>specialist personas</strong> &#8212; a coordinator that delegates to implementers and verifiers &#8212; but everything is tweakable through natural language settings.</p><p>Amelia explains why splitting agents into focused roles works better:</p>
      <p>
          <a href="https://refactoring.fm/p/what-comes-after-the-ide-with-amelia">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Layoffs, normal engineers, and second brains 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #199]]></description><link>https://refactoring.fm/p/layoffs-normal-engineers-and-second</link><guid isPermaLink="false">https://refactoring.fm/p/layoffs-normal-engineers-and-second</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 16 Mar 2026 08:01:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FnQV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55f09a4-d716-44e7-8d2d-fb9329f87f49_2676x1092.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, Luca here, welcome to a weekly edition of the</em>&#128161;<em> <strong>Monday Ideas</strong> </em>&#128161;<em> from Refactoring! To access all our articles, library, and community, subscribe to the <a href="https://refactoring.fm/about">full version</a>.</em></p>
      <p>
          <a href="https://refactoring.fm/p/layoffs-normal-engineers-and-second">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The State of Product Development 2026]]></title><description><![CDATA[Explore the insights from our biggest research ever.]]></description><link>https://refactoring.fm/p/the-state-of-product-development</link><guid isPermaLink="false">https://refactoring.fm/p/the-state-of-product-development</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Wed, 11 Mar 2026 09:49:05 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/1dc5892c-24ee-4531-9e82-ae4584df99f0_2302x1534.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Once or twice a year we run a <strong>deep research survey</strong> in our newsletter to better understand trends in software development. We do this to collect broad, quantitative data, that complements the <em>qualitative</em> opinions we already get from podcast interviews, from our private community, and from my own 1:1 conversations.</p><p>Last year we explored AI adoption, while &#8230;</p>
      <p>
          <a href="https://refactoring.fm/p/the-state-of-product-development">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The big three questions, AI code quality, and standardization 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #198]]></description><link>https://refactoring.fm/p/the-big-three-questions-ai-code-quality</link><guid isPermaLink="false">https://refactoring.fm/p/the-big-three-questions-ai-code-quality</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 09 Mar 2026 08:02:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!M7wu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1e96952-55ea-4848-a730-269392b11820_2092x714.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, Luca here, welcome to a weekly edition of the</em>&#128161;<em> <strong>Monday Ideas</strong> </em>&#128161;<em> from Refactoring! To access all our articles, library, and community, subscribe to the <a href="https://refactoring.fm/about">full version</a>.</em></p>
      <p>
          <a href="https://refactoring.fm/p/the-big-three-questions-ai-code-quality">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Leading Beyond the Framework 🧭 — with Richard Hughes-Jones]]></title><description><![CDATA[Watch now | Refactoring Podcast &#8226; Episode 58]]></description><link>https://refactoring.fm/p/leading-beyond-the-framework-with</link><guid isPermaLink="false">https://refactoring.fm/p/leading-beyond-the-framework-with</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Fri, 06 Mar 2026 08:42:52 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/189883444/86ee57accff0387d8d6f36a234497417.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<div id="youtube2-AtIm6kjqqjI" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;AtIm6kjqqjI&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/AtIm6kjqqjI?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><div class="pullquote"><p style="text-align: center;"><em><strong>Listen now:<br><a href="https://www.youtube.com/@refactoringclub">YouTube</a> | <a href="https://podcasts.apple.com/us/podcast/refactoring-podcast/id1719137305">Apple</a> | <a href="https://open.spotify.com/show/7Luds9dmzZDoDC8Q7EMbSw">Spotify</a></strong></em></p></div><p>Today&#8217;s guest is <strong><a href="https://richardhughesjones.substack.com/">Richard Hughes-Jones</a></strong>, a professional executive coach with more than 20 years of experience.</p><p>With Richard, we talked about:</p><ul><li><p>how to coach tech leaders through uncertainty;</p></li><li><p>everything that&#8217;s going on with AI, how to navigate it, how we should think about our role, and what it means to step outside of the framework;</p></li><li><p>how to leverage AI for coaching, how to blend human and AI advice to get the best of both worlds.</p></li></ul><div><hr></div><blockquote><p><em><strong>If you like the podcast, please give us a rating on your platform of choice! It means a lot to us &#8212; that&#8217;s how other people discover the show! &#11088;&#11088;&#11088;&#11088;&#11088;</strong></em></p></blockquote><div><hr></div><h2>&#129351; Interview Summary</h2><p>If you are a <strong>&#128274; paid subscriber &#128274;</strong> you will find my own <em>summary</em> of the interview below.</p><p>It&#8217;s the <strong>5-minute takeaways</strong> of what we talked about, with timestamps to the relevant video moments, for those who don&#8217;t have time to sit through the 1-hour chat.</p><p>Here is the agenda:</p><ol><li><p><strong>&#129517; From strategy consulting to coaching tech leaders</strong></p></li><li><p><strong>&#127744; Leading through uncertainty and complexity</strong></p></li><li><p><strong>&#129521; Going post-framework</strong></p></li><li><p><strong>&#129694; Inner work, polarities, and safe-to-fail experiments</strong></p></li><li><p><strong>&#129302; Leveraging AI for coaching</strong></p></li></ol><p>Let&#8217;s dive in &#128071;</p><div><hr></div>
      <p>
          <a href="https://refactoring.fm/p/leading-beyond-the-framework-with">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The New Pyramid of Software Engineering 🏔️]]></title><description><![CDATA[The three pillars you should take care of, and some questions you should ask yourself]]></description><link>https://refactoring.fm/p/the-new-pyramid-of-software-engineering</link><guid isPermaLink="false">https://refactoring.fm/p/the-new-pyramid-of-software-engineering</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Wed, 04 Mar 2026 08:01:19 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3302732b-3303-4dfa-916f-0ad44253312d_2164x1438.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There are a lot of opinions around these days about the future of software, including of course <a href="https://refactoring.fm/p/the-era-of-the-software-factory">my own</a>.</p><p>If you run an engineering team, though, most of these opinions won&#8217;t feel useful to you. In fact, when I talk with people about e.g. some <a href="https://refactoring.fm/p/my-ai-coding-workflow">AI workflow</a>, I usually get two types of objections:</p><ol><li><p><strong>Volatility</strong> &#8212; the advice may become obsolete in just a few months, or weeks.</p></li><li><p><strong>Applicability</strong> &#8212; the advice doesn&#8217;t seem to apply to their team, because of X, Y, Z.</p></li></ol><p>These problems often come together. I&#8217;ll give an example.</p><p>One of the recent trends about how to work with AI, on which there is more consensus, is <strong>Spec-Driven Development</strong>. There exist <a href="https://martinfowler.com/articles/exploring-gen-ai/sdd-3-tools.html">plenty of articles and frameworks</a> to work with it, even created by prominent companies like Github. So it&#8217;s not <em>a total</em> consensus, mind you, but it&#8217;s about as much as you can get in these messy times.</p><p>Still, as a CTO, you may have legitimate worries:</p><ul><li><p>Is this worth investing in? Or may the AI tomorrow (i.e. next month) just figure out more of the specs by itself?</p></li><li><p>Is this a good fit for <em>our team</em>? How do we harmonize it with how we have been creating PRDs and design docs up until now? Is there a way to work with AI that leverages how we already work, without the need to <em>migrate</em> to a different workflow?</p></li></ul><p>These questions are 100% valid, and the result is often <strong>analysis paralysis</strong>: teams <em>underinvest</em> in AI because no approach feels durable or authoritative enough to graduate from <em>individual experiment</em> to <em>team</em> <em>practice</em>.</p><p>I believe the main problem is that most ideas are just <strong>tactical</strong>. They <em>may</em> work, but need to be placed within a bigger strategy &#8212; a wider map of how to think about our teams, AI, and how to work together.</p><p>So today I want to write about the ideas that <strong>feel the most durable</strong> to me, and on which I am confident we can create good foundations.</p><p>These ideas come from many places:</p><ul><li><p>My own experiments &#8212; as you saw <a href="https://refactoring.fm/p/my-ai-coding-workflow">last week</a>.</p></li><li><p>Talking with 100+ tech leaders &#8212; this year alone in 1:1s, masterminds, and community threads</p></li><li><p>Our own industry report &#8212; where we surveyed 350+ teams and which we&#8217;ll release in March</p></li><li><p>Our cohort program &#8212; where I work with a small group of ~10 CTOs and VPs to help their teams ship faster.</p></li></ul><p>All in all it&#8217;s like a small <em>think tank</em>, and I am here to report findings!</p><p>These findings are actually quite simple (like all good models!), and are about three areas:</p><ol><li><p><strong>&#128295; Developer Experience</strong></p></li><li><p><strong>&#129668; AI</strong></p></li><li><p><strong>&#127912; Product Engineering</strong></p></li></ol><p>In my experience so far, these areas work like layers of a pyramid. Each layer <em>creates</em> <em>value</em> only if what&#8217;s beneath is taken care of. Think of it like Maslow&#8217;s pyramid of software engineering.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LDz_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F798117bf-c8f8-4a75-955c-7ddaac426c28_2016x946.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LDz_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F798117bf-c8f8-4a75-955c-7ddaac426c28_2016x946.png 424w, https://substackcdn.com/image/fetch/$s_!LDz_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F798117bf-c8f8-4a75-955c-7ddaac426c28_2016x946.png 848w, https://substackcdn.com/image/fetch/$s_!LDz_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F798117bf-c8f8-4a75-955c-7ddaac426c28_2016x946.png 1272w, https://substackcdn.com/image/fetch/$s_!LDz_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F798117bf-c8f8-4a75-955c-7ddaac426c28_2016x946.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LDz_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F798117bf-c8f8-4a75-955c-7ddaac426c28_2016x946.png" width="1456" height="683" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/798117bf-c8f8-4a75-955c-7ddaac426c28_2016x946.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:683,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:189244,&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://refactoring.fm/i/189655863?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F798117bf-c8f8-4a75-955c-7ddaac426c28_2016x946.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_!LDz_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F798117bf-c8f8-4a75-955c-7ddaac426c28_2016x946.png 424w, https://substackcdn.com/image/fetch/$s_!LDz_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F798117bf-c8f8-4a75-955c-7ddaac426c28_2016x946.png 848w, https://substackcdn.com/image/fetch/$s_!LDz_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F798117bf-c8f8-4a75-955c-7ddaac426c28_2016x946.png 1272w, https://substackcdn.com/image/fetch/$s_!LDz_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F798117bf-c8f8-4a75-955c-7ddaac426c28_2016x946.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>So let&#8217;s explore them one by one, recap what we know about them as of today, and how they work together for good.</p><div><hr></div><h2>&#128295; Developer Experience</h2>
      <p>
          <a href="https://refactoring.fm/p/the-new-pyramid-of-software-engineering">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Sharing your culture, finding your allies, and reliable code quality 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #197]]></description><link>https://refactoring.fm/p/sharing-your-culture-finding-your</link><guid isPermaLink="false">https://refactoring.fm/p/sharing-your-culture-finding-your</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 02 Mar 2026 08:01:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/PhWtlhfrsWI" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, Luca here, welcome to a weekly edition of the</em>&#128161;<em> <strong>Monday Ideas</strong> </em>&#128161;<em> from Refactoring! To access all our articles, library, and community, subscribe to the <a href="https://refactoring.fm/about">full version</a>:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Make your team ship faster!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p><em>Resources: </em>&#127963;&#65039;<em> <strong><a href="https://refactoring.fm/p/library-tracks">Library</a></strong> &#8226; </em>&#128172;<em> <strong><a href="https://refactoring.fm/p/refactoring-community">Community</a> </strong>&#8226;<strong> </strong></em><strong>&#127897;&#65039;</strong><em><strong> <a href="https://refactoring.fm/podcast">Podcast</a> </strong>&#8226; </em>&#128227;<em> <strong><a href="https://airtable.com/app6T1no2xUAkvqqI/pagmohBDjtBNk9dKY/form">Advertise</a> </strong></em></p>
      <p>
          <a href="https://refactoring.fm/p/sharing-your-culture-finding-your">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[My AI Coding Workflow]]></title><description><![CDATA[To ship high-quality software that you don't need to write (or... read).]]></description><link>https://refactoring.fm/p/my-ai-coding-workflow</link><guid isPermaLink="false">https://refactoring.fm/p/my-ai-coding-workflow</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Wed, 25 Feb 2026 08:25:55 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3b48c3e1-3c66-4975-8ec5-44d399f73dc2_2238x1490.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I admit I was one of those who didn&#8217;t believe Dario Amodei when he said last year that AI would soon write 90% of the code. Instead here we are. There are indeed teams <a href="https://www.linkedin.com/feed/update/urn:li:activity:7430601338872328193/?originTrackingId=%2BiRqsayUMhj%2FdtqmRX6GiQ%3D%3D">I personally know</a> who are having close to all of their code written by AI, and are having the time of their lives.</p><p>And it&#8217;s not random teams: it&#8217;s usually the best ones. If you don&#8217;t trust my anecdotal evidence, just look at <a href="https://refactoring.fm/p/the-era-of-the-software-factory">recent reports</a>. The very best teams, who had the best DX and code quality <em>before</em> AI, are the same who are getting the most out of AI today.</p><p>Still, it&#8217;s not 100% clear <em>how</em> these teams work with AI. The internet is full of opinion pieces and people sharing their CLAUDE.md files, but these feel tactical at best, and dubious/fake at worst.</p><p>I don&#8217;t want to add more of these. The proof is in the pudding, so I said to myself: <strong>if I want to write about AI coding, I need to build something</strong>.</p><p>So here we go.</p><p>For the last 17 days, I have been working on a personal project for a macOS app. Scope and complexity are daunting enough to force me to think architecture, buy vs build, performance, rich UI, and everything I would need to cover in a real&#8212;not toy&#8212;software project. And needless to say, I would <em>never</em> be able to pull this off without AI.</p><p>Before I give you more details, let&#8217;s start with what I got today so far:</p><ul><li><p>772 commits in 17 days, for ~20,000 lines of code overall.</p></li><li><p>90% test coverage &#8212; via 500+ unit, integration, and E2E tests.</p></li><li><p>9.3/10 code health &#8212; as measured by CodeScene.</p></li><li><p>A clear, hierarchical set of docs &#8212; to navigate architecture, abstractions, and codebase structure.</p></li><li><p>A perfectly usable MVP &#8212; which I am, in fact, using every day.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lQzJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43cda95e-8adf-459c-9807-5faac3c2fb9d_1636x726.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lQzJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43cda95e-8adf-459c-9807-5faac3c2fb9d_1636x726.png 424w, https://substackcdn.com/image/fetch/$s_!lQzJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43cda95e-8adf-459c-9807-5faac3c2fb9d_1636x726.png 848w, https://substackcdn.com/image/fetch/$s_!lQzJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43cda95e-8adf-459c-9807-5faac3c2fb9d_1636x726.png 1272w, https://substackcdn.com/image/fetch/$s_!lQzJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43cda95e-8adf-459c-9807-5faac3c2fb9d_1636x726.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lQzJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43cda95e-8adf-459c-9807-5faac3c2fb9d_1636x726.png" width="1456" height="646" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/43cda95e-8adf-459c-9807-5faac3c2fb9d_1636x726.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:646,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:128278,&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://refactoring.fm/i/189024124?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43cda95e-8adf-459c-9807-5faac3c2fb9d_1636x726.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_!lQzJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43cda95e-8adf-459c-9807-5faac3c2fb9d_1636x726.png 424w, https://substackcdn.com/image/fetch/$s_!lQzJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43cda95e-8adf-459c-9807-5faac3c2fb9d_1636x726.png 848w, https://substackcdn.com/image/fetch/$s_!lQzJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43cda95e-8adf-459c-9807-5faac3c2fb9d_1636x726.png 1272w, https://substackcdn.com/image/fetch/$s_!lQzJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43cda95e-8adf-459c-9807-5faac3c2fb9d_1636x726.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>I figured out and improved various parts of the workflow over time, so that now I am comfortable with:</p><ul><li><p>Not writing any code.</p></li><li><p>Not reading <em>almost</em> any code. Say I read ~5% of it.</p></li><li><p>Not providing UI design for ~90% of the features.</p></li><li><p>Managing most interactions async via voice notes.</p></li><li><p>Having AI work autonomously for long stretches of time, so I can do something else in the meantime.</p></li></ul><p>So let&#8217;s dive into all of this, in detail. Here is what I am going to talk about:</p><ul><li><p>&#128421;&#65039; <strong>What I am building</strong> &#8212; because nothing else matters.</p></li><li><p>&#127912; <strong>My product workflow</strong> &#8212; how I work as a PM.</p></li><li><p>&#128300; <strong>How I keep tech quality</strong> &#8212; how I work as a CTO, without reading the code.</p></li><li><p>&#128176; <strong>How much I spent </strong>&#8212; the numbers nobody shows.</p></li><li><p>&#128302; <strong>What&#8217;s next</strong> &#8212; my takeaways so far, and some obvious predictions.</p></li></ul><div><hr></div><h2>&#128421;&#65039; What I am building</h2>
      <p>
          <a href="https://refactoring.fm/p/my-ai-coding-workflow">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Short backlogs, interview methods, and evergreen manager advice 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #196]]></description><link>https://refactoring.fm/p/short-backlogs-interview-methods</link><guid isPermaLink="false">https://refactoring.fm/p/short-backlogs-interview-methods</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 23 Feb 2026 08:01:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!VSgp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28c6953c-4097-411d-ba48-69119cf746db_2258x998.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, Luca here, welcome to a weekly edition of the</em>&#128161;<em> <strong>Monday Ideas</strong> </em>&#128161;<em> from Refactoring! To access all our articles, library, and community, subscribe to the <a href="https://refactoring.fm/about">full version</a>:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Make your team ship faster!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p><em>Resources: </em>&#127963;&#65039;<em> <strong><a href="https://refactoring.fm/p/library-tracks">Library</a></strong> &#8226; </em>&#128172;<em> <strong><a href="https://refactoring.fm/p/refactoring-community">Community</a> </strong>&#8226;<strong> </strong></em><strong>&#127897;&#65039;</strong><em><strong> <a href="https://refactoring.fm/podcast">Podcast</a> </strong>&#8226; </em>&#128227;<em> <strong><a href="https://airtable.com/app6T1no2xUAkvqqI/pagmohBDjtBNk9dKY/form">Advertise</a> </strong></em></p>
      <p>
          <a href="https://refactoring.fm/p/short-backlogs-interview-methods">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[How to Master Behavioral Interviews 🎤 — with Austen McDonald]]></title><description><![CDATA[Refactoring Podcast &#8226; Episode 57]]></description><link>https://refactoring.fm/p/how-to-master-behavioral-interviews-e75</link><guid isPermaLink="false">https://refactoring.fm/p/how-to-master-behavioral-interviews-e75</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Fri, 20 Feb 2026 08:02:15 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/188513236/54187e02a035d3f26750bd8af0f8512e.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<div id="youtube2-dIUZ8AcCfLg" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;dIUZ8AcCfLg&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/dIUZ8AcCfLg?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><div class="pullquote"><p><em>Listen now:<br><a href="https://www.youtube.com/@refactoringclub">YouTube</a> | <a href="https://podcasts.apple.com/us/podcast/refactoring-podcast/id1719137305">Apple</a> | <a href="https://open.spotify.com/show/7Luds9dmzZDoDC8Q7EMbSw">Spotify</a></em></p></div><p>Today&#8217;s guest is <strong>Austen McDonald</strong>, former hiring committee chair at Meta, and author of the book, &#8220;<a href="https://thebehavioral.tech/">Mastering Behavioral Interviews</a>.&#8221;</p><p>Austen, in his career, conducted more than 1,000 interviews and coached more than 200 engineers, and is here today to tell us everything about why behavioral interviews are more important than ever and how to run them right, as a candidate and as a recruiter.</p><p>So let&#8217;s dive right into the action.</p><div><hr></div><blockquote><p><em><strong>If you like the podcast, please give us a rating on your platform of choice! It means a lot to us &#8212; that&#8217;s how other people discover the show! &#11088;&#11088;&#11088;&#11088;&#11088;</strong></em></p></blockquote><div><hr></div><h2>&#129351; Interview Summary</h2><p>If you are a <strong>&#128274; paid subscriber &#128274;</strong> you will find my own <em>summary</em> of the interview below.</p><p>It&#8217;s the <strong>10-minute takeaways</strong> of what we talked about, with timestamps to the relevant video moments, for those who don&#8217;t have time to sit through the 1-hour chat.</p><p>Here is the agenda for today:</p><ol><li><p><strong>&#127897;&#65039; Why behavioral interviews matter more than ever</strong></p></li><li><p><strong>&#128269; The question behind the question: signal areas</strong></p></li><li><p><strong>&#127919; The big three questions &amp; how to nail them</strong></p></li><li><p><strong>&#128736;&#65039; Building your story catalog &amp; delivery framework</strong></p></li><li><p><strong>&#129302; AI&#8217;s impact on hiring and what interviewers look for now</strong></p></li></ol><p>&#10240;Let&#8217;s dive in &#128071;</p><div><hr></div>
      <p>
          <a href="https://refactoring.fm/p/how-to-master-behavioral-interviews-e75">
              Read more
          </a>
      </p>
   ]]></content:encoded></item></channel></rss>