<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Refactoring]]></title><description><![CDATA[Join 170,000+ engineers and managers getting practical ideas on engineering leadership, technical strategy and high-performing teams. Free, every week.]]></description><link>https://refactoring.fm</link><image><url>https://substackcdn.com/image/fetch/$s_!CR5A!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png</url><title>Refactoring</title><link>https://refactoring.fm</link></image><generator>Substack</generator><lastBuildDate>Mon, 07 Sep 2026 12:59:27 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[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;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"><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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a 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="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="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The 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;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[Making AI agents work in your team 🤖 — with Dennis Pilarinos]]></title><description><![CDATA[Watch now | Refactoring Podcast &#8226; Episode 71]]></description><link>https://refactoring.fm/p/making-ai-agents-work-in-your-team</link><guid isPermaLink="false">https://refactoring.fm/p/making-ai-agents-work-in-your-team</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Fri, 04 Sep 2026 07:01:38 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/213829564/cc59722d314e645afcfea39b2ae6a14f.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<div id="youtube2-tqBQCP3BwPY" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;tqBQCP3BwPY&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/tqBQCP3BwPY?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div class="pullquote"><p style="text-align: center;"><em><strong>Listen now:<br><a href="https://www.youtube.com/@refactoringclub">YouTube</a> | <a href="https://podcasts.apple.com/us/podcast/refactoring-podcast/id1719137305">Apple</a> | <a href="https://open.spotify.com/show/7Luds9dmzZDoDC8Q7EMbSw">Spotify</a></strong></em></p></div><blockquote><p><em>Today&#8217;s episode is brought to you by: <strong><a href="https://ntn.so/refactoring">Notion</a></strong></em></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://ntn.so/refactoring" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jgfe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 424w, https://substackcdn.com/image/fetch/$s_!Jgfe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 848w, https://substackcdn.com/image/fetch/$s_!Jgfe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 1272w, https://substackcdn.com/image/fetch/$s_!Jgfe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jgfe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png" width="312" height="108.42" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:278,&quot;width&quot;:800,&quot;resizeWidth&quot;:312,&quot;bytes&quot;:31046,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://ntn.so/refactoring&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://refactoring.fm/i/209980935?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.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_!Jgfe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 424w, https://substackcdn.com/image/fetch/$s_!Jgfe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 848w, https://substackcdn.com/image/fetch/$s_!Jgfe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 1272w, https://substackcdn.com/image/fetch/$s_!Jgfe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><em>Learn more about<strong> Notion&#8217;s Developer Platform </strong>today at<strong> <a href="https://ntn.so/refactoring">https://ntn.so/refactoring</a></strong></em></p></blockquote><div><hr></div><p><span>Today's guest is </span><strong><span>Dennis Pilarinos</span></strong><span>, who is the founder and CEO of Unblocked and a long-time developer tools expert, having founded BuddyBuild and having served as a director at Apple, Amazon and Microsoft. <br><br>With Dennis, we talked about the latest trends in software development. We discussed why more tokens are not translating into more productivity, how to guarantee code quality with AI and what's the role of context in making your agents succeed. We also explored how the Unblocked team is doing it, navigating their setup and a few use cases about how their shipping features in production.</span></p><div><hr></div><h2>&#129351; Interview Summary</h2><p>If you are a <strong>&#128274; paid subscriber &#128274;</strong> you will find my own <em>summary</em> of the interview below.</p><p>It&#8217;s the 5-minute, handcrafted takeaways of what we talked about, with timestamps to the relevant video moments, for those who don&#8217;t have time to sit through the 1-hour chat.</p><p>Here is the agenda for today:</p><ol><li><p>&#128293; <strong>More tokens, less progress</strong></p></li><li><p>&#128269; <strong>Code review is the new bottleneck</strong></p></li><li><p>&#129504; <strong>Context is the missing piece</strong></p></li><li><p>&#9881;&#65039; <strong>How Unblocked runs internally</strong></p></li><li><p>&#128640; <strong>What&#8217;s next: remote agents and Unblocked Code</strong></p></li></ol><p>Let&#8217;s dive in &#128071;</p><div><hr></div>
      <p>
          <a href="https://refactoring.fm/p/making-ai-agents-work-in-your-team">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Mental marathoners 🏃‍♂️]]></title><description><![CDATA[How to think about AI in order to become a better version of yourself.]]></description><link>https://refactoring.fm/p/mental-marathoners</link><guid isPermaLink="false">https://refactoring.fm/p/mental-marathoners</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Wed, 02 Sep 2026 07:02:07 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/81484f9f-ce68-4566-ad4a-91f188dd9863_1840x1224.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A couple of weeks ago, I read <a href="%5Bhttps://www.theatlantic.com/ideas/2026/06/ai-open-ai-anthropic/687689/%5D(https://www.theatlantic.com/ideas/2026/06/ai-open-ai-anthropic/687689/)">The People Who Will Thrive in the AI Age</a>, by David Brooks.</p><p>I loved it, celebrated it as the <a href="%5Bhttps://refactoring.fm/i/211041423/the-people-who-will-thrive-in-the-ai-age%5D(https://refactoring.fm/i/211041423/the-people-who-will-thrive-in-the-ai-age)">best piece I read that week</a>, and since then I have kept thinking about various ideas that built up on it, and that I want to share today<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>.</p><p>First of all, let&#8217;s start with the title: what does <em>thrive</em> mean?</p><p>Each of us has (or should find) their own version of success, but a broad one that I particularly like is: <strong>becoming better versions of ourselves</strong>. I like it because a lot of the good things in life are <em>downstream</em> from growing as a person. You become better, and better things eventually come to you. That&#8217;s true in work, relationships, health, and pretty much anywhere.</p><p>Of course, that&#8217;s not the <em>only</em> way good things can come to you. Many come by chance, or luck if you may, but if you want to find an angle that is actually <strong>under your control</strong>, you can hardly go wrong by trying to <em>upgrade</em> <em>yourself</em> over and over.</p><p>And here is the problem with AI: I don&#8217;t feel that as a tool, by default, it helps with that. Pretty much the opposite. If you blindly use AI to the best of its capabilities, chances are you gradually <strong>get </strong><em><strong>worse</strong></em><strong> at several things</strong>.</p><p>So, when I think about my usage of AI, that&#8217;s the angle I try to use. How can I make it so that 1) AI helps me at producing more and better work, while 2) making me better as a professional (and a human being)?</p><p>We&#8217;ll be exploring this today:</p><ul><li><p>&#9878;&#65039; <strong>What AI takes from us</strong> &#8212; for everything tech gives, something else you now have to nurture.</p></li><li><p>&#127939;&#8205;&#9794;&#65039; <strong>Mental marathoners</strong> &#8212; when intelligence is cheap, stretching yourself becomes your edge.</p></li><li><p>&#129521; <strong>What makes us marathoners</strong> &#8212; instead of riding as passengers.</p></li><li><p>&#129517; <strong>How do you know you are on the right track</strong> &#8212; better work, learning, taste, energy.</p></li></ul><p>Let&#8217;s dive in!</p><div><hr></div><h2>&#9878;&#65039; What AI takes from us</h2><p>The fact that AI makes us <em>worse</em> at some things may seem counterintuitive, especially coming from a work tool, but it&#8217;s not really surprising if we look at the broader trajectory of technology.</p><p>In fact, progress is not strictly linear and incremental. For everything that tech has given us, there are also things we now need to intentionally safeguard and nurture, more than we used to in the past, in order not to lose them:</p><ul><li><p>An obvious one is <strong>physical health</strong> &#8212; regular, commercial gyms were not a thing until the 70s, when our lives gradually became more sedentary and all of a sudden fitness became something you had to be <em>intentional</em> about.</p></li><li><p>Another one is <strong>attention span</strong> and our ability to focus &#8212; today, we kinda all agree they are <em>under attack</em>, but we hardly ever thought about them before the social media era.</p></li></ul><p>So what is AI going to take from us?</p><p>This is a tough question, because AI is likely the <em>broadest</em> tech improvement we have seen in our lifetimes. By simplifying it a bit, it delivers two main things: <strong>intelligence</strong> and <strong>knowledge</strong>.</p><p>Knowledge is, obviously, about knowing things, while intelligence in this context is the ability to reason on a problem and apply logic to come up with a solution. Most work (and life) tasks require some combination of knowledge and intelligence to be done.</p><p>Now, we may nitpick about the definition of AGI, but, as of today already, we have to admit AI does a better job than people for probably &gt;90% of such tasks. That&#8217;s the reality, folks. And that&#8217;s because, even in those rare cases where an expert still has an edge (better knowledge), or you can reason through a problem better than a frontier model (better intelligence), AI still most often wins because of how cheaper and faster it does the thing. Even when the work done by AI is just, say, 80% as good as a human expert, it may still win because it&#8217;s 80% faster and cheaper, and that&#8217;s a desirable tradeoff.</p><p>Should we be excited about this, because of the opportunities it brings, or scared, because we feel increasingly disposable? It depends.</p><p>Personally, I believe this is fine as long as we use AI in a way that puts us, as individuals, on a trajectory of <strong>personal growth</strong>, instead of regression.</p><p>Is this even possible? I believe so. Chess and Go are great examples of this: AI surpassed humans long ago, but it also allowed humans to get immensely better by watching AI play, and now both games are more popular than ever.</p><p>But what does it take to get there? Let&#8217;s talk about volition and... marathons &#128071;</p><div><hr></div><h2>&#127939;&#8205;&#9794;&#65039; Mental marathoners</h2><p>In his article, David says that when intelligence is plentiful, <em>volition</em> becomes valuable. In this case, it&#8217;s volition to stretch your own abilities and become a better version of yourself. David calls the people who are willing to go through this: <strong>mental marathoners</strong>.</p><p>I like the marathon picture for this, because marathons do not fit a practical purpose, outside that of <em>stretching</em> what you can achieve as a human. When it comes to health, you can (and it&#8217;s probably easier to) get in great shape <em>without</em> extreme 40km runs, and of course, when it comes to pure utility, a car covers that distance just fine.</p><p>So, just like marathoners run because they <em>feel the need</em> to run and challenge themselves, <em>mental marathoners</em> are supposedly those who feel a <strong>need for cognition</strong>, and are going to use AI to get better and sharper, as opposed to being passive <em>passengers</em> of this tech.</p><p>Now, where David and I disagree is in framing such a need as an innate <em>trait</em> &#8212; you either have this hunger or you don&#8217;t. I don&#8217;t think this is the case, and in general I don&#8217;t find this to be a <em>productive</em> way of looking at things. The productive way, instead, is by asking: what can we do to become <em>hungrier</em> for cognition? Or why don&#8217;t we feel like it right now?</p><p>In other words, assuming we are not <em>either</em> born hungry or not, what can we do to become hungrier? This is an interesting question because it is relevant at all levels:</p>
      <p>
          <a href="https://refactoring.fm/p/mental-marathoners">
              Read more
          </a>
      </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"><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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>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">9 months 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;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[Community updates: taking time off, AI club, and next events 💬]]></title><description><![CDATA[A special edition focused on our community activities!]]></description><link>https://refactoring.fm/p/community-updates-taking-time-off</link><guid isPermaLink="false">https://refactoring.fm/p/community-updates-taking-time-off</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Fri, 28 Aug 2026 07:01:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HT18!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1487b493-0bd5-4569-99e1-991693da9261_2396x1372.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey there!</p><p>Lately, I have been thinking about how little of the <a href="https://refactoring.fm/p/refactoring-community">community</a> actually shows up in the newsletter.</p><p>The community hosts a ton of great conversations in threads, but, most of all, every month we run two live sessions, hosted by our awesome coach-in-residence <a href="https://www.seckington.com/">Melinda Seckington</a>, and always joined by yours truly. These sessions are:</p><ul><li><p><strong>Mastermind</strong> &#8212; leaders bring a real problem and we work on it.</p></li><li><p><strong>AI Club</strong> &#8212; people show what they learned about AI that month, including the parts that did not work.</p></li></ul><p>But a lot of the good stuff stays in Zoom. So, once a month, I want to start sending out a short recap. This should work on multiple levels: 1) it makes you learn useful things, 2) it gives you a feel of whether you should join the community, and 3) it gives you a heads-up of the upcoming events.</p><p>So here is the agenda for today:</p><ul><li><p>&#127965;&#65039; <strong>How to take time off right</strong> &#8212; what we discussed in the August Mastermind.</p></li><li><p>&#129668; <strong>August AI Club</strong> &#8212; verbosity, legacy migrations, and a weirder kind of tired.</p></li><li><p>&#128197; <strong>What&#8217;s next</strong> &#8212; next events on Sep 4th and Sep 21st.</p></li><li><p>&#128172; <strong>How this works</strong> &#8212; and how to join.</p></li></ul><p>Let&#8217;s dive in!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HT18!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1487b493-0bd5-4569-99e1-991693da9261_2396x1372.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HT18!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1487b493-0bd5-4569-99e1-991693da9261_2396x1372.png 424w, https://substackcdn.com/image/fetch/$s_!HT18!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1487b493-0bd5-4569-99e1-991693da9261_2396x1372.png 848w, https://substackcdn.com/image/fetch/$s_!HT18!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1487b493-0bd5-4569-99e1-991693da9261_2396x1372.png 1272w, https://substackcdn.com/image/fetch/$s_!HT18!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1487b493-0bd5-4569-99e1-991693da9261_2396x1372.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HT18!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1487b493-0bd5-4569-99e1-991693da9261_2396x1372.png" width="1456" height="834" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1487b493-0bd5-4569-99e1-991693da9261_2396x1372.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:834,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3096884,&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/212989588?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1487b493-0bd5-4569-99e1-991693da9261_2396x1372.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_!HT18!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1487b493-0bd5-4569-99e1-991693da9261_2396x1372.png 424w, https://substackcdn.com/image/fetch/$s_!HT18!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1487b493-0bd5-4569-99e1-991693da9261_2396x1372.png 848w, https://substackcdn.com/image/fetch/$s_!HT18!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1487b493-0bd5-4569-99e1-991693da9261_2396x1372.png 1272w, https://substackcdn.com/image/fetch/$s_!HT18!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1487b493-0bd5-4569-99e1-991693da9261_2396x1372.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A screenshot from our latest AI Club! &#129668;</figcaption></figure></div><div><hr></div><h2>&#127965;&#65039; Taking time off without the team stalling</h2><p>In this month&#8217;s Mastermind, we talked about going on leave without making your inbox or your team fall apart.</p><p>One of the biggest points of discussion was about whether it&#8217;s okay or not to <em>check in</em> while away. Personally, I have found there is no hard-and-fast rule for that. Something you might consider is that checking Slack and <em>replying</em> on Slack are different things. You can glance at it, sure. But the moment you reply, you are telling everyone you are reachable. You are setting an example (for the better or worse) and presenting yourself in a way that is hard to walk back.</p><p>Whatever you choose for yourself, it&#8217;s critical that your ownership of things moves to someone else. Otherwise, if some recurring thing is still waiting on you, it&#8217;s not really time off. Voluntary, optional check-in is different from someone still relying on you to do things.</p><p>At the end of the discussion, I feel like we landed on some kind of model to make this work:</p><div class="callout-block" data-callout="true"><ol><li><p>Mentally walk the one or two weeks you will be gone</p></li><li><p>Write conditional-ish guidance (<em>if X happens, do Y, only call me if Z</em>)</p></li><li><p>Name three things in the handover:</p><ul><li><p><em>Open projects</em> &#8212; and what needs to happen on each</p></li><li><p><em>People</em> &#8212; and who is covering what</p></li><li><p><em>Processes you currently own</em> &#8212; those that need a temporary owner</p></li></ul></li><li><p>Appoint a <em>deputy</em> for the stuff you did not think of. There will always be plenty.</p></li></ol></div><p>The <strong>deputy</strong> is particularly important because it should be the <em>one</em> person who can make the unexpected calls, and ideally the only one who is allowed to escalate to you for emergencies.</p><p>Doing all of this right is incredibly valuable, not just for your peace of mind while away, but because you may come back and figure out that some of the handovers can actually... stay that way. Many people reported it, and I confirm that from my own experience. When people are given the opportunity to <strong>fill bigger shoes</strong>, you might be surprised by how well they fare.</p><p>If you want the full writeup, you can find the community thread <a href="https://community.refactoring.club/c/mastermind/takeaways-from-our-making-holidays-and-time-off-work-for-you-and-your-team-mastermind">here</a> (if you are in the community! If you are not, scroll to the end for instructions).</p><div><hr></div><h2>&#129668; August AI Club</h2><p>In this month&#8217;s AI Club, a few people shared their AI experiences, including both wins and failures. I liked three stories in particular:</p><ul><li><p><strong>Agents that will not shut up</strong> &#8212; two small skills came up for Claude: one that <a href="https://github.com/ayghri/i-have-adhd">leads with the next action</a> and bans the preamble, and one that rewrites into <a href="https://github.com/juliusbrussee/caveman">simplified technical English</a> (the register airplane manuals use). We all agreed that agents can be incredibly verbose, so these skills can definitely help.</p></li><li><p><strong>Treat the codebase as the source of truth</strong> &#8212; someone was migrating a 25-year-old Salesforce app and drowning in meeting notes that constantly would go stale mid-build. They eventually instructed agents to treat the codebase as the single source of truth, and docs, tickets, and transcripts as &#8220;best-effort context&#8221;. We also agreed that, out of all docs, the <em>why</em> behind a decision is the part worth writing down on purpose, because that&#8217;s what agents <em>can&#8217;t</em> likely reconstruct by looking at code. A couple of folks also have agents that update docs as they ship, plus a nightly pass that checks whether yesterday&#8217;s work left the docs behind.</p></li><li><p><strong>Faster leads to a different kind of tired</strong> &#8212; it feels that automating the work is not making people less tired. Quite the opposite. Constantly reviewing what the model hands you back can make you <em>more</em> tired faster, as opposed to doing creative yourself. It&#8217;s also unclear how to do better on this. Some people try to speed themselves up to keep up with the models. Some protect the human part of the thinking. Some intentionally do less.</p></li></ul><p>All in all, a very interesting conversation, where we focused more on the <em>human</em> parts of the process, than the technology of it.</p><p>Full notes are <a href="https://community.refactoring.club/c/ai-club/notes-from-the-august-ai-club">here</a>.</p><div><hr></div><h2>&#128197; What&#8217;s next</h2><p>Both the Mastermind and the AI Club, like all community activities, are for paid members of Refactoring. Here are the next editions &#128071; you can RSVP on the event page to help us size the room and plan accordingly:</p><ul><li><p><strong>&#129668; <a href="https://community.refactoring.club/c/events/ai-club-september-2026">AI Club</a></strong> &#8226; <strong>Fri 4 Sep, 14:00 CEST</strong> &#8212; five-minute shares, questions, and a one-sentence fireside round at the end.</p></li><li><p><strong>&#129504; <a href="https://community.refactoring.club/c/events/september-mastermind-2026">Mastermind</a></strong> &#8226; <strong>Mon 21 Sep, 14:00 CEST</strong> &#8212; this month we&#8217;ll talk about developer productivity and what &#8220;good&#8221; looks like when measuring output is getting less useful.</p></li></ul><p>Bring your questions! These sessions work because of the members, not because someone gives a talk.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!j6ch!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00c4bcd8-e085-4515-8fdd-ba188e936f6e_2094x788.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j6ch!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00c4bcd8-e085-4515-8fdd-ba188e936f6e_2094x788.png 424w, https://substackcdn.com/image/fetch/$s_!j6ch!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00c4bcd8-e085-4515-8fdd-ba188e936f6e_2094x788.png 848w, https://substackcdn.com/image/fetch/$s_!j6ch!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00c4bcd8-e085-4515-8fdd-ba188e936f6e_2094x788.png 1272w, https://substackcdn.com/image/fetch/$s_!j6ch!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00c4bcd8-e085-4515-8fdd-ba188e936f6e_2094x788.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j6ch!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00c4bcd8-e085-4515-8fdd-ba188e936f6e_2094x788.png" width="1456" height="548" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/00c4bcd8-e085-4515-8fdd-ba188e936f6e_2094x788.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:548,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:889735,&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/212989588?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00c4bcd8-e085-4515-8fdd-ba188e936f6e_2094x788.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_!j6ch!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00c4bcd8-e085-4515-8fdd-ba188e936f6e_2094x788.png 424w, https://substackcdn.com/image/fetch/$s_!j6ch!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00c4bcd8-e085-4515-8fdd-ba188e936f6e_2094x788.png 848w, https://substackcdn.com/image/fetch/$s_!j6ch!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00c4bcd8-e085-4515-8fdd-ba188e936f6e_2094x788.png 1272w, https://substackcdn.com/image/fetch/$s_!j6ch!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00c4bcd8-e085-4515-8fdd-ba188e936f6e_2094x788.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>&#128172; How this works</h2><p>The <a href="https://community.refactoring.club/">Refactoring Community</a> is a private space for paid subscribers of Refactoring: it hosts async threads, Q&amp;A, and monthly live rooms like these.</p><p>It is home to more than 1500 engineers and managers, and it&#8217;s my favorite place on the internet!</p><p>To join it, subscribe to the full version of Refactoring! </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Join the full Refactoring &#128588;&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://refactoring.fm/subscribe?"><span>Join the full Refactoring &#128588;</span></a></p><p>That&#8217;s it for today! See you on the 4th, or the 21st, or both!</p><p>I wish you a great weekend &#128075;<br>Luca</p>]]></content:encoded></item><item><title><![CDATA[Giving agents dynamic autonomy 🚥]]></title><description><![CDATA[A practical case study based on the team at Unblocked]]></description><link>https://refactoring.fm/p/giving-agents-dynamic-autonomy</link><guid isPermaLink="false">https://refactoring.fm/p/giving-agents-dynamic-autonomy</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Wed, 26 Aug 2026 06:36:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ZK5K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe659eb28-6a17-4a86-80be-8d8da531a73d_1564x986.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a </em>&#128274;<em> <strong>weekly essay</strong> </em>&#128274;<em> from Refactoring.</em></p><p><em>Every week I write an article to 170K+ engineers about how make good software together, and interview a world-class tech leader. I also build and maintain <a href="https://refactoring.fm/p/introducing-tolaria">Tolaria</a> in the open, publishing my workflows and learnings here.</em></p><div><hr></div><p><span>Recently I have started researching and publishing </span><a href="https://refactoring.fm/p/how-trm-rebuilt-product-development-for-ai"><span>more case studies</span></a><span> about how real companies are doing product development with AI. That&#8217;s because I feel that many people are like: &#8220;</span><em><span>enough with the thought leadership</span></em><span>!&#8221; &#8212; and that includes me!</span></p><p><span>This time I am doing a deep dive into the AI workflows of the team at </span><a href="https://getunblocked.com/"><span>Unblocked</span></a><span>, which I have known for a long time. I sat down with </span><a href="https://ca.linkedin.com/in/dennispi"><span>Dennis</span></a><span> and </span><a href="https://www.linkedin.com/in/brandonwaselnuk"><span>Brandon</span></a><span>, who walked me through some of their most interesting processes.</span></p><p><span>The team at Unblocked is especially relevant because they got </span><strong><span>skin in the game</span></strong><span>. They ship a product that turns the team&#8217;s code, docs, tickets, and conversations, into actionable context for agents. So they dogfood all of this every day. That&#8217;s a strong incentive to work as close as possible to the frontier, rather than doing things &#8220;as we have always done&#8221; (cit.)</span></p><p><span>I also love that a lot of what they do is public: they maintain an </span><a href="https://github.com/unblocked/cookbook"><span>open-source cookbook</span></a><span> with several recipes (skills), which you can fork and copy.</span></p><p><span>So here is the agenda for today:</span></p><ul><li><p><span>&#127898;&#65039; </span><strong><span>Dynamic autonomy</span></strong><span> &#8212; scoring runs for risk and confidence, and behaving accordingly.</span></p></li><li><p><span>&#129514; </span><strong><span>Case study #1: vibe check</span></strong><span> &#8212; one skill, two triggers, three exits.</span></p></li><li><p><span>&#128680; </span><strong><span>Case study #2: AI-assisted incidents</span></strong><span> &#8212; humans drive, cleanup can go further</span></p></li><li><p><span>&#128216; </span><strong><span>Creating a cookbook around it</span></strong><span> &#8212; interactive vs headless, and how the score moves</span></p></li><li><p><span>&#128202; </span><strong>Delivery numbers</strong><span> &#8212; what the metrics say so far.</span></p></li></ul><p><span>Let&#8217;s dive in!</span></p><div><hr></div><p><em><span>Disclaimer: I am a fan of what Unblocked is building and I am grateful to have it as a partner on this piece. You should check it out!</span></em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getunblocked.com/&quot;,&quot;text&quot;:&quot;Learn more about Unblocked&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getunblocked.com/"><span>Learn more about Unblocked</span></a></p><p><em><span>However, I will only write my unbiased opinion about the practices and tools covered, Unblocked included.</span></em></p><div><hr></div><h2><span>&#127898;&#65039; Dynamic autonomy</span></h2><p><span>One of the most popular ideas about AI workflows is the so-called </span><strong><span>autonomy slider</span></strong><span> &#8212; that is, for any given process you should design how much leeway to give to the AI, vs how much humans should intervene (and when, and where).</span></p><p><span>Autonomy is, of course, a spectrum. If perfect autonomy looks like a </span><em><span>loop</span></em><span>, we talk about </span><em><span>humans-in-the-loop</span></em><span> to express that some parts are designed for humans to interrupt the AI and do things.</span></p><p><span>One of the most interesting ideas I got from Dennis and Brandon is about making this autonomy slider </span><em><span>dynamic</span></em><span>: a lot of their workflows are designed to have runs </span><strong><span>scored for risk and confidence</span></strong><span>. Such a score </span><em><span>guides</span></em><span> how much autonomy the agent gets at that time, and where a human has to step in.</span></p><p><span>This is a flexible concept that can be applied to many different workflows: shipping code, processing bug reports, intercepting incidents, and more.</span></p><p><span>In fact, most of these include extremely </span><em><strong><span>diverse</span></strong></em><strong><span> situations</span></strong><span>, so it&#8217;s tricky to </span><em><span>hard-code</span></em><span> human gates into the workflows themselves. You constantly risk having either:</span></p><ul><li><p><span>Safe work unnecessarily waiting in queue, or</span></p></li><li><p><span>Risky work getting through when it should have been stopped and inspected first.</span></p></li></ul><p><span>To make an example, let&#8217;s say a bug report spawns from a customer success chat, or from Datadog telemetry. The AI evaluates two questions:</span></p><ul><li><p><span>How confident is the AI about this job being real, and being able to do it?</span></p></li><li><p><span>How risky is this change?</span></p></li></ul><p><span>This leads to a score that drives the next action:</span></p><ul><li><p>&#128308; <strong>High risk, low confidence</strong> &#8212; just write a ticket and hand it to a human.</p></li><li><p><span>&#128993; </span><strong><span>In the middle, roughly 50 to 70%</span></strong><span> &#8212; Slack a person who can answer more questions about the work itself, with the context already attached.</span></p></li><li><p>&#128994; <strong>Low risk, high confidence</strong> &#8212; write the code directly and open a PR.</p></li></ul><p><span>The same idea is used on PRs. A change that is evaluated as low-risk can go through without a human review, while a high-risk one puts a human reviewer in the loop.</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_!ZK5K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe659eb28-6a17-4a86-80be-8d8da531a73d_1564x986.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZK5K!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe659eb28-6a17-4a86-80be-8d8da531a73d_1564x986.png 424w, https://substackcdn.com/image/fetch/$s_!ZK5K!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe659eb28-6a17-4a86-80be-8d8da531a73d_1564x986.png 848w, https://substackcdn.com/image/fetch/$s_!ZK5K!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe659eb28-6a17-4a86-80be-8d8da531a73d_1564x986.png 1272w, https://substackcdn.com/image/fetch/$s_!ZK5K!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe659eb28-6a17-4a86-80be-8d8da531a73d_1564x986.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZK5K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe659eb28-6a17-4a86-80be-8d8da531a73d_1564x986.png" width="1456" height="918" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e659eb28-6a17-4a86-80be-8d8da531a73d_1564x986.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:918,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:211774,&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/212519094?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe659eb28-6a17-4a86-80be-8d8da531a73d_1564x986.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_!ZK5K!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe659eb28-6a17-4a86-80be-8d8da531a73d_1564x986.png 424w, https://substackcdn.com/image/fetch/$s_!ZK5K!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe659eb28-6a17-4a86-80be-8d8da531a73d_1564x986.png 848w, https://substackcdn.com/image/fetch/$s_!ZK5K!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe659eb28-6a17-4a86-80be-8d8da531a73d_1564x986.png 1272w, https://substackcdn.com/image/fetch/$s_!ZK5K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe659eb28-6a17-4a86-80be-8d8da531a73d_1564x986.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>So, let&#8217;s get more into the details of this.</span></p><div><hr></div><h2><span>&#129514; Case study #1: vibe check</span></h2><p><span>The first process Brandon walked me through was something they call </span><strong><span>vibe check</span></strong><span>.</span></p>
      <p>
          <a href="https://refactoring.fm/p/giving-agents-dynamic-autonomy">
              Read more
          </a>
      </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"><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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>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;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[Burnout is a System Issue 🪫 — with Dominika Rogala]]></title><description><![CDATA[Watch now | Refactoring Podcast &#8226; Episode 70]]></description><link>https://refactoring.fm/p/burnout-is-a-system-issue-with-dominika</link><guid isPermaLink="false">https://refactoring.fm/p/burnout-is-a-system-issue-with-dominika</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Fri, 21 Aug 2026 08:19:14 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/211969377/27a956299bc919258b1d47f7c952b20a.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<div id="youtube2-xMUQWSE4Cw0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;xMUQWSE4Cw0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/xMUQWSE4Cw0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div class="pullquote"><p style="text-align: center;"><em><strong>Listen now:<br><a href="https://www.youtube.com/@refactoringclub">YouTube</a> | <a href="https://podcasts.apple.com/us/podcast/refactoring-podcast/id1719137305">Apple</a> | <a href="https://open.spotify.com/show/7Luds9dmzZDoDC8Q7EMbSw">Spotify</a></strong></em></p></div><blockquote><p><em>Today&#8217;s episode is brought to you by: <strong><a href="https://ntn.so/refactoring">Notion</a></strong></em></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://ntn.so/refactoring" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jgfe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 424w, https://substackcdn.com/image/fetch/$s_!Jgfe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 848w, https://substackcdn.com/image/fetch/$s_!Jgfe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 1272w, https://substackcdn.com/image/fetch/$s_!Jgfe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jgfe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png" width="312" height="108.42" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:278,&quot;width&quot;:800,&quot;resizeWidth&quot;:312,&quot;bytes&quot;:31046,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://ntn.so/refactoring&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://refactoring.fm/i/209980935?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.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_!Jgfe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 424w, https://substackcdn.com/image/fetch/$s_!Jgfe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 848w, https://substackcdn.com/image/fetch/$s_!Jgfe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 1272w, https://substackcdn.com/image/fetch/$s_!Jgfe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><em>Learn more about<strong> Notion&#8217;s Developer Platform </strong>today at<strong> <a href="https://ntn.so/refactoring">https://ntn.so/refactoring</a></strong></em></p></blockquote><div><hr></div><p><span>Today's guest is </span><strong><a href="https://www.linkedin.com/in/dominikarogala/"><span>Dominika Rogala</span></a></strong>, former VP of Engineering and now advisor for CTOs and tech leaders. <br><br>With Dominika, we talked about burnout in engineering teams, on which she did a lot of research. She started with<span> the various dimensions of burnout, which &#8211; spoiler alert &#8211; is different from simply being tired, and then we looked at the problem from a systemic angle, so how can you improve your team and processes to avoid people from burning out. </span></p><p><span>Finally, we also talked about AI and how to make it a net positive for your team's resources, without also uncontrollably inflating expectations</span></p><p><span>Some useful resources mentioned throughout the chat:</span></p><ul><li><p><a href="https://www.youtube.com/watch?v=iJGKH45w4Q8"><span>Dominika&#8217;s talk about the four dimensions of burnout</span></a></p></li><li><p><a href="https://goodjob.coffee/ldx3"><span>Self-check, anti-burnout worksheet, reading list, and a micro-regulation toolkit</span></a><span> </span></p></li></ul><div><hr></div><h2>&#129351; Interview Summary</h2><p>If you are a <strong>&#128274; paid subscriber &#128274;</strong> you will find my own <em>summary</em> of the interview below.</p><p>It&#8217;s the 5-minute, handcrafted takeaways of what we talked about, with timestamps to the relevant video moments, for those who don&#8217;t have time to sit through the 1-hour chat.</p><p>Here is the agenda for today:</p><ol><li><p>&#128293; <strong>The four dimensions of burnout</strong></p></li><li><p>&#129513; <strong>The identity gap</strong></p></li><li><p>&#9881;&#65039; <strong>Burnout as a systemic problem</strong></p></li><li><p>&#129302; <strong>AI as both resource and demand</strong></p></li></ol><p>&#10240;Let&#8217;s dive in &#128071;</p><div><hr></div>
      <p>
          <a href="https://refactoring.fm/p/burnout-is-a-system-issue-with-dominika">
              Read more
          </a>
      </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"><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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In 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">4 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">9 months 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[Join our Mastermind next week! 🧠]]></title><description><![CDATA[Join the August edition of our monthly community gathering]]></description><link>https://refactoring.fm/p/join-our-mastermind-next-week</link><guid isPermaLink="false">https://refactoring.fm/p/join-our-mastermind-next-week</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Thu, 13 Aug 2026 14:26:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!PTgQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88e35ee5-6cb7-43aa-9022-cef56bf35e14_1456x520.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey everyone!</p><p>Our next <strong>Mastermind</strong> &#129504; is on Monday, <strong>August 17th</strong> at <strong>5:00pm CET.</strong> We&#8217;ll be discussing the topic: <em>making holidays and time off work for you and your team</em>. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PTgQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88e35ee5-6cb7-43aa-9022-cef56bf35e14_1456x520.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PTgQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88e35ee5-6cb7-43aa-9022-cef56bf35e14_1456x520.webp 424w, https://substackcdn.com/image/fetch/$s_!PTgQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88e35ee5-6cb7-43aa-9022-cef56bf35e14_1456x520.webp 848w, https://substackcdn.com/image/fetch/$s_!PTgQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88e35ee5-6cb7-43aa-9022-cef56bf35e14_1456x520.webp 1272w, https://substackcdn.com/image/fetch/$s_!PTgQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88e35ee5-6cb7-43aa-9022-cef56bf35e14_1456x520.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PTgQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88e35ee5-6cb7-43aa-9022-cef56bf35e14_1456x520.webp" width="1456" height="520" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/88e35ee5-6cb7-43aa-9022-cef56bf35e14_1456x520.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:520,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:66882,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://refactoring.fm/i/211015460?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88e35ee5-6cb7-43aa-9022-cef56bf35e14_1456x520.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_!PTgQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88e35ee5-6cb7-43aa-9022-cef56bf35e14_1456x520.webp 424w, https://substackcdn.com/image/fetch/$s_!PTgQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88e35ee5-6cb7-43aa-9022-cef56bf35e14_1456x520.webp 848w, https://substackcdn.com/image/fetch/$s_!PTgQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88e35ee5-6cb7-43aa-9022-cef56bf35e14_1456x520.webp 1272w, https://substackcdn.com/image/fetch/$s_!PTgQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88e35ee5-6cb7-43aa-9022-cef56bf35e14_1456x520.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We&#8217;ll be covering questions like:</p><ul><li><p><em>How do you prepare before you go on holiday?</em></p></li><li><p><em>How to protect your downtime while you&#8217;re away?</em></p></li><li><p><em>How to make re-entry feel less like a disaster?</em></p></li><li><p><em>What does good holiday coverage look like across a team?</em></p></li></ul><p>This is an excellent opportunity to learn from the experiences, insights and perspectives of the Refactoring community.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dyeh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd91e041-34a8-4e34-ba4c-337480abc80b_1080x386.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dyeh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd91e041-34a8-4e34-ba4c-337480abc80b_1080x386.webp 424w, https://substackcdn.com/image/fetch/$s_!dyeh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd91e041-34a8-4e34-ba4c-337480abc80b_1080x386.webp 848w, https://substackcdn.com/image/fetch/$s_!dyeh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd91e041-34a8-4e34-ba4c-337480abc80b_1080x386.webp 1272w, https://substackcdn.com/image/fetch/$s_!dyeh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd91e041-34a8-4e34-ba4c-337480abc80b_1080x386.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dyeh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd91e041-34a8-4e34-ba4c-337480abc80b_1080x386.webp" width="1080" height="386" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fd91e041-34a8-4e34-ba4c-337480abc80b_1080x386.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:386,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:45494,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://refactoring.fm/i/211015460?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd91e041-34a8-4e34-ba4c-337480abc80b_1080x386.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_!dyeh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd91e041-34a8-4e34-ba4c-337480abc80b_1080x386.webp 424w, https://substackcdn.com/image/fetch/$s_!dyeh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd91e041-34a8-4e34-ba4c-337480abc80b_1080x386.webp 848w, https://substackcdn.com/image/fetch/$s_!dyeh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd91e041-34a8-4e34-ba4c-337480abc80b_1080x386.webp 1272w, https://substackcdn.com/image/fetch/$s_!dyeh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd91e041-34a8-4e34-ba4c-337480abc80b_1080x386.webp 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A screenshot from one of the latest Mastermind sessions!</figcaption></figure></div><p>The Mastermind is a <strong>monthly online session</strong> for members of the Refactoring community where people can ask questions and share challenges about the topic, and support one another in finding solutions by sharing our experiences, insights, and perspectives.</p><p>The <a href="https://refactoring.fm/p/refactoring-community">Refactoring Community</a>, including our Monthly masterminds, are exclusive to paid members of Refactoring. Subscribe today to get access &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://refactoring.fm/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NCJp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2b1bb0-8f76-4665-9cac-528612a92a86_2374x590.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NCJp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2b1bb0-8f76-4665-9cac-528612a92a86_2374x590.png 424w, https://substackcdn.com/image/fetch/$s_!NCJp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2b1bb0-8f76-4665-9cac-528612a92a86_2374x590.png 848w, https://substackcdn.com/image/fetch/$s_!NCJp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2b1bb0-8f76-4665-9cac-528612a92a86_2374x590.png 1272w, https://substackcdn.com/image/fetch/$s_!NCJp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2b1bb0-8f76-4665-9cac-528612a92a86_2374x590.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NCJp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2b1bb0-8f76-4665-9cac-528612a92a86_2374x590.png" width="1456" height="362" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e2b1bb0-8f76-4665-9cac-528612a92a86_2374x590.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:362,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:201794,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://refactoring.fm/i/211015460?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2b1bb0-8f76-4665-9cac-528612a92a86_2374x590.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_!NCJp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2b1bb0-8f76-4665-9cac-528612a92a86_2374x590.png 424w, https://substackcdn.com/image/fetch/$s_!NCJp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2b1bb0-8f76-4665-9cac-528612a92a86_2374x590.png 848w, https://substackcdn.com/image/fetch/$s_!NCJp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2b1bb0-8f76-4665-9cac-528612a92a86_2374x590.png 1272w, https://substackcdn.com/image/fetch/$s_!NCJp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e2b1bb0-8f76-4665-9cac-528612a92a86_2374x590.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>You can learn more about the community <a href="https://refactoring.fm/p/refactoring-community">here</a>. </p><p>Thank you!<br>Luca</p>]]></content:encoded></item><item><title><![CDATA[The Case for Hiring Junior Engineers 🌱]]></title><description><![CDATA[Let's flip the narrative that you only need seniors now.]]></description><link>https://refactoring.fm/p/the-case-for-hiring-junior-engineers</link><guid isPermaLink="false">https://refactoring.fm/p/the-case-for-hiring-junior-engineers</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Wed, 12 Aug 2026 07:19:52 GMT</pubDate><enclosure url="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" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><span>One of the dominant narratives in software today is that AI is making junior engineers redundant.</span></p><p><span>It goes like this: since AI can </span><em><span>approximate</span></em><span> well what a junior engineer is able to produce, there is </span><strong><span>no point in hiring anyone who is not senior</span></strong><span>. In fact, senior engineers are the only ones capable of </span><em><span>steering</span></em><span> these tools.</span></p><p><span>From what I can see, this story is real, in the sense that many people believe it. I know many companies who have frozen junior hiring, and others who are explicitly steering towards small, senior-heavy teams.</span></p><p><span>I believe this is a mistake. And I don&#8217;t mean it from an ethical angle (the poor junior engineers!) &#8212; I mean from a practical, business one.</span></p><p><span>It&#8217;s also a mistake I have seen being done many times, well before AI, pretty much based on the same arguments. If anything, AI </span><em><span>supercharged</span></em><span> some of the same fallacies that have been around for decades.</span></p><p><span>Also, I am not alone in this. If you have been following Refactoring, you know the junior engineers topic is a recurring one both in the newsletter and in podcast interviews. Over time, I discussed it with </span><a href="https://refactoring.fm/p/every-engineer-is-a-manager-now-with"><span>Chris Lattner</span></a><span>, </span><a href="https://refactoring.fm/p/in-praise-of-normal-engineers"><span>Charity Majors</span></a><span>, </span><a href="https://refactoring.fm/p/diversity-ai-and-junior-engineers"><span>Meri Williams</span></a><span>, and more.</span></p><p><span>So today I will put everything together and make the definitive case for hiring junior engineers on your team in 2026! Here is the agenda:</span></p><ol><li><p><span>&#127947;&#65039;&#8205;&#9794;&#65039; </span><strong><span>Juniors are required to do more now</span></strong><span> &#8212; let&#8217;s acknowledge where this is all coming from.</span></p></li><li><p><span>&#9878;&#65039; </span><strong><span>Junior vs senior engineers</span></strong><span> &#8212; the difference is messier than you think</span></p></li><li><p><span>&#128301; </span><strong><span>First vs second-order effects</span></strong><span> &#8212; thinking of your team as a system when it comes to process, hiring, and growth.</span></p></li><li><p><span>&#127793; </span><strong><span>How to make it work</span></strong><span> &#8212; because juniors just don&#8217;t turn into seniors automatically.</span></p></li></ol><p><span>Let&#8217;s dive in!</span></p><div><hr></div><h2><span>&#127947;&#65039;&#8205;&#9794;&#65039; Juniors are indeed required to do more now</span></h2><p><span>Let&#8217;s start by acknowledging the obvious: all engineers, not just junior ones, are required to do </span><em><span>more</span></em><span> now.</span></p><p><span>More of what? For junior engineers, the job looks </span><em><span>qualitatively</span></em><span> very different, and requires a lot of things from them *earlier* in their careers than it used to.</span></p><p><span>Think of:</span></p><ul><li><p><strong><span>Code reviews</span></strong><span> &#8212; because of AI, junior engineers need now to review code from the get-go. Which in turn requires more... &#128071;</span></p></li><li><p><strong><span>Critical thinking</span></strong><span> &#8212; engineers need to constantly question the why and how provided by AI.</span></p></li><li><p><strong><span>Systems thinking</span></strong><span> &#8212; people are given bigger pieces of work from the start, which requires them to employ non-obvious design chops.</span></p></li></ul><p><span>This is what many people see and makes them say: &#8220;</span><em><span>yeah, junior engineers are screwed</span></em><span>&#8221;.</span></p><p><span>I don&#8217;t think that&#8217;s the case, because there&#8217;s more to junior engineers than coding &#128071;</span></p><div><hr></div><h2><span>&#9878;&#65039; Junior vs senior engineers</span></h2><p><span>Anyone who has worked for some time in teams with mixed levels of expertise knows that the frontier, or boundaries, between a junior and a senior engineer is not clear-cut. It&#8217;s jagged.</span></p><p><span>Engineers do not grow </span><em><span>linearly</span></em><span>, simply becoming more capable over time. As humans, we also </span><em><span>lose</span></em><span> things over time. In my experience, there are things at which senior engineers are, on average, </span><em><span>worse</span></em><span> than junior engineers.</span></p><p><span>Many senior engineers are, vs junior engineers:</span></p><ul><li><p><span>More resistant to change</span></p></li><li><p><span>More biased towards doing things the &#8220;old way&#8221; (tech choices, processes, you name it)</span></p></li><li><p><span>Less energetic and hard-working</span></p></li><li><p><span>Less willing to do the boring but necessary work that exists in all teams</span></p></li></ul><p><span>Conversely, junior engineers may lack part of what is needed to steer AI towards quality and safety, but are often better at using it as a whole. They have no bias and adapt faster because, simply put, </span><strong><span>they have less to unlearn</span></strong><span>.</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_!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" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iy_0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe769dbfe-186f-440f-b11a-6c0a37004fbf_1888x1280.png 424w, https://substackcdn.com/image/fetch/$s_!iy_0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe769dbfe-186f-440f-b11a-6c0a37004fbf_1888x1280.png 848w, https://substackcdn.com/image/fetch/$s_!iy_0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe769dbfe-186f-440f-b11a-6c0a37004fbf_1888x1280.png 1272w, https://substackcdn.com/image/fetch/$s_!iy_0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe769dbfe-186f-440f-b11a-6c0a37004fbf_1888x1280.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iy_0!,w_1456,c_limit,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" width="1456" height="987" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e769dbfe-186f-440f-b11a-6c0a37004fbf_1888x1280.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:987,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:192751,&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/210602503?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe769dbfe-186f-440f-b11a-6c0a37004fbf_1888x1280.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_!iy_0!,w_424,c_limit,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 424w, https://substackcdn.com/image/fetch/$s_!iy_0!,w_848,c_limit,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 848w, https://substackcdn.com/image/fetch/$s_!iy_0!,w_1272,c_limit,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 1272w, https://substackcdn.com/image/fetch/$s_!iy_0!,w_1456,c_limit,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 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>They have an easier time keeping their intuition up to date about how to use agents, orchestrate them, and create autonomous loops. Are these loops designed for quality and sustainability? Probably not! But, on the contrary, I know many 15-years-of-exp developers who simply </span><em><span>refuse</span></em><span> to build loops at all, because they want to retain control over every single LOC, which is wrong just as well.</span></p><p><span>That&#8217;s all to say that </span><strong><span>the comparison between juniors and seniors is complicated</span></strong><span>, and is wildly dependent on individuals.</span></p><p><span>Furthermore, so far we have only talked about </span><em><span>production</span></em><span> &#8212; the things that engineers actually make. But that&#8217;s only the immediate, first-order output of your team.</span></p><p><span>Team success is also driven by processes, cost, hiring &amp; retention, individuals&#8217; growth, and all kinds of system-level factors that are often neglected in this conversation.</span></p><p><span>What is your team going to look like one year from now? What about two years? How does that change based on the level of seniority mix you design your team for? I know companies that are more or less intentionally refusing to plan for longer than a quarter, because of AI uncertainty and all. But I don&#8217;t think that can be an excuse. As Eisenhower said: &#8220;Plans are useless, but planning is indispensable&#8221;.</span></p><p><span>So let&#8217;s try to loop all of this in &#128071;</span></p><div><hr></div><h2><span>&#128256; Second-order effects of mixing seniority</span></h2><p><span>Out of the various parts of your team life that are &#8220;not coding&#8221;, there are three that are particularly relevant when it comes to seniority levels, and it&#8217;s process, hiring, and growth.</span></p><h3><span>1) Process</span></h3><p><span>In my experience, the teams that are best at designing and enforcing good dev process are those with a healthy mix of seniority. In fact, both extremes are often bad:</span></p><ul><li><p><strong><span>Junior-heavy teams</span></strong><span> &#8212; often would love good process, but don&#8217;t know what it looks like.</span></p></li><li><p><strong><span>Senior-heavy teams</span></strong><span> &#8212; know what good process looks like, but they can bridge gaps with individual experience and knowledge, so have less incentive to make things explicit and robust.</span></p></li></ul><p><span>Mixed, diverse teams have both the senior folks who can </span><em><span>design</span></em><span> process, and the junior ones to benefit.</span></p><p><span>Needless to say, process, guardrails, devex, and all that jazz today is 10x more important than in the past, because that&#8217;s also how you scale AI work (the &#8220;harness&#8221;!).</span></p><h3><span>2) Hiring</span></h3><p><span>Senior engineers are hard to find and hire: you are competing for a limited pool of talent, and the pipeline is long and expensive. No way around it.</span></p><p><span>Conversely, junior engineers come from predictable, controllable hiring channels, like universities, bootcamps, and the likes. They are both cheaper </span><em><span>and</span></em><span> faster to hire.</span></p><h3><span>3) Growth</span></h3><p><span>Junior engineers can grow into the specific mix of duties and skills that your company needs, often compensating for the lack of experience with this special fit that is hard to replicate by hiring a senior. Even worse, a senior engineer who is already invested in a set of technologies and practices may have little interest in steering towards how your team does things.</span></p><p><span>Junior engineers are also easier to keep engaged, growing, and happy for a long time, simply because the bar for work that makes them grow is lower than for a senior. In any company there is a </span><em><span>ceiling</span></em><span> to what an engineer can learn, and senior folks just leave when they stop growing. In a healthy mixed team, senior departures are compensated by juniors who have risen through the ranks, and eventually replaced the former.</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_!VbsU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1450742d-6990-4e5c-95af-ad64e260aeea_1880x940.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VbsU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1450742d-6990-4e5c-95af-ad64e260aeea_1880x940.png 424w, https://substackcdn.com/image/fetch/$s_!VbsU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1450742d-6990-4e5c-95af-ad64e260aeea_1880x940.png 848w, https://substackcdn.com/image/fetch/$s_!VbsU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1450742d-6990-4e5c-95af-ad64e260aeea_1880x940.png 1272w, https://substackcdn.com/image/fetch/$s_!VbsU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1450742d-6990-4e5c-95af-ad64e260aeea_1880x940.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VbsU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1450742d-6990-4e5c-95af-ad64e260aeea_1880x940.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1450742d-6990-4e5c-95af-ad64e260aeea_1880x940.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;:298468,&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/210602503?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1450742d-6990-4e5c-95af-ad64e260aeea_1880x940.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_!VbsU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1450742d-6990-4e5c-95af-ad64e260aeea_1880x940.png 424w, https://substackcdn.com/image/fetch/$s_!VbsU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1450742d-6990-4e5c-95af-ad64e260aeea_1880x940.png 848w, https://substackcdn.com/image/fetch/$s_!VbsU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1450742d-6990-4e5c-95af-ad64e260aeea_1880x940.png 1272w, https://substackcdn.com/image/fetch/$s_!VbsU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1450742d-6990-4e5c-95af-ad64e260aeea_1880x940.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2><span>&#127793; How to Make It Work</span></h2><p><span>So, as </span><a href="https://refactoring.fm/p/growing-the-development-forest-with"><span>Martin Fowler put it on the podcast</span></a><span>, one of the most important qualities of junior engineers is to eventually turn into senior engineers. That said, this doesn&#8217;t happen automatically.</span></p><p><span>While there exists, indeed, a dream scenario in which junior engineers grow, become senior, and *rotate* your headcount to compensate other senior departures, in circle-of-life fashion, there is also a nightmarish scenario in which juniors are thrown in the trenches, abuse AI in ways they don&#8217;t understand, nobody checks on them, and the product and tech eventually goes to shit.</span></p><p><span>When this cycle breaks, it&#8217;s because junior engineers </span><strong><span>don&#8217;t have enough feedback loop</span></strong><span> to 1) ensure their work is high quality, and 2) learn and grow from doing it.</span></p><p><span>The way to create this feedback loop, to me, looks like two-fold:</span></p><ul><li><p><strong><span>Invest in an amazing harness</span></strong><span> &#8212; create guardrails, rules, gates, and </span><em><span>encode</span></em><span> everything that can ensure quality </span><em><span>automatically</span></em><span>. This benefits just about everyone: senior engineers, AI, and junior engineers who can learn from those same rules.</span></p></li><li><p><strong><span>Pair juniors with seniors</span></strong><span> &#8212; let young folks experiment and work fast, but pair them with seniors to provide judgment and systems thinking. It&#8217;s still early days for this and everyone needs to find their own formula, but e.g. I loved Rick Clegg&#8217;s talk about </span><a href="https://leaddev.com/hiring/guardrails-not-gates-scaling-juniors-in-the-ai-era"><span>what they do at Wise</span></a><span> about it.</span></p></li></ul><div><hr></div><h2><span>&#128218; Resources</span></h2><p><span>I got plenty of resources about this if you want to deep-dive more:</span></p><ul><li><p><strong><a href="https://leaddev.com/hiring/guardrails-not-gates-scaling-juniors-in-the-ai-era"><span>Scaling Juniors in the AI Era</span></a></strong><span> &#8212; the aforementioned talk by Rick Clegg from Wise about using automate guardrails to let junior engineers ship faster with AI.</span></p></li><li><p><strong><a href="https://frederickvanbrabant.com/blog/2026-07-24-you-dont-hire-juniors-to-do-menial-chores/"><span>You Don&#8217;t Hire Juniors to Do Menial Chores</span></a></strong><span> &#8212; great piece by Frederick Van Brabant about how juniors help innovation: they bring fresh takes to many things, and stress-test your assumptions because they have not yet learned all your bad habits.</span></p></li><li><p><strong><a href="https://refactoring.fm/p/diversity-ai-and-junior-engineers"><span>Diversity, AI, and Junior Engineers</span></a></strong><span> &#8212; my interview with the awesome Meri Williams, where we talked a lot about growing engineers.</span></p></li><li><p><strong><a href="https://refactoring.fm/p/in-praise-of-normal-engineers"><span>In Praise of Normal Engineers</span></a></strong><span> &#8212; the incredible article that Charity Majors wrote for Refactoring, where she argues we should hire the &#8220;right&#8221; people instead of the &#8220;best&#8221; ones, and invest in 10x teams, instead of 10x engineers.</span></p></li></ul><div><hr></div><h2><span>&#128204; Bottom line</span></h2><p><span>And that&#8217;s it for today! Here are the main takeaways:</span></p><ul><li><p><span>&#9878;&#65039; </span><strong><span>The junior vs senior frontier is jagged, not linear</span></strong><span> &#8212; engineers don&#8217;t simply get better at everything over time. Seniors gain experience but often become more resistant to change and harder to keep engaged, while juniors adapt faster, have less to unlearn, and are often better at embracing AI workflows.</span></p></li><li><p><span>&#128260; </span><strong><span>Mixed-seniority teams build the best processes</span></strong><span> &#8212; senior-heavy teams have less incentive to make knowledge explicit and systematic, while junior-heavy teams don&#8217;t know what good looks like. You need both. Also, robust, explicit process is exactly what scales AI work.</span></p></li><li><p><span>&#128176; </span><strong><span>Junior hiring is cheaper, faster, and more sustainable</span></strong><span> &#8212; instead of competing for a scarce pool of senior talent, you can hire juniors from predictable channels and grow them into the specific shape your company needs, creating a circle-of-life rotation that compensates senior departures.</span></p></li><li><p><span>&#128737;&#65039; </span><strong><span>Invest in the harness, not just the horse</span></strong><span> &#8212; the way to make junior engineers thrive is to build amazing guardrails (automated quality gates, rules, standards) and pair them with seniors who provide judgment and systems thinking.</span></p></li><li><p><span>&#128302; </span><strong><span>Refusing to hire juniors is a bet against your own future</span></strong><span> &#8212; if you only hire senior engineers today, you are optimizing for short-term output while starving the pipeline that will sustain your team for years to come.</span></p></li></ul><div><hr></div><p>See you next week!</p><p>Sincerely &#128075;<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">2 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="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="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We 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">6 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[Building With Agents Today 🤖 — with Charlie Guo]]></title><description><![CDATA[Watch now | Refactoring Podcast &#8226; Episode 69]]></description><link>https://refactoring.fm/p/building-with-agents-today-with-charlie</link><guid isPermaLink="false">https://refactoring.fm/p/building-with-agents-today-with-charlie</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Fri, 07 Aug 2026 07:00:53 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/209980935/7de1678e94085aec140bf407718f87d4.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<div id="youtube2-JHAm58YZPIE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;JHAm58YZPIE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/JHAm58YZPIE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div class="pullquote"><p style="text-align: center;"><em><strong>Listen now:<br><a href="https://www.youtube.com/@refactoringclub">YouTube</a> | <a href="https://podcasts.apple.com/us/podcast/refactoring-podcast/id1719137305">Apple</a> | <a href="https://open.spotify.com/show/7Luds9dmzZDoDC8Q7EMbSw">Spotify</a></strong></em></p></div><blockquote><p><em>Today&#8217;s episode is brought to you by: <strong><a href="https://ntn.so/refactoring">Notion</a></strong></em></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://ntn.so/refactoring" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jgfe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 424w, https://substackcdn.com/image/fetch/$s_!Jgfe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 848w, https://substackcdn.com/image/fetch/$s_!Jgfe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 1272w, https://substackcdn.com/image/fetch/$s_!Jgfe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jgfe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png" width="312" height="108.42" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:278,&quot;width&quot;:800,&quot;resizeWidth&quot;:312,&quot;bytes&quot;:31046,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://ntn.so/refactoring&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://refactoring.fm/i/209980935?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.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_!Jgfe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 424w, https://substackcdn.com/image/fetch/$s_!Jgfe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 848w, https://substackcdn.com/image/fetch/$s_!Jgfe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 1272w, https://substackcdn.com/image/fetch/$s_!Jgfe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fad759a-737a-4bf9-9c08-cf4861d0a9af_800x278.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><em>Learn more about<strong> Notion&#8217;s Developer Platform </strong>today at<strong> <a href="https://ntn.so/refactoring">https://ntn.so/refactoring</a></strong></em></p></blockquote><div><hr></div><p>Today's guest is <strong><a href="https://www.linkedin.com/in/charlierguo/">Charlie</a></strong><a href="https://www.linkedin.com/in/charlierguo/"> </a><strong><a href="https://www.linkedin.com/in/charlierguo/">Guo</a></strong>, developer experience engineer at OpenAI. </p><p>With Charlie, we explore the evolution of AI coding tools, how this is affecting team organization, and the future of AI integration in software development. Charlie shared strategies and tricks to leverage AI effectively, and how this is all transforming the workflows that we all know and love.</p><div><hr></div><h2>&#129351; Interview Summary</h2><p>If you are a <strong>&#128274; paid subscriber &#128274;</strong> you will find my own <em>summary</em> of the interview below.</p><p>It&#8217;s the 5-minute, handcrafted takeaways of what we talked about, with timestamps to the relevant video moments, for those who don&#8217;t have time to sit through the 1-hour chat.</p><p>Here is the agenda for today:</p><ol><li><p><strong>&#127959;&#65039; Inside the Codex team at OpenAI</strong></p></li><li><p><strong>&#128260; The evolution of AI coding tools</strong></p></li><li><p><strong>&#129513; Sharing AI workflows across teams</strong></p></li><li><p><strong>&#127912; Design, models, and practical AI workflows</strong></p></li><li><p><strong>&#128176; The economics of AI coding</strong></p></li></ol><p>Let&#8217;s dive in &#128071;</p><div><hr></div>
      <p>
          <a href="https://refactoring.fm/p/building-with-agents-today-with-charlie">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Summer AI Coding Updates ☀️]]></title><description><![CDATA[Monthly updates to my AI workflows, Tolaria development, and more!]]></description><link>https://refactoring.fm/p/summer-ai-coding-updates</link><guid isPermaLink="false">https://refactoring.fm/p/summer-ai-coding-updates</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Wed, 05 Aug 2026 07:01:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!stRw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d4c4ff0-fd4f-4386-81cc-6dddc4cf4ef5_4096x1977.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey there! Welcome to a new edition of my monthly updates on my AI coding workflow.</p><p>Once a month I publish an article about <strong>how I develop <a href="http://tolaria.md/">Tolaria</a></strong>, including an overall recap plus the latest updates, and some useful resources.</p><p>I consider part of my work (combined between Tolaria &amp; Refactoring) to always try the latest and greatest, and work at the frontier of what&#8217;s possible, so you will only get thoughts that come from real usage and experiments.</p><p>Also, this is the first month since we launched the <a href="https://refactoring.fm/p/introducing-the-tolaria-alliance">Tolaria Alliance</a>, which has been a huge success so far! This is what allows Tolaria to stay free and open source, and this series (and the whole development of Tolaria) is made possible by the great tools I use everyday, which are:</p><ul><li><p><strong><a href="http://codescene.com/">CodeScene</a> </strong>&#8212; to guarantee great code health across the codebase.</p></li><li><p><strong><a href="https://codacy.com/">Codacy</a> </strong>&#8212; to guarantee code quality and security.</p></li><li><p><strong><a href="https://getunblocked.com/">Unblocked</a> </strong>&#8212; to help agents (and myself) fetch information across the codebase, ADRs, Github issues, and commit history.</p></li><li><p><strong><a href="http://circleci.com/">CircleCI</a> </strong>&#8212; to allow fast and scalable local validation, and remote CI (migrated this month!)</p></li></ul><p>That said, here is the agenda for today:</p><ul><li><p>&#128260; <strong>Workflow recap </strong>&#8212; for those who missed the previous episodes.</p></li><li><p>&#128167; <strong>Tolaria updates </strong>&#8212; what happened on the product side.</p></li><li><p>&#128256; <strong>Forking open source</strong> &#8212; and the future of it</p></li><li><p><strong>&#128655; Creating custom gates </strong>&#8212; to give agents stricter constraints.</p></li><li><p>&#129302; <strong>On using GPT 5.6</strong> &#8212; and the latest models</p></li></ul><p>Let&#8217;s dive in!</p><div><hr></div><h2>&#128260; Workflow recap</h2><p>First of all, if you missed the previous editions, here are some pointers:</p><ul><li><p><a href="https://refactoring.fm/p/how-i-run-the-tolaria-project">Product management</a> &#8212; how I do <em>traffic control</em> between issues, PRs, and product requests, and orchestrate the overall product backlog.</p></li><li><p><a href="https://refactoring.fm/i/200102476/guides-gates-and-guards">AI Coding</a> &#8212; my own approach to scaling coding with agents, via guides, gates, and guards. Mostly remained unchanged from last month.</p></li><li><p><a href="https://refactoring.fm/p/introducing-the-tolaria-alliance">Tools I use</a> &#8212; a deeper dive into how I use the tools from the alliance, and others, too.</p></li><li><p><a href="https://refactoring.fm/i/193368488/adrs">ADRs, and more</a> &#8212; in the initial workflow article I discussed how I do docs, which has scaled nicely so far.</p></li></ul><p>Now on to the new stuff, but first... product updates. Because what is my workflow worth if you don&#8217;t see what I shipped with it?!</p><div><hr></div><h2><strong>&#128167; </strong>Tolaria updates</h2><p>This month Tolaria has followed a bit of a <a href="https://en.wikipedia.org/wiki/Barbell_strategy">barbell strategy</a>, where the two extremes are:</p><ul><li><p>&#128296; <strong>Basics</strong> &#8212; hardening performance and quality of life features for the editor, which remains the most crucial experience to nail.</p></li><li><p>&#127770; <strong>Moonshots</strong> &#8212; trying (possibly overly) ambitious ideas, and see what sticks.</p></li></ul><p>I will talk more in detail later about performance, because I have thought a lot not only on <em>what</em> to do about it, but also <em>how </em>to create a mini workflow so that it doesn&#8217;t degrade over time.</p><h3>1) Basics &#128296;</h3><p>Basics include small features like block selection and navigation (a-la Notion), and the ability to collapse any heading and list item (a-la Bear). I constantly &#8220;borrow&#8221; features from other editors and note apps I love, but at least I credit them &#128516;</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;b244ec52-b78d-45f3-be4e-2a9ca24d72d1&quot;,&quot;duration&quot;:null}"></div><p>Of course, you will also find a long tail of more improvements, like being able to open vaults in separate windows, more MCP tools, more granular controls for AI agents, and just a lot of stuff!</p><h3>2) Moonshots &#127770;</h3><p>Talking of moonshots, you can now create <strong>HTML blocks</strong> inside Tolaria.</p><p>This wouldn&#8217;t be <em>that</em> ambitious, if not for the fact that you can also <strong>reference properties</strong> from any note inside the HTML, and use a simple set of formulas to render lists, format values, and more.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!stRw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d4c4ff0-fd4f-4386-81cc-6dddc4cf4ef5_4096x1977.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!stRw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d4c4ff0-fd4f-4386-81cc-6dddc4cf4ef5_4096x1977.jpeg 424w, https://substackcdn.com/image/fetch/$s_!stRw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d4c4ff0-fd4f-4386-81cc-6dddc4cf4ef5_4096x1977.jpeg 848w, https://substackcdn.com/image/fetch/$s_!stRw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d4c4ff0-fd4f-4386-81cc-6dddc4cf4ef5_4096x1977.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!stRw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d4c4ff0-fd4f-4386-81cc-6dddc4cf4ef5_4096x1977.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!stRw!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d4c4ff0-fd4f-4386-81cc-6dddc4cf4ef5_4096x1977.jpeg" width="1200" height="579.3956043956044" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d4c4ff0-fd4f-4386-81cc-6dddc4cf4ef5_4096x1977.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:703,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:514012,&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/209650772?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d4c4ff0-fd4f-4386-81cc-6dddc4cf4ef5_4096x1977.jpeg&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_!stRw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d4c4ff0-fd4f-4386-81cc-6dddc4cf4ef5_4096x1977.jpeg 424w, https://substackcdn.com/image/fetch/$s_!stRw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d4c4ff0-fd4f-4386-81cc-6dddc4cf4ef5_4096x1977.jpeg 848w, https://substackcdn.com/image/fetch/$s_!stRw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d4c4ff0-fd4f-4386-81cc-6dddc4cf4ef5_4096x1977.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!stRw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d4c4ff0-fd4f-4386-81cc-6dddc4cf4ef5_4096x1977.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This builds on the same system that <strong>allows spreadsheets to reference note properties</strong>, which was working well, so I said why not?! It plants the seeds for making Tolaria a platform where you can <strong>build mini apps</strong> that take information in real time from your notes.</p><p>It&#8217;s very cool if you ask me, and I am eager to see what you will build with it!</p><p>As I anticipated, though, what I am the proudest of is our performance work, which deserves a separate chapter &#128071;</p><div><hr></div><h2>&#9889; Performance &amp; forking open source</h2>
      <p>
          <a href="https://refactoring.fm/p/summer-ai-coding-updates">
              Read more
          </a>
      </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="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="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I 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">4 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;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[A Case Study in AI Product Development 🔬]]></title><description><![CDATA[How TRM built a custom internal harness for product and engineering work.]]></description><link>https://refactoring.fm/p/a-case-study-in-ai-product-development</link><guid isPermaLink="false">https://refactoring.fm/p/a-case-study-in-ai-product-development</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Wed, 29 Jul 2026 07:31:16 GMT</pubDate><enclosure url="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" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><span>Hey there, Luca here!</span></p><p><span>When I write about AI coding, you can typically find three types of articles:</span></p><ol><li><p><strong><span>Commentary on recent research</span></strong><span> &#8212; as we did </span><a href="https://refactoring.fm/p/acceleration-whiplash"><span>several</span></a><span> times recently.</span></p></li><li><p><strong><span>My own experiments</span></strong><span> &#8212; these days, mostly about building Tolaria.</span></p></li><li><p><strong><span>Case studies</span></strong><span> &#8212; about how other teams work.</span></p></li></ol><p><span>The third type is the hardest to write. There are very few companies that accept to put themselves out there and talk about </span><em><span>practices</span></em><span>, not just tools or tokens. That is why I was happy when I met </span><a href="https://www.linkedin.com/in/rahulr0609/"><span>Rahul</span></a><span> and the team at </span><a href="http://trmlabs.com/"><span>TRM Labs</span></a><span>, and they agreed to share how they are redesigning their product development workflow.</span></p><p><span>For context, over the last few months, I have argued that AI is changing the </span><strong><span>cost structure</span></strong><span> of development. So, since coding is now cheaper, we need to find a way to make everything else cheaper too.</span></p><p><span>TRM reached the same conclusion and did something interesting: they rebuilt their shipping workflow and encoded it into a </span><strong><span>custom internal harness</span></strong><span> called </span><strong><span>Cortex</span></strong><span>, which they are now open-sourcing.</span></p><p><span>Today we&#8217;ll explore how they have been thinking about it. So here is the agenda:</span></p><ul><li><p><span>&#127937; </span><strong><span>Inner loop vs outer loop</span></strong><span> &#8212; a useful mental model to translate faster coding into actual faster delivery.</span></p></li><li><p><span>&#128256; </span><strong><span>From handoffs to outcomes</span></strong><span> &#8212; how TRM redesigned its product workflow around the work rather than the roles.</span></p></li><li><p><span>&#129520; </span><strong><span>Cortex as a harness</span></strong><span> &#8212; how reviewable artifacts, deterministic gates, and repository context make the workflow reliable.</span></p></li><li><p><span>&#129514; </span><strong><span>Starting small</span></strong><span> &#8212; how TRM moved from a greenfield experiment to a regulated production system.</span></p></li><li><p><span>&#9989; </span><strong><span>Healthy code and healthy people</span></strong><span> &#8212; why increasing automation doesn&#8217;t mean removing human judgment.</span></p></li></ul><p><span>Let&#8217;s dive in!</span></p><div><hr></div><p><em><span>I want to thank </span><a href="https://www.linkedin.com/in/rahulr0609"><span>Rahul</span></a><span> and the team at </span><a href="http://trmlabs.com/"><span>TRM Labs</span></a><span> for partnering on this piece. You can learn more about their work below:</span></em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;http://trmlabs.com/&quot;,&quot;text&quot;:&quot;Learn more about TRM Labs&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="http://trmlabs.com/"><span>Learn more about TRM Labs</span></a></p><div><hr></div><h2><span>&#127937; Inner loop vs Outer loop</span></h2><p><span>Most AI coding tools optimize what we call the </span><strong><span>inner loop</span></strong><span>: you describe a feature, watch the agent write the code, and get something working a few minutes later. This is where AI has delivered the most visible improvements, but it&#8217;s just a small part of how software gets shipped.</span></p><p><span>Other than the inner loop, there is an </span><strong><span>outer loop</span></strong><span>, that covers the broader cycle: deciding what is worth doing, shaping and reviewing the solution, releasing it, and learning from production.</span></p><p><span>As of today, it&#8217;s been obvious how AI can help with the </span><em><span>inner loop</span></em><span>, but much less so with the </span><em><span>outer loop</span></em><span>. And if you don&#8217;t do </span><em><span>both</span></em><span>, constraints move to other parts of the workflow, like:</span></p><ul><li><p><span>&#128269; </span><strong><span>Reviews</span></strong><span> &#8212; agents create more PRs than people can reasonably inspect.</span></p></li><li><p><span>&#128203; </span><strong><span>Shaping product</span></strong><span> &#8212; the team can build faster than it can decide what good work looks like.</span></p></li><li><p><span>&#127919; </span><strong><span>Customer signal</span></strong><span> &#8212; shipping the wrong thing faster is still waste.</span></p></li></ul><p><span>At a small scale, this is the same </span><a href="https://refactoring.fm/p/acceleration-whiplash"><span>acceleration whiplash</span></a><span> I have experienced with Tolaria. 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.</span></p><p><span>To fix this, the TRM team stopped treating </span><em><span>engineering speed</span></em><span> as the goal and started looking at </span><strong><span>end-to-end throughput </span></strong><span>instead &#128071;</span></p><div><hr></div><h2><span>&#128256; From handoffs to outcomes</span></h2><p><span>Like most companies, TRM had a product shipping </span><em><span>framework</span></em><span>. This can be more or less formalized, but chances are your team has a </span><em><span>shared language</span></em><span> for how an idea moves from customer feedback to production.</span></p><p><span>At TRM, such a framework had </span><strong><span>nine stages</span></strong><span> and was mostly organized around roles. A Product Owner prepared the spec, a Technical Product Manager helped translate it; a Technical Anchor owned the implementation, and various artifacts moved from one person to another.</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_!-OLv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8184233-250a-47c7-98d5-ee83f03efc15_2048x529.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-OLv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8184233-250a-47c7-98d5-ee83f03efc15_2048x529.png 424w, https://substackcdn.com/image/fetch/$s_!-OLv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8184233-250a-47c7-98d5-ee83f03efc15_2048x529.png 848w, https://substackcdn.com/image/fetch/$s_!-OLv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8184233-250a-47c7-98d5-ee83f03efc15_2048x529.png 1272w, https://substackcdn.com/image/fetch/$s_!-OLv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8184233-250a-47c7-98d5-ee83f03efc15_2048x529.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-OLv!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8184233-250a-47c7-98d5-ee83f03efc15_2048x529.png" width="1200" height="309.8901098901099" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c8184233-250a-47c7-98d5-ee83f03efc15_2048x529.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:376,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-OLv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8184233-250a-47c7-98d5-ee83f03efc15_2048x529.png 424w, https://substackcdn.com/image/fetch/$s_!-OLv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8184233-250a-47c7-98d5-ee83f03efc15_2048x529.png 848w, https://substackcdn.com/image/fetch/$s_!-OLv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8184233-250a-47c7-98d5-ee83f03efc15_2048x529.png 1272w, https://substackcdn.com/image/fetch/$s_!-OLv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8184233-250a-47c7-98d5-ee83f03efc15_2048x529.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>The process was designed around the assumption that every artifact had to be created by one specialist and handed to the next.</span></p><p><span>AI weakens that assumption. For example:</span></p><ul><li><p><span>A PM can now explore technical feasibility and create a working prototype.</span></p></li><li><p><span>Or, on the other end, an engineer can investigate the customer context and draft a product spec.</span></p></li></ul><p><span>Does this mean the intermediate artifacts disappear? I don&#8217;t think so. If anything, specs, plans, or decision records can become even more important when agents do the implementation, to trace execution and record history. But it&#8217;s likely that individual artifacts no longer need to belong *exclusively* to an individual role.</span></p><p><span>So, TRM rebuilt the framework around six outcomes, organized into three groups:</span></p><ol><li><p><span>&#128301; </span><strong><span>Sense and Decide</span></strong><span> &#8212; collect signals, understand the problem, and decide whether it is worth solving.</span></p></li><li><p><span>&#9999;&#65039; </span><strong><span>Shape and Make</span></strong><span> &#8212; turn the problem into a reviewable direction, then build it.</span></p></li><li><p><span>&#128227; </span><strong><span>Communicate and Learn</span></strong><span> &#8212; release the change, observe its impact, and feed what was learned into the next cycle.</span></p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!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" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sCNl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcdf5bd1-2bce-4b88-ae47-2e5e43c373b9_1274x1154.png 424w, https://substackcdn.com/image/fetch/$s_!sCNl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcdf5bd1-2bce-4b88-ae47-2e5e43c373b9_1274x1154.png 848w, https://substackcdn.com/image/fetch/$s_!sCNl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcdf5bd1-2bce-4b88-ae47-2e5e43c373b9_1274x1154.png 1272w, https://substackcdn.com/image/fetch/$s_!sCNl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcdf5bd1-2bce-4b88-ae47-2e5e43c373b9_1274x1154.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sCNl!,w_1456,c_limit,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" width="522" height="472.8320251177394" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bcdf5bd1-2bce-4b88-ae47-2e5e43c373b9_1274x1154.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1154,&quot;width&quot;:1274,&quot;resizeWidth&quot;:522,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sCNl!,w_424,c_limit,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 424w, https://substackcdn.com/image/fetch/$s_!sCNl!,w_848,c_limit,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 848w, https://substackcdn.com/image/fetch/$s_!sCNl!,w_1272,c_limit,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 1272w, https://substackcdn.com/image/fetch/$s_!sCNl!,w_1456,c_limit,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 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>These are broad areas that change the job of the people involved:</span></p><ul><li><p><span>&#127919; </span><strong><span>PMs and EMs expand their scope</span></strong><span> &#8212; they can test feasibility and prototype ideas without waiting for engineering capacity.</span></p></li><li><p><span>&#129489;&#8205;&#128187; </span><strong><span>Engineers get closer to the problem</span></strong><span> &#8212; they can retrieve customer signal, shape solutions, and work across more of the stack.</span></p></li><li><p><span>&#127912; </span><strong><span>Specialists turn judgment into platforms</span></strong><span> &#8212; designers, security engineers, and other experts create rules and constraints that make good decisions easier for everyone else.</span></p></li></ul><p><span>I really care about the last point, and I think it&#8217;s how specialist work is evolving today. Deep specialists are more and more an </span><em><span>overkill</span></em><span> for regular production tasks &#8212; they have a bigger impact when they bottle their taste into design systems, components, security policies, workflows, and </span><em><span>platform</span></em><span> in general.</span></p><p><span>So TRM laid down the process and then created a harness around it &#128071;</span></p>
      <p>
          <a href="https://refactoring.fm/p/a-case-study-in-ai-product-development">
              Read more
          </a>
      </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;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[The State of AI Impact in Engineering]]></title><description><![CDATA[What data from 500+ teams is revealing about velocity gains.]]></description><link>https://refactoring.fm/p/the-state-of-ai-impact-in-engineering</link><guid isPermaLink="false">https://refactoring.fm/p/the-state-of-ai-impact-in-engineering</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Wed, 22 Jul 2026 12:06:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!fd2h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1908ddbd-9fb3-4b56-adb6-09cca1434184_1360x878.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><span>Hi there! Today&#8217;s article is written together with my friend </span><a href="https://www.linkedin.com/in/justinreock"><span>Justin Reock</span></a><span>, Deputy CTO at </span><a href="http://getdx.com/"><span>DX</span></a><span>. Justin already co-authored a great article about </span><a href="https://refactoring.fm/p/vibe-coding-workflows"><span>vibe-coding workflows</span></a><span> last year, which ended up becoming one of the top 5 Refactoring articles ever, so we have a high bar to clear!</span></p><p><span>One of the things I like the most about the DX team is that they run an incredible amount of research. They run surveys all year round, and keep a pulse of where the industry is going around several topics &#8212; especially </span><strong><span>AI and developer experience</span></strong><span>.</span></p><p><span>They recently released the </span><a href="https://getdx.com/report/state-of-ai-impact-in-engineering-q2-report/?utm_source=refactoring"><span>Q2 2026 AI impact report</span></a><span>, the latest in a quarterly series tracking how AI is reshaping engineering teams. I regularly check out these reports, and one thing I noticed is how they gradually moved from discussing </span><strong><span>adoption</span></strong><span> to discussing </span><strong><span>impact</span></strong><span>.</span></p><p><span>The feeling is that AI is everywhere now, and the main challenge for engineering leaders is not to spearhead adoption anymore, but rather justify the exponentially-increasing AI budgets, by demonstrating what AI is actually delivering.</span></p><p><span>I got preview access to the report, and today we will comment on a few key highlights.</span></p><p><span>So here is the agenda:</span></p><ul><li><p><span>&#128202; </span><strong><span>Speed is real but uneven</span></strong><span> &#8212; what 500+ teams reveal about where AI gains concentrate, and who&#8217;s being left behind.</span></p></li><li><p><span>&#129521; </span><strong><span>Orgs are not multiplying AI output</span></strong><span> &#8212; developer experience is declining even as velocity climbs.</span></p></li><li><p><span>&#128300; </span><strong><span>Code is easier to change but harder to trust</span></strong><span> &#8212; a surprising divergence between maintainability and confidence.</span></p></li><li><p><span>&#128694;&#8205;&#9794;&#65039;&#8205;&#10145;&#65039; </span><strong><span>Spend is outrunning returns</span></strong><span> &#8212; AI budgets are up 28x, but innovation ratio is flat.</span></p></li><li><p><span>&#129517; </span><strong><span>What this means for engineering leaders</span></strong><span> &#8212; how to shift from tool adoption to system optimization.</span></p></li></ul><p><span>Let&#8217;s dive in!</span></p><div><hr></div><p><em><span>I want to thank Justin and the DX team for partnering on this! I am a big fan of their work and you should check out the full report here.</span></em></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;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-q2-report/?utm_source=refactoring"><span>Download the full report</span></a></p><div><hr></div><h2><span>&#128202; Speed is real but uneven</span></h2><p><span>Across the 500+ respondents, </span><strong><span>over 50% of the code is now generated by AI</span></strong><span>. This metric has accelerated rapidly, increasing from 34% in Q1 2026.</span></p><p><span>Median weekly throughput rose 37% over four quarters (1.42 to 1.94 PRs/eng/week), and deployment frequency is up double digits across most segments. However, gains are concentrated among </span><strong><span>small organizations</span></strong><span> (less than 100 engineers) and tech-sector teams, pulling away from larger and traditional-industry teams, and the gap is widening.</span></p><p><span>This echoes what we have seen in other reports recently, from the </span><a href="https://refactoring.fm/p/acceleration-whiplash"><span>Acceleration Whiplash</span></a><span>, to the </span><a href="https://refactoring.fm/p/the-era-of-the-software-factory"><span>State of Software Delivery</span></a><span> earlier this year.</span></p><p><span>The speed at which the tools keep improving makes gains compound for teams who invest into AI workflows, so the distribution of team productivity becomes a steeper and steeper power law, with the top percentiles pulling away from the pack.</span></p><div><hr></div><h2><span>&#129521; Orgs are not multiplying AI output</span></h2><p><span>DX measures developer experience with a proprietary index called DXI (</span><a href="https://refactoring.fm/p/the-era-of-the-software-factory"><span>we talked about it with Abi Noda</span></a><span>), which, over the last four quarters, has </span><em><span>dropped</span></em><span> on average from 67 to 65.</span></p><p><span>Again this is not an </span><em><span>even</span></em><span> drop: AI is </span><em><span>improving</span></em><span> some aspects of the devex (docs quality, code maintainability, onboarding speed) while making others worse: larger PRs, slower reviews, less incremental delivery. In aggregate, the </span><strong><span>net effect is negative</span></strong><span>.</span></p><p><span>Median PR sizes have nearly doubled during the same period &#8212; and of course increases in PR size are an early proxy for technical debt, bugs, review friction, and all kinds of nasty stuff.</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_!fd2h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1908ddbd-9fb3-4b56-adb6-09cca1434184_1360x878.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fd2h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1908ddbd-9fb3-4b56-adb6-09cca1434184_1360x878.png 424w, https://substackcdn.com/image/fetch/$s_!fd2h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1908ddbd-9fb3-4b56-adb6-09cca1434184_1360x878.png 848w, https://substackcdn.com/image/fetch/$s_!fd2h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1908ddbd-9fb3-4b56-adb6-09cca1434184_1360x878.png 1272w, https://substackcdn.com/image/fetch/$s_!fd2h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1908ddbd-9fb3-4b56-adb6-09cca1434184_1360x878.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fd2h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1908ddbd-9fb3-4b56-adb6-09cca1434184_1360x878.png" width="1360" height="878" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1908ddbd-9fb3-4b56-adb6-09cca1434184_1360x878.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:878,&quot;width&quot;:1360,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:131121,&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/207414394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1908ddbd-9fb3-4b56-adb6-09cca1434184_1360x878.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_!fd2h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1908ddbd-9fb3-4b56-adb6-09cca1434184_1360x878.png 424w, https://substackcdn.com/image/fetch/$s_!fd2h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1908ddbd-9fb3-4b56-adb6-09cca1434184_1360x878.png 848w, https://substackcdn.com/image/fetch/$s_!fd2h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1908ddbd-9fb3-4b56-adb6-09cca1434184_1360x878.png 1272w, https://substackcdn.com/image/fetch/$s_!fd2h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1908ddbd-9fb3-4b56-adb6-09cca1434184_1360x878.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>So, </span><strong><span>velocity metrics</span></strong><span> alone will tell you things are improving, but </span><strong><span>devex metrics</span></strong><span> will tell you that the system (and developers) are strained, and we are far from a sustainable, positive flywheel.</span></p><p><span>My personal feeling about this is that so far we have mostly tried to </span><em><span>slap</span></em><span> AI onto the existing steps of the dev process, while running them the same way we always have. This might bring incremental gains, and even work well for some of the steps, but it completely breaks others, like </span><strong><span>code reviews</span></strong><span>.</span></p><p><span>It&#8217;s obviously foolish to think that AI can make developers write code 3x faster (as it already does), while assuming we&#8217;ll need to keep reviewing every single LOC manually.</span></p>
      <p>
          <a href="https://refactoring.fm/p/the-state-of-ai-impact-in-engineering">
              Read more
          </a>
      </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="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="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>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">4 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;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[Speed is the Only Moat 🏎️ — with Anush Elangovan]]></title><description><![CDATA[Watch now | Refactoring Podcast &#8226; Episode 68]]></description><link>https://refactoring.fm/p/speed-is-the-only-moat-with-anush</link><guid isPermaLink="false">https://refactoring.fm/p/speed-is-the-only-moat-with-anush</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Fri, 17 Jul 2026 07:00:22 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/206247034/ca64810baae153b9914789cb4bc5fd58.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<div id="youtube2-w2F-u0kJllA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;w2F-u0kJllA&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/w2F-u0kJllA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div class="pullquote"><p style="text-align: center;"><em><strong>Listen now:<br><a href="https://www.youtube.com/@refactoringclub">YouTube</a> | <a href="https://podcasts.apple.com/us/podcast/refactoring-podcast/id1719137305">Apple</a> | <a href="https://open.spotify.com/show/7Luds9dmzZDoDC8Q7EMbSw">Spotify</a></strong></em></p></div><blockquote><p><em>Today&#8217;s episode is brought to you by:</em></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="http://getunblocked.com/refactoring" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eEtG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F303c8adb-e06a-4879-bd48-0d62d3bc0467_8042x1737.png 424w, https://substackcdn.com/image/fetch/$s_!eEtG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F303c8adb-e06a-4879-bd48-0d62d3bc0467_8042x1737.png 848w, https://substackcdn.com/image/fetch/$s_!eEtG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F303c8adb-e06a-4879-bd48-0d62d3bc0467_8042x1737.png 1272w, https://substackcdn.com/image/fetch/$s_!eEtG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F303c8adb-e06a-4879-bd48-0d62d3bc0467_8042x1737.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eEtG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F303c8adb-e06a-4879-bd48-0d62d3bc0467_8042x1737.png" width="266" height="57.36538461538461" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/303c8adb-e06a-4879-bd48-0d62d3bc0467_8042x1737.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:314,&quot;width&quot;:1456,&quot;resizeWidth&quot;:266,&quot;bytes&quot;:174076,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;http://getunblocked.com/refactoring&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://refactoring.fm/i/197536623?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F303c8adb-e06a-4879-bd48-0d62d3bc0467_8042x1737.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_!eEtG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F303c8adb-e06a-4879-bd48-0d62d3bc0467_8042x1737.png 424w, https://substackcdn.com/image/fetch/$s_!eEtG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F303c8adb-e06a-4879-bd48-0d62d3bc0467_8042x1737.png 848w, https://substackcdn.com/image/fetch/$s_!eEtG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F303c8adb-e06a-4879-bd48-0d62d3bc0467_8042x1737.png 1272w, https://substackcdn.com/image/fetch/$s_!eEtG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F303c8adb-e06a-4879-bd48-0d62d3bc0467_8042x1737.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><em><strong><a href="http://getunblocked.com/refactoring">Unblocked</a></strong> is the context layer for modern engineering teams. Get a free three-week trial at</em> <em><strong><a href="http://getunblocked.com/refactoring">getunblocked.com/refactoring</a></strong></em></p></blockquote><div><hr></div><p><span>Today's guest is </span><strong><span>Anush</span></strong><span> </span><strong><span>Elangovan</span></strong><span>, VP of AI Software at AMD. </span></p><p><span>With Anush, we talked about how he thinks about open source as a key strategic driver in the AI era, and how his team is able to stay super fast while ensuring quality by combining their internal work with their external contributions.<br><br>And then we got into a rabbit hole about how to get big companies ready for AI, how to think about human capital, and how Anush personally spends his time. And spoiler alert, he is back to doing IC work for up to 40% of his time.</span></p><div><hr></div><h2>&#129351; Interview Summary</h2><p>If you are a <strong>&#128274; paid subscriber &#128274;</strong> you will find my own <em>summary</em> of the interview below.</p><p>It&#8217;s the 5-minute, handcrafted takeaways of what we talked about, with timestamps to the relevant video moments, for those who don&#8217;t have time to sit through the 1-hour chat.</p><p>Here is the agenda for today:</p><ol><li><p><strong>&#128275; AMD&#8217;s open-source AI stack</strong></p></li><li><p><strong>&#129302; Navigating AI-generated code contributions</strong></p></li><li><p><strong>&#9889; Speed as the only moat</strong></p></li><li><p><strong>&#127959;&#65039; Getting legacy systems AI-ready</strong></p></li><li><p><strong>&#129504; Why leaders should get their hands dirty</strong></p></li></ol><p>&#10240;Let&#8217;s dive in &#128071;</p><div><hr></div>
      <p>
          <a href="https://refactoring.fm/p/speed-is-the-only-moat-with-anush">
              Read more
          </a>
      </p>
   ]]></content:encoded></item></channel></rss>