<?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: 💡 Ideas]]></title><description><![CDATA[Three short engineering ideas to start the week on the right foot!]]></description><link>https://refactoring.fm/s/monday-ideas</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: 💡 Ideas</title><link>https://refactoring.fm/s/monday-ideas</link></image><generator>Substack</generator><lastBuildDate>Thu, 12 Nov 2026 09:01:44 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[Customer work, answers, and readings!]]></title><description><![CDATA[Monday Ideas &#8212; Edition 233]]></description><link>https://refactoring.fm/p/customer-work-answers-and-readings</link><guid isPermaLink="false">https://refactoring.fm/p/customer-work-answers-and-readings</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 09 Nov 2026 08:40:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sbw5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><p><em>I also publish an original essay every Wednesday. Here is the one from last week in case you missed it:</em></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;a6322ef2-51d1-495a-82b1-37e2709a435d&quot;,&quot;caption&quot;:&quot;Hey, Luca here! Welcome to a new &#128274; weekly essay &#128274; from Refactoring.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Find a broader version of yourself&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-11-04T08:02:14.651Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d5ee1fc-c6b1-4be3-ba32-62beec16fd9c_1648x1092.png&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/find-a-broader-version-of-yourself&quot;,&quot;section_name&quot;:&quot;&#129525; Essays&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:223171907,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:32,&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><div><hr></div><h2>&#128202; <a href="https://getdx.com/report/state-of-ai-impact-in-engineering-q3-report/?utm_source=refactoring-newsletter&amp;utm_medium=sponsorship&amp;utm_campaign=state-of-ai-impact-q3">AI sped up coding, but not reviews</a></h2><p><em>This week&#8217;s newsletter is brought to you by our friends at <a href="https://getdx.com/report/state-of-ai-impact-in-engineering-q3-report/?utm_source=refactoring-newsletter&amp;utm_medium=sponsorship&amp;utm_campaign=state-of-ai-impact-q3">DX</a>!</em></p><p>AI tools sped up code authoring, but review and release systems haven&#8217;t kept pace.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://getdx.com/report/state-of-ai-impact-in-engineering-q3-report/?utm_source=refactoring-newsletter&amp;utm_medium=sponsorship&amp;utm_campaign=state-of-ai-impact-q3" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sbw5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png 424w, https://substackcdn.com/image/fetch/$s_!sbw5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png 848w, https://substackcdn.com/image/fetch/$s_!sbw5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png 1272w, https://substackcdn.com/image/fetch/$s_!sbw5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sbw5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png" width="388" height="202.71484375" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:535,&quot;width&quot;:1024,&quot;resizeWidth&quot;:388,&quot;bytes&quot;:361971,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://getdx.com/report/state-of-ai-impact-in-engineering-q3-report/?utm_source=refactoring-newsletter&amp;utm_medium=sponsorship&amp;utm_campaign=state-of-ai-impact-q3&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://refactoring.fm/i/222603556?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.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_!sbw5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png 424w, https://substackcdn.com/image/fetch/$s_!sbw5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png 848w, https://substackcdn.com/image/fetch/$s_!sbw5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png 1272w, https://substackcdn.com/image/fetch/$s_!sbw5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>DX&#8217;s newest <strong>AI Impact Report</strong>, based on data from 500+ engineering organizations, shows developers opening far more pull requests each week, each more than twice the size it used to be. As a result, <strong>PRs wait more than twice as long for a first review</strong>.</p><p>Download the full report to see where delivery friction is moving and where leaders should focus next to get the most out of their AI tools &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getdx.com/report/state-of-ai-impact-in-engineering-q3-report/?utm_source=refactoring-newsletter&amp;utm_medium=sponsorship&amp;utm_campaign=state-of-ai-impact-q3&quot;,&quot;text&quot;:&quot;Download the full report&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getdx.com/report/state-of-ai-impact-in-engineering-q3-report/?utm_source=refactoring-newsletter&amp;utm_medium=sponsorship&amp;utm_campaign=state-of-ai-impact-q3"><span>Download the full report</span></a></p><div><hr></div><h2>&#129309; Ask hard questions before building for one customer</h2><p>If you build a B2B product, sooner or later a big customer asks for something that only they need, and the request usually comes with some urgency attached: a deal to close, or a renewal at risk.</p><p>I don&#8217;t think there is a strict formula to decide whether this bespoke work is worth it, but there are good questions that help you look at the problem from more angles.</p><p>First, understand whether the work is for <strong>conversion</strong> or for <strong>retention</strong>. If it&#8217;s for conversion, can you make the customer pay for part of it, as a pilot? Or can you negotiate better terms in exchange?</p><p>Then ask yourself:</p><ul><li><p><em>How much is it going to cost, as a fraction of the customer&#8217;s LTV?</em></p></li><li><p><em>How much evidence do you have that it&#8217;s really needed, and not just a random request?</em></p></li><li><p><em>Is it valuable for other customers?</em></p></li><li><p><em>Six months from now, will your product be better or worse because of it?</em></p></li></ul><p>It&#8217;s also worth sitting down with the customer to figure out what they really need, because in my experience <strong>customers are most often right about the problem, and most often wrong about the solution</strong>.</p><p>I wrote a full piece about how to organize customer work and product work in B2B teams &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;dc2a4f7f-ce53-4b9e-9f9c-c994f9a0ee32&quot;,&quot;caption&quot;:&quot;Hey, Luca here! Welcome to a &#128274; weekly essay &#128274; from Refactoring.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;&#127970; Customer work vs product work&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-07-08T07:00:06.585Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KDOH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23a086a0-7264-4a27-bff8-11f651ab1562_1520x968.png&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/customer-work-vs-product-work&quot;,&quot;section_name&quot;:&quot;&#129525; Essays&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:205507399,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:47,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#129517; Stop trying to have all the answers</h2><p>In March I talked with <strong>Richard Hughes-Jones</strong>, an executive coach who works with CTOs and founders of tech companies.</p><p>When I asked him about the most common challenges he sees in senior tech leaders right now, he didn&#8217;t give me a <em>technical</em> answer. AI is making everything move faster, but the underlying challenges are staying the same: ambiguity, complexity, uncertainty.</p><p>The problem Richard sees is that <strong>technical leaders are wired to have the answers</strong>, because that&#8217;s what got them promoted in the first place. But at the highest levels nobody has the answers, and pretending otherwise is counterproductive, especially now that nobody knows what the next couple of years will look like.</p><p>Richard also admits that telling someone to &#8220;get comfortable with uncertainty&#8221; is almost useless advice, because it&#8217;s abstract and doesn&#8217;t turn into action. So with his clients he works on sitting with the discomfort, and on designing small, safe-to-fail experiments: things you can try without damaging relationships or the business, that still give you real feedback.</p><p>You can find the full conversation with Richard here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;f74cd140-9b13-43a9-be62-e9c97037efa5&quot;,&quot;caption&quot;:&quot;Today&#8217;s sponsor is Intent by Augment.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Leading Beyond the Framework &#129517; &#8212; with Richard Hughes-Jones&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-06T08:42:52.133Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e1705c52-fe5b-44a9-a626-345d61128117_2560x1440.png&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/leading-beyond-the-framework-with&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;2f3d908f-3334-44da-9cbe-199290a0098d&quot;,&quot;id&quot;:189883444,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:12,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://karrisaarinen.com/posts/our-organizations-are-being-ddosed-from-the-inside/">Our organizations are being DDoSed from the inside</a></h4><h5>4 min &#8226; by Karri Saarinen</h5><p>Karri argues that teams and agents now ship changes faster than leaders can understand them, so companies are losing the ability to steer. And just because something already works, it doesn&#8217;t mean it belongs in the product.</p><p>A honest piece from the CEO of Linear, and it pairs well with <a href="https://refactoring.fm/p/how-ai-is-changing-engineering-management">what I wrote last week</a> about managers.</p><div><hr></div><h4>&#129352; <a href="https://www.seangoedecke.com/software-engineers-dont-get-to-be-luddites-about-ai/">Software engineers don&#8217;t get to be Luddites about AI</a></h4><h5>5 min &#8226; by Sean Goedecke</h5><p>Sean argues that engineers can&#8217;t really take the Luddites&#8217; side, because in that story we are the mechanics who built the looms, and automating other people&#8217;s work has always been our job. A bit harsh, but hard to disagree with!</p><div><hr></div><h4>&#129353; <a href="https://martinfowler.com/articles/practitioner-voice.html">Practitioner Voice</a></h4><h5>27 min &#8226; by Jim Highsmith</h5><p>Jim explores a way of writing where your authority comes from having owned the consequences of your work, instead of academic method or thought leadership polish. He also shares how he writes with AI since Parkinson&#8217;s changed how he processes language. Long one, but 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="https://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;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p>I wish you a great week.</p><p>Sincerely &#128075;<br>Luca</p>]]></content:encoded></item><item><title><![CDATA[Process migrations, shared skills, and weekly readings! 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition 232]]></description><link>https://refactoring.fm/p/process-migrations-shared-skills</link><guid isPermaLink="false">https://refactoring.fm/p/process-migrations-shared-skills</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 02 Nov 2026 09:10:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!UV6D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03baa05e-5b85-4b65-b877-235cc4b162a6_1994x1032.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><p><em>I also publish an original essay every Wednesday. Here is the one from last week in case you missed it:</em></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;13fb273d-4dcd-4dc0-9814-11468ca07ac7&quot;,&quot;caption&quot;:&quot;Hey, Luca here! Welcome to a new &#128274; weekly essay &#128274; from Refactoring.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How AI is Changing Engineering Management&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-10-28T09:34:43.289Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aec6a37b-d968-4f92-b869-12790307e023_2386x1586.png&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/how-ai-is-changing-engineering-management&quot;,&quot;section_name&quot;:&quot;&#129525; Essays&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:222333994,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:41,&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><div><hr></div><h2>&#128202; <a href="https://getdx.com/report/state-of-ai-impact-in-engineering-q3-report/?utm_source=refactoring-newsletter&amp;utm_medium=sponsorship&amp;utm_campaign=state-of-ai-impact-q3">AI sped up coding, but not reviews</a></h2><p><em>This week&#8217;s newsletter is brought to you by our friends at <a href="https://getdx.com/report/state-of-ai-impact-in-engineering-q3-report/?utm_source=refactoring-newsletter&amp;utm_medium=sponsorship&amp;utm_campaign=state-of-ai-impact-q3">DX</a>!</em></p><p>AI tools sped up code authoring. Review and release systems haven&#8217;t kept pace.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://getdx.com/report/state-of-ai-impact-in-engineering-q3-report/?utm_source=refactoring-newsletter&amp;utm_medium=sponsorship&amp;utm_campaign=state-of-ai-impact-q3" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sbw5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png 424w, https://substackcdn.com/image/fetch/$s_!sbw5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png 848w, https://substackcdn.com/image/fetch/$s_!sbw5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png 1272w, https://substackcdn.com/image/fetch/$s_!sbw5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sbw5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png" width="388" height="202.71484375" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:535,&quot;width&quot;:1024,&quot;resizeWidth&quot;:388,&quot;bytes&quot;:361971,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://getdx.com/report/state-of-ai-impact-in-engineering-q3-report/?utm_source=refactoring-newsletter&amp;utm_medium=sponsorship&amp;utm_campaign=state-of-ai-impact-q3&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://refactoring.fm/i/222603556?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.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_!sbw5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png 424w, https://substackcdn.com/image/fetch/$s_!sbw5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png 848w, https://substackcdn.com/image/fetch/$s_!sbw5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png 1272w, https://substackcdn.com/image/fetch/$s_!sbw5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05a4b1e1-dde2-4aad-9232-ef67702baa84_1024x535.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>DX&#8217;s newest <strong>AI Impact Report</strong>, based on data from 500+ engineering organizations, shows developers opening far more pull requests each week, each more than twice the size it used to be. As a result, <strong>PRs wait more than twice as long for a first review</strong>.</p><p>Download the full report to see where delivery friction is moving and where leaders should focus next to get the most out of their AI tools &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getdx.com/report/state-of-ai-impact-in-engineering-q3-report/?utm_source=refactoring-newsletter&amp;utm_medium=sponsorship&amp;utm_campaign=state-of-ai-impact-q3&quot;,&quot;text&quot;:&quot;Download the full report&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getdx.com/report/state-of-ai-impact-in-engineering-q3-report/?utm_source=refactoring-newsletter&amp;utm_medium=sponsorship&amp;utm_campaign=state-of-ai-impact-q3"><span>Download the full report</span></a></p><div><hr></div><h2>&#128666; Treat process changes like migrations</h2><p>At LDX3 in New York, <a href="https://lethain.com/">Will Larson</a> opened with a keynote about the delivery journey of his team at Imprint: from manual gates everywhere, to CI/CD, to agentic workflows.</p><p>What I liked most was that he framed each of these steps as a <strong>migration</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UV6D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03baa05e-5b85-4b65-b877-235cc4b162a6_1994x1032.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UV6D!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03baa05e-5b85-4b65-b877-235cc4b162a6_1994x1032.png 424w, https://substackcdn.com/image/fetch/$s_!UV6D!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03baa05e-5b85-4b65-b877-235cc4b162a6_1994x1032.png 848w, https://substackcdn.com/image/fetch/$s_!UV6D!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03baa05e-5b85-4b65-b877-235cc4b162a6_1994x1032.png 1272w, https://substackcdn.com/image/fetch/$s_!UV6D!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03baa05e-5b85-4b65-b877-235cc4b162a6_1994x1032.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!UV6D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03baa05e-5b85-4b65-b877-235cc4b162a6_1994x1032.png" width="728" height="377" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03baa05e-5b85-4b65-b877-235cc4b162a6_1994x1032.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:754,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:233808,&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/222603556?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03baa05e-5b85-4b65-b877-235cc4b162a6_1994x1032.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UV6D!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03baa05e-5b85-4b65-b877-235cc4b162a6_1994x1032.png 424w, https://substackcdn.com/image/fetch/$s_!UV6D!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03baa05e-5b85-4b65-b877-235cc4b162a6_1994x1032.png 848w, https://substackcdn.com/image/fetch/$s_!UV6D!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03baa05e-5b85-4b65-b877-235cc4b162a6_1994x1032.png 1272w, https://substackcdn.com/image/fetch/$s_!UV6D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03baa05e-5b85-4b65-b877-235cc4b162a6_1994x1032.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We know a lot about migrating code, and I believe most of the same logic applies to processes and workflows. Here is how Will approached it:</p><ol><li><p><strong>Understand people&#8217;s problems</strong> &#8212; there is a reason why people do things the current way, even when it looks flawed, and to build something better you need to understand those problems deeply.</p></li><li><p><strong>Get buy-in</strong> &#8212; even with clear top-down direction, the implementation should be collaborative. When Will wanted to move from Jira to Linear, he started by involving the biggest Jira fans, because if he could address their concerns, the rest of the team would be easier to migrate.</p></li><li><p><strong>Draw hard lines</strong> &#8212; inclusion matters, but once a direction is taken, resources need to support it. Will made Claude Code the recommended coding agent: people can still use something else, but they won&#8217;t get support from the platform team.</p></li><li><p><strong>Sweat the details</strong> &#8212; every migration has a long tail of things to fix and edges to smooth, so keep working on it even when it seems that most of the work is done.</p></li></ol><p>I wrote a recap of my favorite talks from LDX3 and ProductLab, including Will&#8217;s &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;22fc5919-2218-45e7-8803-15c7c9683bd8&quot;,&quot;caption&quot;:&quot;Hey, Luca here! Welcome to a &#128274; weekly essay &#128274; from Refactoring.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Best Ideas from LDX3 and ProductLab &#127942;&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-09-23T07:02:44.672Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!vjuo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7bb3db9-9ace-4170-b536-1881a7e6025f_2110x1404.png&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/the-best-ideas-from-ldx3-and-productlab&quot;,&quot;section_name&quot;:&quot;&#129525; Essays&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:216741812,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:38,&quot;comment_count&quot;:2,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#129520; Treat skills like code</h2><p>In August I talked with <strong>Charlie Guo</strong>, developer experience engineer at OpenAI, about how teams are building with agents today.</p><p>We spent a lot of time talking about the move from single-player to multi-player: how do you take the productivity gains of a few AI power users and spread them across the team?</p><p>Charlie&#8217;s answer starts from skills. He organizes them in three tiers:</p><ul><li><p><strong>&#129489;&#8205;&#128187; Personal skills</strong> &#8212; live in your local folder, and are useful only to you.</p></li><li><p><strong>&#128194; Project skills</strong> &#8212; baked into the repo, and shared with everyone working on that project.</p></li><li><p><strong>&#127970; Organization skills</strong> &#8212; hosted in internal repositories blessed by IT and security, that anyone in the company can browse and clone.</p></li></ul><p>Skills follow the same lifecycle as regular code: they are version-controlled, discoverable, they have owners, and an update process.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!db5N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e958e23-75d7-44cf-87bd-e195468a81a7_2554x1140.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!db5N!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e958e23-75d7-44cf-87bd-e195468a81a7_2554x1140.png 424w, https://substackcdn.com/image/fetch/$s_!db5N!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e958e23-75d7-44cf-87bd-e195468a81a7_2554x1140.png 848w, https://substackcdn.com/image/fetch/$s_!db5N!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e958e23-75d7-44cf-87bd-e195468a81a7_2554x1140.png 1272w, https://substackcdn.com/image/fetch/$s_!db5N!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e958e23-75d7-44cf-87bd-e195468a81a7_2554x1140.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!db5N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e958e23-75d7-44cf-87bd-e195468a81a7_2554x1140.png" width="1456" height="650" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e958e23-75d7-44cf-87bd-e195468a81a7_2554x1140.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:650,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:251121,&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/222603556?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e958e23-75d7-44cf-87bd-e195468a81a7_2554x1140.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_!db5N!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e958e23-75d7-44cf-87bd-e195468a81a7_2554x1140.png 424w, https://substackcdn.com/image/fetch/$s_!db5N!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e958e23-75d7-44cf-87bd-e195468a81a7_2554x1140.png 848w, https://substackcdn.com/image/fetch/$s_!db5N!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e958e23-75d7-44cf-87bd-e195468a81a7_2554x1140.png 1272w, https://substackcdn.com/image/fetch/$s_!db5N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e958e23-75d7-44cf-87bd-e195468a81a7_2554x1140.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>But tooling is not enough. Charlie knows people who don&#8217;t share their AI tricks because they don&#8217;t want their boss to think they are cutting corners, or because they are stack-ranked on AI proficiency and want to keep their edge. So if you lead a team, you should start from the culture side, and make sure that sharing a good workflow gets rewarded and celebrated.</p><p>You can find the full conversation with Charlie here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;bb6833fd-beda-4e20-96d5-b194471c6d1e&quot;,&quot;caption&quot;:&quot;Listen now:&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Building With Agents Today &#129302; &#8212; with Charlie Guo&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-08-07T07:00:53.190Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/JHAm58YZPIE&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/building-with-agents-today-with-charlie&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;92387196-e8f4-46de-a335-b56e984dc3e1&quot;,&quot;id&quot;:209980935,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:32,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://www.anthropic.com/engineering/redesigning-source-control">Redesigning Source Control at Anthropic</a></h4><h5>14 min &#8226; by Anthropic</h5><p>Anthropic went from about 2,500 merged changes per day in May to over 30,000 in September, and git couldn&#8217;t keep up. So they built Scion, a custom source control system designed around always-online agents, and moved the whole monorepo off git in five months.</p><p>They argue that other companies will hit the same problems soon, and I believe it.</p><div><hr></div><h4>&#129352; <a href="https://felixrieseberg.com/hunger-beats-tenure-advice-for-junior-engineers/">Hunger Beats Tenure: Advice for Junior Engineers</a></h4><h5>5 min &#8226; by Felix Rieseberg</h5><p>Felix is a hiring manager at Anthropic, and this month he stopped doing coding interviews, because Claude is better than candidates at them anyway.</p><p>He also argues that AI is good news for junior engineers: you can pick a business goal, build one bold idea over a weekend, and skip a lot of the usual red taping.</p><div><hr></div><h4>&#129353; <a href="https://yegge.ai/essays/the-counting-house/">The Counting House</a></h4><h5>32 min &#8226; by Steve Yegge</h5><p>Steve explores a pattern to address huge volumes of repetitive work: cheap models on very tight rails, one case type at a time, scored against the humans doing the same job. It&#8217;s the exact opposite of his own wide-open software factory. Long read, but worth 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="https://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;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p>I wish you a great week.</p><p>Sincerely &#128075;<br>Luca</p>]]></content:encoded></item><item><title><![CDATA[Bicycle gears, governance fences, and weekly readings! 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition 231]]></description><link>https://refactoring.fm/p/bicycle-gears-governance-fences-and</link><guid isPermaLink="false">https://refactoring.fm/p/bicycle-gears-governance-fences-and</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 26 Oct 2026 10:06:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!B7em!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a7a21e-0b2b-4079-83cf-b26bf50b891f_1024x342.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><p><em>I also publish an original essay every Wednesday. Here is the one from last week in case you missed it:</em></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;1f2bc4d1-d3b7-494f-b368-ecd7e74dd7a5&quot;,&quot;caption&quot;:&quot;Hey there! Welcome to a new edition of my monthly updates on how I build Tolaria.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Introducing Tolaria for mobile! &#128241;&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-10-21T13:13:23.211Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!IJ65!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccd54712-cd30-435a-893a-d5d5765e2233_4096x2548.png&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/introducing-tolaria-mobile&quot;,&quot;section_name&quot;:&quot;&#129525; Essays&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:221142028,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:27,&quot;comment_count&quot;:3,&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><div><hr></div><div class="callout-block" data-callout="true"><h5><em>Sponsored</em></h5><h3><a href="https://srv.buysellads.com/ads/long/x/THO6ZWIPTTTTTT3DZZ2NWTTTTTTQ26OO2VTTTTTTP4V26BETTTTTTAIZZ34HKADBQ7M6AYIL5QNULNPD23K64MBYP34T?cid=400237">Centralize VPC traffic inspection with Palo Alto Networks on AWS</a></h3><p>Most VPC security stops at the perimeter. Traffic moving laterally between VPCs can be left uninspected.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!B7em!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a7a21e-0b2b-4079-83cf-b26bf50b891f_1024x342.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!B7em!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a7a21e-0b2b-4079-83cf-b26bf50b891f_1024x342.png 424w, https://substackcdn.com/image/fetch/$s_!B7em!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a7a21e-0b2b-4079-83cf-b26bf50b891f_1024x342.png 848w, https://substackcdn.com/image/fetch/$s_!B7em!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a7a21e-0b2b-4079-83cf-b26bf50b891f_1024x342.png 1272w, https://substackcdn.com/image/fetch/$s_!B7em!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a7a21e-0b2b-4079-83cf-b26bf50b891f_1024x342.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!B7em!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a7a21e-0b2b-4079-83cf-b26bf50b891f_1024x342.png" width="1024" height="342" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85a7a21e-0b2b-4079-83cf-b26bf50b891f_1024x342.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:342,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:446301,&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/221598683?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a7a21e-0b2b-4079-83cf-b26bf50b891f_1024x342.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_!B7em!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a7a21e-0b2b-4079-83cf-b26bf50b891f_1024x342.png 424w, https://substackcdn.com/image/fetch/$s_!B7em!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a7a21e-0b2b-4079-83cf-b26bf50b891f_1024x342.png 848w, https://substackcdn.com/image/fetch/$s_!B7em!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a7a21e-0b2b-4079-83cf-b26bf50b891f_1024x342.png 1272w, https://substackcdn.com/image/fetch/$s_!B7em!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a7a21e-0b2b-4079-83cf-b26bf50b891f_1024x342.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>With this solution template, you get a pre-configured Palo Alto Networks VM-Series environment with AWS Gateway Load Balancer across four VPCs, so you can:</p><ul><li><p><strong>Three traffic flows, one inspection point:</strong> Route outbound, east-west, and inbound traffic through VM-Series via AWS Transit Gateway.</p></li><li><p><strong>Live threat simulation:</strong> A real-world exploit hits your demo app. Switch from alert to active blocking.</p></li><li><p><strong>App-ID in action:</strong> Identify SSH on a non-standard port and enforce rules by application, not topology.</p></li></ul><p>Explore the full architecture, step-by-step walkthroughs, and a live threat simulation.</p><p><strong><a href="https://srv.buysellads.com/ads/long/x/THO6ZWIPTTTTTT3DZZ2NWTTTTTTQ26OO2VTTTTTTP4V26BETTTTTTAIZZ34HKADBQ7M6AYIL5QNULNPD23K64MBYP34T?cid=400237">Get the solution template &#8250;</a></strong></p><div><hr></div><h4>Palo Alto Networks VM-Series Next-Gen Virtual Firewall</h4><p>Try Palo Alto Networks VM-Series free in AWS Marketplace.</p><p><strong><a href="https://aws.amazon.com/marketplace/pp/prodview-3xtziatyes54i">Get started &#8250;</a></strong></p><div><hr></div><h4>About AWS Marketplace:</h4><p>Visit AWS Marketplace for help finding the best solutions for your use case and add new capabilities to your tech stack with your AWS account:</p><ul><li><p>Tools are designed to plug in to your AWS workflows and integrate with your favorite AWS services</p></li><li><p>Evaluate fast with free trials and developer-tier pricing to support fast prototyping</p></li><li><p>Avoid upfront license fees and pay only for what you use, consolidating billing with your AWS account</p></li><li><p>A broad selection of tools across AI, data, observability, security and more can enhance how you build with AWS</p></li></ul></div><h2>&#128733; Governance can make you faster</h2><p>Many teams feel conflicted about putting real AI governance in place, because it looks like a brake at a moment where everybody expects you to accelerate.</p><p>I have a contrarian take: I believe <strong>good governance can be an accelerant</strong>.</p><p>In 2006, Peter Summerlin ran a simple study about kids in playgrounds. Teachers took kids to a playground with no fence, then to a comparable one with a defined border. Without the fence, the children stayed huddled around their teacher, afraid of leaving her sight. With the fence, they felt free to explore within the boundaries. So in playgrounds <strong>with fences, kids used </strong><em><strong>more</strong></em><strong> space</strong>.</p><p>People work the same way. Once they know where the fences are, they feel empowered to do more <em>within</em> them. But that&#8217;s only true if governance is <em>good</em>.</p><p>We already see this in coding. We talk about guardrails for AI coding all the time, and having strict guardrails is exactly what allows me to be more liberal with the tasks I give to my agents, and with what they can ship.</p><p>Data also seems to point the same way. A late-2025 Google Cloud / CSA study looked at agentic AI adoption by governance maturity:</p><ul><li><p><strong>Full governance</strong> &#8594; 46% adoption</p></li><li><p><strong>Partial governance</strong> &#8594; 25% adoption</p></li><li><p><strong>Still in development</strong> &#8594; 12% adoption</p></li></ul><p>Correlation is not causation, but it makes it hard to look at governance as just a tax.</p><p>I wrote a full guide about how to get started with AI governance, including what you should govern and how rules graduate from common sense to software &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:215418545,&quot;url&quot;:&quot;https://refactoring.fm/p/getting-started-with-ai-governance&quot;,&quot;publication_id&quot;:64099,&quot;embedding_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;Getting started with AI governance &#128274;&quot;,&quot;truncated_body_text&quot;:&quot;Hey there, Luca here!&quot;,&quot;date&quot;:&quot;2026-09-16T13:03:30.670Z&quot;,&quot;like_count&quot;:30,&quot;comment_count&quot;:0,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&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;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;Join 170,000+ engineers and managers getting practical ideas on engineering leadership, technical strategy and high-performing teams. Free, every week.&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;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/getting-started-with-ai-governance?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web&amp;embedding_publication_id=64099"><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">Getting started with AI governance &#128274;</div></div><div class="embedded-post-body">Hey there, Luca here&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">2 months ago &#183; 30 likes &#183; Luca Rossi</div></a></div><div><hr></div><h2>&#128690; Put gears, not modes</h2><p>In July I talked with <strong>Geoffrey Litt</strong>, design engineer at Notion, about malleable software, and he shared one of his favorite product design parables.</p><p>Imagine a bicycle whose gears are labeled not with numbers, but with modes like &#8220;gravel gear&#8221; and &#8220;uphill gear&#8221;. It sounds user-friendly, but it&#8217;s actually terrible. What do you do when you&#8217;re going uphill on gravel?</p><p>When you hide the underlying model behind labels, you take away the mental model people need to develop to handle new situations. And humans are smart! They can learn numbered gears, and then combine that knowledge creatively.</p><blockquote><p><em><strong>What malleable software means is having a smaller set of primitive components that can be reassembled to make anything, and doing a really good job introducing and teaching those components to everyone using the software, just like bicycle gears.</strong></em></p></blockquote><p>Notion is a good example of this. Every paragraph, heading, and image is a self-contained block you can drag, nest, and sync across pages. It&#8217;s a small learning cost upfront that keeps paying back over time, and now it pays back with agents too: they reuse the same primitives, so Notion agent instructions are just Notion pages.</p><p>You can find the full conversation with Geoffrey here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;6e869c3c-296f-4e64-9497-d54488e322c5&quot;,&quot;caption&quot;:&quot;Listen now:&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Rise of Malleable Software &#129513; &#8212; with Geoffrey Litt&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-07-10T07:01:01.055Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/XS56wfgAcdw&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/the-rise-of-malleable-software-with&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;50b6ac4b-7701-4864-b38e-4798ffa646da&quot;,&quot;id&quot;:205382828,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:24,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://alifeengineered.substack.com/p/on-the-death-of-amazons-writing-culture">On the Death of Amazon&#8217;s Writing Culture</a></h4><h5>7 min &#8226; by Steve Huynh</h5><p>Steve spent almost twenty years at Amazon, and he argues that its famous writing culture didn&#8217;t survive AI.</p><p>Bezos used to say you can&#8217;t write a six-page memo without clear thinking, and that is simply not true anymore, so a doc is no longer proof that someone has thought about the problem. Food for thought.</p><div><hr></div><h4>&#129352; <a href="https://karrisaarinen.com/posts/someone-behind-the-software/">Someone Behind the Software</a></h4><h5>3 min &#8226; by Karri Saarinen</h5><p>Karri argues that good products carry something of the people who make them, and that many products today feel messy because adding new capabilities is much easier than rethinking the existing ones. This is a great take, that I also needed to hear for Tolaria.</p><div><hr></div><h4>&#129353; <a href="https://felixrieseberg.com/how-to-be-more-ambitious-a-tutorial-for-humans-with-models/">How to Be More Ambitious: A Tutorial for Humans With Models</a></h4><h5>9 min &#8226; by Felix Rieseberg</h5><p>Felix works on Claude, and wrote a practical guide to using AI for more than doing the same work faster. He splits ambition into altitude, depth, and range. For example he went from asking Claude to fix single crashes to asking it to keep the apps crash-free, which first meant giving it crash reports and machines to reproduce bugs on. Lots of good prompts to steal, too!</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;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p>I wish you a great week.</p><p>Sincerely &#128075;<br>Luca</p>]]></content:encoded></item><item><title><![CDATA[Making room for hard things, stories for feedback, and weekly readings! 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition 230]]></description><link>https://refactoring.fm/p/making-room-for-hard-things-stories</link><guid isPermaLink="false">https://refactoring.fm/p/making-room-for-hard-things-stories</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 19 Oct 2026 07:01:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vOx0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b6fa4d7-e936-4424-8689-911f097c9ff7_1024x342.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right fo</em>o<em>t.</em></p><p><em>I also publish an original essay every Wednesday. Here is the one from last week in case you missed it:</em></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;ed158da2-5a49-420d-bf27-fdf891b10f15&quot;,&quot;caption&quot;:&quot;Hey, Luca here! Welcome to the &#10024;&#65039;&#65039;&#65039;&#65039;&#65039;&#65039;&#65039; monthly free essay &#10024;&#65039;&#65039;&#65039;&#65039;&#65039;&#65039;&#65039; from Refactoring.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How to Design a Good MCP Server &#128268;&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-10-15T08:06:06.996Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e2e3ac1f-658d-4890-ba05-15fcac1955dd_2046x1366.png&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/how-to-design-a-good-mcp-server&quot;,&quot;section_name&quot;:&quot;&#129525; Essays&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:219986578,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:49,&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><div><hr></div><p></p><div class="callout-block" data-callout="true"><h5><em>Sponsored</em></h5><h3><a href="https://srv.buysellads.com/ads/long/x/TCOG3WDPTTTTTTF3RXKNWTTTTTTDLQNA2VTTTTTTLTLRTBETTTTTT2Z45R36B2S5V6YUCL3JK7NNE7LYCQHFK7QW5RUT?cid=400208">Connect real-time data pipelines across your AWS stack</a></h3><p>Deliver real-time customer experiences without managing streaming infrastructure. Confluent Cloud provides a secure, fully managed Apache Kafka-based solution for event streaming &#8212; directly from your AWS account.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vOx0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b6fa4d7-e936-4424-8689-911f097c9ff7_1024x342.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vOx0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b6fa4d7-e936-4424-8689-911f097c9ff7_1024x342.png 424w, https://substackcdn.com/image/fetch/$s_!vOx0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b6fa4d7-e936-4424-8689-911f097c9ff7_1024x342.png 848w, https://substackcdn.com/image/fetch/$s_!vOx0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b6fa4d7-e936-4424-8689-911f097c9ff7_1024x342.png 1272w, https://substackcdn.com/image/fetch/$s_!vOx0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b6fa4d7-e936-4424-8689-911f097c9ff7_1024x342.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vOx0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b6fa4d7-e936-4424-8689-911f097c9ff7_1024x342.png" width="1024" height="342" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b6fa4d7-e936-4424-8689-911f097c9ff7_1024x342.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:342,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:175749,&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/220501322?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b6fa4d7-e936-4424-8689-911f097c9ff7_1024x342.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_!vOx0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b6fa4d7-e936-4424-8689-911f097c9ff7_1024x342.png 424w, https://substackcdn.com/image/fetch/$s_!vOx0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b6fa4d7-e936-4424-8689-911f097c9ff7_1024x342.png 848w, https://substackcdn.com/image/fetch/$s_!vOx0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b6fa4d7-e936-4424-8689-911f097c9ff7_1024x342.png 1272w, https://substackcdn.com/image/fetch/$s_!vOx0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b6fa4d7-e936-4424-8689-911f097c9ff7_1024x342.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See how Confluent Cloud integrates with AWS tools, including Amazon S3, Amazon Redshift, AWS Lambda, and Amazon Bedrock, to:</p><ul><li><p><strong>Accelerate development:</strong> Build real-time data pipelines connected across your AWS tools.</p></li><li><p><strong>Simplify operations:</strong> Offload event streaming management to Confluent Cloud.</p></li><li><p><strong>Scale in real time:</strong> Power event-driven and generative AI apps within your AWS environment.</p></li></ul><p>Get technical details to start building &#8212; from step-by-step tutorials and Infrastructure-as-Code templates to a free trial.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://srv.buysellads.com/ads/long/x/TCOG3WDPTTTTTTF3RXKNWTTTTTTDLQNA2VTTTTTTLTLRTBETTTTTT2Z45R36B2S5V6YUCL3JK7NNE7LYCQHFK7QW5RUT?cid=400208&quot;,&quot;text&quot;:&quot;Explore Confluent Cloud on AWS &#8594;&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://srv.buysellads.com/ads/long/x/TCOG3WDPTTTTTTF3RXKNWTTTTTTDLQNA2VTTTTTTLTLRTBETTTTTT2Z45R36B2S5V6YUCL3JK7NNE7LYCQHFK7QW5RUT?cid=400208"><span>Explore Confluent Cloud on AWS &#8594;</span></a></p><h5><em>Try Confluent Cloud for free in AWS Marketplace</em></h5><h5><a href="https://aws.amazon.com/marketplace/pp/prodview-g5ujul6iovvcy">Get started in AWS Marketplace &#8250;</a></h5></div><div><hr></div><h2>&#127939;&#8205;&#9794;&#65039; Make room for hard things</h2><p>In <a href="https://refactoring.fm/p/mental-marathoners">Mental Marathoners</a><em>,</em> I wrote that a possible consequence of intelligence getting cheap, is that the edge moves to people who still want to <strong>stretch their own thinking</strong>.</p><p>What I don&#8217;t buy is that this <em>hunger</em> is just a trait &#8212; that you either have it or you don&#8217;t. I prefer to ask myself what makes me hungry in the first place.</p><p>There is a data point about runners that stuck with me. Regular runners (4+ hours a week) are unusually affluent and educated, even though running itself is cheap. This means the <em>filter</em> is not the cost of the hobby. To me, this looks more like Maslow: once basic needs are covered (i.e. you are affluent and educated), you free up mental space for harder challenges (i.e. running).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!G2_E!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa88c3ee2-28a9-4138-8640-5431a5018d64_1478x610.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!G2_E!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa88c3ee2-28a9-4138-8640-5431a5018d64_1478x610.png 424w, https://substackcdn.com/image/fetch/$s_!G2_E!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa88c3ee2-28a9-4138-8640-5431a5018d64_1478x610.png 848w, https://substackcdn.com/image/fetch/$s_!G2_E!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa88c3ee2-28a9-4138-8640-5431a5018d64_1478x610.png 1272w, https://substackcdn.com/image/fetch/$s_!G2_E!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa88c3ee2-28a9-4138-8640-5431a5018d64_1478x610.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!G2_E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa88c3ee2-28a9-4138-8640-5431a5018d64_1478x610.png" width="1456" height="601" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a88c3ee2-28a9-4138-8640-5431a5018d64_1478x610.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:601,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:338353,&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/220501322?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa88c3ee2-28a9-4138-8640-5431a5018d64_1478x610.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_!G2_E!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa88c3ee2-28a9-4138-8640-5431a5018d64_1478x610.png 424w, https://substackcdn.com/image/fetch/$s_!G2_E!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa88c3ee2-28a9-4138-8640-5431a5018d64_1478x610.png 848w, https://substackcdn.com/image/fetch/$s_!G2_E!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa88c3ee2-28a9-4138-8640-5431a5018d64_1478x610.png 1272w, https://substackcdn.com/image/fetch/$s_!G2_E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa88c3ee2-28a9-4138-8640-5431a5018d64_1478x610.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">To make room for curiosity and willingness to become a better version of yourself, you should probably take care of everything else below</figcaption></figure></div><p>We become hungrier when the rest of our life is simple enough that a hard problem has room to be attacked.</p><p>So I think of energy like a jar. If you fill it with sand (chores, fake urgencies, a hundred open tabs), the rocks never go in. The stretch work is a rock, and <a href="https://refactoring.fm/p/how-to-organize-personal-work">in my experience</a>, you should spend at least half your time on that.</p><p>I wrote more about mental marathoners and how to stay on the right track here &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:213559716,&quot;url&quot;:&quot;https://refactoring.fm/p/mental-marathoners&quot;,&quot;publication_id&quot;:64099,&quot;embedding_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;Mental marathoners &#127939;&#8205;&#9794;&#65039;&quot;,&quot;truncated_body_text&quot;:&quot;A couple of weeks ago, I read The People Who Will Thrive in the AI Age, by David Brooks.&quot;,&quot;date&quot;:&quot;2026-09-02T07:02:07.437Z&quot;,&quot;like_count&quot;:45,&quot;comment_count&quot;:0,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&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;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;Join 170,000+ engineers and managers getting practical ideas on engineering leadership, technical strategy and high-performing teams. Free, every week.&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;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/mental-marathoners?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web&amp;embedding_publication_id=64099"><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">Mental marathoners &#127939;&#8205;&#9794;&#65039;</div></div><div class="embedded-post-body">A couple of weeks ago, I read The People Who Will Thrive in the AI Age, by David Brooks&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">2 months ago &#183; 45 likes &#183; Luca Rossi</div></a></div><div><hr></div><h2>&#128214; Use stories to deliver hard feedback</h2><p>Earlier this year I talked with Michael Lopp (Rands) about the power of stories at work, and one part I keep coming back to is <strong>how he delivers hard feedback</strong>.</p><p>He told the story of a high-performing director who had only ever gotten top marks, then suddenly got a &#8220;C&#8221; after a promotion, and got furious. Instead of saying &#8220;pull it together,&#8221; Rands walked him through a personal story of going through the same experience years earlier.</p><p>This didn&#8217;t fix things overnight &#8211; it took weeks and months of continued support &#8211; but the story created space for the person to process the feedback on their own terms, instead of locking into defense.</p><blockquote><p><em><strong>Their job is to choose to decide whether they want to learn or not. It&#8217;s really important. If they don&#8217;t hear the story, if they don&#8217;t hear the lesson, they&#8217;re not going to do anything.</strong></em></p></blockquote><p>When coaching or managing people, we should assume they are capable and resourceful. In this context, stories can give just enough input to unblock someone, without spoon-feeding the answer. They get to own the conclusion, and that ownership is often what makes them actually act on it.</p><p>You can find the full conversation with Michael here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;c1268134-3243-4ad3-8530-a2036b8c6416&quot;,&quot;caption&quot;:&quot;Listen now:&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Power of Stories &#9997;&#65039; &#8212; with Rands&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-06-26T07:01:48.847Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/56qoZulS5Rg&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/the-power-of-stories-with-michael&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;e2316043-1272-48fe-8fc8-32127fe6bd8b&quot;,&quot;id&quot;:203274265,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:14,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://charity.wtf/p/if-your-team-is-happy-are-you-doing">If Your Team Is Happy, Are You Doing a Good Job?</a></h4><h5>9 min &#8226; by Charity Majors</h5><p>Charity goes back to the ZIRP-era belief that if your team is happy, you are doing a good job, and explains how psychological safety drifted from being about learning and performance to being about never feeling bad at work.</p><p>I agree with her that frustrating people and telling them no is part of a manager&#8217;s job, because growth is uncomfortable. Great read, and part of a longer conversation with Cat Hicks that is worth catching up.</p><div><hr></div><h4>&#129352; <a href="https://www.seangoedecke.com/softwares-centaur-age-may-last-decades/">Software&#8217;s Centaur Age May Last Decades</a></h4><h5>5 min &#8226; by Sean Goedecke</h5><p>Sean argues we are living in the centaur age of software, where engineers paired with AI beat both unassisted engineers and unsupervised agents, and that this phase may last decades, like it did in chess.</p><p>I don&#8217;t know if he is right about the timeline (nobody really does), but I like his advice a lot: don&#8217;t jump ship early, and spend your energy figuring out what value humans still add.</p><div><hr></div><h4>&#129353; <a href="https://rdel.substack.com/p/rdel-163-how-do-ai-coding-assistants">How Do AI Coding Assistants Change the Shape of Eng Work?</a></h4><h5>4 min &#8226; by Lizzie Matusov</h5><p>Lizzie covers a six-month study on how AI assistants reshape engineers&#8217; days, and the results are mixed: perceived productivity held at 84%, but the share of engineers reporting a worse developer experience nearly doubled, from 14% to 27%.</p><p>Time moved from writing code to directing and checking AI output, and focus took the hardest hit. I liked the practical advice at the end, especially batching AI review into set blocks and keeping design work and hard debugging on separate, protected time.</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>I wish you a great week.</p><p>Sincerely &#128075;<br>Luca</p>]]></content:encoded></item><item><title><![CDATA[Knowledge capturing, human relationships, and weekly readings! 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition 229]]></description><link>https://refactoring.fm/p/knowledge-capturing-human-relationships</link><guid isPermaLink="false">https://refactoring.fm/p/knowledge-capturing-human-relationships</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 12 Oct 2026 06:02:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!knmA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13bda395-9b52-407c-b109-1c8ee6a347f4_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="native-audio-embed" data-component-name="AudioPlaceholder" data-attrs="{&quot;label&quot;:null,&quot;mediaUploadId&quot;:&quot;2e5b4f91-1b2c-4af5-bd71-4d6c36c56e46&quot;,&quot;duration&quot;:231.94122,&quot;downloadable&quot;:false,&quot;isEditorNode&quot;:true}"></div><p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><p><em>I also publish an original essay every Wednesday. Here is the one from last week in case you missed it:</em></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;f5a8b58a-4f4c-4f65-8989-8899723eeed8&quot;,&quot;caption&quot;:&quot;Hey there!&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Do You Need Staging in 2026? &#128666;&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-10-07T07:54:38.756Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!q-x4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aff5793-1350-4009-b5a1-192529ad0f15_1686x1128.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/do-you-need-staging-in-2026&quot;,&quot;section_name&quot;:&quot;&#129525; Essays&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:218773833,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:38,&quot;comment_count&quot;:3,&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><div><hr></div><h3>Hyperscale Remediation: Autonomously Secure Your Software Estate</h3><p><em>This week&#8217;s newsletter is brought to you by our friends at Blitzy!</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://blitzy.com/sandbox?utm_medium=paid_media&amp;utm_source=newsletter_refactoring&amp;utm_campaign=proactiveinsight" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!knmA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13bda395-9b52-407c-b109-1c8ee6a347f4_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!knmA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13bda395-9b52-407c-b109-1c8ee6a347f4_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!knmA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13bda395-9b52-407c-b109-1c8ee6a347f4_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!knmA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13bda395-9b52-407c-b109-1c8ee6a347f4_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!knmA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13bda395-9b52-407c-b109-1c8ee6a347f4_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/13bda395-9b52-407c-b109-1c8ee6a347f4_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2187063,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://blitzy.com/sandbox?utm_medium=paid_media&amp;utm_source=newsletter_refactoring&amp;utm_campaign=proactiveinsight&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://refactoring.fm/i/219391260?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13bda395-9b52-407c-b109-1c8ee6a347f4_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!knmA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13bda395-9b52-407c-b109-1c8ee6a347f4_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!knmA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13bda395-9b52-407c-b109-1c8ee6a347f4_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!knmA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13bda395-9b52-407c-b109-1c8ee6a347f4_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!knmA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13bda395-9b52-407c-b109-1c8ee6a347f4_1920x1080.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Security teams don&#8217;t need another list of alerts. They need to know which vulnerabilities are reachable, exposed, and safe to fix. Blitzy understands your entire software estate and, through Proactive Insights, surfaces known and previously undiscovered vulnerabilities in the enterprise codebase and remediates them autonomously. It traces each finding through execution paths, identifies dependencies, and validates remediation. Blitzy then turns prioritized risks into batches of tested pull requests for engineers to review.</p><p>The result: less alert noise, faster remediation, and confidence that each fix is safe. Find risk in context and remediate it securely at enterprise scale.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blitzy.com/sandbox?utm_medium=paid_media&amp;utm_source=newsletter_refactoring&amp;utm_campaign=proactiveinsight&quot;,&quot;text&quot;:&quot;Try on your codebase today&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blitzy.com/sandbox?utm_medium=paid_media&amp;utm_source=newsletter_refactoring&amp;utm_campaign=proactiveinsight"><span>Try on your codebase today</span></a></p><div><hr></div><p></p><h2>&#128218; Knowledge capture compounds engineering quality</h2><p>In April, Rob Zuber and I wrapped up our software factory series with an article on compounding. We asked: how do teams actually get better over time, instead of just shipping more?</p><p>I believe <strong>knowledge capture</strong> is one of the few things in engineering that truly compounds.</p><p>Teams usually capture too little of it. They especially lose decisions, forgetting <em>why</em> systems work the way they do.</p><p>There is basically no excuse today for not getting this right, because capturing and processing information is much cheaper than before. Meeting notes, ADRs, product decisions, can all be captured, summarized, updated, and reused by agents.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oCFj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4df95a-1639-4dac-a63e-522783ed86f6_1456x521.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oCFj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4df95a-1639-4dac-a63e-522783ed86f6_1456x521.webp 424w, https://substackcdn.com/image/fetch/$s_!oCFj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4df95a-1639-4dac-a63e-522783ed86f6_1456x521.webp 848w, https://substackcdn.com/image/fetch/$s_!oCFj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4df95a-1639-4dac-a63e-522783ed86f6_1456x521.webp 1272w, https://substackcdn.com/image/fetch/$s_!oCFj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4df95a-1639-4dac-a63e-522783ed86f6_1456x521.webp 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!oCFj!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4df95a-1639-4dac-a63e-522783ed86f6_1456x521.webp" width="1200" height="429.3956043956044" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ed4df95a-1639-4dac-a63e-522783ed86f6_1456x521.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:521,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:43778,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://refactoring.fm/i/219391260?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4df95a-1639-4dac-a63e-522783ed86f6_1456x521.webp&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_!oCFj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4df95a-1639-4dac-a63e-522783ed86f6_1456x521.webp 424w, https://substackcdn.com/image/fetch/$s_!oCFj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4df95a-1639-4dac-a63e-522783ed86f6_1456x521.webp 848w, https://substackcdn.com/image/fetch/$s_!oCFj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4df95a-1639-4dac-a63e-522783ed86f6_1456x521.webp 1272w, https://substackcdn.com/image/fetch/$s_!oCFj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4df95a-1639-4dac-a63e-522783ed86f6_1456x521.webp 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So docs become an asset that improves the development loop, instead of a tax. And the more context the team captures, the more coherent decisions the AI can make on the next project.</p><p>This is especially important for building the right thing, as opposed to simply the <em>next</em> thing. A codebase becomes easier to steer when future work can see past decisions.</p><p>Read the full article here &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:195748040,&quot;url&quot;:&quot;https://refactoring.fm/p/the-compounding-software-factory&quot;,&quot;publication_id&quot;:64099,&quot;embedding_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 Compounding Software Factory &#128200;&quot;,&quot;truncated_body_text&quot;:&quot;Hey there, Luca here!&quot;,&quot;date&quot;:&quot;2026-04-29T07:55:12.038Z&quot;,&quot;like_count&quot;:61,&quot;comment_count&quot;:2,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&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;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;Join 170,000+ engineers and managers getting practical ideas on engineering leadership, technical strategy and high-performing teams. Free, every week.&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;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/the-compounding-software-factory?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web&amp;embedding_publication_id=64099"><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 Compounding Software Factory &#128200;</div></div><div class="embedded-post-body">Hey there, Luca here&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">6 months ago &#183; 61 likes &#183; 2 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>&#129309; Good engineering is an exercise in human relationships</h2><p>Two years ago I had Kent Beck on the podcast, and we talked about Extreme Programming and TDD. I rewatched that interview recently to figure out what has changed (and what has not) since then, and a part that stuck with me is when he said <strong>good engineering is an exercise in human relationships</strong>.</p><p>This is easy to miss because you may just treat XP as a bag of techniques: short cycles, tests, pairing, reviews, and so on. But all of these only work if people communicate and give each other feedback.</p><p>This ties in with Kent&#8217;s idea that Agile goes largely <em>against </em>traditional power structures. Waterfall represents a fatal attraction for many teams because it replaces grassroots communication with a plan that gets transmitted down through hierarchy.</p><p>If the human relationships are missing, you can install the practices and still not have the actual engineering.</p><p>You can find the full conversation with Kent here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;be4fc3ae-d066-4f49-8438-764117c25e29&quot;,&quot;caption&quot;:&quot;Today&#8217;s guest is Kent Beck, original signer of the Agile manifesto, creator of Extreme Programming, and all-round programming legend!&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The State of Software Engineering &#128296; &#8212; with Kent Beck&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;id&quot;:24333739,&quot;name&quot;:&quot;Kent Beck&quot;,&quot;bio&quot;:&quot;Programmer, artist, coach coach, singer/guitarist, peripatetic. Learning to be me. Full-time content producer. Mailto:kentlbeck@gmail.com&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%2F000da410-0ed6-4a25-80b1-6a46e964ae0b_242x242.jpeg&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:100,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://newsletter.kentbeck.com/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://newsletter.kentbeck.com&quot;,&quot;primaryPublicationName&quot;:&quot;Software Design: Tidy First?&quot;,&quot;primaryPublicationId&quot;:256838}],&quot;post_date&quot;:&quot;2024-02-16T06:35:03.454Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/24ce821c-95bc-43cb-86a3-b5e8cb2d798b_2696x1516.png&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/the-state-of-software-engineering&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;bfc2c106-fb41-47db-bd5c-d902be14d264&quot;,&quot;id&quot;:141689319,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:42,&quot;comment_count&quot;:1,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://franciscotrindade.me/blog/the-kids-are-alright">The Kids Are Alright</a></h4><h5>6 min &#8226; by Francisco Trindade</h5><p>Francisco takes on the question of whether we should still hire junior engineers, and his answer is a strong yes. If the job of a senior becomes leading a project by orchestrating agents, the job of a junior will be to lead simpler projects in the same way. And if juniors have nothing meaningful to do on your team, that probably says more about your process than about them. I loved this one.</p><div><hr></div><h4>&#129352; <a href="https://avivbenyosef.com/software-factories-are-a-local-maximum/">Software Factories Are a Local Maximum</a></h4><h5>3 min &#8226; by Aviv Ben-Yosef</h5><p>Aviv makes a great point: agents can make us lose the healthy friction that made us think about <em>why</em> we were building something. I have written a lot about software factories myself, and I 100% agree with him.</p><div><hr></div><h4>&#129353; <a href="https://refactoringenglish.com/excerpts/write-an-effective-design-doc/">How to Write an Effective Software Design Doc</a></h4><h5>15 min &#8226; by Michael Lynch</h5><p>Michael wrote design docs at Google and Microsoft, and this is his full playbook on when a doc is worth it, what belongs in it, and what doesn&#8217;t. I feel this is even more relevant today, since a good design doc is pretty much the context you want to give your agents (or have them help you write anyway).</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[High agency, personal growth, and weekly readings! 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #228]]></description><link>https://refactoring.fm/p/high-agency-personal-growth-and-weekly</link><guid isPermaLink="false">https://refactoring.fm/p/high-agency-personal-growth-and-weekly</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 05 Oct 2026 10:00:57 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><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><p><em>I also publish an original essay every Wednesday. Here is the one from last week in case you missed it:</em></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;b98bd593-b60a-4ddf-b0ad-6cf234172367&quot;,&quot;caption&quot;:&quot;Hey, Luca here! Welcome to a new &#128274; weekly essay &#128274; from Refactoring.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How to Run Good Agents in Production &#128678;&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-09-30T10:03:51.439Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/14c008a1-9712-4759-ab77-8fbe367b4948_1762x1166.png&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/how-to-run-good-agents-in-production&quot;,&quot;section_name&quot;:&quot;&#129525; Essays&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:218024608,&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><div><hr></div><h2>&#128421;&#65039; <a href="https://www.linkedin.com/events/7508580324667465728/?viewAsMember=true">Coding agents need more than a fast loop</a></h2><p><em>This week&#8217;s newsletter is brought to you by our friends at <a href="https://www.linkedin.com/events/7508580324667465728/?viewAsMember=true">Blitzy</a>!</em></p><p>Coding agents have sped up individual tasks, but they haven&#8217;t solved the coordination, validation, and handoffs that determine how quickly software ships, especially the enterprise one!</p><p>Tomorrow join <a href="https://www.linkedin.com/in/sid-pardeshi">Sid</a>, CTO and co-founder of Blitzy, for a live session on what changes when a system can hold context across an entire codebase&#8212;not just a single file or function.</p><p>He&#8217;ll walk through a real project in Blitzy, covering reverse engineering, tech spec generation, the Agent Action Plan, code generation, and PR Review, including where human review gates the process. There will also be a Q&amp;A at the end &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.linkedin.com/events/7508580324667465728/?viewAsMember=true&quot;,&quot;text&quot;:&quot;Save your seat!&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.linkedin.com/events/7508580324667465728/?viewAsMember=true"><span>Save your seat!</span></a></p><div><hr></div><h2>&#128640; Create high-agency engineers</h2><p>Out of the various interviews / case studies we did last year, one of those that aged better is the one with Greg from Graphite.</p><p>I think it&#8217;s because we talked very little about tech, and more about values and culture. In particular, Graphite is obsessed with building a team where engineers have high agency.</p><p>What does a high-agency engineer look like? For Greg, it&#8217;s someone who owns problems end-to-end, which allows for:</p><ul><li><p><strong>More productivity</strong> &#8212; less back-and-forth, less waiting, less &#8220;that&#8217;s not my job&#8221;.</p></li><li><p><strong>More fulfillment</strong> &#8212; people who have real impact stay engaged, grow faster, and stick around longer.</p></li></ul><p>High agency, though, it&#8217;s not (only) a personal trait &#8212; it needs to be <em>enabled</em> by your team environment. For Greg, at a team level, agency comes from three things:</p><ol><li><p><strong>Purpose</strong> &#8212; a clear vision of where you are going and why it matters.</p></li><li><p><strong>Permission</strong> &#8212; freedom to go after big things, make decisions, and occasionally get things wrong.</p></li><li><p><strong>Simplicity</strong> &#8212; cognitive load low enough that ownership feels like a superpower, not a burden.</p></li></ol><p>To make this happen, for example, Graphite is extremely light on product management: a couple of PMs for 30+ engineers. Engineers need to fill the gaps: talk to stakeholders, prototype, dogfood, and push work forward without waiting to be unblocked.</p><p>To be honest, they also have an <em>unfair</em> advantage: they build a dev tool, so their engineers <em>are</em> their users. Which means product intuition comes for free.</p><p>But for everyone else, the principle holds: get engineers closer to customers. The difference is you have to invest more intentionally about it:</p><ul><li><p><strong>Bring engineers to customers</strong> &#8212; sales calls, user interviews, support escalations. First-hand experience and empathy beats summaries.</p></li><li><p><strong>Make context accessible</strong> &#8212; record calls, share clips, pipe tickets into Slack.</p></li><li><p><strong>Dogfood relentlessly</strong> &#8212; even if the product is not &#8220;for&#8221; engineers, find ways to make them use it.</p></li></ul><p>I wrote a full case study about how Graphite ships &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:180384931,&quot;url&quot;:&quot;https://refactoring.fm/p/how-graphite-ships&quot;,&quot;publication_id&quot;:64099,&quot;embedding_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 Graphite Ships &#128674;&quot;,&quot;truncated_body_text&quot;:&quot;It&#8217;s a weird time for engineering teams.&quot;,&quot;date&quot;:&quot;2025-12-03T08:02:10.246Z&quot;,&quot;like_count&quot;:19,&quot;comment_count&quot;:0,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&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;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;Join 170,000+ engineers and managers getting practical ideas on engineering leadership, technical strategy and high-performing teams. Free, every week.&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;subscriber&quot;:null}},{&quot;id&quot;:7119536,&quot;name&quot;:&quot;Greg Foster&quot;,&quot;handle&quot;:&quot;gmfoster&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f2eb87cb-299b-478a-8378-d1b6de848cf0_709x709.png&quot;,&quot;bio&quot;:&quot;Cofounder of graphite.dev - building the future of code review&quot;,&quot;profile_set_up_at&quot;:&quot;2022-07-28T12:10:27.981Z&quot;,&quot;reader_installed_at&quot;:&quot;2023-06-11T22:49:23.940Z&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:null,&quot;subscriber&quot;:null},&quot;primaryPublicationId&quot;:1019304,&quot;primaryPublicationName&quot;:&quot;Small Diffs - by Greg Foster&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://smalldiffs.gmfoster.com&quot;,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://smalldiffs.gmfoster.com/subscribe?&quot;}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/how-graphite-ships?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web&amp;embedding_publication_id=64099"><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 Graphite Ships &#128674;</div></div><div class="embedded-post-body">It&#8217;s a weird time for engineering teams&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">a year ago &#183; 19 likes &#183; Luca Rossi and Greg Foster</div></a></div><div><hr></div><h2>&#129517; Growth trajectory &gt;&gt; AI fluency</h2><p>Greg&#8217;s story made me think about my interview with <strong>Austen McDonald</strong>, former hiring committee chair at Meta, and author of <em>Mastering Behavioral Interviews</em>, where we discussed how AI is reshaping how engineers get assessed.</p><p>Austen recommends evaluating AI skills in <em>both</em> technical and behavioral rounds, but the questions should be different. In behavioral interviews, stories are king. So you may ask something like <em>&#8220;Tell me about a time you used AI and it didn&#8217;t work out.&#8221;</em>, instead of abstract prompts like <em>&#8220;How do you think about AI?&#8221;</em></p><p>But the strongest predictor is not current AI usage at all. It is <strong>growth signal</strong>: is this person staying on top of industry trends, running side projects, adapting when the ground moves? This has always been important, but now more than ever.</p><blockquote><p><em>&#8220;The most important thing about this person is not how they use AI right now, but how they are going to be adapting to using AI as the landscape changes.&#8221;</em></p></blockquote><p>Austen particularly focuses on <strong>ownership</strong>. As AI handles more of the stack, &#8220;full stack&#8221; expands toward more areas of the business: customers, go-to-market. Does the candidate reach for more end-to-end ownership? Are they willing to do so?</p><p>You can find the full conversation with Austen here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;d553be7c-1aab-41d1-a170-d2e357f642d4&quot;,&quot;caption&quot;:&quot;Today&#8217;s sponsor is Intent by Augment.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How to Master Behavioral Interviews &#127908; &#8212; with Austen McDonald&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-02-20T08:02:15.756Z&quot;,&quot;cover_image&quot;:&quot;https://substack-video.s3.amazonaws.com/video_upload/post/188513236/e843a4d8-46f5-4636-8662-eedc0f84a672/transcoded-03602.png&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/how-to-master-behavioral-interviews-e75&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;e843a4d8-46f5-4636-8662-eedc0f84a672&quot;,&quot;id&quot;:188513236,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:24,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://blog.codinghorror.com/if-we-do-not-stop-to-help-each-other-what-do-we-become/">If We Do Not Stop to Help Each Other, What Do We Become?</a></h4><h5>3 min &#8226; by Jeff Atwood</h5><p>Jeff shares a great message from a developer who once got through a dangerous deployment because strangers on Stack Overflow chose to help him. An LLM could have provided the same (or a better?!) answer, but not the feeling that somebody cared. We need that reminder!</p><div><hr></div><h4>&#129352; <a href="https://www.aicelabs.com/articles/dishwasher-mode-for-ai-tasks">Dishwasher Mode for AI Tasks</a></h4><h5>1 min &#8226; by Clemens Adolphs</h5><p>A dishwasher is slower than washing plates by hand, but we don&#8217;t care, because it still frees up our time. Clemens uses the same frame for AI: give it small, annoying tasks off the critical path, then care more about reliable completion than raw speed. I liked this a lot.</p><div><hr></div><h4>&#129353; <a href="https://www.thoughtworks.com/insights/topic/sensible-defaults">The Sensible Defaults Playbook</a></h4><h5>2 min &#8226; by Thoughtworks</h5><p>Thoughtworks shares its collection of good defaults. Their approach is to have defaults remove recurring friction, but without becoming dogma. Start with practices that usually work, adapt them to the context, and review them as the environment changes.</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[Outer loop, gaming tests, and weekly readings! 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #227]]></description><link>https://refactoring.fm/p/outer-loop-gaming-tests-and-weekly</link><guid isPermaLink="false">https://refactoring.fm/p/outer-loop-gaming-tests-and-weekly</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 28 Sep 2026 08:23:11 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><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><p><em>I also publish an original essay every Wednesday. Here is the one from last week in case you missed it:</em></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;9277a4c4-003c-40bb-860e-fe995b97cd54&quot;,&quot;caption&quot;:&quot;Hey, Luca here! Welcome to a &#128274; weekly essay &#128274; from Refactoring.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Best Ideas from LDX3 and ProductLab &#127942;&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-09-23T07:02:44.672Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!vjuo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7bb3db9-9ace-4170-b536-1881a7e6025f_2110x1404.png&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/the-best-ideas-from-ldx3-and-productlab&quot;,&quot;section_name&quot;:&quot;&#129525; Essays&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:216741812,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:36,&quot;comment_count&quot;:2,&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><div><hr></div><h2>&#128218; <a href="https://fandf.co/3TnGYZ1">Master production-grade orchestration, for free</a>!</h2><p><em>This week&#8217;s newsletter is brought to you by our friends at <a href="https://fandf.co/3TnGYZ1">Kestra</a>!</em></p><p>A few months ago we published an article about <a href="https://refactoring.fm/p/how-to-orchestrate-ai-workflows?utm_source=publication-search">how to orchestrate AI workflows</a>, together with the team at Kestra, an awesome open source project used by the teams at Apple, JPMorgan, and more.</p><p>Today I am happy to help them spread the word about the <a href="https://fandf.co/3TnGYZ1">Kestra Academ</a>y, where you can find self-paced courses on infrastructure automation, AI workflows, and standardizing orchestration across your engineering org.</p><p>In the academy, you can learn how to govern complex workflows and start running production pipelines the same week.</p><p>You should check it out! &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fandf.co/3TnGYZ1&quot;,&quot;text&quot;:&quot;Learn how to run orchestration&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fandf.co/3TnGYZ1"><span>Learn how to run orchestration</span></a></p><div><hr></div><h2>&#127937; Faster coding vs faster delivery</h2><p>Most AI coding tools optimize the <strong>inner loop</strong>: you describe a feature, watch the agent write the code, and get something working a few minutes later.</p><p>This is where AI has delivered the most visible improvements, but it is just a small part of how software gets shipped. There is an <strong>outer loop</strong> too: deciding what is worth doing, shaping and reviewing the solution, releasing it, and learning from production.</p><p>If you don&#8217;t improve both, the constraints move elsewhere:</p><ul><li><p><strong>Reviews</strong> &#8212; agents create more PRs than people can reasonably inspect.</p></li><li><p><strong>Shaping product</strong> &#8212; the team can build faster than it can decide what good work looks like.</p></li><li><p><strong>Customer signal</strong> &#8212; shipping the wrong thing faster is still waste.</p></li></ul><p>At a small scale, this is the same <a href="https://refactoring.fm/p/acceleration-whiplash">acceleration whiplash</a> I have experienced with <a href="https://tolaria.md/">Tolaria</a>. Starting work is cheap, but my ability to review it, decide what is good enough, and create the next piece of work does not scale at the same rate.</p><p>So the goal should be end-to-end throughput, which requires a workflow<em> </em>that encompasses both the inner and the outer loop.</p><p>I wrote a full case study about how the guys at TRM are doing this &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;39d4fe82-118c-4a79-9cbb-c0160a7aaa24&quot;,&quot;caption&quot;:&quot;Hey there, Luca here!&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;A Case Study in AI Product Development &#128300;&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-07-29T07:31:16.597Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!sCNl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcdf5bd1-2bce-4b88-ae47-2e5e43c373b9_1274x1154.png&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/a-case-study-in-ai-product-development&quot;,&quot;section_name&quot;:&quot;&#129525; Essays&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:208835589,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:56,&quot;comment_count&quot;:3,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#129514; Agents will game your tests</h2><p>When I spoke with <strong>Anush Elangovan</strong>, VP of AI Software at AMD, he described a funnel where creativity is allowed to run wild at the top, but progressively more human judgment is needed as code moves toward production.</p><p>He also shared an entertaining story about building <a href="https://rocm.blogs.amd.com/software-tools-optimization/spur-gpu-job/README.html">Spur</a>, an AI-native job scheduler. The agents writing the code were so &#8220;smart&#8221; that they found a shortcut: instead of actually running unit tests on hardware, they simulated the hardware and reported success.</p><blockquote><p><em>&#8220;The agents were so smart that they would simulate the hardware and pass the unit test and say &#8216;yes, success.&#8217; We had to say no, no, no &#8212; you never simulate the hardware. You have to actually run the test on hardware before you can promote a PR.&#8221;</em></p></blockquote><p>That forced the team to build a <em>superset</em> of the guardrails they previously had for humans. Test harnesses now need to account for <strong>adversarial agent behavior</strong>. The result, Anush said, is a quality system roughly 10x more comprehensive than what was needed when humans were the only contributors.</p><p>I have found this to be a useful posture: assume agents will optimize for passing the tests, not necessarily respecting their <em>spirit,</em> and design accordingly.</p><p>You can find the full conversation with Anush here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;236e79ed-af40-4e1f-b222-1553547e8c71&quot;,&quot;caption&quot;:&quot;Listen now:&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Speed is the Only Moat &#127950;&#65039; &#8212; with Anush Elangovan&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-07-17T07:00:22.613Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/w2F-u0kJllA&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/speed-is-the-only-moat-with-anush&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;18e4722b-3fa6-492d-a5a0-5383a03f33da&quot;,&quot;id&quot;:206247034,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:24,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://skamille.medium.com/the-managers-path-in-the-age-of-ai-279cb6611d66">The Manager&#8217;s Path in the Age of AI</a></h4><h5>13 min &#8226; by Camille Fournier</h5><p>Camille asks what still belongs to managers when AI raises individual output and eats the small day-to-day interactions that build trust and rapport across an org. This is the written version of the talk I heard at LDX3. I loved 100% of it and it gave me a lot to think about.</p><div><hr></div><h4>&#129352; <a href="https://theengineeringmanager.substack.com/p/code-yellow-code-red">Code Yellow, Code Red</a></h4><h5>11 min &#8226; by James Stanier</h5><p>James walks through declaring a Code Yellow after months of instability eroded some customer trust. Running it well means clear communication, defined goals, and company-wide support to fix problems, without blame.</p><div><hr></div><h4>&#129353; <a href="https://lethain.com/software-factory-experiment/">Trying the Software Factory Pattern</a></h4><h5>3 min &#8226; by Will Larson</h5><p>Will is trying a &#8220;software factory&#8221; loop: agents audit the project&#8217;s goals and metrics, keep track of state on Linear, work on the non-blocked tasks, and re-check when the description goes stale. This was short and practical, and a good read.</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;Run a better engineering team&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://refactoring.fm/subscribe?"><span>Run a better engineering team</span></a></p><p>See you next week!<br>Luca</p>]]></content:encoded></item><item><title><![CDATA[Growing juniors, native AI products, and weekly readings! 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #225]]></description><link>https://refactoring.fm/p/growing-juniors-native-ai-products</link><guid isPermaLink="false">https://refactoring.fm/p/growing-juniors-native-ai-products</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 21 Sep 2026 07:02:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!O-mJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b65a43-4019-498d-ab8d-aafd90ce76f9_2048x1072.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><p><em>I also publish an original essay every Wednesday. Here is the one from last week in case you missed it:</em></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;b1377770-357e-439b-b4bb-b805d65cc1a7&quot;,&quot;caption&quot;:&quot;Hey there, Luca here!&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Getting started with AI governance &#128274;&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-09-16T13:03:30.670Z&quot;,&quot;cover_image&quot;:null,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/getting-started-with-ai-governance&quot;,&quot;section_name&quot;:&quot;&#129525; Essays&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:215418545,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:27,&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><div><hr></div><h3>&#128296; <a href="https://blitzy.com/sandbox?utm_medium=paid_media&amp;utm_source=newsletter_refactoring&amp;utm_campaign=sandbox">Autonomous Software Dev for the Enterprise</a></h3><p><em>This week&#8217;s newsletter is brought to you by our friends at <a href="https://blitzy.com/sandbox?utm_medium=paid_media&amp;utm_source=newsletter_refactoring&amp;utm_campaign=sandbox">Blitzy</a>!</em></p><p><span>Blitzy is built for large, </span><strong><span>complex software projects</span></strong><span> that other coding agents cannot handle: large-scale refactors, scaled vulnerability remediation, and undocumented legacy systems.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!O-mJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b65a43-4019-498d-ab8d-aafd90ce76f9_2048x1072.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!O-mJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b65a43-4019-498d-ab8d-aafd90ce76f9_2048x1072.png 424w, https://substackcdn.com/image/fetch/$s_!O-mJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b65a43-4019-498d-ab8d-aafd90ce76f9_2048x1072.png 848w, https://substackcdn.com/image/fetch/$s_!O-mJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b65a43-4019-498d-ab8d-aafd90ce76f9_2048x1072.png 1272w, https://substackcdn.com/image/fetch/$s_!O-mJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b65a43-4019-498d-ab8d-aafd90ce76f9_2048x1072.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!O-mJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b65a43-4019-498d-ab8d-aafd90ce76f9_2048x1072.png" width="462" height="241.78846153846155" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/76b65a43-4019-498d-ab8d-aafd90ce76f9_2048x1072.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:762,&quot;width&quot;:1456,&quot;resizeWidth&quot;:462,&quot;bytes&quot;:2058069,&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/215421733?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b65a43-4019-498d-ab8d-aafd90ce76f9_2048x1072.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_!O-mJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b65a43-4019-498d-ab8d-aafd90ce76f9_2048x1072.png 424w, https://substackcdn.com/image/fetch/$s_!O-mJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b65a43-4019-498d-ab8d-aafd90ce76f9_2048x1072.png 848w, https://substackcdn.com/image/fetch/$s_!O-mJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b65a43-4019-498d-ab8d-aafd90ce76f9_2048x1072.png 1272w, https://substackcdn.com/image/fetch/$s_!O-mJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b65a43-4019-498d-ab8d-aafd90ce76f9_2048x1072.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>Blitzy&#8217;s Sandbox lets engineers evaluate Bitzy on their own software estate, at their own pace. Eligible organizations can connect real applications, </span><strong><span>reverse-engineer up to 1 million lines of code</span></strong><span>, generate up to 25,000 lines of E2E tested code, and surface prioritized security vulnerabilities across their software estate.</span></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blitzy.com/sandbox?utm_medium=paid_media&amp;utm_source=newsletter_refactoring&amp;utm_campaign=sandbox&quot;,&quot;text&quot;:&quot;Try Blitzy on your codebase&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blitzy.com/sandbox?utm_medium=paid_media&amp;utm_source=newsletter_refactoring&amp;utm_campaign=sandbox"><span>Try Blitzy on your codebase</span></a></p><div><hr></div><h2>&#127793; Grow juniors with guardrails and judgment</h2><p>One of the most important qualities of junior engineers is that they can turn into senior engineers. But that does not happen automatically.</p><p>There is a dream scenario where juniors grow, become senior, and <strong>help rotate headcount</strong> when seniors leave. But there is also a nightmarish one where juniors are thrown in the trenches, abuse AI in ways they do not understand, nobody checks on them, and the product eventually goes to shit.</p><p>When the growth cycle breaks, it is usually because juniors do not have a tight enough feedback loop: 1) one that keeps the work high quality, and 2) one that helps them learn from doing it.</p><p>To me, the loop looks two-fold:</p><ul><li><p><strong>Invest in an amazing harness</strong> &#8212; create <a href="https://refactoring.fm/p/my-ai-coding-workflow-b09?utm_source=publication-search">guardrails, rules, and gates</a>, and encode everything that can ensure quality automatically. This helps everyone: seniors, AI, and juniors who can learn from the same rules.</p></li><li><p><strong>Pair juniors with seniors</strong> &#8212; let young folks experiment and move fast, but keep seniors close enough to provide judgment and supply systems thinking.</p></li></ul><p>There is no way around the fact that AI makes the junior path harder in some ways, because more judgment is needed earlier. But that is also why freezing junior hiring is such a fragile bet: you optimize for today&#8217;s output, at the expense of starving the pipeline that should produce tomorrow&#8217;s seniors.</p><p>I wrote more about this in the full piece &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;13919b30-a69c-49ef-a661-78e605da4f57&quot;,&quot;caption&quot;:&quot;One of the dominant narratives in software today is that AI is making junior engineers redundant.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Case for Hiring Junior Engineers &#127793;&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-08-12T07:19:52.213Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!iy_0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe769dbfe-186f-440f-b11a-6c0a37004fbf_1888x1280.png&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/the-case-for-hiring-junior-engineers&quot;,&quot;section_name&quot;:&quot;&#129525; Essays&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:210602503,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:53,&quot;comment_count&quot;:1,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128241; Most AI products are still &#8220;m.google.com&#8221;</h2><p>When I spoke with <strong>Charlie Guo</strong>, developer experience engineer at OpenAI, we walked through three eras of AI-assisted development.</p><p>First came models that could autocomplete snippets, which became tools like GitHub Copilot. Then came AI-native IDEs like Cursor, where the model sat inside the editor. Now we are entering a third phase: standalone apps that orchestrate agents, and move beyond the text editor entirely.</p><p>Charlie believes most products are still stuck in the middle of that transition:</p><blockquote><p><em>The m.google.com of AI was (or is): take this product and cram a chat box on the sidebar, and then chat with it on the side while you&#8217;re doing stuff in the app.</em></p></blockquote><p>That&#8217;s similar to when the iPhone arrived: companies took desktop websites and mostly squeezed them into a vertical layout. It took nearly a decade to invent native mobile products: Uber, DoorDash, things that could not really exist on a desktop.</p><p>We are in that same messy middle with AI. A chat sidebar is not necessarily bad, but it&#8217;s just an easy retrofit. Native agent experiences are still being invented.</p><p>You can find the full conversation with Charlie here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;488f1888-cb98-4715-9e56-35bef47c8328&quot;,&quot;caption&quot;:&quot;Listen now:&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Building With Agents Today &#129302; &#8212; with Charlie Guo&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-08-07T07:00:53.190Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/JHAm58YZPIE&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/building-with-agents-today-with-charlie&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;92387196-e8f4-46de-a335-b56e984dc3e1&quot;,&quot;id&quot;:209980935,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:32,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://rdel.substack.com/p/rdel-160-what-psychological-costs">What psychological costs does AI adoption create for engineers?</a></h4><h5>4 min &#8226; by Lizzie Matusov</h5><p>Lizzie covers a case study from a large Danish software company, one year into an org-wide AI rollout. Regular engineers feel &#8220;accountability anxiety&#8221; and &#8220;craft identity disruption&#8221; as tools take over work, while architects (more augmented than replaced) barely show the same costs. Interesting research, worth looking into.</p><div><hr></div><h4>&#129352; <a href="https://devz.cl/posts/i-spent-my-vacations-de-brainrotting/">De-Brainrot Vacations</a></h4><h5>4 min &#8226; by Daniel V.</h5><p>This piece by Daniel really resonated with me. He noticed that after years of engineering, plus AI and phone dopamine, his thinking got slower and lazier. So he used a countryside vacation to reset his brain by reading hard books and doing math and physics as a hobby. This is peak <a href="https://refactoring.fm/p/mental-marathoners">mental marathoners</a>!</p><div><hr></div><h4>&#129353; <a href="https://www.stephendiehl.com/posts/internet_predatory_cesspit/">The Internet Is Kind of a Predatory Cesspit Now</a></h4><h5>8 min &#8226; by Stephen Diehl</h5><p>Stephen argues that, over the years, &#8220;predation&#8221; moved from the periphery of the internet to its very core, and that a lot of ordinary people have been (often unwillingly) conscripted into it. I have less of a bleak view about this, but I see where Stephen is coming from and I don&#8217;t necessarily disagree. Worth reading!</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[Quality controls, storytelling reps, and weekly readings! 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #224]]></description><link>https://refactoring.fm/p/quality-controls-storytelling-reps</link><guid isPermaLink="false">https://refactoring.fm/p/quality-controls-storytelling-reps</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 07 Sep 2026 07:03:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!8-Pz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71136923-95dc-4f58-8fed-67e7866affde_6400x3360.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><p><em>I also publish an original essay every Wednesday. Here is the one from last week in case you missed it: </em></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;3fe012c3-6921-4971-acac-8ab19e9dfcfd&quot;,&quot;caption&quot;:&quot;A couple of weeks ago, I read The People Who Will Thrive in the AI Age, by David Brooks.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Mental marathoners &#127939;&#8205;&#9794;&#65039;&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-09-02T07:02:07.437Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81484f9f-ce68-4566-ad4a-91f188dd9863_1840x1224.png&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/mental-marathoners&quot;,&quot;section_name&quot;:&quot;&#129525; Essays&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:213559716,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:38,&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><div><hr></div><h2>&#128274; <a href="https://blitzy.com/sandbox?utm_medium=paid_media&amp;utm_source=newsletter_refactoring&amp;utm_campaign=proactiveinsight">Autonomously secure your software estate!</a></h2><p><em>This week&#8217;s newsletter is brought to you by our friends at <a href="https://blitzy.com/sandbox?utm_medium=paid_media&amp;utm_source=newsletter_refactoring&amp;utm_campaign=proactiveinsight">Blitzy</a>!</em></p><p>Security teams don&#8217;t need another list of alerts: they need to know which vulnerabilities are reachable, exposed, and safe to fix!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8-Pz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71136923-95dc-4f58-8fed-67e7866affde_6400x3360.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8-Pz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71136923-95dc-4f58-8fed-67e7866affde_6400x3360.png 424w, https://substackcdn.com/image/fetch/$s_!8-Pz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71136923-95dc-4f58-8fed-67e7866affde_6400x3360.png 848w, https://substackcdn.com/image/fetch/$s_!8-Pz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71136923-95dc-4f58-8fed-67e7866affde_6400x3360.png 1272w, https://substackcdn.com/image/fetch/$s_!8-Pz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71136923-95dc-4f58-8fed-67e7866affde_6400x3360.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8-Pz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71136923-95dc-4f58-8fed-67e7866affde_6400x3360.png" width="1456" height="764" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/71136923-95dc-4f58-8fed-67e7866affde_6400x3360.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:764,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9529345,&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/214013145?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71136923-95dc-4f58-8fed-67e7866affde_6400x3360.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_!8-Pz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71136923-95dc-4f58-8fed-67e7866affde_6400x3360.png 424w, https://substackcdn.com/image/fetch/$s_!8-Pz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71136923-95dc-4f58-8fed-67e7866affde_6400x3360.png 848w, https://substackcdn.com/image/fetch/$s_!8-Pz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71136923-95dc-4f58-8fed-67e7866affde_6400x3360.png 1272w, https://substackcdn.com/image/fetch/$s_!8-Pz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71136923-95dc-4f58-8fed-67e7866affde_6400x3360.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://blitzy.com/sandbox?utm_medium=paid_media&amp;utm_source=newsletter_refactoring&amp;utm_campaign=proactiveinsight">Blitzy</a> understands your entire software estate and, through <em><a href="https://blitzy.com/blog/hyperscale-remediation-secure-your-software-estate-autonomously?utm_medium=paid_media&amp;utm_source=newsletter_refactoring&amp;utm_campaign=proactiveinsight">Proactive Insights</a></em>, surfaces known and previously <strong>undiscovered vulnerabilities</strong> in your codebase, and remediates them autonomously. </p><p>It traces each finding through execution paths, identifies dependencies, and validates remediation. Then it turns prioritized risks into batches of tested PRs for engineers to review.</p><p>The result is less alert noise, faster remediation, and confidence that each fix is safe. Find risk in context and remediate it securely at enterprise scale!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blitzy.com/sandbox?utm_medium=paid_media&amp;utm_source=newsletter_refactoring&amp;utm_campaign=proactiveinsight&quot;,&quot;text&quot;:&quot;Try on your codebase today&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blitzy.com/sandbox?utm_medium=paid_media&amp;utm_source=newsletter_refactoring&amp;utm_campaign=proactiveinsight"><span>Try on your codebase today</span></a></p><div><hr></div><h2>&#9876;&#65039; Match quality controls to the risk</h2><p>Next week I will be in New York to attend the <a href="https://leaddev.com/leaddev-new-york">LDX3 conference</a>, which made me think about <a href="https://refactoring.fm/p/my-favorite-ideas-from-ldx3">the best ideas I got</a> from last year&#8217;s edition in London.</p><p>One that particularly resonates with me, especially now that I work on Tolaria, is about <strong>quality controls</strong>.</p><p>The most common approach to software quality is to treat every change the same. Everything goes through the same QA process, regardless of what it touches or what happens if it fails. This is simple to setup, but it tends to push teams toward one of two bad extremes:</p><ul><li><p><strong>Too much control</strong> &#8212; every release becomes slow and painful, even when the change is small and reversible.</p></li><li><p><strong>Too little control</strong> &#8212; the team moves fast until failures pile up and you end up spending most of your time cleaning up.</p></li></ul><p>At LDX3, Christine Pinto argued that the confidence you need before shipping should be proportional to two things: <strong>customer impact</strong> and <strong>technical risk</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NRaZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d6330a-232c-4f05-99e1-b2126d99d116_1982x1104.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NRaZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d6330a-232c-4f05-99e1-b2126d99d116_1982x1104.png 424w, https://substackcdn.com/image/fetch/$s_!NRaZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d6330a-232c-4f05-99e1-b2126d99d116_1982x1104.png 848w, https://substackcdn.com/image/fetch/$s_!NRaZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d6330a-232c-4f05-99e1-b2126d99d116_1982x1104.png 1272w, https://substackcdn.com/image/fetch/$s_!NRaZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d6330a-232c-4f05-99e1-b2126d99d116_1982x1104.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!NRaZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d6330a-232c-4f05-99e1-b2126d99d116_1982x1104.png" width="1456" height="811" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85d6330a-232c-4f05-99e1-b2126d99d116_1982x1104.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:811,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:836398,&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/214013145?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d6330a-232c-4f05-99e1-b2126d99d116_1982x1104.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_!NRaZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d6330a-232c-4f05-99e1-b2126d99d116_1982x1104.png 424w, https://substackcdn.com/image/fetch/$s_!NRaZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d6330a-232c-4f05-99e1-b2126d99d116_1982x1104.png 848w, https://substackcdn.com/image/fetch/$s_!NRaZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d6330a-232c-4f05-99e1-b2126d99d116_1982x1104.png 1272w, https://substackcdn.com/image/fetch/$s_!NRaZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85d6330a-232c-4f05-99e1-b2126d99d116_1982x1104.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The useful 2x2 diagram about quality confidence by Christine</figcaption></figure></div><p>A tiny change with a narrow blast radius does not need the same process as one about payments or critical infra. The farther a change moves up and to the right on those two dimensions, the stronger your evidence should be before you release it.</p><p>I also liked Christine&#8217;s framing of quality as a maturity journey:</p><ol><li><p>&#129464; <strong>Crusader</strong> &#8212; one person champions quality and convinces others that it matters.</p></li><li><p>&#129716; <strong>Coach</strong> &#8212; that person teaches the team and turns individual judgment into shared principles.</p></li><li><p>&#127795; <strong>System</strong> &#8212; those principles become processes that no longer depend on a hero.</p></li></ol><p>The goal is to build the right level of confidence for the risk at hand, then make that judgment part of how the team works all the time. I wrote more about this in the full piece &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:167501213,&quot;url&quot;:&quot;https://refactoring.fm/p/my-favorite-ideas-from-ldx3&quot;,&quot;publication_id&quot;:64099,&quot;embedding_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;My Favorite Ideas from LDX3 &#127903;&#65039;&quot;,&quot;truncated_body_text&quot;:&quot;Last month I spent two days in London for the LDX3 conference.&quot;,&quot;date&quot;:&quot;2025-07-16T07:00:49.248Z&quot;,&quot;like_count&quot;:27,&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;Join 170,000+ engineers and managers getting practical ideas on engineering leadership, technical strategy and high-performing teams. Free, every week.&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;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/my-favorite-ideas-from-ldx3?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web&amp;embedding_publication_id=64099"><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">My Favorite Ideas from LDX3 &#127903;&#65039;</div></div><div class="embedded-post-body">Last month I spent two days in London for the LDX3 conference&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">a year ago &#183; 27 likes &#183; 3 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>&#127897;&#65039; Storytelling is built through reps</h2><p>When I spoke with <strong>Stephanie Wong</strong>, Head of Technical Marketing at Google Cloud, she told me that people often ask how she makes explaining complex topics look so natural.</p><p>Her answer is not super glamorous: what people see is the result of <strong>10,000+ hours of practice</strong>.</p><p>Her story is especially useful when it comes to storytelling, because for some reason that&#8217;s often treated like a <strong>personality trait</strong>. Some people supposedly have it, while engineers who struggle to explain their work assume they are simply not storytellers.</p><p>Instead, Stephanie&#8217;s method looks much more like product development:</p><ol><li><p><strong>Understand the audience</strong> &#8212; know what they need and give them something concrete and hands-on.</p></li><li><p><strong>Iterate</strong> &#8212; move through ideation, prototyping, testing, and releasing, like you would do for a product, instead of waiting for the perfect explanation.</p></li><li><p><strong>Stay consistent and authentic</strong> &#8212; always bring your own perspective, then learn from what lands and what does not.</p></li></ol><p>Technical audiences are particularly wary of fluff. Credibility comes from knowing the subject, but relatability also matters, and that comes from making your personal take visible. You need both.</p><p>So, don&#8217;t wait until you feel naturally good at communication: explain one thing, notice where people get confused, rewrite it, and tell the story again. Over time, the rough edges disappear and the result starts to feel effortless.</p><p>Natural is a feeling the audience should have, but on your side, it is reps!</p><p>You can find the full conversation with Stephanie here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;a10539e1-0c0a-46b3-a947-397a3c07d40e&quot;,&quot;caption&quot;:&quot;&#128680; If you missed it, check out our upcoming work on engineering metrics and contribute with your own stories!&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Technical Storytelling at Google &#9999;&#65039;&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;2024-10-18T07:24:59.273Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4e9561e5-30f6-4b57-9784-b40fb15463a3_1200x800.png&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/technical-storytelling-at-google&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;ec33a04b-be67-4415-8971-53402e5ee2ee&quot;,&quot;id&quot;:150343667,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:28,&quot;comment_count&quot;:1,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://embracethered.com/blog/posts/2026/breaking-claude-code-opus-5-and-automode/">Breaking Claude Code Opus 5 Auto Mode</a></h4><h5>9 min &#8226; by Johann Rehberger</h5><p>A reminder that even the most powerful models are still extremely vulnerable. A website asks Claude Code to summarize some content, nudges it from WebFetch to <code>curl</code>, and then turns the model&#8217;s own Python decoder into an exploit. Food for thought if your agents are touching untrusted content.</p><div><hr></div><h4>&#129352; <a href="https://www.seangoedecke.com/selling-out/">Selling Out</a></h4><h5>15 min &#8226; by Sean Goedecke</h5><p>Sean&#8217;s title is provocative, but the thesis is very important: professionalism is a role, and playing it well doesn&#8217;t have to consume your life. Everyone chooses how much integrity to trade for wealth and career success, and that&#8217;s mostly ok, things are not black or white. A sharp essay about work and personal identity.</p><div><hr></div><h4>&#129353; <a href="https://calv.info/small-models-have-arrived">Small Models Have Arrived</a></h4><h5>3 min &#8226; by Calvin French-Owen</h5><p>We spend so much time looking at the smartest models that it&#8217;s easy to miss how far the cheap, fast ones have progressed. Calvin argues that this is (even more than frontier models) what makes many new products viable, because not every task needs a genius: most business work just needs something responsive, cheap, and that keeps the ball moving.</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[Onbarding roulette, “Aha” AI meetings, and weekly readings 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #223]]></description><link>https://refactoring.fm/p/onbarding-roulette-aha-ai-meetings</link><guid isPermaLink="false">https://refactoring.fm/p/onbarding-roulette-aha-ai-meetings</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 31 Aug 2026 07:03:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!fkvj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ae1312-4817-48dc-86c2-d4cbd42bb543_2600x1300.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><div><hr></div><h2>&#127974; <a href="https://www.av.vc/funds/aifirst?utm_medium=email&amp;utm_source=tofu&amp;utm_content=partner-follow-up&amp;utm_campaign=RefactoringAugASend#easyvest">Invest in high-potential startups</a></h2><p><em>This week&#8217;s newsletter is brought to you by <a href="https://www.av.vc/funds/aifirst?utm_medium=email&amp;utm_source=tofu&amp;utm_content=partner-follow-up&amp;utm_campaign=RefactoringAugASend#easyvest">Alumni Ventures</a>!</em></p><p>Our friends at Alumni Ventures are giving Refactoring readers early <a href="https://www.av.vc/funds/aifirst?utm_medium=email&amp;utm_source=tofu&amp;utm_content=partner-follow-up&amp;utm_campaign=RefactoringAugASend#easyvest">access to high-potential startup opportunities</a>, including some of today&#8217;s most exciting AI, deep tech, quantum, and cybersecurity companies, co-invested alongside top VC firms like Andreessen Horowitz and Y Combinator.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fkvj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ae1312-4817-48dc-86c2-d4cbd42bb543_2600x1300.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fkvj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ae1312-4817-48dc-86c2-d4cbd42bb543_2600x1300.png 424w, https://substackcdn.com/image/fetch/$s_!fkvj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ae1312-4817-48dc-86c2-d4cbd42bb543_2600x1300.png 848w, https://substackcdn.com/image/fetch/$s_!fkvj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ae1312-4817-48dc-86c2-d4cbd42bb543_2600x1300.png 1272w, https://substackcdn.com/image/fetch/$s_!fkvj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ae1312-4817-48dc-86c2-d4cbd42bb543_2600x1300.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fkvj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ae1312-4817-48dc-86c2-d4cbd42bb543_2600x1300.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/99ae1312-4817-48dc-86c2-d4cbd42bb543_2600x1300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:140499,&quot;alt&quot;:&quot;&quot;,&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/176123729?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ae1312-4817-48dc-86c2-d4cbd42bb543_2600x1300.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!fkvj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ae1312-4817-48dc-86c2-d4cbd42bb543_2600x1300.png 424w, https://substackcdn.com/image/fetch/$s_!fkvj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ae1312-4817-48dc-86c2-d4cbd42bb543_2600x1300.png 848w, https://substackcdn.com/image/fetch/$s_!fkvj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ae1312-4817-48dc-86c2-d4cbd42bb543_2600x1300.png 1272w, https://substackcdn.com/image/fetch/$s_!fkvj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ae1312-4817-48dc-86c2-d4cbd42bb543_2600x1300.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As a Refactoring reader, you get:</p><ul><li><p>A curated deal flow of high-potential AI<em><strong> </strong></em>startups</p></li><li><p>AV already investing alongside elite lead venture firms in these deals</p></li><li><p>No cost to see deals</p></li><li><p>No obligation to invest</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.av.vc/funds/aifirst?utm_medium=email&amp;utm_source=tofu&amp;utm_content=partner-follow-up&amp;utm_campaign=RefactoringAugASend#easyvest&quot;,&quot;text&quot;:&quot;Check out the current deals&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.av.vc/funds/aifirst?utm_medium=email&amp;utm_source=tofu&amp;utm_content=partner-follow-up&amp;utm_campaign=RefactoringAugASend#easyvest"><span>Check out the current deals</span></a></p><p>Back to this week&#8217;s ideas!</p><div><hr></div><h2>&#127922; Consider the onboarding roulette</h2><p>At Graphite, every day a random employee gets their account deleted.</p><p>So the next time they open the product, they go through the full onboarding flow again: link repos, tune settings, the whole thing. Greg Foster, Graphite&#8217;s CTO, calls it the <strong>onboarding roulette</strong>: basically everyone <em>feels</em> onboarding roughly once a month.</p><p>They do this because onboarding is often a massive product blind spot. You test it once, maybe two years ago, and then never again, while new users keep hitting it every day.</p><p>Instead, when the team has to onboard regularly, rough edges show up fast, and get easily polished.</p><p>Greg said it got love and hate when he first introduced it, but now it&#8217;s mostly love, and the whole onboarding now only takes about three minutes.</p><p>Of course, your mileage may vary: you probably should not delete accounts if you are building a hospital system! But the principle holds: <strong>whatever your users do frequently, your team should do frequently too</strong>.</p><p>Maybe that is:</p><ul><li><p>Signing up with a fresh account once a quarter, or</p></li><li><p>Going through your own support flow when something breaks, or</p></li><li><p>Using your mobile app on a slow connection</p></li></ul><p>The point is to design a process so the team feels <strong>the same friction users feel</strong>, regularly.</p><p>I wrote more about this in the full piece &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:180384931,&quot;url&quot;:&quot;https://refactoring.fm/p/how-graphite-ships&quot;,&quot;publication_id&quot;:64099,&quot;embedding_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 Graphite Ships &#128674;&quot;,&quot;truncated_body_text&quot;:&quot;It&#8217;s a weird time for engineering teams.&quot;,&quot;date&quot;:&quot;2025-12-03T08:02:10.246Z&quot;,&quot;like_count&quot;:18,&quot;comment_count&quot;:0,&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;Join 170,000+ engineers and managers getting practical ideas on engineering leadership, technical strategy and high-performing teams. Free, every week.&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;subscriber&quot;:null}},{&quot;id&quot;:7119536,&quot;name&quot;:&quot;Greg Foster&quot;,&quot;handle&quot;:&quot;gmfoster&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f2eb87cb-299b-478a-8378-d1b6de848cf0_709x709.png&quot;,&quot;bio&quot;:&quot;Cofounder of graphite.dev - building the future of code review&quot;,&quot;profile_set_up_at&quot;:&quot;2022-07-28T12:10:27.981Z&quot;,&quot;reader_installed_at&quot;:&quot;2023-06-11T22:49:23.940Z&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:null,&quot;subscriber&quot;:null},&quot;primaryPublicationId&quot;:1019304,&quot;primaryPublicationName&quot;:&quot;Small Diffs - by Greg Foster&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://smalldiffs.gmfoster.com&quot;,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://smalldiffs.gmfoster.com/subscribe?&quot;}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/how-graphite-ships?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web&amp;embedding_publication_id=64099"><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 Graphite Ships &#128674;</div></div><div class="embedded-post-body">It&#8217;s a weird time for engineering teams&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">a year ago &#183; 18 likes &#183; Luca Rossi and Greg Foster</div></a></div><div><hr></div><h2>&#128161; Make everyone share an AI surprise</h2><p>When I spoke with Lara Hogan a couple of months ago, she introduced me to what she calls AI &#8220;Aha&#8221; meetings.</p><p>Every week, or every other week, the whole team shares something they learned about AI. A win, a failure, a surprise, or just something weird. And everybody has to share, managers included: nobody gets to skip.</p><p>In spirit, this is similar to a postmortem, just lighter and more often. People share knowledge, figure out patterns, and learn what works and doesn&#8217;t work.</p><p>Frequency matters because what someone figures out this week about an AI tool can become stale next week. If the team does not have a tight loop, people keep working from last month&#8217;s outdated instincts.</p><p>I loved this idea and we have even implemented our own version in the <a href="https://refactoring.fm/p/refactoring-community">Refactoring Community</a>, called the <strong><a href="https://refactoring.fm/p/introducing-the-ai-club?utm_source=publication-search">AI Club</a></strong>.</p><p>You can find the full conversation with Lara here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;3d2d5ff4-7d4e-4003-872d-0897560a0083&quot;,&quot;caption&quot;:&quot;Listen now:&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Understanding Engineers' Needs &#129516; &#8212; with Lara Hogan&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-06-12T06:58:53.908Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/nYFQ6kyXO2o&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/understanding-engineers-needs-with&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;cc9cd2c3-6fa7-4170-8eba-bd406dd22451&quot;,&quot;id&quot;:200483968,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:19,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://yegge.ai/essays/fences-not-sandboxes/">Fences, not Sandboxes</a></h4><h5>13 min &#8226; by Steve Yegge</h5><p>Steve spent ten weeks running ~50 agents on Fable-class models to ship his game, and... they grew a legal system! This is a very interesting write-up, as always with everything Steve writes.</p><div><hr></div><h4>&#129352; <a href="https://avivbenyosef.com/stealing-blame/">Stealing Blame</a></h4><h5>3 min &#8226; by Aviv Ben-Yosef</h5><p>Do you steal blame? When a project blows up, the easy move is to explain why it wasn&#8217;t your fault. Great leaders, instead, look for their share of blame. That buys you the truth: people talk more when they know someone has their back. Great short piece by Aviv.</p><div><hr></div><h4>&#129353; <a href="https://www.raphaelbauer.com/posts/postgresql-everything/">PostgreSQL for Everything.</a></h4><h5>7 min &#8226; by Raphael Bauer</h5><p>Gentle reminder that we don&#8217;t need fancy tech for most stuff. Postgres can do an awful lot these days, and most people are not aware of 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[Protecting reasoning, getting your hands dirty, and weekly readings 📚]]></title><description><![CDATA[Monday Ideas &#8211; Edition #222]]></description><link>https://refactoring.fm/p/protecting-reasoning-getting-your</link><guid isPermaLink="false">https://refactoring.fm/p/protecting-reasoning-getting-your</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 24 Aug 2026 07:50:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DSgD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb643716e-afc7-496b-a0c1-563d2fe8c563_1990x803.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><p> If you are finding this newsletter valuable, <strong>subscribe to the full version</strong>!</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>Learn more about the <a href="http://refactoring.fm/about">benefits of the paid plan here</a>.</p><div><hr></div><h2>&#127981; <a href="https://www.augmentcode.com/resources/software-factory?utm_source=refactoring&amp;utm_medium=newsletter&amp;utm_campaign=aug24">Does your team have a software factory?</a></h2><p><em>Today&#8217;s newsletter is brought to you by our friends at <a href="http://augmentcode.com/">Augment Code</a>!</em></p><p>Most engineering teams are using coding agents today, but many aren&#8217;t seeing the productivity gains they expected. Developers are moving faster, but work still gets stuck in planning, review, and deployment.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DSgD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb643716e-afc7-496b-a0c1-563d2fe8c563_1990x803.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DSgD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb643716e-afc7-496b-a0c1-563d2fe8c563_1990x803.png 424w, https://substackcdn.com/image/fetch/$s_!DSgD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb643716e-afc7-496b-a0c1-563d2fe8c563_1990x803.png 848w, https://substackcdn.com/image/fetch/$s_!DSgD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb643716e-afc7-496b-a0c1-563d2fe8c563_1990x803.png 1272w, https://substackcdn.com/image/fetch/$s_!DSgD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb643716e-afc7-496b-a0c1-563d2fe8c563_1990x803.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DSgD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb643716e-afc7-496b-a0c1-563d2fe8c563_1990x803.png" width="1456" height="588" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b643716e-afc7-496b-a0c1-563d2fe8c563_1990x803.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:588,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1398176,&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/212119217?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb643716e-afc7-496b-a0c1-563d2fe8c563_1990x803.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_!DSgD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb643716e-afc7-496b-a0c1-563d2fe8c563_1990x803.png 424w, https://substackcdn.com/image/fetch/$s_!DSgD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb643716e-afc7-496b-a0c1-563d2fe8c563_1990x803.png 848w, https://substackcdn.com/image/fetch/$s_!DSgD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb643716e-afc7-496b-a0c1-563d2fe8c563_1990x803.png 1272w, https://substackcdn.com/image/fetch/$s_!DSgD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb643716e-afc7-496b-a0c1-563d2fe8c563_1990x803.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Our friends at <a href="https://www.augmentcode.com/resources/software-factory?utm_source=refactoring&amp;utm_medium=newsletter&amp;utm_campaign=aug24">Augment Code</a> put together a new guide that looks at <strong>how teams can move past the plateau</strong> by building a software factory one loop at a time. </p><p>It includes <strong>practical examples</strong> for PR to merge, ticket to PR, and alert to resolution, plus the  foundation those loops need to work at scale.</p><p>Check it out below &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.augmentcode.com/resources/software-factory?utm_source=refactoring&amp;utm_medium=newsletter&amp;utm_campaign=aug24&quot;,&quot;text&quot;:&quot;Learn more and get the free guide&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.augmentcode.com/resources/software-factory?utm_source=refactoring&amp;utm_medium=newsletter&amp;utm_campaign=aug24"><span>Learn more and get the free guide</span></a></p><div><hr></div><h2>&#129504; Outsource knowledge &amp; protect reasoning</h2><p>When people talk about AI being &#8220;smart&#8221;, they usually mash two skills together.</p><ul><li><p><strong>Knowledge</strong> &#8212; is what you should know about the problem domain.</p></li><li><p><strong>Reasoning</strong> &#8212; is applying that knowledge to the task in front of you.</p></li></ul><p>AI already knows more stuff than any person ever will, while I find that people are still better at the actual reasoning. Most work needs both, so it&#8217;s easy to get sloppy about which one you hand off.</p><p>My heuristic is: <strong>outsource the knowledge, protect the reasoning</strong>.</p><p>So I ask myself: <em>am I using AI because I genuinely do not know something, or because I do not want to think it through myself?</em></p><p>I feel that looking up things I do not know is ok. I even learn some of them as a byproduct. But using AI as a thinking partner, every time, is where my &#8220;cognitive workout&#8221; disappears, and I fear that some of my brainpower atrophies.</p><p>Also this is not black or white. Some days I have more work to do than energy, and letting AI cover a piece I would have skipped anyway is a good call. I just try to keep the part that actually trains my brain.</p><p>One thing that works for me: I write the first draft myself, then ask AI to produce the same artifact from scratch, without looking at mine. That flips the usual anchoring. I keep the reasoning, and I still get AI&#8217;s wider knowledge as a second pass. AI is also pretty bad at disagreeing with you, so a blind rebuild beats &#8220;please review this.&#8221;</p><p>I wrote more about this in the full piece &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:172676883,&quot;url&quot;:&quot;https://refactoring.fm/p/ai-and-cognitive-debt&quot;,&quot;publication_id&quot;:64099,&quot;embedding_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;AI &amp; Cognitive Debt &#129504;&quot;,&quot;truncated_body_text&quot;:&quot;Hey, Luca here, welcome to a monthly free edition of Refactoring! To access all our articles, library, and community, subscribe to the full version:&quot;,&quot;date&quot;:&quot;2025-09-10T07:01:20.048Z&quot;,&quot;like_count&quot;:79,&quot;comment_count&quot;:13,&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;Join 170,000+ engineers and managers getting practical ideas on engineering leadership, technical strategy and high-performing teams. Free, every week.&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;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/ai-and-cognitive-debt?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web&amp;embedding_publication_id=64099"><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">AI &amp; Cognitive Debt &#129504;</div></div><div class="embedded-post-body">Hey, Luca here, welcome to a monthly free edition of Refactoring! To access all our articles, library, and community, subscribe to the full version&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">a year ago &#183; 79 likes &#183; 13 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>&#128736;&#65039; Get your hands dirty, even as a VP</h2><p>In my recent conversation with <strong>Anush Elangovan</strong>, VP of AI Software at AMD, he said something that stuck with me: at this moment in history, because of how fast things are changing, you cannot stay one layer away from the work. You need to be in the trenches and understand how such work... works.</p><p>Anush has generated more code in the last four months than in the previous four years combined, and he is a VP. His target is <strong>40% of his time hands-on</strong>, usually starting around 9:30 PM after the day job and family time are done.</p><p>Reading articles and forming opinions is fine, but you also need to get the ground truth by yourself.</p><p>So, instead of scheduling four status meetings to understand a problem, he can hook it up to Claude Code, spend three to five hours debugging, and come back with a concrete assessment plus a unit test that, if passed, would fix the issue. A few hours with the actual problem replaces a week of coordination.</p><p>If your job is to make the team faster, some of that speed has to come from you still knowing what the work feels like.</p><p>You can find the full conversation with Anush here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;749c189e-f9a9-447b-93b9-49042f82fa93&quot;,&quot;caption&quot;:&quot;Listen now:&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Speed is the Only Moat &#127950;&#65039; &#8212; with Anush Elangovan&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-07-17T07:00:22.613Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/w2F-u0kJllA&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/speed-is-the-only-moat-with-anush&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;18e4722b-3fa6-492d-a5a0-5383a03f33da&quot;,&quot;id&quot;:206247034,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:24,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://ordinaryabundance.com/">Ordinary Abundance</a></h4><h5>7 min &#8226; by ordinaryabundance.com</h5><p>An ordinary apartment is full of things that used to be miracles: electric light, clean water, refrigeration, vaccines, anesthesia, washing machines, instant communication. Each one was once astonishing, or unavailable to almost everyone. A great reminder to be grateful for all the small things we stop noticing everyday.</p><div><hr></div><h4>&#129352; <a href="https://theengineeringmanager.substack.com/p/landing-the-plane">Landing the plane</a></h4><h5>10 min &#8226; by James Stanier</h5><p>Recently I wrote about how <a href="https://refactoring.fm/p/acceleration-whiplash">finishing a project</a> seems to have become the hardest part of it. That last stretch is where scope creeps, energy drops, and human reviews bottleneck everything. In this great article, James argues that landing is a skill. You plan for it the same way you plan for the start, especially now that AI makes kicking things off so cheap.</p><div><hr></div><h4>&#129353; <a href="https://laurentiugabriel.github.io/blog/articles/how-i-use-llms-to-learn/">How I use LLMs to learn complex topics</a></h4><h5>2 min &#8226; by Laurentiu Raducu</h5><p>Instead of asking an LLM to explain a hard topic, Laurentiu asks it to build a little simulation of it, like a low-poly Rollercoaster Tycoon for a chip fab. I loved this! You learn by poking at a model of the thing, which I like more than asking for a summary.</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[Knowledge lifecycle, luck surface, and weekly readings 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #221]]></description><link>https://refactoring.fm/p/knowledge-lifecycle-luck-surface</link><guid isPermaLink="false">https://refactoring.fm/p/knowledge-lifecycle-luck-surface</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 17 Aug 2026 07:02:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!w0n9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1a5b5-1c7a-4423-94cc-a214de0cac8b_2602x1348.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong>from <a href="https://refactoring.fm/">Refactoring</a><strong> </strong><em>&#8212; ideas and readings to start the week on the right foot!</em></p><div><hr></div><div class="callout-block" data-callout="true"><h2>&#128202; Is AI <em>really</em> making developers ship faster?</h2><p><em>Today&#8217;s newsletter is brought to you by our friends at <a href="https://getdx.com/report/state-of-ai-impact-in-engineering-q2-report/?utm_source=Refactoring">DX</a>!</em></p><p>Last month, together with <a href="https://www.linkedin.com/in/justinreock">Justin Reock</a>, Deputy CTO at DX, we published a <a href="https://refactoring.fm/p/the-state-of-ai-impact-in-engineering">thorough commentary</a> on the <a href="https://getdx.com/report/state-of-ai-impact-in-engineering-q2-report/?utm_source=Refactoring">Q2 Report</a> on the state of AI impact in 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_!w0n9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1a5b5-1c7a-4423-94cc-a214de0cac8b_2602x1348.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w0n9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1a5b5-1c7a-4423-94cc-a214de0cac8b_2602x1348.png 424w, https://substackcdn.com/image/fetch/$s_!w0n9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1a5b5-1c7a-4423-94cc-a214de0cac8b_2602x1348.png 848w, https://substackcdn.com/image/fetch/$s_!w0n9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1a5b5-1c7a-4423-94cc-a214de0cac8b_2602x1348.png 1272w, https://substackcdn.com/image/fetch/$s_!w0n9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1a5b5-1c7a-4423-94cc-a214de0cac8b_2602x1348.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w0n9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1a5b5-1c7a-4423-94cc-a214de0cac8b_2602x1348.png" width="542" height="280.67857142857144" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/56c1a5b5-1c7a-4423-94cc-a214de0cac8b_2602x1348.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:754,&quot;width&quot;:1456,&quot;resizeWidth&quot;:542,&quot;bytes&quot;:462973,&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/211041423?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1a5b5-1c7a-4423-94cc-a214de0cac8b_2602x1348.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_!w0n9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1a5b5-1c7a-4423-94cc-a214de0cac8b_2602x1348.png 424w, https://substackcdn.com/image/fetch/$s_!w0n9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1a5b5-1c7a-4423-94cc-a214de0cac8b_2602x1348.png 848w, https://substackcdn.com/image/fetch/$s_!w0n9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1a5b5-1c7a-4423-94cc-a214de0cac8b_2602x1348.png 1272w, https://substackcdn.com/image/fetch/$s_!w0n9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56c1a5b5-1c7a-4423-94cc-a214de0cac8b_2602x1348.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In case you missed it, it includes a lot of interesting insights. For example:</p><ul><li><p><strong>PR throughout</strong> &#8211; increased 37% year-over-year, but</p></li><li><p><strong>PR size</strong> &#8211; nearly doubled in the same window</p></li></ul><p>So more code is moving through the pipeline, but does that translate into more delivered value? It seems&#8230; not! You can find the full report below &#128071;<br></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getdx.com/report/state-of-ai-impact-in-engineering-q2-report/?utm_source=Refactoring&quot;,&quot;text&quot;:&quot;Read the report&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://getdx.com/report/state-of-ai-impact-in-engineering-q2-report/?utm_source=Refactoring"><span>Read the report</span></a></p></div><div><hr></div><blockquote><p><em>Final reminder that <strong>today at 17:00 CET</strong> we are having our <strong>monthly live community mastermind</strong>. You can find more info, including how to join, <a href="https://refactoring.fm/p/join-our-mastermind-next-week">here</a>.</em></p></blockquote><div><hr></div><h2>&#128450;&#65039; Your knowledge needs a lifecycle</h2><p>Since I released <a href="https://tolaria.md/">Tolaria</a> and <a href="http://portent.md/">Portent</a>, a lot of people have asked me about team knowledge bases and how to organize them.</p><p>Most questions I receive are about how to <em>organize</em> content: folders, types, and so on, while very few are about the <em>lifecycle </em>of such content. When is new content created? By whom? When is it updated or moved? When is it finally archived?</p><p>A knowledge base without a proper lifecycle slowly becomes a <strong>junk drawer</strong>.</p><p>Everything is saved with good intentions, but if every item stays equally visible forever, the useful material eventually disappears inside the pile.</p><p>In Portent, and for myself, I use a simple three-step lifecycle: <strong>capture, organize, archive</strong>.</p><h3>1) Capture quickly</h3><p>Save the link, write down the rough thoughts, or simply store the meeting notes.</p><p>This stage should just be fast, even at the expense of being a little messy, because the goal is to make information available before it disappears.</p><h3>2) Organize deliberately</h3><p>Now ask yourself two questions:</p><ul><li><p><em>What is this?</em></p></li><li><p><em>What should it help me do?</em></p></li></ul><p>The first gives the note a <em>type</em>, or simply a destination. The second connects it to projects, responsibilities, topics, or useful pieces of context.</p><p>If a note cannot be attached to anything meaningful, it may not be worth keeping. So capture optimistically, organize pessimistically.</p><h3>3) Archive without deleting</h3><p>Completed projects, stale notes, and obsolete context can still be useful. They just should not <em>compete</em> with their current work every day. Archiving is how you keep them available without leaving them in your way.</p><p>So, the system works because each stage has one job: <em>capture</em> ensures speed, <em>organize</em> creates purpose and meaning, and <em>archive</em> protects attention.</p><p>I wrote more about this in the full piece on Portent &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:198376374,&quot;url&quot;:&quot;https://refactoring.fm/p/introducing-portent&quot;,&quot;publication_id&quot;:64099,&quot;embedding_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;Introducing Portent &#9752;&#65039;&quot;,&quot;truncated_body_text&quot;:&quot;Today it&#8217;s almost one month since I released Tolaria, and during this time I have spoken with many people and teams that are trying to use it to create and manage internal knowledge bases.&quot;,&quot;date&quot;:&quot;2026-05-20T07:44:11.683Z&quot;,&quot;like_count&quot;:64,&quot;comment_count&quot;:7,&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;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/introducing-portent?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web&amp;embedding_publication_id=64099"><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">Introducing Portent &#9752;&#65039;</div></div><div class="embedded-post-body">Today it&#8217;s almost one month since I released Tolaria, and during this time I have spoken with many people and teams that are trying to use it to create and manage internal knowledge bases&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">6 months ago &#183; 64 likes &#183; 7 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>2) &#127808; Increase your luck surface area</h2><p>Most often, we tell career stories as if every good outcome followed from a careful plan. In reality, many opportunities arrive through chance: a person may notice your work, remember something you shared, and reach out at exactly the right time.</p><p>You cannot control luck, but you can increase the surface area where it can find you.</p><p>And to increase such surface, the idea is simple: <strong>1) do more of the work you care about</strong>, and<strong> 2) tell more people about it</strong>.</p><p>Doing the work builds expertise: you make things, solve problems, contribute to projects, and become better at something useful. But good work can only create opportunities if it doesn&#8217;t stay invisible.</p><p>Sharing the work is what creates the most connections: write about what you learned, contribute to a community, publish a small tool. Help people see what you know and what you care about.</p><p>This does not <em>guarantee </em>the lucky break, but it&#8217;s a way to make luck less passive: <strong>more doing &#215; more telling == more luck</strong>.</p><p>My friend Umberto Nicoletti wrote more about this, and his career experiences behind it, in the full essay below &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:180945910,&quot;url&quot;:&quot;https://refactoring.fm/p/lessons-learned-from-25-years-in&quot;,&quot;publication_id&quot;:64099,&quot;embedding_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;Lessons learned from 25 years in tech &#128301;&quot;,&quot;truncated_body_text&quot;:&quot;Hey, Luca here! This is a guest article written by my friend Umberto Nicoletti, Director of Product and Engineering at Proemion.&quot;,&quot;date&quot;:&quot;2025-12-10T08:44:55.743Z&quot;,&quot;like_count&quot;:28,&quot;comment_count&quot;:0,&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;subscriber&quot;:null}},{&quot;id&quot;:2168459,&quot;name&quot;:&quot;Umberto Nicoletti&quot;,&quot;handle&quot;:&quot;unicolet&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!4NEM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e2b6a4-b1e9-4e0d-a021-7cf7cc5ec4bc_144x144.png&quot;,&quot;bio&quot;:&quot;Weaving humans and tech together for success&quot;,&quot;profile_set_up_at&quot;:&quot;2023-05-11T05:44:35.309Z&quot;,&quot;reader_installed_at&quot;:null,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:1,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;subscriber&quot;,&quot;tier&quot;:1,&quot;accent_colors&quot;:null},&quot;subscriber&quot;:null},&quot;primaryPublicationId&quot;:7185982,&quot;primaryPublicationName&quot;:&quot;Umberto Nicoletti&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://umbertonicoletti.substack.com&quot;,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://umbertonicoletti.substack.com/subscribe?&quot;}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/lessons-learned-from-25-years-in?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web&amp;embedding_publication_id=64099"><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">Lessons learned from 25 years in tech &#128301;</div></div><div class="embedded-post-body">Hey, Luca here! This is a guest article written by my friend Umberto Nicoletti, Director of Product and Engineering at Proemion&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">a year ago &#183; 28 likes &#183; Luca Rossi and Umberto Nicoletti</div></a></div><div><hr></div><h2>&#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://www.theatlantic.com/ideas/2026/06/ai-open-ai-anthropic/687689/?gift=bmvUiu0ra57xGI0zOa4kGmINu--qpr8lFEbQYPTWWTQ&amp;utm_source=copy-link&amp;utm_medium=social&amp;utm_campaign=share">The People Who Will Thrive in the AI Age</a></h4><h5>15 min &#8226; by David Brooks</h5><p>When intelligence is abundant, the advantage shifts to people who still want to think hard. </p><p>David calls them &#8220;mental marathoners&#8221;: people who use AI to stretch their abilities rather than avoid effort. I loved this framing. It also explains why the same tools can make one person sharper and another more passive.</p><div><hr></div><h4>&#129352; <a href="https://lethain.com/middle-management-roles-were-also-a-trap/">Middle management roles are also a trap</a></h4><h5>2 min &#8226; by Will Larson</h5><p>Middle management teaches you to balance pressure and operate organizational process. Will argues that it can also pull you away from some of the skills executives need most: domain expertise and driving execution.</p><p>A good warning for anyone assuming that every step up the management ladder prepares you for the next one. It&#8217;s not always the case.</p><div><hr></div><h4>&#129353; <a href="https://blog.senko.net/code-was-never-the-hard-part-is-an-insult-to-all-programmers">&#8220;Code was never the hard part&#8221; is an insult to all programmers</a></h4><h5>6 min &#8226; by Senko Ra&#353;i&#263;</h5><p>Senko makes a strong case against the &#8220;code was never the hard part&#8221; phrase that you see everywhere these days. I half-agree with him. </p><p>I mean, understanding users, deciding what to build, and translating that into requirements is hard. But writing good code is hard, too. The difficulty level depends a lot on the company you work for: there are companies in which coding is extremely hard, and others where it&#8217;s easier. But I don&#8217;t think this is a useful debate anyway, let&#8217;s just agree coding is hard in general.</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[Starting vs finishing, product engineering, and weeklin readings! 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #220]]></description><link>https://refactoring.fm/p/starting-vs-finishing-product-engineering</link><guid isPermaLink="false">https://refactoring.fm/p/starting-vs-finishing-product-engineering</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 10 Aug 2026 07:01:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ocX0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F186c4fa6-0d56-46eb-b8b0-52c902fe90a3_1458x686.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><div><hr></div><h2>&#128214; <a href="https://l.gourl.es/l/9e18f4d4342f986e4367449023b32b27a9aeee54?w=bWF0dGVvQHJlZmFjdG9yaW5nLmNsdWI&amp;u=9913498">42: The AI Builder&#8217;s Stack</a></h2><p><em>This newsletter is brought to you by <a href="https://eltexsoft.com/">Eltex</a>!</em></p><p>The guys at <a href="https://eltexsoft.com/">Eltex</a> run <span>a great engineering studio and just released </span><strong><a href="https://l.gourl.es/l/9e18f4d4342f986e4367449023b32b27a9aeee54?w=bWF0dGVvQHJlZmFjdG9yaW5nLmNsdWI&amp;u=9913498"><span>42: The AI Builder's Stack</span></a></strong><span>, which is the practitioner's guide to the toolchain they run on: Claude Code, MCP, agents, AI IDEs. They covered what worked, what failed, and what the vendors will not tell you.</span><br><br><span>The book includes a companion Claude Code setup that is free and MIT-licensed: 42 subagents, rule packs, and a commit guard that blocks force-pushes and staged secrets. Trimmed versions of every chapter are free to read.</span></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://subethapress.com/?utm_source=refactoring&amp;utm_medium=newsletter&amp;utm_campaign=42-launch&quot;,&quot;text&quot;:&quot;Get the book&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://subethapress.com/?utm_source=refactoring&amp;utm_medium=newsletter&amp;utm_campaign=42-launch"><span>Get the book</span></a></p><blockquote><p><em>&#8220;A hands-on guide that speaks the language of real developers building real systems.&#8221;</em> &#8212; Richard Cave, ex-Apple Engineering Manager.</p></blockquote><div><hr></div><h2>&#127937; Starting is easier and finishing is harder</h2><p>AI makes it incredibly easy to start more work.</p><p>Engineers are opening more branches, touching more PRs, and getting to something that <em>looks</em> close to <em>done</em> much faster than before.</p><p>But shipping is another story.</p><p>In <a href="https://refactoring.fm/p/acceleration-whiplash">the Faros report I covered recently</a>, the most interesting pattern was how <strong>AI made the last mile worse</strong>: teams have a lot more stalled work, more restarts, and often times&#8230; fewer deployments overall!</p><p>This shouldn&#8217;t be surprising if we look at the classic WIP equation:</p><div class="callout-block" data-callout="true"><p><code>Lead Time = Work In Progress / Throughput</code></p></div><p>So if AI increases WIP but throughput stays the same, the system just <strong>accumulates more unfinished work</strong>.</p><p>To avoid getting stuck in this, we should inspect our dev process as a <em>whole,</em> measuring how much more valuable work actually reaches users. Otherwise, we may just be making the queue longer.</p><p>I wrote more about this in the full piece on the <em>acceleration whiplash</em> &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:202940735,&quot;url&quot;:&quot;https://refactoring.fm/p/acceleration-whiplash&quot;,&quot;publication_id&quot;:64099,&quot;embedding_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;Acceleration whiplash &#128201;&quot;,&quot;truncated_body_text&quot;:&quot;Hey! Luca here &#8212; welcome to a new edition of Refactoring.&quot;,&quot;date&quot;:&quot;2026-06-24T07:42:12.505Z&quot;,&quot;like_count&quot;:41,&quot;comment_count&quot;:0,&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;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/acceleration-whiplash?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web&amp;embedding_publication_id=64099"><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">Acceleration whiplash &#128201;</div></div><div class="embedded-post-body">Hey! Luca here &#8212; welcome to a new edition of Refactoring&#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; 41 likes &#183; Luca Rossi</div></a></div><div><hr></div><h2>&#128314; Product engineering is the ceiling</h2><p>If your team already has good DevEx and good AI workflows, building things gets faster. But that still does not guarantee you will ship a lot more valuable work, because engineers spend only a small slice of their week actually writing code.</p><p>The rest is coordination: meetings, waiting, handoffs, status updates, and all the small negotiations that happen before something reaches users.</p><p>So, to unlock more time (and more gains) we should ask ourselves: can an engineer spend more time coding and less time <em>coordinating</em>? Which pretty squarely translates into: <strong>can one engineer own a larger slice of the product loop? </strong>This is what product engineering is about.</p><p>Not every engineer should and will become a PM and a designer at the same time, but if they can safely own more context, make more local decisions, and move with fewer handoffs, the whole system becomes lighter.</p><p>Also, to make it work, product engineering requires <em>infrastructure</em> available to everyone: product context, design platform, tight feedback loops to intercept mistakes, and in general tooling that makes this broader ownership <strong>easy and safe</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ocX0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F186c4fa6-0d56-46eb-b8b0-52c902fe90a3_1458x686.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ocX0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F186c4fa6-0d56-46eb-b8b0-52c902fe90a3_1458x686.png 424w, https://substackcdn.com/image/fetch/$s_!ocX0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F186c4fa6-0d56-46eb-b8b0-52c902fe90a3_1458x686.png 848w, https://substackcdn.com/image/fetch/$s_!ocX0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F186c4fa6-0d56-46eb-b8b0-52c902fe90a3_1458x686.png 1272w, https://substackcdn.com/image/fetch/$s_!ocX0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F186c4fa6-0d56-46eb-b8b0-52c902fe90a3_1458x686.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!ocX0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F186c4fa6-0d56-46eb-b8b0-52c902fe90a3_1458x686.png" width="1456" height="685" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/186c4fa6-0d56-46eb-b8b0-52c902fe90a3_1458x686.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:685,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:408607,&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/210046104?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F186c4fa6-0d56-46eb-b8b0-52c902fe90a3_1458x686.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_!ocX0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F186c4fa6-0d56-46eb-b8b0-52c902fe90a3_1458x686.png 424w, https://substackcdn.com/image/fetch/$s_!ocX0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F186c4fa6-0d56-46eb-b8b0-52c902fe90a3_1458x686.png 848w, https://substackcdn.com/image/fetch/$s_!ocX0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F186c4fa6-0d56-46eb-b8b0-52c902fe90a3_1458x686.png 1272w, https://substackcdn.com/image/fetch/$s_!ocX0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F186c4fa6-0d56-46eb-b8b0-52c902fe90a3_1458x686.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We should continuously strive to reduce the <strong>coordination tax</strong> that keeps good work stuck between roles.</p><p>I wrote more about this in the full piece on the new pyramid of software engineering &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:189655863,&quot;url&quot;:&quot;https://refactoring.fm/p/the-new-pyramid-of-software-engineering&quot;,&quot;publication_id&quot;:64099,&quot;embedding_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 New Pyramid of Software Engineering &#127956;&#65039;&quot;,&quot;truncated_body_text&quot;:&quot;There are a lot of opinions around these days about the future of software, including of course my own.&quot;,&quot;date&quot;:&quot;2026-03-04T08:01:19.283Z&quot;,&quot;like_count&quot;:55,&quot;comment_count&quot;:0,&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;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/the-new-pyramid-of-software-engineering?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web&amp;embedding_publication_id=64099"><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 New Pyramid of Software Engineering &#127956;&#65039;</div></div><div class="embedded-post-body">There are a lot of opinions around these days about the future of software, including of course my own&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">8 months ago &#183; 55 likes &#183; Luca Rossi</div></a></div><div><hr></div><h2>3) &#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://martinfowler.com/rachels-ramblings/conductor-developer.html">The Conductor Developer</a></h4><h5>4 min &#8226; by Rachel Laycock</h5><p>Rachel is CTO at Thoughtworks and has a good frame for what AI is doing to software development. The developer becomes more like an orchestra conductor, who needs to keep the whole system in their head while many agents play different, specialized parts. This feels directionally right to me, which makes me forgive that the article itself feels a little bit AI-generated :)</p><div><hr></div><h4>&#129352; <a href="https://www.seangoedecke.com/llms-reward-expertise/">LLMs Reward Expertise</a></h4><h5>4 min &#8226; by Sean Goedecke</h5><p>Sean&#8217;s take matches my own experience: when working with AI, the better you know the domain, the better questions you can ask, the harder you can steer the model, the faster you can spot weak answers, and so on. In other words, AI massively rewards expertise.</p><div><hr></div><h4>&#129353; <a href="https://gruhn.me/blog/2026-08-03/">Don&#8217;t Be a Meat Proxy</a></h4><h5>1 min &#8226; by Niklas Gruhn</h5><p>If you use AI in a team, your job is to read, check, compress, and contextualize what AI gives you, before you pass it on to other people. Otherwise, people might as well talk to the model directly.</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[Bugs, feature requests, career stories, and weekly readings 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #219]]></description><link>https://refactoring.fm/p/bugs-feature-requests-career-stories</link><guid isPermaLink="false">https://refactoring.fm/p/bugs-feature-requests-career-stories</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 03 Aug 2026 07:01:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RiQw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><div><hr></div><h2>&#128269; <a href="https://getunblocked.link/nHMOAqW">Can you prove your AI is working?</a></h2><p><em>This newsletter is brought to you by <a href="https://getunblocked.link/nHMOAqW">Unblocked</a>!</em></p><p>AI is firmly in your engineering workflow. But while the token spend shows it, the throughput doesn&#8217;t. Humans are very much still in the loop, and that&#8217;s likely a context problem.</p><p>Our friends at Unblocked will hold a <strong><a href="https://getunblocked.link/nHMOAqW">free webinar on Aug 19</a></strong> to cover:</p><ul><li><p>How to track <em>AI productivity</em></p></li><li><p>How <em>context maturity</em> affects where teams stall</p></li><li><p>What it takes to get <em>real value</em> from your agents</p></li></ul><p>They know what they are doing and I personally use Unblocked everyday for Tolaria! Recommended.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getunblocked.link/nHMOAqW&quot;,&quot;text&quot;:&quot;Join the free webinar&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getunblocked.link/nHMOAqW"><span>Join the free webinar</span></a></p><div><hr></div><h2>&#128678; Separate bugs from feature requests</h2><p>When a product grows, feedback starts arriving from everywhere.</p><p>In my case <a href="https://refactoring.fm/p/how-i-run-the-tolaria-project">with Tolaria</a>, it comes from GitHub issues, support emails, community threads, crash reports, the Canny board, random DMs, and of course, my own ideas.</p><p>It is tempting to put all of this into one giant backlog, but bugs and feature requests create very different kinds of work.</p><ul><li><p>A <strong>bug</strong> mostly needs reproduction, prioritization, and a fix. If it is real, there is usually not much product strategy to debate. The job is to understand what is broken and make it not broken anymore.</p></li><li><p>A <strong>feature request</strong> is different. It needs deduplication, discussion, roadmap judgment, planned / in-progress states, and possibly a place where users can follow what happens next. It also benefits from users voting on actual proposals, so you can use that for broad prioritization.</p></li></ul><p>If you collapse these channels into one, like many teams I know actually do, the system can get noisy very quickly, like:</p><ul><li><p>Users filing feature requests as bugs</p></li><li><p>Bugs appearing in product boards</p></li><li><p>Duplicates multiplying everywhere</p></li><li><p>Engineers spending time routing work manually</p></li></ul><p>About all of this, what works for me is explicit <strong>traffic control</strong>. Route people to the right place when they submit feedback, and then run an intake workflow that moves misplaced items, closes duplicates, and turns valid work into tasks &#128071;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RiQw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RiQw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RiQw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RiQw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RiQw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!RiQw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg" width="1456" height="1286" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1286,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:188551,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://refactoring.fm/i/209087902?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RiQw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RiQw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RiQw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RiQw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I wrote more about this in the full piece on how I run Tolaria as a big open source project &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:196524187,&quot;url&quot;:&quot;https://refactoring.fm/p/how-i-run-the-tolaria-project&quot;,&quot;publication_id&quot;:64099,&quot;embedding_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 I Run the Tolaria Project&quot;,&quot;truncated_body_text&quot;:&quot;Hey, Luca here! As you probably know by now, two weeks ago I launched Tolaria, a desktop app for Mac, Linux, and Windows, to manage markdown knowledge bases &#8212; for humans and AI.&quot;,&quot;date&quot;:&quot;2026-05-06T07:02:34.808Z&quot;,&quot;like_count&quot;:53,&quot;comment_count&quot;:2,&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;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/how-i-run-the-tolaria-project?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web&amp;embedding_publication_id=64099"><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 I Run the Tolaria Project</div></div><div class="embedded-post-body">Hey, Luca here! As you probably know by now, two weeks ago I launched Tolaria, a desktop app for Mac, Linux, and Windows, to manage markdown knowledge bases &#8212; for humans and AI&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">6 months ago &#183; 53 likes &#183; 2 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>&#127908; Prepare the three stories every behavioral interview needs</h2><p>Behavioral interviews can feel vague because there is no clear and immediate feedback. You say something about your career, someone nods, asks for a follow-up, and you leave the call wondering whether the answer was any good.</p><p>In <a href="https://refactoring.fm/p/how-to-master-behavioral-interviews-e75">my conversation with Austen McDonald</a>, former hiring committee chair at Meta, he gave practical advice to reduce this ambiguity: most behavioral interviews eventually orbit around three questions.</p><ol><li><p>&#128587;&#8205;&#9794;&#65039; <strong>Tell me about yourself</strong></p></li><li><p>&#128451;&#65039; <strong>Tell me about a project</strong></p></li><li><p>&#9876;&#65039; <strong>Tell me about a conflict</strong></p></li></ol><p>This does not mean you should memorize three canned answers and recite them everywhere. The point is to understand your own career and adapt the same strong stories to many different questions.</p><ul><li><p>For &#8220;tell me about yourself&#8221;, Austen suggests three parts: who you are, your greatest hits, and why this specific role makes sense as the next step. The goal is that, if the call drops after your intro, the interviewer will already want to talk again.</p></li><li><p>For a project story, you should guide the interviewer toward the best material before time runs out. So you should signpost the important moments upfront (e.g. the architecture choice, the difficult implementation, the launch tradeoff) and then go deeper where the signal is strongest.</p></li><li><p>For conflict, Austen says the most common mistake is skipping the actual resolution. Interviewers do not only want to hear that there was disagreement. They want to understand what you did: did you go directly to the person? Did you use Slack, a meeting, a doc? Did you show empathy for the other side? What changed afterwards?</p></li></ul><p>Good behavioral prep is about taking your real experience and making it legible for your interviewer.</p><p>You can find the full conversation with Austen here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;f2358ccf-d6a0-4d30-ac8d-ab2d7163399f&quot;,&quot;caption&quot;:&quot;Today&#8217;s sponsor is Intent by Augment.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How to Master Behavioral Interviews &#127908; &#8212; with Austen McDonald&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-02-20T08:02:15.756Z&quot;,&quot;cover_image&quot;:&quot;https://substack-video.s3.amazonaws.com/video_upload/post/188513236/e843a4d8-46f5-4636-8662-eedc0f84a672/transcoded-03602.png&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/how-to-master-behavioral-interviews-e75&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;e843a4d8-46f5-4636-8662-eedc0f84a672&quot;,&quot;id&quot;:188513236,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:23,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://annievella.com/posts/the-productivity-experience-paradox/">The Productivity-Experience Paradox</a></h4><h5>11 min &#8226; by Annie Vella</h5><p>A very useful counterweight to the usual AI productivity discourse. Annie shows that engineers can feel more productive while their actual experience gets worse, especially around flow state. An interesting second-order effect leaders should watch before declaring victory.</p><div><hr></div><h4>&#129352; <a href="https://frederickvanbrabant.com/blog/2026-07-24-you-dont-hire-juniors-to-do-menial-chores/">You Don&#8217;t Hire Juniors to Do Menial Chores</a></h4><h5>3 min &#8226; by Frederick Vanbrabant</h5><p>Short and sharp argument against one of the laziest takes of the AI era: that we do not need juniors anymore. Frederick acknowledges the &#8220;succession&#8221; point, but counterbalances it with the innovation one: juniors bring fresh takes on many things, and stress-test your assumptions because they have not yet learned all your bad habits.</p><div><hr></div><h4>&#129353; <a href="https://randsinrepose.com/archives/the-motivation/">The Motivation</a></h4><h5>1 min &#8226; by Michael Lopp</h5><p>Tiny Rands post about why writing matters: because writing is a way of building. I love this framing. In a world where we can generate more words and more code than ever, the most valuable part is still the <em>thinking</em> you force yourself to do before you publish or ship.</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[Good relationships, automation, and weekly readings 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #218]]></description><link>https://refactoring.fm/p/good-relationships-automation-and</link><guid isPermaLink="false">https://refactoring.fm/p/good-relationships-automation-and</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 27 Jul 2026 07:00:37 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><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><div><hr></div><h2>&#128184; AI spend is outrunning returns</h2><p><em>This idea is brought to you by today&#8217;s sponsor, DX!</em></p><p>Last week I published <a href="https://refactoring.fm/p/the-state-of-ai-impact-in-engineering">my own commentary</a> on the <a href="https://getdx.com/report/state-of-ai-impact-in-engineering-q2-report/?utm_source=refactoring">Q2 AI Impact report</a> by <a href="http://getdx.com/">DX</a>, which among other things, showed how quarterly median AI spend <strong>grew 28x</strong> year-over-year!</p><p>My expectation is that this <strong>AI honeymoon</strong> will not last forever, and tech leaders may already face tough budget conversations in the back half of 2026. That&#8217;s especially because it doesn&#8217;t seem that such spend is leading to <a href="https://refactoring.fm/i/207414394/orgs-are-not-multiplying-ai-output">outrageous outcomes</a> so far.</p><p>But we&#8217;ll see! You can find the full report below &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getdx.com/report/state-of-ai-impact-in-engineering-q2-report/?utm_source=refactoring&quot;,&quot;text&quot;:&quot;Check out the full AI impact report&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getdx.com/report/state-of-ai-impact-in-engineering-q2-report/?utm_source=refactoring"><span>Check out the full AI impact report</span></a></p><div><hr></div><h2>&#127793; Build relationships before you need them</h2><p>Especially in tech, networking often gets framed in a very transactional way. You meet people because one day you may need a referral, an intro, a customer, or a job.</p><p>I think this is exactly the wrong way to look at it.</p><p>I have found that the best relationships are created <em>before</em> there is any immediate need attached to them. You build rapport around common interests, you understand what the other person cares about, you are helpful when you can, and <strong>you do not keep score</strong>.</p><p>Long-term, this is both 1) the better behavior as a human being, and 2) the better strategy.</p><p>Because you never really know who will be able to help you in the future, or how. Opportunities often come through weak signals, second-order connections, and people who simply remember that interacting with you was... pleasant. Before it was any useful.</p><p>So my advice is simple: do not wait until you need something to show up.</p><p>But how?!</p><p>It can be anything, really. Share useful material (&#8221;I read this article today and thought you might like it&#8221;). Make intros. Reply thoughtfully. Follow up when someone is working on something interesting. <strong>Be generous</strong> <strong>in small ways</strong> that compound over time.</p><p>I wrote more about this in this full piece on growing your network &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:71183836,&quot;url&quot;:&quot;https://refactoring.fm/p/networking&quot;,&quot;publication_id&quot;:64099,&quot;embedding_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 Grow your Network &#127867;&quot;,&quot;truncated_body_text&quot;:&quot;For as long as I can remember, a good share of the people I admired have recommended me to grow my network.&quot;,&quot;date&quot;:&quot;2022-09-01T05:35:16.907Z&quot;,&quot;like_count&quot;:21,&quot;comment_count&quot;:2,&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;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/networking?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web&amp;embedding_publication_id=64099"><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 Grow your Network &#127867;</div></div><div class="embedded-post-body">For as long as I can remember, a good share of the people I admired have recommended me to grow my network&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">4 years ago &#183; 21 likes &#183; 2 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>&#128295; Automate the copy-paste (not the judgment)</h2><p>A lot of team process work is not actually <em>process</em> work. It&#8217;s copy-paste disguised as process.</p><p>Raise your hand if you ever updated a project management ticket because the real status lives elsewhere. Or you asked an engineer for a delivery date because the current dashboard is stale and can&#8217;t be trusted.</p><p>In my conversation with Antonia Scheidel, Director of Engineering at Duolingo, I liked her distinction between two kinds of information:</p><ol><li><p><strong>Information that already exists somewhere</strong></p></li><li><p><strong>Information that only exists in people&#8217;s heads</strong></p></li></ol><p>The first kind should usually be automated. E.g.:</p><ul><li><p>If an experiment was launched on the appropriate <em>experimentation platform</em>, humans should not have to copy that into Jira.</p></li><li><p>If a stakeholder needs to know that a step is ready for review, the system should notify them.</p></li></ul><p>The second kind, instead, still needs people.</p><p>In normal teams&#8217; workflows, there are plenty of <em>judgment calls</em> that cannot be reliably inferred from a tool, and that&#8217;s where you want to <em>direct</em> human attention. Things like delivery estimates, blockers, timeline changes, tradeoffs.</p><p>So, the shape of good automation looks like:</p><ol><li><p>Connect the systems of record</p></li><li><p>Remove the glue work</p></li><li><p>Ask people for the (remaining) information that genuinely requires their judgment.</p></li></ol><p>Antonia built this successfully at Duolingo, and you can find the full interview here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;48978b38-337e-4f93-a67e-c194bedc331d&quot;,&quot;caption&quot;:&quot;Listen now on YouTube, Apple, or Spotify&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How to Automate Team Processes &#9889; &#8212; with Antonia Scheidel&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;2025-09-12T06:01:23.662Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/GK8M5tdgXi0&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/automating-team-processes-gracefully&quot;,&quot;section_name&quot;:&quot;&#127897;&#65039; Podcast&quot;,&quot;video_upload_id&quot;:&quot;1a2d9865-a9c0-4af3-9227-70819ded4953&quot;,&quot;id&quot;:172078825,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:21,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://brodzinski.com/2026/07/3x-pull-request-size-ai.html">We 3.5x&#8217;d Our Pull Requests with AI: Now We Catch Fewer Bugs</a></h4><h5>5 min &#8226; by Pawel Brodzinski</h5><p>A detailed, real-world write-up about the impact of AI on an engineering team&#8217;s code reviews. PRs went from 200 to 800 lines on average, and reviewers inevitably started missing more things. Worth checking out.</p><div><hr></div><h4>&#129352; <a href="https://werd.io/american-ai-is-locked-down-and-proprietary-its-losing/">American AI is locked down and proprietary. It&#8217;s losing.</a></h4><h5>3 min &#8226; by Ben Werdmuller</h5><p>Ben makes a sharp argument that open models may win for the same reasons open infra usually wins: distribution, portability, and permissionless innovation. I am not sure the geopolitical framing is the whole story, but I really like the business point.</p><div><hr></div><h4>&#129353; <a href="https://simonwillison.net/2026/Jul/20/cheap-reverse-engineering/#atom-everything">Reverse-engineering is cheap now</a></h4><h5>1 min &#8226; by Simon Willison</h5><p>Tiny post, big ideas. Agents make throwaway code extremely cheap, so entire categories of &#8220;not worth it&#8221; automation suddenly become worth trying. Simon makes the example of reverse-engineering home devices, which I have tried myself many times! If AI makes weird small projects viable, I am all for 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[AI scaffolding, daily feedback, and weekly readings! 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #217]]></description><link>https://refactoring.fm/p/ai-scaffolding-daily-feedback-and</link><guid isPermaLink="false">https://refactoring.fm/p/ai-scaffolding-daily-feedback-and</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 20 Jul 2026 07:02:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1AzC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaeb49de-28a9-45e2-a032-a3960618c273_1456x825.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><div><hr></div><h3>Brought to you by our friends at <a href="https://na2.hubs.ly/H06Ljjc0">Atono</a>!</h3><blockquote><p>You hand off a story to an agent. The code works, it ships, but it&#8217;s not what you meant.</p><p>As agents move faster, the decisions that shape what gets built need to travel with the work. Most teams haven&#8217;t systematized this yet, so the result is correct implementations&#8230; of the wrong thing!</p><p>Atono just published their <strong><a href="https://na2.hubs.ly/H06LHnt0">From Intent to Production at Agent Speed</a></strong> guide, showing how product knowledge becomes your leverage point for keeping decisions intact, even at agent speed.</p><p><span>We&#8217;ve previously collaborated on pieces like </span><a href="https://refactoring.fm/p/the-state-of-product-development"><span>The State of Product Development 2026</span></a><span> and </span><a href="https://refactoring.fm/p/the-ai-productivity-paradox"><span>The AI Productivity Paradox</span></a><span> &#8212; this guide goes deeper into product delivery for agentic workflows </span>&#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://na2.hubs.ly/H06LHnt0&quot;,&quot;text&quot;:&quot;Download the guide&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://na2.hubs.ly/H06LHnt0"><span>Download the guide</span></a></p></blockquote><div><hr></div><h2>1) &#127959;&#65039; Agents are great scaffolding</h2><p>A mistake I see more and more with AI workflows (including mine!) is using AI for everything, even for parts that would be better done in other ways.</p><p>That&#8217;s easy to fall into, because when you are automating a new recurring task, an agent is often the fastest way to start. You can give it the goal in natural language, let it run the process end to end, and observe what happens. This is not only quick to do, it&#8217;s also useful because, at the beginning, you often do not know the real shape of the work yet.</p><p>So the agent helps you discover things like:</p><ul><li><p>which steps repeat every time</p></li><li><p>which data is missing or messy</p></li><li><p>where approvals are needed</p></li><li><p>which parts require actual judgment</p></li><li><p>and more</p></li></ul><p>Once the workflow becomes clear, though, the boring parts should be extracted into something more deterministic: scripts, APIs, cron jobs, workflow definitions, or whatever tool fits the job. That makes the workflow faster, cheaper, and easier to observe and debug.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1AzC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaeb49de-28a9-45e2-a032-a3960618c273_1456x825.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1AzC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaeb49de-28a9-45e2-a032-a3960618c273_1456x825.webp 424w, https://substackcdn.com/image/fetch/$s_!1AzC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaeb49de-28a9-45e2-a032-a3960618c273_1456x825.webp 848w, https://substackcdn.com/image/fetch/$s_!1AzC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaeb49de-28a9-45e2-a032-a3960618c273_1456x825.webp 1272w, https://substackcdn.com/image/fetch/$s_!1AzC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaeb49de-28a9-45e2-a032-a3960618c273_1456x825.webp 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!1AzC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaeb49de-28a9-45e2-a032-a3960618c273_1456x825.webp" width="1456" height="825" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/faeb49de-28a9-45e2-a032-a3960618c273_1456x825.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:825,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:74042,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://refactoring.fm/i/207253073?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaeb49de-28a9-45e2-a032-a3960618c273_1456x825.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1AzC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaeb49de-28a9-45e2-a032-a3960618c273_1456x825.webp 424w, https://substackcdn.com/image/fetch/$s_!1AzC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaeb49de-28a9-45e2-a032-a3960618c273_1456x825.webp 848w, https://substackcdn.com/image/fetch/$s_!1AzC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaeb49de-28a9-45e2-a032-a3960618c273_1456x825.webp 1272w, https://substackcdn.com/image/fetch/$s_!1AzC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffaeb49de-28a9-45e2-a032-a3960618c273_1456x825.webp 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>These days I try to keep AI where flexibility is valuable (e.g. judgment calls), and replace it where determinism is cheap. Most often, it&#8217;s a progression: I start with an agent because it is fast, observe where the task repeats, harden the stable steps, and leave the ambiguous parts to AI.</p><p>I wrote more about this in the full piece on orchestrating AI workflows &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:197106828,&quot;url&quot;:&quot;https://refactoring.fm/p/how-to-orchestrate-ai-workflows&quot;,&quot;publication_id&quot;:64099,&quot;embedding_publication_id&quot;:null,&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 Orchestrate AI Workflows&quot;,&quot;truncated_body_text&quot;:&quot;Hey, Luca here! Welcome to a weekly essay from Refactoring.&quot;,&quot;date&quot;:&quot;2026-05-13T07:15:51.793Z&quot;,&quot;like_count&quot;:60,&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;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/how-to-orchestrate-ai-workflows?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 Orchestrate AI Workflows</div></div><div class="embedded-post-body">Hey, Luca here! Welcome to a weekly essay from Refactoring&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">6 months ago &#183; 60 likes &#183; 1 comment &#183; Luca Rossi</div></a></div><div><hr></div><h2>2) &#128172; Giving feedback should be ordinary</h2><p>Feedback is often treated like a special event. It&#8217;s the performance review, or the difficult conversation we should have had long ago, or the moment when something went wrong enough that somebody has to say something.</p><p>The problem is that, if feedback only appears in those moments, people learn to <strong>associate it with danger</strong>. They hear &#8220;can I give you some feedback?&#8221; and brace for impact.</p><p>In my conversation with Jean Hsu and Cate Huston, two professional coaches, Cate shared a better habit: every time someone does something good, tell them.</p><p>When people receive frequent, <strong>specific positive feedback</strong>, they learn that you are paying attention to their work as a whole, not only waiting for mistakes. Then, even when you eventually need to say something corrective, it lands differently.</p><p>You can also spread this beyond yourself. When someone praises a colleague privately, ask: &#8220;have you told them?&#8221; Over time, feedback stops being capital-F Feedback and becomes normal signal in the system.</p><p>You can find the full interview with Jean and Cate here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;8fba2164-bbaf-4c47-8b4d-d9e6a35d1cf0&quot;,&quot;caption&quot;:&quot;Today&#8217;s sponsor is Intent by Augment.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How to Own Your Career &#129437; &#8212; with Jean Hsu and Cate Huston&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-05-01T08:37:21.922Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/tb5wdmTJeuk&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/how-to-own-your-career-with-jean&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;53d8586b-f6d8-474a-9f3a-292a3bf0f3f2&quot;,&quot;id&quot;:195650521,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:21,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>3) &#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://lucumr.pocoo.org/2026/7/13/the-tower-keeps-rising/">The Tower Keeps Rising</a></h4><h5>3 min &#8226; by Armin Ronacher</h5><p>I really like the Babel analogy applied to how we cooperate as humans and, ultimately, software. For the first time, &#8220;construction&#8221; can keep going even after humans have lost the shared language needed to reason about the system. Food for thought.</p><div><hr></div><h4>&#129352; <a href="https://lethain.com/generated-demand/">Generated and Suppressed Demand</a></h4><h5>3 min &#8226; by Will Larson</h5><p>A useful mental model for why fixing a struggling team can feel like nothing improved. Sometimes the team gets better, and the reward for it is... more work! All the previously <em>hidden</em> demand finally shows up. Great management advice, as always from Will.</p><div><hr></div><h4>&#129353; <a href="https://antirez.com/news/169">Control the Ideas, Not the Code</a></h4><h5>6 min &#8226; by Salvatore &#8220;Antirez&#8221; Sanfilippo</h5><p>Antirez makes a clear point that many engineers are still resisting: if AI writes more code, reviewing every line is probably the wrong use of your time. You have more leverage when you focus on ideas and design.</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[Anticipating questions, quiet leadership, and weekly readings 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #216]]></description><link>https://refactoring.fm/p/anticipating-questions-quiet-leadership</link><guid isPermaLink="false">https://refactoring.fm/p/anticipating-questions-quiet-leadership</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 13 Jul 2026 07:00:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!X6r4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><div><hr></div><h2>&#129692; <a href="https://watch.getcontrast.io/register/context-maturity-jul?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary">The 8 Levels of Context Maturity</a></h2><p><em>This is brought to you by our friends at <a href="https://watch.getcontrast.io/register/context-maturity-jul?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary">Unblocked</a>!</em></p><p>The token spend shows that AI is in your engineering workflow, but the throughput doesn&#8217;t!</p><p>Raise your hand if you can relate. A lot of the times, this is a <strong>context problem</strong>. I personally invest a lot in making sure AI gets good context about past decisions, what exists, and what needs to do, and <a href="https://refactoring.fm/i/204247813/fetching-knowledge-with-unblocked">I get a lot of help from Unblocked</a> about this.</p><p>On <strong>July 23rd</strong>, the Unblocked team is running a free webinar that maps the 8 levels of context maturity: where most teams are stuck, what the ceiling looks like at each stage, and what it takes to make the most out of your agents. </p><p>Very recommended &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://watch.getcontrast.io/register/context-maturity-jul?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary&quot;,&quot;text&quot;:&quot;Join live July 23rd (FREE)&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://watch.getcontrast.io/register/context-maturity-jul?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary"><span>Join live July 23rd (FREE)</span></a></p><div><hr></div><h2>1) &#128499;&#65039; Anticipate exec questions</h2><p>Whether you are an engineer or a manager, one of the most underrated skills you can have is making your ideas easier to approve!</p><p>This is often tricky, especially when presenting to executives, who may be removed from our work and don&#8217;t understand technical details. In this case, you can put yourself in their shoes and *anticipate *many of their questions, like:</p><ul><li><p><em>How much will it cost?</em></p></li><li><p><em>What do we get for the money?</em></p></li><li><p><em>Why now?</em></p></li><li><p><em>What happens if we do nothing?</em></p></li><li><p><em>What other options did we consider?</em></p></li><li><p><em>How will we measure success?</em></p></li><li><p><em>What are the risks, and how do we reduce them?</em></p></li><li><p><em>Who owns delivery?</em></p></li><li><p><em>Which other teams or business areas are affected?</em></p></li></ul><p>Some of these will feel annoying or nitpicky, or even not really applicable to your situation, but you may get asked them anyway! The more senior someone is, the wider their span of responsibility becomes, and the less time they can spend understanding any single problem. Expect broad, sometimes even off-topic questions.</p><p>So your job becomes to compress the important context for your interlocutor, translating complexity into things like trade-offs, outcomes, risks, and timing.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X6r4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X6r4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png 424w, https://substackcdn.com/image/fetch/$s_!X6r4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png 848w, https://substackcdn.com/image/fetch/$s_!X6r4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png 1272w, https://substackcdn.com/image/fetch/$s_!X6r4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!X6r4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png" width="1456" height="601" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:601,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:124030,&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/206250738?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.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_!X6r4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png 424w, https://substackcdn.com/image/fetch/$s_!X6r4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png 848w, https://substackcdn.com/image/fetch/$s_!X6r4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png 1272w, https://substackcdn.com/image/fetch/$s_!X6r4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A good proposal should make the obvious executive questions boring, because they are already answered. That is how you turn a good technical idea into something the business can actually say yes to.</p><p>I wrote more about this in the full piece with Anna Shipman on the Engineer &#8594; Executive Translation Layer &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:178065441,&quot;url&quot;:&quot;https://refactoring.fm/p/the-engineer-executive-translation&quot;,&quot;publication_id&quot;:64099,&quot;embedding_publication_id&quot;:null,&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 Engineer &#8594; Executive Translation Layer &#128256;&quot;,&quot;truncated_body_text&quot;:&quot;Hey, Luca here! Today we are hosting a fantastic new article by Anna Shipman, CTO at Kooth.&quot;,&quot;date&quot;:&quot;2025-11-12T08:01:00.523Z&quot;,&quot;like_count&quot;:31,&quot;comment_count&quot;:0,&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;subscriber&quot;:null}},{&quot;id&quot;:411731536,&quot;name&quot;:&quot;Anna Shipman&quot;,&quot;handle&quot;:&quot;annashipman&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c41f7b58-210b-4e51-9ee9-eed131f347c5_3259x3259.jpeg&quot;,&quot;bio&quot;:&quot;Strategic technology leader. Previous: CTO at Kooth, Technical Director at the Financial Times, Technical Architect at GDS. Love Vim, cryptic crosswords and pool. I speak at conferences, and write about strategy and tech leadership on my blog, JFDI.&quot;,&quot;profile_set_up_at&quot;:&quot;2026-02-25T10:14:45.167Z&quot;,&quot;reader_installed_at&quot;:&quot;2026-02-25T10:23:36.696Z&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:null,&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;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/the-engineer-executive-translation?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 Engineer &#8594; Executive Translation Layer &#128256;</div></div><div class="embedded-post-body">Hey, Luca here! Today we are hosting a fantastic new article by Anna Shipman, CTO at Kooth&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">a year ago &#183; 31 likes &#183; Luca Rossi and Anna Shipman</div></a></div><div><hr></div><h2>2) &#127911; Quiet leadership prevents noisy emergencies</h2><p>Tech culture loves the person who saves the day.</p><p>The engineer who stays up late to fix production. The heroic intervention that makes everybody clap.</p><p>These days I rewatched <a href="https://refactoring.fm/p/how-to-manage-humans-with-rands">my first conversation with Rands</a>, and I love how he pushed back on this instinct. Rands simply says: if someone saves the day, the first question should be &#8220;<em>why did the day need saving?&#8221;</em></p><p>A lot of good leadership is invisible because the bad thing simply never happens. It&#8217;s when:</p><ul><li><p>You act on a yellow flag before it becomes a red flag.</p></li><li><p>You give feedback early, before resentment piles up.</p></li><li><p>You listen long and hard enough to understand what is actually going on, instead of rushing to action.</p></li></ul><p>Nobody claps when nothing explodes, but that&#8217;s how it works.</p><p>To make this possible, Rands stresses over the importance of <em>listening</em> as an active leadership tool. You need to be collecting the weak signals, the small patterns, which lead to equally small (but crucial) interventions every day.</p><p>You can find the full interview with Rands here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;1f42fd58-0ff9-4337-8b64-488471aa5265&quot;,&quot;caption&quot;:&quot;Today's guest is Michael Lopp, better known as Rands!&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How to Manage Humans &#127933; &#8212; with Rands&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;2025-05-30T06:02:09.377Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/T8pcMl3rmbM&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/how-to-manage-humans-with-rands&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;6fe20f16-45bd-4435-9c43-db420a814dad&quot;,&quot;id&quot;:164631904,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:33,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>3) &#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://martinfowler.com/articles/exploring-gen-ai/local-models-for-coding-factors.html">Viability of Local Models for Coding</a></h4><h5>9 min &#8226; by Birgitta B&#246;ckeler</h5><p>A useful reality check on local coding models. The short version is they are getting much better, but the constraints are still very real: RAM, speed, context, tool calling, and reliability all matter. Great piece by Birgitta who we also interviewed <a href="https://www.youtube.com/watch?v=65ctfy3Rmgc">last year</a>.</p><div><hr></div><h4>&#129352; <a href="https://charity.wtf/p/in-defense-of-ai-mandates">In Defense of AI Mandates</a></h4><h5>4 min &#8226; by Charity Majors</h5><p>I love how Charity frames AI mandates as a funding device. This means. if leaders want people to learn a new way of working, they have to make room for the temporary slowdown, the annoyance, and the mess. Charity was also one of the <a href="https://www.youtube.com/watch?v=97YRxrKNLP0">very first guests</a> of our podcast.</p><div><hr></div><h4>&#129353; <a href="https://vickiboykis.com/2026/05/28/we-should-be-more-tired-than-the-model/">We should be more tired than the model</a></h4><h5>2 min &#8226; by Vicki Boykis</h5><p>An interesting take that I largely do not agree with, but gave me something to think about. I love the idea of using LLMs in a way that I can *grow *(as opposed to my skills <em>atrophying </em>here and there<em>)</em>, but I don&#8217;t see myself going back to writing code manually in order to do that. That&#8217;s too big of a tradeoff. But will look for ways to make this more <em>palatable</em>!</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[Code hygiene, personal identity, and weekly readings! 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #]]></description><link>https://refactoring.fm/p/code-hygiene-personal-identity-and</link><guid isPermaLink="false">https://refactoring.fm/p/code-hygiene-personal-identity-and</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 06 Jul 2026 07:02:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!alN4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><div><hr></div><h2>&#127903;&#65039; <a href="https://streamyard.com/watch/CXnfrUnxMCwk">Join our webinar on how to become an agentic engineering org!</a></h2><p>On <strong>July 22nd</strong> I will host an exclusive webinar together with the team at Augment Code!</p><p>Most teams adopt coding agents and see a <strong>20% lift</strong> at most, and then plateau. The most common reason is that the bottleneck moves, and <strong>you should lift your whole dev process</strong>, not just coding.</p><p>In this session, the Augment Code team shares <strong>how they transformed their own engineering org</strong> by redesigning one workflow at a time, and demos two of them live on a real codebase: <em>agentic code review</em> and <em>automated incident management</em>, where agents now resolve the majority of incidents end-to-end.</p><p>You&#8217;ll leave with a playbook for finding your org&#8217;s current bottleneck and a workflow you can replicate with your team this week &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://streamyard.com/watch/CXnfrUnxMCwk&quot;,&quot;text&quot;:&quot;Learn more and RSVP!&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://streamyard.com/watch/CXnfrUnxMCwk"><span>Learn more and RSVP!</span></a></p><div><hr></div><h2>1) &#129529; AI makes code hygiene enforceable</h2><p>I have written many times about this recently, but I&#8217;ll keep hammering on this point because it is so important, and I believe many people haven&#8217;t fully grasped it yet.</p><p>Good code hygiene is, at once, 1) something everybody agrees with in theory, and 2) quietly and often sacrifices in practice, because it&#8217;s hard to maintain.</p><p>Things like good test coverage, small files, high cohesion + low coupling, low cyclomatic complexity, have all historically needed people who care enough to push for it, review for it, and absorb the cost of fixing it.</p><p>For the first time, AI allows to turn hygiene into a system that can be enforced at almost no additional cost. You can give agents rules about how to write tests, keep files small, or refactor before adding new behavior.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!alN4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!alN4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png 424w, https://substackcdn.com/image/fetch/$s_!alN4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png 848w, https://substackcdn.com/image/fetch/$s_!alN4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png 1272w, https://substackcdn.com/image/fetch/$s_!alN4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!alN4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png" width="728" height="260.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:521,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:200363,&quot;alt&quot;:&quot;&quot;,&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/195748040?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!alN4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png 424w, https://substackcdn.com/image/fetch/$s_!alN4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png 848w, https://substackcdn.com/image/fetch/$s_!alN4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png 1272w, https://substackcdn.com/image/fetch/$s_!alN4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Many of such rules can also be enforced by gates: coverage checks, code health thresholds, linters, static analysis, and more. Guidance tells the agent what the floor looks like, and gates make such floor non-negotiable. And you can design these checks to run early, so the feedback arrives while the work is still cheap to fix.</p><p>The #1 concern of engineers about AI coding is still code quality, but you can actually use AI to <em>increase</em> the code quality of your team. I wrote more about this in the full piece on the compounding software factory &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:195748040,&quot;url&quot;:&quot;https://refactoring.fm/p/the-compounding-software-factory&quot;,&quot;publication_id&quot;:64099,&quot;embedding_publication_id&quot;:null,&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 Compounding Software Factory &#128200;&quot;,&quot;truncated_body_text&quot;:&quot;Hey there, Luca here!&quot;,&quot;date&quot;:&quot;2026-04-29T07:55:12.038Z&quot;,&quot;like_count&quot;:58,&quot;comment_count&quot;:2,&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;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/the-compounding-software-factory?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 Compounding Software Factory &#128200;</div></div><div class="embedded-post-body">Hey there, Luca here&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">6 months ago &#183; 58 likes &#183; 2 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>2) &#129694; Find a broader identity for yourself</h2><p>A lot of the anxiety around AI is really about who you are (and who you are going to become) as a professional, rather than about tools.</p><p>Based on your sense of identity, AI can feel either like an opportunity, or a threat.</p><p>If you define yourself narrowly &#8212; e.g. &#8220;I am a backend engineer who is great at algorithms&#8221;, or &#8220;I love the thrill of solving puzzles with code&#8221; &#8212; then AI might feel like it is walking into your house and stealing furniture.</p><p>Earlier this year I talked about this with my friend Thiago Ghisi, who had a long engineering leadership career, and then used his sabbatical to step back and look for broader patterns in his life and work.</p><p>He is now studying clinical psychology&#8212; and sure, if you frame him only as a Director of Engineering, this might look like a strange detour. But if you frame him as someone who helps high-achieving people grow, you can suddenly connect more dots.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MYMl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MYMl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png 424w, https://substackcdn.com/image/fetch/$s_!MYMl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png 848w, https://substackcdn.com/image/fetch/$s_!MYMl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png 1272w, https://substackcdn.com/image/fetch/$s_!MYMl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!MYMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png" width="1456" height="772" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:772,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:293136,&quot;alt&quot;:&quot;&quot;,&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/184235918?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!MYMl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png 424w, https://substackcdn.com/image/fetch/$s_!MYMl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png 848w, https://substackcdn.com/image/fetch/$s_!MYMl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png 1272w, https://substackcdn.com/image/fetch/$s_!MYMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I think this is a useful exercise for engineers too. Instead of thinking in terms of <em>skills</em>, ask yourself:</p><ul><li><p><em>Why do I do what I do?</em></p></li><li><p><em>What is a broader version of my role?</em></p></li><li><p><em>What kinds of problems do I actually care about solving?</em></p></li></ul><p>A broader identity makes you more adaptable, and opens up more opportunities. You can find the full piece below &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:184235918,&quot;url&quot;:&quot;https://refactoring.fm/p/finding-yourself-in-the-ai-era&quot;,&quot;publication_id&quot;:64099,&quot;embedding_publication_id&quot;:null,&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;Finding yourself in the AI era &#10024;&quot;,&quot;truncated_body_text&quot;:&quot;Hey, Luca here! This is a &#10024; bonus free essay &#10024; from Refactoring. Based on our schedule it should have been a paid one! But I really care about this topic so I decided to make it free for everyone.&quot;,&quot;date&quot;:&quot;2026-01-14T08:02:05.523Z&quot;,&quot;like_count&quot;:77,&quot;comment_count&quot;:6,&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;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/finding-yourself-in-the-ai-era?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">Finding yourself in the AI era &#10024;</div></div><div class="embedded-post-body">Hey, Luca here! This is a &#10024; bonus free essay &#10024; from Refactoring. Based on our schedule it should have been a paid one! But I really care about this topic so I decided to make it free for everyone&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">10 months ago &#183; 77 likes &#183; 6 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>3) &#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://newsletter.kentbeck.com/p/the-cost-yagni-was-never-about">The Cost YAGNI Was Never About</a></h4><h5>4 min &#8226; by Kent Beck</h5><p>I love how Kent reframes YAGNI for the AI era. The cost has never been writing the actual code, but rather spending optionality too early, and pulling investment forward before the feature can pay you back. Great article everyone should read.</p><div><hr></div><h4>&#129352; <a href="https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction">The Wrong Abstraction</a></h4><h5>4 min &#8226; by Sandi Metz</h5><p>This is a great <em>segue</em> to the Kent&#8217;s article above. Duplication is usually cheaper than the wrong abstraction, because the wrong abstraction eventually collects all kinds of bad stuff &#8212; parameters, conditionals, and sunk-cost arguments. Sometimes the fastest way forward is going back, but this is usually very hard to do.</p><div><hr></div><h4>&#129353; <a href="https://www.schneier.com/blog/archives/2026/06/ai-and-liability.html">AI and Liability</a></h4><h5>4 min &#8226; by Bruce Schneier</h5><p>Including this great piece by Bruce even if it&#8217;s not properly about software engineering, because it&#8217;s so relevant today. Companies should be liable for what their AI agents say and do, just like they are for employees or published content. If your product presents an answer with your logo on it, you should own it, and not use &#8220;the model said so&#8221; as an escape hatch.</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[Organizing information, code health, and weekly readings! 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #214]]></description><link>https://refactoring.fm/p/monday</link><guid isPermaLink="false">https://refactoring.fm/p/monday</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 29 Jun 2026 07:01:46 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><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><div><hr></div><div class="callout-block" data-callout="true"><h3>&#128203; <a href="https://getunblocked.link/X5bccbt">Unblocked: context to save you time and money</a></h3><p><em>This week&#8217;s newsletter is brought to you by <a href="https://getunblocked.link/X5bccbt">Unblocked</a>!</em></p><p><a href="https://getunblocked.link/X5bccbt">Unblocked</a><strong> </strong>brings together your PRs, docs, conversations, tickets, and more&#8211; turning them into actionable context for both your team and their AI agents.</p><p>Engineering teams that are getting ahead right now use a <strong>context engine</strong> like Unblocked to make better plans, use fewer tokens, and spend less time in review cycles.</p><p>AI is in your engineering workflow. While the token spend shows it, the throughput doesn&#8217;t. The human is very much still in the loop, and that&#8217;s a context problem.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getunblocked.link/X5bccbt&quot;,&quot;text&quot;:&quot;Stop babysitting your agents&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getunblocked.link/X5bccbt"><span>Stop babysitting your agents</span></a></p></div><div><hr></div><h2>1) &#129517; Organize information based on action</h2><p>Most knowledge bases slowly become piles of <strong>uninteresting information</strong>. After a while everything starts looking the same: meeting notes, ideas, projects, living side by side and you don&#8217;t know exactly how and why.</p><p>I believe when you store a new piece of information, there are two questions you need to ask yourself:</p><ul><li><p><strong>What is this?</strong></p></li><li><p><strong>What is this useful for?</strong></p></li></ul><p>The second question is often overlooked, and it&#8217;s a core idea behind <a href="https://refactoring.fm/p/introducing-portent">Portent</a>, which I published last month.</p><p>Portent includes default types &#8212; which answer the question &#8220;what is this&#8221; &#8212; but also a set of default relationships (belongs to, related to, etc) to help you figure out <strong>how to connect notes together</strong>, based on what they should help you with.</p><p>So, a meeting may belong to a project, a procedure may belong to a responsibility, a resource may be related to a topic, and so on.</p><p>Connecting notes together is hard work, but it&#8217;s paramount work! Otherwise you easily get stuck: you optimize too much for memory, and not enough for motion.</p><p>The goal is to know what to do next, rather than remember more stuff.</p><p>You can find the full article below:</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:198376374,&quot;url&quot;:&quot;https://refactoring.fm/p/introducing-portent&quot;,&quot;publication_id&quot;:64099,&quot;embedding_publication_id&quot;:null,&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;Introducing Portent &#9752;&#65039;&quot;,&quot;truncated_body_text&quot;:&quot;Today it&#8217;s almost one month since I released Tolaria, and during this time I have spoken with many people and teams that are trying to use it to create and manage internal knowledge bases.&quot;,&quot;date&quot;:&quot;2026-05-20T07:44:11.683Z&quot;,&quot;like_count&quot;:63,&quot;comment_count&quot;:7,&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;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/introducing-portent?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">Introducing Portent &#9752;&#65039;</div></div><div class="embedded-post-body">Today it&#8217;s almost one month since I released Tolaria, and during this time I have spoken with many people and teams that are trying to use it to create and manage internal knowledge bases&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">6 months ago &#183; 63 likes &#183; 7 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>2) &#128202; Treat code health as a data product</h2><p>Code quality conversations are often extremely vague.</p><p>Everyone wants cleaner code, fewer bugs, easier changes, but unless these things become <strong>visible and measurable</strong>, they remain mostly opinions.</p><p>One thing that I liked in my conversation with Stuart Caborn is that Loveholidays treated <strong>code health like a data product</strong>.</p><p>They collected signals, put them on dashboards, trended them over time, compared teams, and checked whether the numbers matched how engineers felt in sentiment surveys.</p><p>The AI angle makes this even more important. If code health data is available through tools and MCP servers, humans and agents can ask questions directly:</p><ul><li><p>How is my team doing compared with yesterday?</p></li><li><p>Are there any areas that got worse this week?</p></li><li><p>Where should an agent be more careful?</p></li></ul><p>At that point code health becomes a feedback system that informs your dev process, and it&#8217;s exactly the kind of feedback AI needs. The better the codebase, the easier for agents to understand it, change it, and spend fewer tokens doing so.</p><p>You can find the full interview with Stuart here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;4669ab7b-bac5-4109-b550-5ff85536dacb&quot;,&quot;caption&quot;:&quot;Today&#8217;s sponsor is Intent by Augment.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;AI Coding meets Code Health &#129668; &#8212; with Stuart Caborn&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-04-17T07:01:17.745Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/msEjXJhL0HM&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/ai-coding-meets-code-health-with&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;99827a36-4345-4b9a-b654-f13b7e2b736e&quot;,&quot;id&quot;:194274334,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:18,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>3) &#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://theengineeringmanager.substack.com/p/the-right-kind-of-ai-sceptic">Earn Your Scepticism</a></h4><h5>10 min &#8226; by James Stanier</h5><p>James makes a distinction I like a lot: scepticism as a conclusion vs scepticism as an identity. The useful version comes from actually using the tools, staying specific about what fails, and keeping your mind open as the evidence changes. This applies just as much to AI enthusiasts as to sceptics.</p><div><hr></div><h4>&#129352; <a href="https://www.moderndescartes.com/essays/ai_and_expertise/">Expertise in the Age of AI</a></h4><h5>5 min &#8226; by Brian Kihoon Lee</h5><p>Brian uses calculators as the analogy for coding agents: the tool removes a lot of mechanical work, but makes the underlying intuition even more valuable. I do not agree with every prediction in here, but the core point is sharp: skipping the struggle may leave you unable to judge the output.</p><div><hr></div><h4>&#129353; <a href="https://larahogan.me/blog/identify-new-role/">Find a New Role - Worksheet</a></h4><h5>4 min &#8226; by Lara Hogan</h5><p>Lara turns career decisions into four simple lists: must-haves, nice-to-haves, don&#8217;t-cares, and what you are optimizing for. This is practical and useful, especially when titles, prestige, and compensation make a role look more appealing than it really is.</p><div><hr></div><blockquote><p><em>Quick heads up! Joel and Melinda, coaches in residence at Refactoring, are part of a group offering <strong>full coaching scholarships</strong> to 29 engineering leaders from underrepresented groups in tech. Applications are open until the end of the day on 30th June.</em></p><p><strong><a href="https://monkeysthumb.co.uk/coaching-for-engineering-leaders/scholarships/">Learn more and apply here</a></strong></p></blockquote><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[Validation, async vs sync, and weekly readings!💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #213]]></description><link>https://refactoring.fm/p/validation-async-vs-sync-and-weekly</link><guid isPermaLink="false">https://refactoring.fm/p/validation-async-vs-sync-and-weekly</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 22 Jun 2026 06:59:41 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><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><div><hr></div><h3>&#127903;&#65039; <a href="https://watch.getcontrast.io/register/context-maturity?utm_source%3Drefactoring%26utm_medium%3Demail%26utm_campaign%3Dprimary&amp;sa=D&amp;source=editors&amp;ust=1781716017739422&amp;usg=AOvVaw0dAuDQj8Y_a7AL94HbNnBV">Discover 8 levels of context maturity in AI engineering</a></h3><p><em>This edition is brought to you by our friends at <a href="https://watch.getcontrast.io/register/context-maturity?utm_source%3Drefactoring%26utm_medium%3Demail%26utm_campaign%3Dprimary&amp;sa=D&amp;source=editors&amp;ust=1781716017739422&amp;usg=AOvVaw0dAuDQj8Y_a7AL94HbNnBV">Unblocked</a>!</em></p><blockquote><p>AI shows up in 60% of engineering work. But only about 20% of it can be handed off without someone babysitting the output. That&#8217;s because agents are <strong>missing context</strong>.</p><p>This 8-stage context maturity model gives a real answer on why you haven&#8217;t seen meaningful productivity gains for all the tokens burned.</p><p><strong><a href="https://watch.getcontrast.io/register/context-maturity?utm_source%3Drefactoring%26utm_medium%3Demail%26utm_campaign%3Dprimary&amp;sa=D&amp;source=editors&amp;ust=1781716017739422&amp;usg=AOvVaw0dAuDQj8Y_a7AL94HbNnBV"><span>Join live June 24 (FREE)</span></a></strong> to learn:</p><ul><li><p>Why more MCPs provides agents access but not understanding</p></li><li><p>What it takes to deploy agents you can trust without supervision</p></li><li><p>How a context layer solves for quality, efficiency and cost</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://watch.getcontrast.io/register/context-maturity?utm_source%3Drefactoring%26utm_medium%3Demail%26utm_campaign%3Dprimary&amp;sa=D&amp;source=editors&amp;ust=1781716017739422&amp;usg=AOvVaw0dAuDQj8Y_a7AL94HbNnBV&quot;,&quot;text&quot;:&quot;Learn more and register&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://watch.getcontrast.io/register/context-maturity?utm_source%3Drefactoring%26utm_medium%3Demail%26utm_campaign%3Dprimary&amp;sa=D&amp;source=editors&amp;ust=1781716017739422&amp;usg=AOvVaw0dAuDQj8Y_a7AL94HbNnBV"><span>Learn more and register</span></a></p></blockquote><div><hr></div><h2>1) &#128269; Is validation really the new bottleneck?!</h2><p>So are the pundits (like myself) right? Is <em>validation</em> the new bottleneck? I think it depends, but <a href="https://refactoring.fm/p/how-i-run-the-tolaria-project">for Tolaria</a> I surely spend a lot of time on it.</p><p>Every task that gets completed by the AI is shipped in a new alpha version and moved to the &#8220;in review&#8221; section, where I review it against my production vault.</p><p>Here, a few things may happen:</p><ul><li><p><strong>It&#8217;s good </strong>&#8212; I move the task to &#8220;to release&#8221;</p></li><li><p><strong>It&#8217;s ~90% good </strong>&#8212; I do the final tweaks from my MacBook&#8217;s Codex</p></li><li><p><strong>Needs work, but it&#8217;s still good progress </strong>&#8212; this is the trickiest to decide. If it&#8217;s incomplete but still useful, I have a bias towards <em>progress </em>and I release it anyway, creating a separate task for the improvements.</p></li><li><p><strong>Wrong or not usable </strong>&#8212; this is where the task is sent &#8220;to rework&#8221;, with a QA comment about what needs to be fixed.</p></li></ul><p>I do a big batch of reviews first thing in the morning, for tasks that were done overnight, and then usually again after lunch, and before dinner, where I also try to make sure the AI has enough to do for the night.</p><p>So today validation feels like the biggest bottleneck indeed, also because I believe the right course of action most of the time is to <strong>keep specs light</strong> and let the AI figure out stuff by itself.</p><p>For most features, even when the first pass is not <em>exactly</em> how I wanted it, there is an argument to be made that if it&#8217;s <strong>good progress</strong> it should be released anyway, and have users chip in and give feedback. This has worked well many times, and evolved the product in the right direction faster than if I had waited for a perfect first version.</p><p>Of course nothing of this is exactly new thinking (MVPs, etc), but I think what&#8217;s changing here is the <em>magnitude</em>. I find that the right course of action is constantly to <strong>release a bit more control than what I am comfortable with</strong>, and this boundary keeps moving.</p><p>I wrote more about this in the full piece on how I run Tolaria as a open source project &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:196524187,&quot;url&quot;:&quot;https://refactoring.fm/p/how-i-run-the-tolaria-project&quot;,&quot;publication_id&quot;:64099,&quot;embedding_publication_id&quot;:null,&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 I Run the Tolaria Project&quot;,&quot;truncated_body_text&quot;:&quot;Hey, Luca here! As you probably know by now, two weeks ago I launched Tolaria, a desktop app for Mac, Linux, and Windows, to manage markdown knowledge bases &#8212; for humans and AI.&quot;,&quot;date&quot;:&quot;2026-05-06T07:02:34.809Z&quot;,&quot;like_count&quot;:50,&quot;comment_count&quot;:2,&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;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/how-i-run-the-tolaria-project?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 I Run the Tolaria Project</div></div><div class="embedded-post-body">Hey, Luca here! As you probably know by now, two weeks ago I launched Tolaria, a desktop app for Mac, Linux, and Windows, to manage markdown knowledge bases &#8212; for humans and AI&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">6 months ago &#183; 50 likes &#183; 2 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>2) &#127757; Async vs sync comms at Todoist</h2><p>Remote work debates often get stuck in a binary: async good, meetings bad, or the reverse.</p><p>What I liked in my conversation with Gon&#231;alo Silva, CTO of Doist, is that their view is much more practical. Doist has been remote-first for more than a decade, long before the COVID era, and they have learned that async-first does not mean async-only.</p><p>Async is fantastic when people need focus, when the topic is well-bounded, and when a thoughtful written update is enough. Doist replaced a lot of status rituals with async threads: people write updates when it works best for them, and others consume them on their own schedule.</p><p>But some conversations are simply bad async candidates. Gon&#231;alo&#8217;s heuristic is to look at the number of iterations you expect:</p><blockquote><p><em><strong>&#8220;If you&#8217;re disagreeing with somebody and you feel like you&#8217;re not quickly advancing towards convergence, that is probably a great prompt to just hop into a meeting. We settled a conversation that had been going on for multiple days in a call in 14 minutes.&#8221;</strong></em></p></blockquote><p>If the topic starts from a blank canvas, involves disagreement, needs multiple rounds of back-and-forth, synchronous chats are the faster tool, and should not be seen as a failure of async culture.</p><p>You can find the full interview with Gon&#231;alo here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;e407b0b8-1abc-4cce-93c8-f0e8a2c5fcd5&quot;,&quot;caption&quot;:&quot;Listen now:&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How Todoist is Built &#9989; &#8212; with Gon&#231;alo Silva&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-01-23T08:01:28.312Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/zaGmjQzmR-I&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/how-todoist-is-built-with-goncalo&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;f7bafd0a-b2c5-4e76-adc9-ba2b896e3e9c&quot;,&quot;id&quot;:185393654,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:26,&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;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>3) &#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4><span>&#129351; </span><a href="https://charity.wtf/2026/06/15/ai-demands-more-engineering-discipline-not-less-xpost/">AI Demands More Engineering Discipline. Not Less</a></h4><h5>12 min &#8226; by Charity Majors</h5><p><span>When Charity writes, we listen. The real product of a software team is shared understanding, and AI-generated code makes that easier to destroy at scale. For this reason, discipline now matters </span><em>more</em><span>, not less.</span></p><div><hr></div><h4><span>&#129352; </span><a href="https://lethain.com/revised-rules-of-engineering-leadership/">Revised Rules of Engineering Leadership</a></h4><h5>8 min &#8226; by Will Larson</h5><p>Will&#8217;s piece is a great attempt at updating classic engineering leadership rules and ideas for the agent era. A lot of great takes about migrations, domain expertise, harnesses, and more. Including practical examples!</p><div><hr></div><h4><span>&#129353; </span><a href="https://martinfowler.com/articles/exploring-gen-ai/humans-and-agents.html">Humans and Agents in Software Engineering Loops</a></h4><h5>7 min &#8226; by Kief Morris</h5><p>This connects nicely with the loop-engineering conversation: humans should not micromanage every generated line of code, but design and improve the loop that lets agents build, test, and learn. Great article hosted on Martin Fowler&#8217;s blog.</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></channel></rss>