<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Refactoring: 💡 Ideas]]></title><description><![CDATA[Three short engineering ideas to start the week on the right foot!]]></description><link>https://refactoring.fm/s/monday-ideas</link><image><url>https://substackcdn.com/image/fetch/$s_!CR5A!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png</url><title>Refactoring: 💡 Ideas</title><link>https://refactoring.fm/s/monday-ideas</link></image><generator>Substack</generator><lastBuildDate>Thu, 13 Aug 2026 13:11:57 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[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">5 months ago &#183; 55 likes &#183; Luca Rossi</div></a></div><div><hr></div><h2>3) &#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://martinfowler.com/rachels-ramblings/conductor-developer.html">The Conductor Developer</a></h4><h5>4 min &#8226; by Rachel Laycock</h5><p>Rachel is CTO at Thoughtworks and has a good frame for what AI is doing to software development. The developer becomes more like an orchestra conductor, who needs to keep the whole system in their head while many agents play different, specialized parts. This feels directionally right to me, which makes me forgive that the article itself feels a little bit AI-generated :)</p><div><hr></div><h4>&#129352; <a href="https://www.seangoedecke.com/llms-reward-expertise/">LLMs Reward Expertise</a></h4><h5>4 min &#8226; by Sean Goedecke</h5><p>Sean&#8217;s take matches my own experience: when working with AI, the better you know the domain, the better questions you can ask, the harder you can steer the model, the faster you can spot weak answers, and so on. In other words, AI massively rewards expertise.</p><div><hr></div><h4>&#129353; <a href="https://gruhn.me/blog/2026-08-03/">Don&#8217;t Be a Meat Proxy</a></h4><h5>1 min &#8226; by Niklas Gruhn</h5><p>If you use AI in a team, your job is to read, check, compress, and contextualize what AI gives you, before you pass it on to other people. Otherwise, people might as well talk to the model directly.</p><div><hr></div><p>And that&#8217;s it for today! If you are finding this newsletter valuable, <strong>subscribe to the full version</strong>!</p><p>1700+ engineers and managers have joined already, and they receive our flagship weekly long-form articles about <strong>how to ship faster</strong> and <strong>work better together</strong>! Learn more about the <a href="http://refactoring.fm/about">benefits of the paid plan here</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Make your team ship faster!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p>See you next week!<br>Luca</p>]]></content:encoded></item><item><title><![CDATA[Bugs, feature requests, career stories, and weekly readings 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #219]]></description><link>https://refactoring.fm/p/bugs-feature-requests-career-stories</link><guid isPermaLink="false">https://refactoring.fm/p/bugs-feature-requests-career-stories</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 03 Aug 2026 07:01:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RiQw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><div><hr></div><h2>&#128269; <a href="https://getunblocked.link/nHMOAqW">Can you prove your AI is working?</a></h2><p><em>This newsletter is brought to you by <a href="https://getunblocked.link/nHMOAqW">Unblocked</a>!</em></p><p>AI is firmly in your engineering workflow. But while the token spend shows it, the throughput doesn&#8217;t. Humans are very much still in the loop, and that&#8217;s likely a context problem.</p><p>Our friends at Unblocked will hold a <strong><a href="https://getunblocked.link/nHMOAqW">free webinar on Aug 19</a></strong> to cover:</p><ul><li><p>How to track <em>AI productivity</em></p></li><li><p>How <em>context maturity</em> affects where teams stall</p></li><li><p>What it takes to get <em>real value</em> from your agents</p></li></ul><p>They know what they are doing and I personally use Unblocked everyday for Tolaria! Recommended.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getunblocked.link/nHMOAqW&quot;,&quot;text&quot;:&quot;Join the free webinar&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getunblocked.link/nHMOAqW"><span>Join the free webinar</span></a></p><div><hr></div><h2>&#128678; Separate bugs from feature requests</h2><p>When a product grows, feedback starts arriving from everywhere.</p><p>In my case <a href="https://refactoring.fm/p/how-i-run-the-tolaria-project">with Tolaria</a>, it comes from GitHub issues, support emails, community threads, crash reports, the Canny board, random DMs, and of course, my own ideas.</p><p>It is tempting to put all of this into one giant backlog, but bugs and feature requests create very different kinds of work.</p><ul><li><p>A <strong>bug</strong> mostly needs reproduction, prioritization, and a fix. If it is real, there is usually not much product strategy to debate. The job is to understand what is broken and make it not broken anymore.</p></li><li><p>A <strong>feature request</strong> is different. It needs deduplication, discussion, roadmap judgment, planned / in-progress states, and possibly a place where users can follow what happens next. It also benefits from users voting on actual proposals, so you can use that for broad prioritization.</p></li></ul><p>If you collapse these channels into one, like many teams I know actually do, the system can get noisy very quickly, like:</p><ul><li><p>Users filing feature requests as bugs</p></li><li><p>Bugs appearing in product boards</p></li><li><p>Duplicates multiplying everywhere</p></li><li><p>Engineers spending time routing work manually</p></li></ul><p>About all of this, what works for me is explicit <strong>traffic control</strong>. Route people to the right place when they submit feedback, and then run an intake workflow that moves misplaced items, closes duplicates, and turns valid work into tasks &#128071;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RiQw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RiQw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RiQw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RiQw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RiQw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F222ae843-5887-4586-a31a-dd42103e0e3a_1884x1664.jpeg 1456w" sizes="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">3 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[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[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">3 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[Anticipating questions, quiet leadership, and weekly readings 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #216]]></description><link>https://refactoring.fm/p/anticipating-questions-quiet-leadership</link><guid isPermaLink="false">https://refactoring.fm/p/anticipating-questions-quiet-leadership</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 13 Jul 2026 07:00:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!X6r4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><div><hr></div><h2>&#129692; <a href="https://watch.getcontrast.io/register/context-maturity-jul?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary">The 8 Levels of Context Maturity</a></h2><p><em>This is brought to you by our friends at <a href="https://watch.getcontrast.io/register/context-maturity-jul?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary">Unblocked</a>!</em></p><p>The token spend shows that AI is in your engineering workflow, but the throughput doesn&#8217;t!</p><p>Raise your hand if you can relate. A lot of the times, this is a <strong>context problem</strong>. I personally invest a lot in making sure AI gets good context about past decisions, what exists, and what needs to do, and <a href="https://refactoring.fm/i/204247813/fetching-knowledge-with-unblocked">I get a lot of help from Unblocked</a> about this.</p><p>On <strong>July 23rd</strong>, the Unblocked team is running a free webinar that maps the 8 levels of context maturity: where most teams are stuck, what the ceiling looks like at each stage, and what it takes to make the most out of your agents. </p><p>Very recommended &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://watch.getcontrast.io/register/context-maturity-jul?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary&quot;,&quot;text&quot;:&quot;Join live July 23rd (FREE)&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://watch.getcontrast.io/register/context-maturity-jul?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary"><span>Join live July 23rd (FREE)</span></a></p><div><hr></div><h2>1) &#128499;&#65039; Anticipate exec questions</h2><p>Whether you are an engineer or a manager, one of the most underrated skills you can have is making your ideas easier to approve!</p><p>This is often tricky, especially when presenting to executives, who may be removed from our work and don&#8217;t understand technical details. In this case, you can put yourself in their shoes and *anticipate *many of their questions, like:</p><ul><li><p><em>How much will it cost?</em></p></li><li><p><em>What do we get for the money?</em></p></li><li><p><em>Why now?</em></p></li><li><p><em>What happens if we do nothing?</em></p></li><li><p><em>What other options did we consider?</em></p></li><li><p><em>How will we measure success?</em></p></li><li><p><em>What are the risks, and how do we reduce them?</em></p></li><li><p><em>Who owns delivery?</em></p></li><li><p><em>Which other teams or business areas are affected?</em></p></li></ul><p>Some of these will feel annoying or nitpicky, or even not really applicable to your situation, but you may get asked them anyway! The more senior someone is, the wider their span of responsibility becomes, and the less time they can spend understanding any single problem. Expect broad, sometimes even off-topic questions.</p><p>So your job becomes to compress the important context for your interlocutor, translating complexity into things like trade-offs, outcomes, risks, and timing.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X6r4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X6r4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png 424w, https://substackcdn.com/image/fetch/$s_!X6r4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png 848w, https://substackcdn.com/image/fetch/$s_!X6r4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png 1272w, https://substackcdn.com/image/fetch/$s_!X6r4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X6r4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png" width="1456" height="601" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:601,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:124030,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://refactoring.fm/i/206250738?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!X6r4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png 424w, https://substackcdn.com/image/fetch/$s_!X6r4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png 848w, https://substackcdn.com/image/fetch/$s_!X6r4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png 1272w, https://substackcdn.com/image/fetch/$s_!X6r4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ebc18-fdc2-4ba7-85e4-8bf79b7c2021_1910x788.png 1456w" sizes="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>A good proposal should make the obvious executive questions boring, because they are already answered. That is how you turn a good technical idea into something the business can actually say yes to.</p><p>I wrote more about this in the full piece with Anna Shipman on the Engineer &#8594; Executive Translation Layer &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:178065441,&quot;url&quot;:&quot;https://refactoring.fm/p/the-engineer-executive-translation&quot;,&quot;publication_id&quot;:64099,&quot;embedding_publication_id&quot;:null,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;The Engineer &#8594; Executive Translation Layer &#128256;&quot;,&quot;truncated_body_text&quot;:&quot;Hey, Luca here! Today we are hosting a fantastic new article by Anna Shipman, CTO at Kooth.&quot;,&quot;date&quot;:&quot;2025-11-12T08:01:00.523Z&quot;,&quot;like_count&quot;:31,&quot;comment_count&quot;:0,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;profile_set_up_at&quot;:&quot;2021-06-04T06:23:53.965Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-11-15T17:35:42.775Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:247311,&quot;user_id&quot;:6835984,&quot;publication_id&quot;:64099,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:64099,&quot;name&quot;:&quot;Refactoring&quot;,&quot;subdomain&quot;:&quot;refactoring&quot;,&quot;custom_domain&quot;:&quot;refactoring.fm&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Learn how to make your engineering team ship faster and better. Read weekly by 170,000+ engineers and managers&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;author_id&quot;:6835984,&quot;primary_user_id&quot;:6835984,&quot;theme_var_background_pop&quot;:&quot;#2096ff&quot;,&quot;created_at&quot;:&quot;2020-07-06T14:20:40.525Z&quot;,&quot;email_from_name&quot;:&quot;&#127744; Refactoring&quot;,&quot;copyright&quot;:&quot;Refactoring ETS&quot;,&quot;founding_plan_name&quot;:&quot;&#127942; Community plan&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79ab7b78-71cf-42d2-a607-3aa18960cb64_2400x572.png&quot;}}],&quot;twitter_screen_name&quot;:&quot;lucaronin&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000,&quot;status&quot;:{&quot;bestsellerTier&quot;:1000,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:1000},&quot;subscriber&quot;:null}},{&quot;id&quot;:411731536,&quot;name&quot;:&quot;Anna Shipman&quot;,&quot;handle&quot;:&quot;annashipman&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c41f7b58-210b-4e51-9ee9-eed131f347c5_3259x3259.jpeg&quot;,&quot;bio&quot;:&quot;Strategic technology leader. Previous: CTO at Kooth, Technical Director at the Financial Times, Technical Architect at GDS. Love Vim, cryptic crosswords and pool. I speak at conferences, and write about strategy and tech leadership on my blog, JFDI.&quot;,&quot;profile_set_up_at&quot;:&quot;2026-02-25T10:14:45.167Z&quot;,&quot;reader_installed_at&quot;:&quot;2026-02-25T10:23:36.696Z&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:null,&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/the-engineer-executive-translation?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!CR5A!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png" loading="lazy"><span class="embedded-post-publication-name">Refactoring</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">The Engineer &#8594; Executive Translation Layer &#128256;</div></div><div class="embedded-post-body">Hey, Luca here! Today we are hosting a fantastic new article by Anna Shipman, CTO at Kooth&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">9 months ago &#183; 31 likes &#183; Luca Rossi and Anna Shipman</div></a></div><div><hr></div><h2>2) &#127911; Quiet leadership prevents noisy emergencies</h2><p>Tech culture loves the person who saves the day.</p><p>The engineer who stays up late to fix production. The heroic intervention that makes everybody clap.</p><p>These days I rewatched <a href="https://refactoring.fm/p/how-to-manage-humans-with-rands">my first conversation with Rands</a>, and I love how he pushed back on this instinct. Rands simply says: if someone saves the day, the first question should be &#8220;<em>why did the day need saving?&#8221;</em></p><p>A lot of good leadership is invisible because the bad thing simply never happens. It&#8217;s when:</p><ul><li><p>You act on a yellow flag before it becomes a red flag.</p></li><li><p>You give feedback early, before resentment piles up.</p></li><li><p>You listen long and hard enough to understand what is actually going on, instead of rushing to action.</p></li></ul><p>Nobody claps when nothing explodes, but that&#8217;s how it works.</p><p>To make this possible, Rands stresses over the importance of <em>listening</em> as an active leadership tool. You need to be collecting the weak signals, the small patterns, which lead to equally small (but crucial) interventions every day.</p><p>You can find the full interview with Rands here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;1f42fd58-0ff9-4337-8b64-488471aa5265&quot;,&quot;caption&quot;:&quot;Today's guest is Michael Lopp, better known as Rands!&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How to Manage Humans &#127933; &#8212; with Rands&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000}],&quot;post_date&quot;:&quot;2025-05-30T06:02:09.377Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/T8pcMl3rmbM&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/how-to-manage-humans-with-rands&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;6fe20f16-45bd-4435-9c43-db420a814dad&quot;,&quot;id&quot;:164631904,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:33,&quot;comment_count&quot;:0,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>3) &#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://martinfowler.com/articles/exploring-gen-ai/local-models-for-coding-factors.html">Viability of Local Models for Coding</a></h4><h5>9 min &#8226; by Birgitta B&#246;ckeler</h5><p>A useful reality check on local coding models. The short version is they are getting much better, but the constraints are still very real: RAM, speed, context, tool calling, and reliability all matter. Great piece by Birgitta who we also interviewed <a href="https://www.youtube.com/watch?v=65ctfy3Rmgc">last year</a>.</p><div><hr></div><h4>&#129352; <a href="https://charity.wtf/p/in-defense-of-ai-mandates">In Defense of AI Mandates</a></h4><h5>4 min &#8226; by Charity Majors</h5><p>I love how Charity frames AI mandates as a funding device. This means. if leaders want people to learn a new way of working, they have to make room for the temporary slowdown, the annoyance, and the mess. Charity was also one of the <a href="https://www.youtube.com/watch?v=97YRxrKNLP0">very first guests</a> of our podcast.</p><div><hr></div><h4>&#129353; <a href="https://vickiboykis.com/2026/05/28/we-should-be-more-tired-than-the-model/">We should be more tired than the model</a></h4><h5>2 min &#8226; by Vicki Boykis</h5><p>An interesting take that I largely do not agree with, but gave me something to think about. I love the idea of using LLMs in a way that I can *grow *(as opposed to my skills <em>atrophying </em>here and there<em>)</em>, but I don&#8217;t see myself going back to writing code manually in order to do that. That&#8217;s too big of a tradeoff. But will look for ways to make this more <em>palatable</em>!</p><div><hr></div><p>And that&#8217;s it for today! If you are finding this newsletter valuable, <strong>subscribe to the full version</strong>!</p><p>1700+ engineers and managers have joined already, and they receive our flagship weekly long-form articles about <strong>how to ship faster</strong> and <strong>work better together</strong>! Learn more about the <a href="http://refactoring.fm/about">benefits of the paid plan here</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Make your team ship faster!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p>See you next week!<br>Luca</p>]]></content:encoded></item><item><title><![CDATA[Code hygiene, personal identity, and weekly readings! 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #]]></description><link>https://refactoring.fm/p/code-hygiene-personal-identity-and</link><guid isPermaLink="false">https://refactoring.fm/p/code-hygiene-personal-identity-and</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 06 Jul 2026 07:02:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!alN4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><div><hr></div><h2>&#127903;&#65039; <a href="https://streamyard.com/watch/CXnfrUnxMCwk">Join our webinar on how to become an agentic engineering org!</a></h2><p>On <strong>July 22nd</strong> I will host an exclusive webinar together with the team at Augment Code!</p><p>Most teams adopt coding agents and see a <strong>20% lift</strong> at most, and then plateau. The most common reason is that the bottleneck moves, and <strong>you should lift your whole dev process</strong>, not just coding.</p><p>In this session, the Augment Code team shares <strong>how they transformed their own engineering org</strong> by redesigning one workflow at a time, and demos two of them live on a real codebase: <em>agentic code review</em> and <em>automated incident management</em>, where agents now resolve the majority of incidents end-to-end.</p><p>You&#8217;ll leave with a playbook for finding your org&#8217;s current bottleneck and a workflow you can replicate with your team this week &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://streamyard.com/watch/CXnfrUnxMCwk&quot;,&quot;text&quot;:&quot;Learn more and RSVP!&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://streamyard.com/watch/CXnfrUnxMCwk"><span>Learn more and RSVP!</span></a></p><div><hr></div><h2>1) &#129529; AI makes code hygiene enforceable</h2><p>I have written many times about this recently, but I&#8217;ll keep hammering on this point because it is so important, and I believe many people haven&#8217;t fully grasped it yet.</p><p>Good code hygiene is, at once, 1) something everybody agrees with in theory, and 2) quietly and often sacrifices in practice, because it&#8217;s hard to maintain.</p><p>Things like good test coverage, small files, high cohesion + low coupling, low cyclomatic complexity, have all historically needed people who care enough to push for it, review for it, and absorb the cost of fixing it.</p><p>For the first time, AI allows to turn hygiene into a system that can be enforced at almost no additional cost. You can give agents rules about how to write tests, keep files small, or refactor before adding new behavior.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!alN4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!alN4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png 424w, https://substackcdn.com/image/fetch/$s_!alN4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png 848w, https://substackcdn.com/image/fetch/$s_!alN4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png 1272w, https://substackcdn.com/image/fetch/$s_!alN4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!alN4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png" width="728" height="260.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:521,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:200363,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://refactoring.fm/i/195748040?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!alN4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png 424w, https://substackcdn.com/image/fetch/$s_!alN4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png 848w, https://substackcdn.com/image/fetch/$s_!alN4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png 1272w, https://substackcdn.com/image/fetch/$s_!alN4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d97bf8-6be6-48af-9ff5-2196f8d60cee_2336x836.png 1456w" sizes="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>Many of such rules can also be enforced by gates: coverage checks, code health thresholds, linters, static analysis, and more. Guidance tells the agent what the floor looks like, and gates make such floor non-negotiable. And you can design these checks to run early, so the feedback arrives while the work is still cheap to fix.</p><p>The #1 concern of engineers about AI coding is still code quality, but you can actually use AI to <em>increase</em> the code quality of your team. I wrote more about this in the full piece on the compounding software factory &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:195748040,&quot;url&quot;:&quot;https://refactoring.fm/p/the-compounding-software-factory&quot;,&quot;publication_id&quot;:64099,&quot;embedding_publication_id&quot;:null,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;The Compounding Software Factory &#128200;&quot;,&quot;truncated_body_text&quot;:&quot;Hey there, Luca here!&quot;,&quot;date&quot;:&quot;2026-04-29T07:55:12.038Z&quot;,&quot;like_count&quot;:58,&quot;comment_count&quot;:2,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;profile_set_up_at&quot;:&quot;2021-06-04T06:23:53.965Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-11-15T17:35:42.775Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:247311,&quot;user_id&quot;:6835984,&quot;publication_id&quot;:64099,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:64099,&quot;name&quot;:&quot;Refactoring&quot;,&quot;subdomain&quot;:&quot;refactoring&quot;,&quot;custom_domain&quot;:&quot;refactoring.fm&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Learn how to make your engineering team ship faster and better. Read weekly by 170,000+ engineers and managers&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;author_id&quot;:6835984,&quot;primary_user_id&quot;:6835984,&quot;theme_var_background_pop&quot;:&quot;#2096ff&quot;,&quot;created_at&quot;:&quot;2020-07-06T14:20:40.525Z&quot;,&quot;email_from_name&quot;:&quot;&#127744; Refactoring&quot;,&quot;copyright&quot;:&quot;Refactoring ETS&quot;,&quot;founding_plan_name&quot;:&quot;&#127942; Community plan&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79ab7b78-71cf-42d2-a607-3aa18960cb64_2400x572.png&quot;}}],&quot;twitter_screen_name&quot;:&quot;lucaronin&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000,&quot;status&quot;:{&quot;bestsellerTier&quot;:1000,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:1000},&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/the-compounding-software-factory?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!CR5A!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png" loading="lazy"><span class="embedded-post-publication-name">Refactoring</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">The Compounding Software Factory &#128200;</div></div><div class="embedded-post-body">Hey there, Luca here&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">3 months ago &#183; 58 likes &#183; 2 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>2) &#129694; Find a broader identity for yourself</h2><p>A lot of the anxiety around AI is really about who you are (and who you are going to become) as a professional, rather than about tools.</p><p>Based on your sense of identity, AI can feel either like an opportunity, or a threat.</p><p>If you define yourself narrowly &#8212; e.g. &#8220;I am a backend engineer who is great at algorithms&#8221;, or &#8220;I love the thrill of solving puzzles with code&#8221; &#8212; then AI might feel like it is walking into your house and stealing furniture.</p><p>Earlier this year I talked about this with my friend Thiago Ghisi, who had a long engineering leadership career, and then used his sabbatical to step back and look for broader patterns in his life and work.</p><p>He is now studying clinical psychology&#8212; and sure, if you frame him only as a Director of Engineering, this might look like a strange detour. But if you frame him as someone who helps high-achieving people grow, you can suddenly connect more dots.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MYMl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MYMl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png 424w, https://substackcdn.com/image/fetch/$s_!MYMl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png 848w, https://substackcdn.com/image/fetch/$s_!MYMl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png 1272w, https://substackcdn.com/image/fetch/$s_!MYMl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MYMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png" width="1456" height="772" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:772,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:293136,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://refactoring.fm/i/184235918?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!MYMl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png 424w, https://substackcdn.com/image/fetch/$s_!MYMl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png 848w, https://substackcdn.com/image/fetch/$s_!MYMl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png 1272w, https://substackcdn.com/image/fetch/$s_!MYMl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb049a8b6-0b0e-4ae5-8dcd-ef1360d5899a_2880x1528.png 1456w" sizes="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 think this is a useful exercise for engineers too. Instead of thinking in terms of <em>skills</em>, ask yourself:</p><ul><li><p><em>Why do I do what I do?</em></p></li><li><p><em>What is a broader version of my role?</em></p></li><li><p><em>What kinds of problems do I actually care about solving?</em></p></li></ul><p>A broader identity makes you more adaptable, and opens up more opportunities. You can find the full piece below &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:184235918,&quot;url&quot;:&quot;https://refactoring.fm/p/finding-yourself-in-the-ai-era&quot;,&quot;publication_id&quot;:64099,&quot;embedding_publication_id&quot;:null,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;Finding yourself in the AI era &#10024;&quot;,&quot;truncated_body_text&quot;:&quot;Hey, Luca here! This is a &#10024; bonus free essay &#10024; from Refactoring. Based on our schedule it should have been a paid one! But I really care about this topic so I decided to make it free for everyone.&quot;,&quot;date&quot;:&quot;2026-01-14T08:02:05.523Z&quot;,&quot;like_count&quot;:77,&quot;comment_count&quot;:6,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;profile_set_up_at&quot;:&quot;2021-06-04T06:23:53.965Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-11-15T17:35:42.775Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:247311,&quot;user_id&quot;:6835984,&quot;publication_id&quot;:64099,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:64099,&quot;name&quot;:&quot;Refactoring&quot;,&quot;subdomain&quot;:&quot;refactoring&quot;,&quot;custom_domain&quot;:&quot;refactoring.fm&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Learn how to make your engineering team ship faster and better. Read weekly by 170,000+ engineers and managers&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;author_id&quot;:6835984,&quot;primary_user_id&quot;:6835984,&quot;theme_var_background_pop&quot;:&quot;#2096ff&quot;,&quot;created_at&quot;:&quot;2020-07-06T14:20:40.525Z&quot;,&quot;email_from_name&quot;:&quot;&#127744; Refactoring&quot;,&quot;copyright&quot;:&quot;Refactoring ETS&quot;,&quot;founding_plan_name&quot;:&quot;&#127942; Community plan&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79ab7b78-71cf-42d2-a607-3aa18960cb64_2400x572.png&quot;}}],&quot;twitter_screen_name&quot;:&quot;lucaronin&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000,&quot;status&quot;:{&quot;bestsellerTier&quot;:1000,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:1000},&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/finding-yourself-in-the-ai-era?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!CR5A!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png" loading="lazy"><span class="embedded-post-publication-name">Refactoring</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">Finding yourself in the AI era &#10024;</div></div><div class="embedded-post-body">Hey, Luca here! This is a &#10024; bonus free essay &#10024; from Refactoring. Based on our schedule it should have been a paid one! But I really care about this topic so I decided to make it free for everyone&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">7 months ago &#183; 77 likes &#183; 6 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>3) &#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://newsletter.kentbeck.com/p/the-cost-yagni-was-never-about">The Cost YAGNI Was Never About</a></h4><h5>4 min &#8226; by Kent Beck</h5><p>I love how Kent reframes YAGNI for the AI era. The cost has never been writing the actual code, but rather spending optionality too early, and pulling investment forward before the feature can pay you back. Great article everyone should read.</p><div><hr></div><h4>&#129352; <a href="https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction">The Wrong Abstraction</a></h4><h5>4 min &#8226; by Sandi Metz</h5><p>This is a great <em>segue</em> to the Kent&#8217;s article above. Duplication is usually cheaper than the wrong abstraction, because the wrong abstraction eventually collects all kinds of bad stuff &#8212; parameters, conditionals, and sunk-cost arguments. Sometimes the fastest way forward is going back, but this is usually very hard to do.</p><div><hr></div><h4>&#129353; <a href="https://www.schneier.com/blog/archives/2026/06/ai-and-liability.html">AI and Liability</a></h4><h5>4 min &#8226; by Bruce Schneier</h5><p>Including this great piece by Bruce even if it&#8217;s not properly about software engineering, because it&#8217;s so relevant today. Companies should be liable for what their AI agents say and do, just like they are for employees or published content. If your product presents an answer with your logo on it, you should own it, and not use &#8220;the model said so&#8221; as an escape hatch.</p><div><hr></div><p>And that&#8217;s it for today! If you are finding this newsletter valuable, <strong>subscribe to the full version</strong>!</p><p>1700+ engineers and managers have joined already, and they receive our flagship weekly long-form articles about <strong>how to ship faster</strong> and <strong>work better together</strong>! Learn more about the <a href="http://refactoring.fm/about">benefits of the paid plan here</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Make your team ship faster!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p>See you next week!<br>Luca</p>]]></content:encoded></item><item><title><![CDATA[Organizing information, code health, and weekly readings! 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #214]]></description><link>https://refactoring.fm/p/monday</link><guid isPermaLink="false">https://refactoring.fm/p/monday</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 29 Jun 2026 07:01:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CR5A!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><div><hr></div><div class="callout-block" data-callout="true"><h3>&#128203; <a href="https://getunblocked.link/X5bccbt">Unblocked: context to save you time and money</a></h3><p><em>This week&#8217;s newsletter is brought to you by <a href="https://getunblocked.link/X5bccbt">Unblocked</a>!</em></p><p><a href="https://getunblocked.link/X5bccbt">Unblocked</a><strong> </strong>brings together your PRs, docs, conversations, tickets, and more&#8211; turning them into actionable context for both your team and their AI agents.</p><p>Engineering teams that are getting ahead right now use a <strong>context engine</strong> like Unblocked to make better plans, use fewer tokens, and spend less time in review cycles.</p><p>AI is in your engineering workflow. While the token spend shows it, the throughput doesn&#8217;t. The human is very much still in the loop, and that&#8217;s a context problem.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getunblocked.link/X5bccbt&quot;,&quot;text&quot;:&quot;Stop babysitting your agents&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getunblocked.link/X5bccbt"><span>Stop babysitting your agents</span></a></p></div><div><hr></div><h2>1) &#129517; Organize information based on action</h2><p>Most knowledge bases slowly become piles of <strong>uninteresting information</strong>. After a while everything starts looking the same: meeting notes, ideas, projects, living side by side and you don&#8217;t know exactly how and why.</p><p>I believe when you store a new piece of information, there are two questions you need to ask yourself:</p><ul><li><p><strong>What is this?</strong></p></li><li><p><strong>What is this useful for?</strong></p></li></ul><p>The second question is often overlooked, and it&#8217;s a core idea behind <a href="https://refactoring.fm/p/introducing-portent">Portent</a>, which I published last month.</p><p>Portent includes default types &#8212; which answer the question &#8220;what is this&#8221; &#8212; but also a set of default relationships (belongs to, related to, etc) to help you figure out <strong>how to connect notes together</strong>, based on what they should help you with.</p><p>So, a meeting may belong to a project, a procedure may belong to a responsibility, a resource may be related to a topic, and so on.</p><p>Connecting notes together is hard work, but it&#8217;s paramount work! Otherwise you easily get stuck: you optimize too much for memory, and not enough for motion.</p><p>The goal is to know what to do next, rather than remember more stuff.</p><p>You can find the full article below:</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:198376374,&quot;url&quot;:&quot;https://refactoring.fm/p/introducing-portent&quot;,&quot;publication_id&quot;:64099,&quot;embedding_publication_id&quot;:null,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;Introducing Portent &#9752;&#65039;&quot;,&quot;truncated_body_text&quot;:&quot;Today it&#8217;s almost one month since I released Tolaria, and during this time I have spoken with many people and teams that are trying to use it to create and manage internal knowledge bases.&quot;,&quot;date&quot;:&quot;2026-05-20T07:44:11.683Z&quot;,&quot;like_count&quot;:63,&quot;comment_count&quot;:7,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;profile_set_up_at&quot;:&quot;2021-06-04T06:23:53.965Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-11-15T17:35:42.775Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:247311,&quot;user_id&quot;:6835984,&quot;publication_id&quot;:64099,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:64099,&quot;name&quot;:&quot;Refactoring&quot;,&quot;subdomain&quot;:&quot;refactoring&quot;,&quot;custom_domain&quot;:&quot;refactoring.fm&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Learn how to make your engineering team ship faster and better. Read weekly by 170,000+ engineers and managers&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;author_id&quot;:6835984,&quot;primary_user_id&quot;:6835984,&quot;theme_var_background_pop&quot;:&quot;#2096ff&quot;,&quot;created_at&quot;:&quot;2020-07-06T14:20:40.525Z&quot;,&quot;email_from_name&quot;:&quot;&#127744; Refactoring&quot;,&quot;copyright&quot;:&quot;Refactoring ETS&quot;,&quot;founding_plan_name&quot;:&quot;&#127942; Community plan&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79ab7b78-71cf-42d2-a607-3aa18960cb64_2400x572.png&quot;}}],&quot;twitter_screen_name&quot;:&quot;lucaronin&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000,&quot;status&quot;:{&quot;bestsellerTier&quot;:1000,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:1000},&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/introducing-portent?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!CR5A!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png" loading="lazy"><span class="embedded-post-publication-name">Refactoring</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">Introducing Portent &#9752;&#65039;</div></div><div class="embedded-post-body">Today it&#8217;s almost one month since I released Tolaria, and during this time I have spoken with many people and teams that are trying to use it to create and manage internal knowledge bases&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">3 months ago &#183; 63 likes &#183; 7 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>2) &#128202; Treat code health as a data product</h2><p>Code quality conversations are often extremely vague.</p><p>Everyone wants cleaner code, fewer bugs, easier changes, but unless these things become <strong>visible and measurable</strong>, they remain mostly opinions.</p><p>One thing that I liked in my conversation with Stuart Caborn is that Loveholidays treated <strong>code health like a data product</strong>.</p><p>They collected signals, put them on dashboards, trended them over time, compared teams, and checked whether the numbers matched how engineers felt in sentiment surveys.</p><p>The AI angle makes this even more important. If code health data is available through tools and MCP servers, humans and agents can ask questions directly:</p><ul><li><p>How is my team doing compared with yesterday?</p></li><li><p>Are there any areas that got worse this week?</p></li><li><p>Where should an agent be more careful?</p></li></ul><p>At that point code health becomes a feedback system that informs your dev process, and it&#8217;s exactly the kind of feedback AI needs. The better the codebase, the easier for agents to understand it, change it, and spend fewer tokens doing so.</p><p>You can find the full interview with Stuart here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;4669ab7b-bac5-4109-b550-5ff85536dacb&quot;,&quot;caption&quot;:&quot;Today&#8217;s sponsor is Intent by Augment.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;AI Coding meets Code Health &#129668; &#8212; with Stuart Caborn&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000}],&quot;post_date&quot;:&quot;2026-04-17T07:01:17.745Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/msEjXJhL0HM&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/ai-coding-meets-code-health-with&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;99827a36-4345-4b9a-b654-f13b7e2b736e&quot;,&quot;id&quot;:194274334,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:18,&quot;comment_count&quot;:0,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>3) &#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://theengineeringmanager.substack.com/p/the-right-kind-of-ai-sceptic">Earn Your Scepticism</a></h4><h5>10 min &#8226; by James Stanier</h5><p>James makes a distinction I like a lot: scepticism as a conclusion vs scepticism as an identity. The useful version comes from actually using the tools, staying specific about what fails, and keeping your mind open as the evidence changes. This applies just as much to AI enthusiasts as to sceptics.</p><div><hr></div><h4>&#129352; <a href="https://www.moderndescartes.com/essays/ai_and_expertise/">Expertise in the Age of AI</a></h4><h5>5 min &#8226; by Brian Kihoon Lee</h5><p>Brian uses calculators as the analogy for coding agents: the tool removes a lot of mechanical work, but makes the underlying intuition even more valuable. I do not agree with every prediction in here, but the core point is sharp: skipping the struggle may leave you unable to judge the output.</p><div><hr></div><h4>&#129353; <a href="https://larahogan.me/blog/identify-new-role/">Find a New Role - Worksheet</a></h4><h5>4 min &#8226; by Lara Hogan</h5><p>Lara turns career decisions into four simple lists: must-haves, nice-to-haves, don&#8217;t-cares, and what you are optimizing for. This is practical and useful, especially when titles, prestige, and compensation make a role look more appealing than it really is.</p><div><hr></div><blockquote><p><em>Quick heads up! Joel and Melinda, coaches in residence at Refactoring, are part of a group offering <strong>full coaching scholarships</strong> to 29 engineering leaders from underrepresented groups in tech. Applications are open until the end of the day on 30th June.</em></p><p><strong><a href="https://monkeysthumb.co.uk/coaching-for-engineering-leaders/scholarships/">Learn more and apply here</a></strong></p></blockquote><div><hr></div><p>And that&#8217;s it for today! If you are finding this newsletter valuable, <strong>subscribe to the full version</strong>!</p><p>1700+ engineers and managers have joined already, and they receive our flagship weekly long-form articles about <strong>how to ship faster</strong> and <strong>work better together</strong>! Learn more about the <a href="http://refactoring.fm/about">benefits of the paid plan here</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Make your team ship faster!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p>See you next week!<br>Luca</p>]]></content:encoded></item><item><title><![CDATA[Validation, async vs sync, and weekly readings!💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #213]]></description><link>https://refactoring.fm/p/validation-async-vs-sync-and-weekly</link><guid isPermaLink="false">https://refactoring.fm/p/validation-async-vs-sync-and-weekly</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 22 Jun 2026 06:59:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CR5A!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><div><hr></div><h3>&#127903;&#65039; <a href="https://watch.getcontrast.io/register/context-maturity?utm_source%3Drefactoring%26utm_medium%3Demail%26utm_campaign%3Dprimary&amp;sa=D&amp;source=editors&amp;ust=1781716017739422&amp;usg=AOvVaw0dAuDQj8Y_a7AL94HbNnBV">Discover 8 levels of context maturity in AI engineering</a></h3><p><em>This edition is brought to you by our friends at <a href="https://watch.getcontrast.io/register/context-maturity?utm_source%3Drefactoring%26utm_medium%3Demail%26utm_campaign%3Dprimary&amp;sa=D&amp;source=editors&amp;ust=1781716017739422&amp;usg=AOvVaw0dAuDQj8Y_a7AL94HbNnBV">Unblocked</a>!</em></p><blockquote><p>AI shows up in 60% of engineering work. But only about 20% of it can be handed off without someone babysitting the output. That&#8217;s because agents are <strong>missing context</strong>.</p><p>This 8-stage context maturity model gives a real answer on why you haven&#8217;t seen meaningful productivity gains for all the tokens burned.</p><p><strong><a href="https://watch.getcontrast.io/register/context-maturity?utm_source%3Drefactoring%26utm_medium%3Demail%26utm_campaign%3Dprimary&amp;sa=D&amp;source=editors&amp;ust=1781716017739422&amp;usg=AOvVaw0dAuDQj8Y_a7AL94HbNnBV"><span>Join live June 24 (FREE)</span></a></strong> to learn:</p><ul><li><p>Why more MCPs provides agents access but not understanding</p></li><li><p>What it takes to deploy agents you can trust without supervision</p></li><li><p>How a context layer solves for quality, efficiency and cost</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://watch.getcontrast.io/register/context-maturity?utm_source%3Drefactoring%26utm_medium%3Demail%26utm_campaign%3Dprimary&amp;sa=D&amp;source=editors&amp;ust=1781716017739422&amp;usg=AOvVaw0dAuDQj8Y_a7AL94HbNnBV&quot;,&quot;text&quot;:&quot;Learn more and register&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://watch.getcontrast.io/register/context-maturity?utm_source%3Drefactoring%26utm_medium%3Demail%26utm_campaign%3Dprimary&amp;sa=D&amp;source=editors&amp;ust=1781716017739422&amp;usg=AOvVaw0dAuDQj8Y_a7AL94HbNnBV"><span>Learn more and register</span></a></p></blockquote><div><hr></div><h2>1) &#128269; Is validation really the new bottleneck?!</h2><p>So are the pundits (like myself) right? Is <em>validation</em> the new bottleneck? I think it depends, but <a href="https://refactoring.fm/p/how-i-run-the-tolaria-project">for Tolaria</a> I surely spend a lot of time on it.</p><p>Every task that gets completed by the AI is shipped in a new alpha version and moved to the &#8220;in review&#8221; section, where I review it against my production vault.</p><p>Here, a few things may happen:</p><ul><li><p><strong>It&#8217;s good </strong>&#8212; I move the task to &#8220;to release&#8221;</p></li><li><p><strong>It&#8217;s ~90% good </strong>&#8212; I do the final tweaks from my MacBook&#8217;s Codex</p></li><li><p><strong>Needs work, but it&#8217;s still good progress </strong>&#8212; this is the trickiest to decide. If it&#8217;s incomplete but still useful, I have a bias towards <em>progress </em>and I release it anyway, creating a separate task for the improvements.</p></li><li><p><strong>Wrong or not usable </strong>&#8212; this is where the task is sent &#8220;to rework&#8221;, with a QA comment about what needs to be fixed.</p></li></ul><p>I do a big batch of reviews first thing in the morning, for tasks that were done overnight, and then usually again after lunch, and before dinner, where I also try to make sure the AI has enough to do for the night.</p><p>So today validation feels like the biggest bottleneck indeed, also because I believe the right course of action most of the time is to <strong>keep specs light</strong> and let the AI figure out stuff by itself.</p><p>For most features, even when the first pass is not <em>exactly</em> how I wanted it, there is an argument to be made that if it&#8217;s <strong>good progress</strong> it should be released anyway, and have users chip in and give feedback. This has worked well many times, and evolved the product in the right direction faster than if I had waited for a perfect first version.</p><p>Of course nothing of this is exactly new thinking (MVPs, etc), but I think what&#8217;s changing here is the <em>magnitude</em>. I find that the right course of action is constantly to <strong>release a bit more control than what I am comfortable with</strong>, and this boundary keeps moving.</p><p>I wrote more about this in the full piece on how I run Tolaria as a open source project &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:196524187,&quot;url&quot;:&quot;https://refactoring.fm/p/how-i-run-the-tolaria-project&quot;,&quot;publication_id&quot;:64099,&quot;embedding_publication_id&quot;:null,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;How I Run the Tolaria Project&quot;,&quot;truncated_body_text&quot;:&quot;Hey, Luca here! As you probably know by now, two weeks ago I launched Tolaria, a desktop app for Mac, Linux, and Windows, to manage markdown knowledge bases &#8212; for humans and AI.&quot;,&quot;date&quot;:&quot;2026-05-06T07:02:34.809Z&quot;,&quot;like_count&quot;:50,&quot;comment_count&quot;:2,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;profile_set_up_at&quot;:&quot;2021-06-04T06:23:53.965Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-11-15T17:35:42.775Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:247311,&quot;user_id&quot;:6835984,&quot;publication_id&quot;:64099,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:64099,&quot;name&quot;:&quot;Refactoring&quot;,&quot;subdomain&quot;:&quot;refactoring&quot;,&quot;custom_domain&quot;:&quot;refactoring.fm&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Learn how to make your engineering team ship faster and better. Read weekly by 170,000+ engineers and managers&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;author_id&quot;:6835984,&quot;primary_user_id&quot;:6835984,&quot;theme_var_background_pop&quot;:&quot;#2096ff&quot;,&quot;created_at&quot;:&quot;2020-07-06T14:20:40.525Z&quot;,&quot;email_from_name&quot;:&quot;&#127744; Refactoring&quot;,&quot;copyright&quot;:&quot;Refactoring ETS&quot;,&quot;founding_plan_name&quot;:&quot;&#127942; Community plan&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79ab7b78-71cf-42d2-a607-3aa18960cb64_2400x572.png&quot;}}],&quot;twitter_screen_name&quot;:&quot;lucaronin&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000,&quot;status&quot;:{&quot;bestsellerTier&quot;:1000,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:1000},&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/how-i-run-the-tolaria-project?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!CR5A!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png" loading="lazy"><span class="embedded-post-publication-name">Refactoring</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">How I Run the Tolaria Project</div></div><div class="embedded-post-body">Hey, Luca here! As you probably know by now, two weeks ago I launched Tolaria, a desktop app for Mac, Linux, and Windows, to manage markdown knowledge bases &#8212; for humans and AI&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">3 months ago &#183; 50 likes &#183; 2 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>2) &#127757; Async vs sync comms at Todoist</h2><p>Remote work debates often get stuck in a binary: async good, meetings bad, or the reverse.</p><p>What I liked in my conversation with Gon&#231;alo Silva, CTO of Doist, is that their view is much more practical. Doist has been remote-first for more than a decade, long before the COVID era, and they have learned that async-first does not mean async-only.</p><p>Async is fantastic when people need focus, when the topic is well-bounded, and when a thoughtful written update is enough. Doist replaced a lot of status rituals with async threads: people write updates when it works best for them, and others consume them on their own schedule.</p><p>But some conversations are simply bad async candidates. Gon&#231;alo&#8217;s heuristic is to look at the number of iterations you expect:</p><blockquote><p><em><strong>&#8220;If you&#8217;re disagreeing with somebody and you feel like you&#8217;re not quickly advancing towards convergence, that is probably a great prompt to just hop into a meeting. We settled a conversation that had been going on for multiple days in a call in 14 minutes.&#8221;</strong></em></p></blockquote><p>If the topic starts from a blank canvas, involves disagreement, needs multiple rounds of back-and-forth, synchronous chats are the faster tool, and should not be seen as a failure of async culture.</p><p>You can find the full interview with Gon&#231;alo here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;e407b0b8-1abc-4cce-93c8-f0e8a2c5fcd5&quot;,&quot;caption&quot;:&quot;Listen now:&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How Todoist is Built &#9989; &#8212; with Gon&#231;alo Silva&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000}],&quot;post_date&quot;:&quot;2026-01-23T08:01:28.312Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/zaGmjQzmR-I&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/how-todoist-is-built-with-goncalo&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;f7bafd0a-b2c5-4e76-adc9-ba2b896e3e9c&quot;,&quot;id&quot;:185393654,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:26,&quot;comment_count&quot;:0,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>3) &#128218; Weekly Readings</h2><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4><span>&#129351; </span><a href="https://charity.wtf/2026/06/15/ai-demands-more-engineering-discipline-not-less-xpost/">AI Demands More Engineering Discipline. Not Less</a></h4><h5>12 min &#8226; by Charity Majors</h5><p><span>When Charity writes, we listen. The real product of a software team is shared understanding, and AI-generated code makes that easier to destroy at scale. For this reason, discipline now matters </span><em>more</em><span>, not less.</span></p><div><hr></div><h4><span>&#129352; </span><a href="https://lethain.com/revised-rules-of-engineering-leadership/">Revised Rules of Engineering Leadership</a></h4><h5>8 min &#8226; by Will Larson</h5><p>Will&#8217;s piece is a great attempt at updating classic engineering leadership rules and ideas for the agent era. A lot of great takes about migrations, domain expertise, harnesses, and more. Including practical examples!</p><div><hr></div><h4><span>&#129353; </span><a href="https://martinfowler.com/articles/exploring-gen-ai/humans-and-agents.html">Humans and Agents in Software Engineering Loops</a></h4><h5>7 min &#8226; by Kief Morris</h5><p>This connects nicely with the loop-engineering conversation: humans should not micromanage every generated line of code, but design and improve the loop that lets agents build, test, and learn. Great article hosted on Martin Fowler&#8217;s blog.</p><div><hr></div><p>And that&#8217;s it for today! If you are finding this newsletter valuable, <strong>subscribe to the full version</strong>!</p><p>1700+ engineers and managers have joined already, and they receive our flagship weekly long-form articles about <strong>how to ship faster</strong> and <strong>work better together</strong>! Learn more about the <a href="http://refactoring.fm/about">benefits of the paid plan here</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Make your team ship faster!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p>See you next week!<br>Luca</p>]]></content:encoded></item><item><title><![CDATA[AI plumbing, open source, and weekly readings! 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #212]]></description><link>https://refactoring.fm/p/ai-plumbing-open-source-and-weekly</link><guid isPermaLink="false">https://refactoring.fm/p/ai-plumbing-open-source-and-weekly</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Tue, 16 Jun 2026 07:35:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KMjC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9c51b5-d7f5-496d-8ee2-58335cd7dd9f_4800x2508.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><blockquote><h2>&#128202; <a href="https://getdx.com/webinar/research-briefing-with-brian-houck-measuring-ai-agents-revisiting-the-core4/?utm_source=refactoring">Engineering leaders don&#8217;t have a way to measure AI results</a></h2><p><em>This newsletter is brought to you by our friends at <a href="https://getdx.com/webinar/research-briefing-with-brian-houck-measuring-ai-agents-revisiting-the-core4/?utm_source=refactoring">DX</a>!</em></p><p>DX has spent the last year studying what this measurement gap means in practice.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KMjC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9c51b5-d7f5-496d-8ee2-58335cd7dd9f_4800x2508.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KMjC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9c51b5-d7f5-496d-8ee2-58335cd7dd9f_4800x2508.png 424w, https://substackcdn.com/image/fetch/$s_!KMjC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9c51b5-d7f5-496d-8ee2-58335cd7dd9f_4800x2508.png 848w, https://substackcdn.com/image/fetch/$s_!KMjC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9c51b5-d7f5-496d-8ee2-58335cd7dd9f_4800x2508.png 1272w, https://substackcdn.com/image/fetch/$s_!KMjC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9c51b5-d7f5-496d-8ee2-58335cd7dd9f_4800x2508.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KMjC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9c51b5-d7f5-496d-8ee2-58335cd7dd9f_4800x2508.png" width="642" height="335.5508241758242" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb9c51b5-d7f5-496d-8ee2-58335cd7dd9f_4800x2508.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:761,&quot;width&quot;:1456,&quot;resizeWidth&quot;:642,&quot;bytes&quot;:2292380,&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/201566545?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9c51b5-d7f5-496d-8ee2-58335cd7dd9f_4800x2508.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_!KMjC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9c51b5-d7f5-496d-8ee2-58335cd7dd9f_4800x2508.png 424w, https://substackcdn.com/image/fetch/$s_!KMjC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9c51b5-d7f5-496d-8ee2-58335cd7dd9f_4800x2508.png 848w, https://substackcdn.com/image/fetch/$s_!KMjC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9c51b5-d7f5-496d-8ee2-58335cd7dd9f_4800x2508.png 1272w, https://substackcdn.com/image/fetch/$s_!KMjC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb9c51b5-d7f5-496d-8ee2-58335cd7dd9f_4800x2508.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>On June 18th at 09:30 PT, Distinguished Scientist <strong>Brian Houck</strong> and Deputy CTO <strong>Justin Reock</strong> are presenting their research on agent experience, AI readiness, and what the data says about productivity in an agentic world.</p><p>You can register for free below &#128071; </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getdx.com/webinar/research-briefing-with-brian-houck-measuring-ai-agents-revisiting-the-core4/?utm_source=refactoring&quot;,&quot;text&quot;:&quot;Register here for free!&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/webinar/research-briefing-with-brian-houck-measuring-ai-agents-revisiting-the-core4/?utm_source=refactoring"><span>Register here for free!</span></a></p></blockquote><div><hr></div><h2>1) &#129521; Keep deterministic plumbing outside AI</h2><p>A lot of AI workflow demos make it look like the agent should own the whole process: understand the goal, decide the steps, call tools, and maybe even schedule the next run.</p><p>This is quick (and exciting!) when you are prototyping, but it is arguably a bad default for recurring work.</p><p>The boring parts of a workflow&#8212;routing, retries, scheduling, validation, etc.&#8212;need to be dependable, rather than &#8220;smart&#8221;. For things that I run regularly (e.g. all Tolaria procedures) I want to know which steps failed, what inputs they saw, whether they retried, and what state was left behind.</p><p>So the architecture I like more and more is hybrid:</p><ul><li><p><strong>Orchestration owns the skeleton</strong> &#8212; when the workflow runs, what each step consumes and produces, how failures recover, and what humans can inspect.</p></li><li><p><strong>AI owns the messy parts</strong> &#8212; classification, summarization, judgment calls, and human-readable updates.</p></li></ul><p>This does not make AI less important. If anything, it makes it more useful, because it stops wasting tokens and attention on plumbing that traditional software is a better fit for.</p><p>So, agents are a fantastic way to discover/prototype a workflow. But once the shape is known, the right move is to extract the stable pieces into code and keep AI where ambiguity actually exists.</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;:55,&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">3 months ago &#183; 55 likes &#183; 1 comment &#183; Luca Rossi</div></a></div><div><hr></div><h2>2) &#127760; Open source in the age of AI</h2><p>Last week <a href="https://ladybird.org/posts/changing-how-we-develop-ladybird/">Ladybird announced</a> they are stopping accepting public PRs &#8212; the latest of a series of projects doing the same.</p><p>This made me think of my chat with Chris Lattner, where we discussed the impact of AI on open source.</p><p>Chris has spent a huge part of his career building massively successful open source projects &#8212; LLVM, Swift, MLIR, Mojo &#8212; and is concerned about the current state of things. As it&#8217;s now obvious, AI makes it much cheaper to produce contributions, but it does not make reviewing them equally cheaper.</p><blockquote><p><em><strong>&#8220;With AI tools, what&#8217;s happening is that a lot of maintainers are getting overrun. The contributor doesn&#8217;t have to do nearly as much work, but the reviewer has to do the same &#8212; at a bigger scale. I think it&#8217;s going to lead to new contributors not getting the attention they deserve.&#8221;</strong></em></p></blockquote><p>This is important because, in open source, <em>patches</em> have always been about mentoring and trust-building. Maintainers invest time in people, people learn the project, and some of them eventually become future stewards.</p><p>Chris also connects this to intellectual property. If agents can rewrite proprietary tools, translate GPL code into MIT-looking projects, then copyright and licensing become much harder to reason about. As it&#8217;s often the case, legal systems lag behind reality.</p><p>But the optimistic version is that this also pushes companies toward openness. If secrecy and proprietary headers become weaker moats, the better strategy is to build strong communities, move fast, and compete on innovation rather than control.</p><p>We should decide whether to see the glass half empty or half full!</p><p>You can find the full interview with Chris here &#128071;</p><div id="youtube2-PLQs_hHTzSk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;PLQs_hHTzSk&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/PLQs_hHTzSk?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><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://brethorsting.com/blog/2026/05/domain-expertise-has-always-been-the-real-moat/">Domain Expertise Has Always Been the Real Moat</a></h4><h5>3 min &#8226; by Aaron Brethorst</h5><p>Short, sharp, and very true: AI makes writing software cheaper, but it does not make knowing what &#8220;correct&#8221; means any cheaper. The best engineers were always the ones building a model of the domain in their head, as opposed to simply translating tickets into code. That part is still a moat!</p><div><hr></div><h4>&#129352; <a href="https://obie.medium.com/what-happens-when-the-coding-becomes-the-least-interesting-part-of-the-work-ab10c213c660">What Happens When the Coding Becomes the Least Interesting Part of the Work</a></h4><h5>8 min &#8226; by Obie Fernandez</h5><p>I liked this because it frames AI coding less as &#8220;the machine writes code&#8221; and more as &#8220;the machine forces you to make senior thinking explicit.&#8221; If you care mostly about typing code, agents are annoying. If you care about judgment, tradeoffs, and intent, they free up the interesting part.</p><div><hr></div><h4>&#129353; <a href="https://ladybird.org/posts/changing-how-we-develop-ladybird/">Changing How We Develop Ladybird</a></h4><h5>3 min &#8226; by Andreas Kling</h5><p>Ladybird is stopping public pull requests and moving to maintainer-only code changes. The rationale is that, in the AI era, patch size is no longer a good proxy for effort or good faith. Open source maintainers are going to rethink trust, review, and responsibility a lot more than we admit. Thinking about this myself with <a href="http://tolaria.md/">Tolaria</a>.</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[Mapping devex, planning careers, and weekly readings! 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #211]]></description><link>https://refactoring.fm/p/mapping-devex-planning-careers-and</link><guid isPermaLink="false">https://refactoring.fm/p/mapping-devex-planning-careers-and</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 08 Jun 2026 07:01:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!mxHK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff390852c-ca89-4045-8be5-1acea20cb9d4_2060x686.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, <a href="https://refactoring.fm/about">Luca</a> here! Welcome to a new edition of the </em><strong>&#128161;</strong><em> <strong>Monday Ideas </strong></em><strong>&#128161; </strong><em>&#8212; ideas and readings to start the week on the right foot.</em></p><div><hr></div><h3><a href="https://www.trmlabs.com/careers?utm_source=refactoring">TRM</a> is AI intelligence for public safety &#8212; and it&#8217;s <a href="https://www.trmlabs.com/careers?utm_campaign=FY26-Talent-1M_refactoring_Other&amp;utm_me[%E2%80%A6]Y26-Talent-1M&amp;utm_activity=refactoring&amp;utm_activitytype=Other">hiring</a>! &#128227;</h3><p><em>This newsletter is brought to you by our friends at <a href="https://www.trmlabs.com/careers?utm_source=refactoring">TRM</a>!</em></p><p>TRM models turn petabytes of data into actionable intelligence across the threat landscape: ransomware groups, human trafficking networks, darknet markets, terrorist financing, 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_!mxHK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff390852c-ca89-4045-8be5-1acea20cb9d4_2060x686.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mxHK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff390852c-ca89-4045-8be5-1acea20cb9d4_2060x686.png 424w, https://substackcdn.com/image/fetch/$s_!mxHK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff390852c-ca89-4045-8be5-1acea20cb9d4_2060x686.png 848w, https://substackcdn.com/image/fetch/$s_!mxHK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff390852c-ca89-4045-8be5-1acea20cb9d4_2060x686.png 1272w, https://substackcdn.com/image/fetch/$s_!mxHK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff390852c-ca89-4045-8be5-1acea20cb9d4_2060x686.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mxHK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff390852c-ca89-4045-8be5-1acea20cb9d4_2060x686.png" width="1456" height="485" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f390852c-ca89-4045-8be5-1acea20cb9d4_2060x686.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:485,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:56996,&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/200618039?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff390852c-ca89-4045-8be5-1acea20cb9d4_2060x686.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_!mxHK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff390852c-ca89-4045-8be5-1acea20cb9d4_2060x686.png 424w, https://substackcdn.com/image/fetch/$s_!mxHK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff390852c-ca89-4045-8be5-1acea20cb9d4_2060x686.png 848w, https://substackcdn.com/image/fetch/$s_!mxHK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff390852c-ca89-4045-8be5-1acea20cb9d4_2060x686.png 1272w, https://substackcdn.com/image/fetch/$s_!mxHK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff390852c-ca89-4045-8be5-1acea20cb9d4_2060x686.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>Threats don't wait. And neither does the TRM team.</p><p>Engineers at TRM work at a scale most never touch: real-time graph traversal, petabyte-scale pipelines, and models that power investigations with real-world impact. If you want your code to catch criminals, this is where you build it &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.trmlabs.com/careers?utm_campaign=FY26-Talent-1M_refactoring_Other&amp;utm_me[&#8230;]Y26-Talent-1M&amp;utm_activity=refactoring&amp;utm_activitytype=Other&quot;,&quot;text&quot;:&quot;Check open roles&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.trmlabs.com/careers?utm_campaign=FY26-Talent-1M_refactoring_Other&amp;utm_me[&#8230;]Y26-Talent-1M&amp;utm_activity=refactoring&amp;utm_activitytype=Other"><span>Check open roles</span></a></p><div><hr></div><h2>&#129518; Map and score devex problems</h2><p>Most teams have structured ways to work on <em>customer</em> problems &#8212; which we call &#8220;product&#8221; &#8212; but do not apply the same rigor to developer experience issues.</p><p>Earlier this year I advocated to do a <a href="https://refactoring.fm/p/the-listening-tour">listening tour</a> with your engineers to uncover devex problems. An important part of the tour is not to stop at the <em>uncovering</em> stage: you should map, score, and prioritize issues so you work on the right things.</p><p>Mapping means taking <em>stories &#8212;</em> situations where bad things happened &#8212; group them together into friction points, and map them to steps of your dev process.</p><p>You can reuse the <em>story map format</em> for displaying this, but you don&#8217;t have to necessarily do it that way. You can use a spreadsheet or anything else.</p><p>The outcome might be something that looks like a three-level investigation that includes <strong>steps</strong>, <strong>problems</strong>, and <strong>stories &#128071;</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_!kWYC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8728f2c8-2abc-41af-8b56-642630f31893_3086x998.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kWYC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8728f2c8-2abc-41af-8b56-642630f31893_3086x998.png 424w, https://substackcdn.com/image/fetch/$s_!kWYC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8728f2c8-2abc-41af-8b56-642630f31893_3086x998.png 848w, https://substackcdn.com/image/fetch/$s_!kWYC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8728f2c8-2abc-41af-8b56-642630f31893_3086x998.png 1272w, https://substackcdn.com/image/fetch/$s_!kWYC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8728f2c8-2abc-41af-8b56-642630f31893_3086x998.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kWYC!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8728f2c8-2abc-41af-8b56-642630f31893_3086x998.png" width="1200" height="388.1868131868132" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8728f2c8-2abc-41af-8b56-642630f31893_3086x998.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:471,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:802082,&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/200618039?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8728f2c8-2abc-41af-8b56-642630f31893_3086x998.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kWYC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8728f2c8-2abc-41af-8b56-642630f31893_3086x998.png 424w, https://substackcdn.com/image/fetch/$s_!kWYC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8728f2c8-2abc-41af-8b56-642630f31893_3086x998.png 848w, https://substackcdn.com/image/fetch/$s_!kWYC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8728f2c8-2abc-41af-8b56-642630f31893_3086x998.png 1272w, https://substackcdn.com/image/fetch/$s_!kWYC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8728f2c8-2abc-41af-8b56-642630f31893_3086x998.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>After you collect problems, it&#8217;s time to score them. To do that, the most useful <em>coordinates</em> I have found are <em>reach</em> and <em>impact</em>:</p><ul><li><p><strong>Reach</strong> &#8212; how many engineers are impacted by this</p></li><li><p><strong>Impact</strong> &#8212; how much disruption it causes</p></li></ul><p>If this makes you think of <em>RICE,</em> we are not including:</p><ul><li><p><em>Confidence</em> &#8212; because it&#8217;s often tricky to figure out and I haven&#8217;t found it <em>that</em> useful in real life, nor</p></li><li><p><em>Effort</em> &#8212; because we are only talking about problems here, not solutions.</p></li></ul><p>Also, I am a fan of using simple scores, like low-medium-high, or 1-5.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Bd_9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c78e636-bd76-4381-8130-6bc43851d8ac_1968x1140.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Bd_9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c78e636-bd76-4381-8130-6bc43851d8ac_1968x1140.png 424w, https://substackcdn.com/image/fetch/$s_!Bd_9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c78e636-bd76-4381-8130-6bc43851d8ac_1968x1140.png 848w, https://substackcdn.com/image/fetch/$s_!Bd_9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c78e636-bd76-4381-8130-6bc43851d8ac_1968x1140.png 1272w, https://substackcdn.com/image/fetch/$s_!Bd_9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c78e636-bd76-4381-8130-6bc43851d8ac_1968x1140.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Bd_9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c78e636-bd76-4381-8130-6bc43851d8ac_1968x1140.png" width="1456" height="843" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8c78e636-bd76-4381-8130-6bc43851d8ac_1968x1140.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:843,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:897841,&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/200618039?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c78e636-bd76-4381-8130-6bc43851d8ac_1968x1140.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_!Bd_9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c78e636-bd76-4381-8130-6bc43851d8ac_1968x1140.png 424w, https://substackcdn.com/image/fetch/$s_!Bd_9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c78e636-bd76-4381-8130-6bc43851d8ac_1968x1140.png 848w, https://substackcdn.com/image/fetch/$s_!Bd_9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c78e636-bd76-4381-8130-6bc43851d8ac_1968x1140.png 1272w, https://substackcdn.com/image/fetch/$s_!Bd_9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c78e636-bd76-4381-8130-6bc43851d8ac_1968x1140.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>After that, you should focus on the <strong>one true bottleneck&#8482;</strong> &#8212; I wrote more about that in the full article &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:185828322,&quot;url&quot;:&quot;https://refactoring.fm/p/the-listening-tour&quot;,&quot;publication_id&quot;:64099,&quot;embedding_publication_id&quot;:null,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;The Listening Tour &#128222;&quot;,&quot;truncated_body_text&quot;:&quot;For the last month I have been running a program for CTOs and VPs of small to mid-size companies to help them make their engineering teams ship faster.&quot;,&quot;date&quot;:&quot;2026-01-28T08:00:22.619Z&quot;,&quot;like_count&quot;:36,&quot;comment_count&quot;:3,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;profile_set_up_at&quot;:&quot;2021-06-04T06:23:53.965Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-11-15T17:35:42.775Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:247311,&quot;user_id&quot;:6835984,&quot;publication_id&quot;:64099,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:64099,&quot;name&quot;:&quot;Refactoring&quot;,&quot;subdomain&quot;:&quot;refactoring&quot;,&quot;custom_domain&quot;:&quot;refactoring.fm&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Learn how to make your engineering team ship faster and better. Read weekly by 170,000+ engineers and managers&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;author_id&quot;:6835984,&quot;primary_user_id&quot;:6835984,&quot;theme_var_background_pop&quot;:&quot;#2096ff&quot;,&quot;created_at&quot;:&quot;2020-07-06T14:20:40.525Z&quot;,&quot;email_from_name&quot;:&quot;&#127744; Refactoring&quot;,&quot;copyright&quot;:&quot;Refactoring ETS&quot;,&quot;founding_plan_name&quot;:&quot;&#127942; Community plan&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79ab7b78-71cf-42d2-a607-3aa18960cb64_2400x572.png&quot;}}],&quot;twitter_screen_name&quot;:&quot;lucaronin&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000,&quot;status&quot;:{&quot;bestsellerTier&quot;:1000,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:1000},&quot;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/the-listening-tour?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!CR5A!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png" loading="lazy"><span class="embedded-post-publication-name">Refactoring</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">The Listening Tour &#128222;</div></div><div class="embedded-post-body">For the last month I have been running a program for CTOs and VPs of small to mid-size companies to help them make their engineering teams ship faster&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">7 months ago &#183; 36 likes &#183; 3 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>&#129692; Career direction starts with what you want</h2><p>Career planning starts getting useful when you stop asking only what the ladder says and start asking what you actually want.</p><p>Many engineers sleepwalk through their careers by following the next obvious step: promotion, bigger scope, manager track, staff track, better company, higher comp. Those may be good goals, but they are not a substitute for knowing what kind of work makes you thrive.</p><p>Last month I interviewed Jean and Cate, two professional career coaches, and they told me they are a fan of asking two simple questions:</p><ul><li><p><strong>What was a peak moment in your career?</strong></p></li><li><p><strong>What does it look like for you to thrive?</strong></p></li></ul><p>They asked them to me and I had to think for a minute or so. These questions are designed to pull attention away from abstract &#8220;<em>prestige</em>&#8220; and toward real-world evidence. When did work feel energizing? What kind of contribution mattered? What environment made you stronger?</p><p>Also, the answer does not need to become a ten-year plan. In uncertain times, an horizon of a few months may be more useful: try something, observe how it feels, adjust, repeat.</p><p>Career direction is built every day from good reflection and experiments.</p><p>You can find the full interview with Jean and Cate below &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;296ceb2b-9903-4a55-910b-f5286475c5d5&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><p>Also on <a href="https://open.spotify.com/show/7Luds9dmzZDoDC8Q7EMbSw">Spotify</a> and <a href="https://www.youtube.com/watch?v=tb5wdmTJeuk">Youtube</a></p><div><hr></div><h1>&#128218; Weekly Readings</h1><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://davidoks.blog/p/why-japanese-companies-do-so-many?hide_intro_popup=true">Why Japanese Companies Do So Many Different Things</a></h4><h5>20 min &#8226; by David Oks</h5><p>This is such an awesome article that goes deep into explaining how (and why) Japanese companies are wildly different from US (and Western in general) ones. So much food for thought from looking at things like lifetime employment, horizontal coordination, diversification, and more. A must read.</p><div><hr></div><h4>&#129352; <a href="https://randsinrepose.com/archives/the-slide/">The Slide</a></h4><h5>5 min &#8226; by Rands</h5><p>Putting this appropriately here after I interviewed Rands at LDX3 just last week, and asked him about <em>stories</em> and this article in particular. When someone keeps ignoring your feedback, don&#8217;t lecture harder &#8212; <em>slide</em> up next to them with a personal story about the time you struggled with the same thing.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zaoZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44769fc0-a2be-4157-9b09-afbe3a1a5ed1_2531x1540.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zaoZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44769fc0-a2be-4157-9b09-afbe3a1a5ed1_2531x1540.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zaoZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44769fc0-a2be-4157-9b09-afbe3a1a5ed1_2531x1540.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zaoZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44769fc0-a2be-4157-9b09-afbe3a1a5ed1_2531x1540.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zaoZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44769fc0-a2be-4157-9b09-afbe3a1a5ed1_2531x1540.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zaoZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44769fc0-a2be-4157-9b09-afbe3a1a5ed1_2531x1540.jpeg" width="1456" height="886" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/44769fc0-a2be-4157-9b09-afbe3a1a5ed1_2531x1540.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:886,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2830253,&quot;alt&quot;:&quot;&quot;,&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://hybridhacker.email/i/200590109?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44769fc0-a2be-4157-9b09-afbe3a1a5ed1_2531x1540.jpeg&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_!zaoZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44769fc0-a2be-4157-9b09-afbe3a1a5ed1_2531x1540.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zaoZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44769fc0-a2be-4157-9b09-afbe3a1a5ed1_2531x1540.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zaoZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44769fc0-a2be-4157-9b09-afbe3a1a5ed1_2531x1540.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zaoZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44769fc0-a2be-4157-9b09-afbe3a1a5ed1_2531x1540.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><div><hr></div><h4>&#129353; <a href="https://cate.blog/2026/06/02/making-a-new-plan/">Making a New Plan</a></h4><h5>2 min &#8226; by Cate Huston</h5><p>An ever-underrated leadership skill is admitting you&#8217;re wrong and making a new plan when new information is available. Also, it&#8217;s easy to judge others for not doing that, until you realize we all do it from time to time. Short and sharp, as always in Cate&#8217;s style.</p><div><hr></div><p>And that&#8217;s it for today! If you are finding this newsletter valuable, <strong>subscribe to the full version</strong>!</p><p>1700+ engineers and managers have joined already, and they receive our flagship weekly long-form articles about <strong>how to ship faster</strong> and <strong>work better together</strong>! Learn more about the <a href="http://refactoring.fm/about">benefits of the paid plan here</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Make your team ship faster!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p>See you next week!<br>Luca</p>]]></content:encoded></item><item><title><![CDATA[AI leverage, bottom line up front, and great talks 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #210]]></description><link>https://refactoring.fm/p/ai-leverage-bottom-line-up-front</link><guid isPermaLink="false">https://refactoring.fm/p/ai-leverage-bottom-line-up-front</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 01 Jun 2026 07:02:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DUMr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6c8fd1-332c-4b34-838e-354f252eac9b_8042x1737.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> <em>&#8212; ideas and readings to start the week on the right foot.</em></p><div><hr></div><blockquote><h2>&#128203; <a href="https://getunblocked.com/?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=contextengine">Unblocked is the context layer for modern teams</a></h2><p><em>This newsletter is brought to you by our friends at <a href="https://getunblocked.com/?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=contextengine">Unblocked</a>!</em></p><p>Agents can generate code, but getting it right for your system, team conventions, and past decisions is the hard part. MCPs give agents access to information but not understanding &#8211; so you end up wasting time and tokens in correction loops.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DUMr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6c8fd1-332c-4b34-838e-354f252eac9b_8042x1737.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DUMr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6c8fd1-332c-4b34-838e-354f252eac9b_8042x1737.png 424w, https://substackcdn.com/image/fetch/$s_!DUMr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6c8fd1-332c-4b34-838e-354f252eac9b_8042x1737.png 848w, https://substackcdn.com/image/fetch/$s_!DUMr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6c8fd1-332c-4b34-838e-354f252eac9b_8042x1737.png 1272w, https://substackcdn.com/image/fetch/$s_!DUMr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6c8fd1-332c-4b34-838e-354f252eac9b_8042x1737.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DUMr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6c8fd1-332c-4b34-838e-354f252eac9b_8042x1737.png" width="302" height="65.12912087912088" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bd6c8fd1-332c-4b34-838e-354f252eac9b_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;:302,&quot;bytes&quot;:174076,&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/199971316?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6c8fd1-332c-4b34-838e-354f252eac9b_8042x1737.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_!DUMr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6c8fd1-332c-4b34-838e-354f252eac9b_8042x1737.png 424w, https://substackcdn.com/image/fetch/$s_!DUMr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6c8fd1-332c-4b34-838e-354f252eac9b_8042x1737.png 848w, https://substackcdn.com/image/fetch/$s_!DUMr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6c8fd1-332c-4b34-838e-354f252eac9b_8042x1737.png 1272w, https://substackcdn.com/image/fetch/$s_!DUMr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6c8fd1-332c-4b34-838e-354f252eac9b_8042x1737.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>For this reason, the teams pulling ahead <strong>use a context layer</strong> to give agents exactly what they need.</p><p>Unblocked is the context layer that turns <strong>code, docs, tickets, and conversations</strong> into actionable context, so engineers move faster and agents stay on track &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getunblocked.com/?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=contextengine&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/?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=contextengine"><span>Learn more about Unblocked</span></a></p></blockquote><div><hr></div><h2>1) &#128200; Measure AI effectiveness by <em>leverage</em></h2><p>There are a lot of *bad* ways to measure how well your team uses AI, including counting lines of code, tokens spent, and more!</p><p>To me, we should measure <em>effectiveness</em>, which is a function of leverage: <strong>how much useful output you get per unit of human input</strong>.</p><p>This is different from measuring <strong>AI usage</strong>. E.g. a team can maximize AI-generated code by writing incredibly detailed specs that are basically pseudo-code. The AI may write the final syntax, but the human still did most of the hard work.</p><p>That is not real leverage!</p><p>So a better question is: how much context does a human need to provide before the AI can do the job well? Some of the prompt will always be task-specific. If you ask for a new button, the AI needs to know where the button goes and what it should do. But a lot of the prompt should not have to be repeated every time: design rules, product conventions, architecture patterns, testing style, existing components, release constraints.</p><p>So you can think at a scale that goes like this:</p><ol><li><p>&#127964;&#65039; <strong>Negative leverage</strong> &#8212; people spend more time fighting the AI than doing the work themselves.</p></li><li><p>&#127793; <strong>Low leverage</strong> &#8212; the AI writes code, but only after humans write exhaustive instructions.</p></li><li><p>&#129716; <strong>High leverage</strong> &#8212; the AI can reuse enough context from the system that prompts become short and results stay good.</p></li><li><p><strong>&#127795; Maximum leverage</strong> &#8212; the AI one-shots meaningful work from tiny prompts because the factory already knows how good work should be done.</p></li></ol><p>I wrote more about this in the recent article series about the new software factory &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:192418439,&quot;url&quot;:&quot;https://refactoring.fm/p/growing-your-sofware-factory&quot;,&quot;publication_id&quot;:64099,&quot;embedding_publication_id&quot;:null,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;How to Grow your Software Factory&quot;,&quot;truncated_body_text&quot;:&quot;Last month I published The Era of the Software Factory, where I commented on the latest State of Software Delivery together with Rob Zuber, a good friend and CTO of CircleCI.&quot;,&quot;date&quot;:&quot;2026-04-01T07:02:09.615Z&quot;,&quot;like_count&quot;:34,&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;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/growing-your-sofware-factory?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!CR5A!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png" loading="lazy"><span class="embedded-post-publication-name">Refactoring</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">How to Grow your Software Factory</div></div><div class="embedded-post-body">Last month I published The Era of the Software Factory, where I commented on the latest State of Software Delivery together with Rob Zuber, a good friend and CTO of CircleCI&#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; 34 likes &#183; 2 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>2) &#11014;&#65039; Bottom line up front</h2><p>One of the most popular articles we published on Refactoring last year is from Anna Shipman, CTO at Kooth and one of my favorite authors.</p><p>She described the <em>translation layer</em> that is needed to make engineering understood by executives, and the article is packed with great examples and mental models.</p><p>One of the pieces of advice that stuck with me is to always <em>lead</em> your communication (spoken or written) with an <strong>executive summary</strong> that includes the most important information: what action you are looking for.</p><p>Or, as Anna calls it: <strong>bottom line up front</strong>.</p><p>An exec summary tells the reader in a few short sentences what this document is going to cover. If this is a presentation rather than a document, include an executive summary slide. If this is a conversation, set it up right by explaining first what the purpose of the conversation is. If you are asking for a decision, make sure you&#8217;ve included what the decision is.</p><p>Here are some example exec summaries.</p><p>For a document:</p><blockquote><p><em>This proposal recommends consolidating our infrastructure onto a single cloud provider to reduce operating costs by 20% over three years, improve reliability, and accelerate feature delivery. The alternative is to retain our split between AWS and Azure. The work will reduce capacity of the platform team by 50% for six months, delaying completion of the work on pipelines until Q4 2026.</em></p><p><em>We request an additional budget of &#163;50k for the engineering team to have access to an AI coding assistance tool. We have demonstrated in our trial that use of Cursor increases throughput of work by 25% meaning over a year we would deliver extra features equivalent to the salary of four additional engineers, therefore this would pay for itself by end Q1 next year.</em></p></blockquote><p>In a conversation you might say:</p><blockquote><p><em>&#8220;I want to propose we start upgrading our data handling now rather than in Q3 as planned because our latest planning session raised a flag that we may not hit the deadline. We&#8217;d have to pause the work on the new dashboards to do that.&#8221;</em></p><p><em>&#8220;There&#8217;s a strong business case for investing more in developer experience in next year&#8217;s budget. I can show you the ROI calculation we&#8217;ve done, but I would like your take before we move forward with the budget preparation.&#8221;</em></p></blockquote><p>You can find the full article by Anna here:</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:178065441,&quot;url&quot;:&quot;https://refactoring.fm/p/the-engineer-executive-translation&quot;,&quot;publication_id&quot;:64099,&quot;embedding_publication_id&quot;:null,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;The Engineer &#8594; Executive Translation Layer &#128256;&quot;,&quot;truncated_body_text&quot;:&quot;Hey, Luca here! Today we are hosting a fantastic new article by Anna Shipman, CTO at Kooth.&quot;,&quot;date&quot;:&quot;2025-11-12T08:01:00.523Z&quot;,&quot;like_count&quot;:29,&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;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null}},{&quot;id&quot;:411731536,&quot;name&quot;:&quot;Anna Shipman&quot;,&quot;handle&quot;:&quot;annashipman&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c41f7b58-210b-4e51-9ee9-eed131f347c5_3259x3259.jpeg&quot;,&quot;bio&quot;:&quot;Strategic technology leader. Previous: CTO at Kooth, Technical Director at the Financial Times, Technical Architect at GDS. Love Vim, cryptic crosswords and pool. I speak at conferences, and write about strategy and tech leadership on my blog, JFDI.&quot;,&quot;profile_set_up_at&quot;:&quot;2026-02-25T10:14:45.167Z&quot;,&quot;reader_installed_at&quot;:&quot;2026-02-25T10:23:36.696Z&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:null,&quot;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/the-engineer-executive-translation?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!CR5A!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png" loading="lazy"><span class="embedded-post-publication-name">Refactoring</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">The Engineer &#8594; Executive Translation Layer &#128256;</div></div><div class="embedded-post-body">Hey, Luca here! Today we are hosting a fantastic new article by Anna Shipman, CTO at Kooth&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">9 months ago &#183; 29 likes &#183; Luca Rossi and Anna Shipman</div></a></div><div><hr></div><h2>3) &#128227; What makes for a great talk</h2><p>By the time you read this newsletter I&#8217;ll probably be in London to attend LDX3. This year I will interview the one and only Rands on stage, for a live episode of the Refactoring podcast.</p><p>So, while preparing for this, I thought about my <a href="https://refactoring.fm/p/diversity-ai-and-junior-engineers">interview with Meri Williams</a> last year. Meri is the long-time host of LeadDev conferences, and every year they have to run through hundreds of talk submissions to select only a handful of truly great ones.</p><p>I asked them what makes for an amazing talk, and they said it&#8217;s three things:</p><ol><li><p>&#128214; <strong>Personal story</strong> &#8212; or a case study. Anyway, a<strong> </strong>real experience that grounds the content.</p></li><li><p>&#129504; <strong>Framework</strong> &#8212; the author <em>abstracted</em> their experience into a theory that can be applied broadly.</p></li><li><p>&#9889; <strong>Practical application</strong> &#8212; the story + framework combination has clear takeaways that the audience can implement.</p></li></ol><p>You can find the full interview with Meri here:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;df7b727d-b44d-47d4-bdde-8914acacd433&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;Diversity, AI, and Junior Engineers &#127912; &#8212; with Meri Williams&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-08-15T06:00:24.746Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/949ed0e0-12c1-4b80-9c7b-71d918d0ea56_2560x1440.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/diversity-ai-and-junior-engineers&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;409ed378-d20e-4a9d-9a85-4a4802e539ad&quot;,&quot;id&quot;:170861146,&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><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[Reviewable ADRs, AI by default, and weekly readings! 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #209]]></description><link>https://refactoring.fm/p/reviewable-adrs-ai-by-default-and</link><guid isPermaLink="false">https://refactoring.fm/p/reviewable-adrs-ai-by-default-and</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 25 May 2026 08:09:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/msEjXJhL0HM" 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>&#128256; Open-source workflow orchestration</h2><p><em>This newsletter is brought to you by our friends at <a href="https://kestra.io/">Kestra</a>!</em></p><p>Last week I published <a href="https://refactoring.fm/p/how-to-orchestrate-ai-workflows">this primer about workflow orchestration</a>, together with the team at Kestra, which builds a great open source platform to <em>scale </em>AI agents into more deterministic and observable workflows.</p><p>I have been playing with it to replace some of my OpenClaw <s>chaos</s> cron jobs, and I am pretty happy with the result so far! Will probably write more about it in the future.</p><p>You can learn more about Kestra below &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://kestra.io/&quot;,&quot;text&quot;:&quot;Learn more about Kestra&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://kestra.io/"><span>Learn more about Kestra</span></a></p><div><hr></div><h2>&#128161; ADRs are the reviewable artifacts of AI coding</h2><p>Last month I wrote that the most recent and most valuable addition to my AI coding workflow have been <a href="https://adr.github.io/">ADRs</a>.</p><p>Since then, I realized they are especially valuable because they help turn design judgment into <strong>reviewable artifacts</strong>. What does it mean?!</p><p>I don&#8217;t want to inspect every line of code an agent writes, but I can definitely review a short decision record that explains the chosen approach, alternatives, consequences, and what would trigger reconsideration. This gives me a way better control point than reviewing code details in isolation.</p><p>ADRs also improve future agent work. Before making a structural choice, the agent can read past decisions, reuse the system&#8217;s current principles, and avoid debates that were already settled.</p><p>I especially like that ADRs are immutable. When a decision changes, the agent creates a new record that supersedes the old one, instead of rewriting history.</p><p>As of today, Tolaria has <a href="https://github.com/refactoringhq/tolaria/tree/main/docs/adr">120+ ADRs</a>. Are they perfect? Not at all &#8212; but they don&#8217;t have to be. They are good enough to 1) make me understand key design choices, and 2) steer agent behavior to make it compliant with what exists.</p><p>You can find the full article below:</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:193368488,&quot;url&quot;:&quot;https://refactoring.fm/p/updates-to-my-ai-coding-workflow&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;Updates to my AI Coding Workflow&quot;,&quot;truncated_body_text&quot;:&quot;About a month ago I wrote an article about my AI coding workflow, and it instantly became the most popular Refactoring article of all time.&quot;,&quot;date&quot;:&quot;2026-04-08T07:12:58.916Z&quot;,&quot;like_count&quot;:55,&quot;comment_count&quot;:6,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;profile_set_up_at&quot;:&quot;2021-06-04T06:23:53.965Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-11-15T17:35:42.775Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:247311,&quot;user_id&quot;:6835984,&quot;publication_id&quot;:64099,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:64099,&quot;name&quot;:&quot;Refactoring&quot;,&quot;subdomain&quot;:&quot;refactoring&quot;,&quot;custom_domain&quot;:&quot;refactoring.fm&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Learn how to make your engineering team ship faster and better. Read weekly by 170,000+ engineers and managers&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;author_id&quot;:6835984,&quot;primary_user_id&quot;:6835984,&quot;theme_var_background_pop&quot;:&quot;#2096ff&quot;,&quot;created_at&quot;:&quot;2020-07-06T14:20:40.525Z&quot;,&quot;email_from_name&quot;:&quot;&#127744; Refactoring&quot;,&quot;copyright&quot;:&quot;Refactoring ETS&quot;,&quot;founding_plan_name&quot;:&quot;&#127942; Community plan&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79ab7b78-71cf-42d2-a607-3aa18960cb64_2400x572.png&quot;}}],&quot;twitter_screen_name&quot;:&quot;lucaronin&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000,&quot;status&quot;:{&quot;bestsellerTier&quot;:1000,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:1000},&quot;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/updates-to-my-ai-coding-workflow?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">Updates to my AI Coding Workflow</div></div><div class="embedded-post-body">About a month ago I wrote an article about my AI coding workflow, and it instantly became the most popular Refactoring article of all time&#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; 55 likes &#183; 6 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>&#127897;&#65039; Use AI by default to learn its failure modes</h2><p>Speaking of AI coding, last month <a href="https://refactoring.fm/p/ai-coding-meets-code-health-with">I interviewed Stuart Caborn</a>, Distinguished Engineer at loveholidays, and one of the few tech leaders I know that is really doing it <em>at scale</em>, documenting the process.</p><p>One of the things he told me is that teams do not learn how AI works by <strong>waiting for perfect use cases</strong>.</p><p>They learn by using it <em>by default</em>, even in moments where typing the code directly would be faster. This sounds inefficient locally, but the point is building the feedback loop, rather than optimizing the single task.</p><p>Stuart explains that every failed AI attempt teaches the team something: which instructions are missing, which docs are unclear, which conventions are invisible, where the agent needs guardrails, and so on.</p><p>Stuart cares about making failures <em>public</em>, instead of private, and for this, he creates pressure for the failures to surface. The team runs showcases, shares patterns, and even forces engineers to go through AI before asking for human support &#128071;</p><blockquote><p><em><strong>&#8220;At one of the platform showcases, the core engineering team said: we&#8217;re not going to support you if you have a problem with your Terraform, if you haven&#8217;t asked Claude to do it first. That was bold &#8212; but the reasoning was: we need the feedback now.&#8221;</strong></em></p></blockquote><p>You can find the full interview here:</p><div id="youtube2-msEjXJhL0HM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;msEjXJhL0HM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/msEjXJhL0HM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><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://martinfowler.com/articles/sensors-for-coding-agents.html">Sensors for Coding Agents</a></h4><h5>15 min &#8226; by Birgitta B&#246;ckeler</h5><p>Great primer on using<em> sensors</em> &#8212; like ESLint rules and static analysis &#8212; as feedback loops for coding agents. The idea is that agents need guardrails to maintain code quality, and these automated checks act as their &#8220;senses&#8221; on the path to production.</p><div><hr></div><h4>&#129352; <a href="https://www.williamangel.net/blog/2026/05/17/offline-llm-energy-use.html">Apple Silicon Costs more than OpenRouter</a></h4><h5>5 min &#8226; by William Angel</h5><p>Yet another reminder that, for 99% of us, running LLMs locally makes absolutely zero sense. This time backed by numbers.</p><div><hr></div><h4>&#129353; <a href="https://simonwillison.net/2026/May/14/not-so-locked-in/#atom-everything">Not So Locked In</a></h4><h5>2 min &#8226; by Simon Willison</h5><p>Programming languages <em>used to be</em> lock-in &#8212; they&#8217;re increasingly not. LLMs are making it feasible to port entire codebases across languages and frameworks, which changes how you think about tech choices, risks you can take, and more.</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[Questions to rate your team, business impact on unhealthy code, and weekly readings 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #208]]></description><link>https://refactoring.fm/p/questions-to-rate-your-team-business</link><guid isPermaLink="false">https://refactoring.fm/p/questions-to-rate-your-team-business</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 18 May 2026 07:01:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!oljK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d76c1e-4942-4206-b9fd-524ca36f9947_1246x590.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>Every week I also <a href="https://refactoring.fm/s/essays?sort=top">write an article</a> about how to ship good software fast, and <a href="https://refactoring.fm/podcast">interview a world-class tech leader</a> on the podcast.</em></p><p><em>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><h2>&#128203; <a href="https://getunblocked.com/?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=contextengine">Unblocked is the context layer for modern teams</a></h2><p><em>This newsletter is brought to you by <a href="https://getunblocked.com/?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=contextengine">Unblocked</a>!</em></p><p>Agents can generate code, but getting it right for your system, team conventions, and past decisions is the hard part. MCPs give agents access to information but not understanding &#8211; so you end up wasting time and tokens in correction loops.</p><p>For this reason, the teams pulling ahead <strong>use a context layer</strong> to give agents exactly what they need.</p><p>Unblocked is the context layer that turns <strong>code, docs, tickets, and conversations</strong> into actionable context, so engineers move faster and agents stay on track &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getunblocked.com/?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=contextengine&quot;,&quot;text&quot;:&quot;Book a demo today&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getunblocked.com/?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=contextengine"><span>Book a demo today</span></a></p><div><hr></div><h1>&#128269; Rate your team on the pyramid of engineering</h1><p>A couple of months ago I argued <a href="https://refactoring.fm/p/the-new-pyramid-of-software-engineering">there is a new </a><em><a href="https://refactoring.fm/p/the-new-pyramid-of-software-engineering">pyramid</a></em><a href="https://refactoring.fm/p/the-new-pyramid-of-software-engineering"> in software engineering</a>, made up of the areas you should take care of to get your team to their best potential.</p><p>These areas are <strong>Developer Experience</strong>, <strong>AI</strong>, and <strong>Product Engineering</strong>, and need to be <em>nurtured</em> exactly in this order.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oljK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d76c1e-4942-4206-b9fd-524ca36f9947_1246x590.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oljK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d76c1e-4942-4206-b9fd-524ca36f9947_1246x590.png 424w, https://substackcdn.com/image/fetch/$s_!oljK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d76c1e-4942-4206-b9fd-524ca36f9947_1246x590.png 848w, https://substackcdn.com/image/fetch/$s_!oljK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d76c1e-4942-4206-b9fd-524ca36f9947_1246x590.png 1272w, https://substackcdn.com/image/fetch/$s_!oljK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d76c1e-4942-4206-b9fd-524ca36f9947_1246x590.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oljK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d76c1e-4942-4206-b9fd-524ca36f9947_1246x590.png" width="1246" height="590" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c0d76c1e-4942-4206-b9fd-524ca36f9947_1246x590.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:590,&quot;width&quot;:1246,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:146098,&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/197830947?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d76c1e-4942-4206-b9fd-524ca36f9947_1246x590.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_!oljK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d76c1e-4942-4206-b9fd-524ca36f9947_1246x590.png 424w, https://substackcdn.com/image/fetch/$s_!oljK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d76c1e-4942-4206-b9fd-524ca36f9947_1246x590.png 848w, https://substackcdn.com/image/fetch/$s_!oljK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d76c1e-4942-4206-b9fd-524ca36f9947_1246x590.png 1272w, https://substackcdn.com/image/fetch/$s_!oljK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d76c1e-4942-4206-b9fd-524ca36f9947_1246x590.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>To understand how you are doing about each of these, here is a short self-assessment you can run on yourself. Rate how much you agree, from 1 to 5:</p><h4>1) Developer Experience</h4><ul><li><p>1.1 &#8212; <em>It is easy to do work as a developer on my team</em></p></li><li><p>1.2 &#8212; <em>Engineers on my team get enough focus time</em></p></li><li><p>1.3 &#8212; <em>My team ships fast and often</em></p></li><li><p>1.4 &#8212; <em>I have a good strategy to improve the developer experience of my team</em></p></li></ul><h4>2) Artificial Intelligence</h4><ul><li><p>2.1 &#8212; <em>Engineers on my team make good use of AI</em></p></li><li><p>2.2 &#8212; <em>We have a shared understanding of how to use AI as a team</em></p></li><li><p>2.3 &#8212; <em>I have a good strategy to improve the impact of AI on my team</em></p></li></ul><h4>3) Product Engineering</h4><ul><li><p>3.1 &#8212; <em>I am happy with the level of autonomy the engineers on my team work with</em></p></li><li><p>3.2 &#8212; <em>Engineers on my team know what our customers&#8217; problems are</em></p></li><li><p>3.3 &#8212; <em>Engineers on my team know if a feature is successful or not</em></p></li><li><p>3.4 &#8212; <em>I have a good strategy to make the engineers on my team more autonomous over time</em></p></li></ul><p>You can find the full article below: </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;:null,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;The 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;:50,&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;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&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"><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">5 months ago &#183; 50 likes &#183; Luca Rossi</div></a></div><div><hr></div><h1>&#127897;&#65039; The business impact of code quality</h1><p>One of the interviews I keep coming back to is <a href="https://refactoring.fm/p/technical-debt-as-crime-scene-with">the one I did last year with Adam Tornhill</a>.</p><p>Adam is the founder of CodeScene and one of the sharpest thinkers on software quality: he combines behavioral data analysis with code metrics to identify the parts of a codebase that actually hurt you.</p><p>The conversation centered on a question most engineering leaders struggle with: <em>how do you make the business case for refactoring?</em></p><p>Adam&#8217;s team tackled it head-on with the <a href="https://codescene.com/hubfs/web_docs/Business-impact-of-code-quality.pdf">Code Red</a> study &#8212; a large-scale analysis of the correlation between code health and real development performance.</p><p>Their findings confirmed what many engineers know by heart:</p><ul><li><p>&#9889; <strong>Development Speed</strong> &#8212; healthy code enables teams to develop features more than <em>2x as fast</em> as unhealthy code.</p></li><li><p>&#128201; <strong>Predictability</strong> &#8212; unhealthy code creates <em>massive</em> <em>variance</em> in task completion times, making estimation extremely hard.</p></li><li><p>&#128184; <strong>Hidden Costs</strong> &#8212; some tasks in unhealthy code can take up to <em>10 times longer</em> than expected.</p></li></ul><blockquote><p><em>&#8220;Doing a task in unhealthy code can actually take up to an order of magnitude longer &#8212; 9 times, 10 times longer. And that translates into a bunch of undesirable side effects for the business.&#8221;</em></p></blockquote><p>One finding that stuck with me is also that <em>who makes the change</em> matters enormously. Developers unfamiliar with the codebase take twice as long to work in unhealthy code. This is a hidden onboarding cost that nobody ever budgets for, but that compounds every time a team grows or rotates.</p><p>Here is the full interview with Adam &#128071;</p><div id="youtube2-PhWtlhfrsWI" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;PhWtlhfrsWI&quot;,&quot;startTime&quot;:&quot;5s&quot;,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/PhWtlhfrsWI?start=5s&amp;rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>You can also find it on <a href="https://open.spotify.com/episode/43w7PeVAdGpSTqnRQz7EeV">Spotify</a> and <a href="https://refactoring.fm/p/technical-debt-as-crime-scene-with">Substack</a></p><div><hr></div><h1>&#128218; Weekly Readings</h1><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://www.seangoedecke.com/software-engineering-may-no-longer-be-a-lifetime-career/">Software Engineering May No Longer Be a Lifetime Career</a></h4><h5>6 min &#8226; by Sean Goedecke</h5><p>Using AI to code means you don&#8217;t learn as much about coding itself, but refusing to use it puts you at a disadvantage <em>today</em>. So, is software engineering becoming more like professional sports? That is, a career with a finite window rather than a lifetime of compounding skill accumulation.</p><div><hr></div><h4>&#129352; <a href="https://about.gitlab.com/blog/gitlab-act-2/">GitLab Act 2</a></h4><h5>19 min &#8226; by Bill Staples</h5><p>GitLab&#8217;s CEO lays out their vision and plan for a major restructuring of the company around agentic AI and the future of software delivery. Interesting both as a product vision and as a case study in leading a public company through a platform shift.</p><div><hr></div><h4>&#129353; <a href="https://x.com/garrytan/status/2042925773300908103/">Thin Harness, Fat Skills</a></h4><h5>6 min &#8226; by Garry Tan</h5><p>By now we know that AI agents become far more productive by using purpose-built skills. It&#8217;s still unclear how all of this scales, but Garry&#8217;s mental model about growing <em>skills</em> instead of the general harness is solid, and I agree with him.</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[Blank pages, decisions, and weekly readings! 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #207]]></description><link>https://refactoring.fm/p/blank-pages-decisions-and-weekly</link><guid isPermaLink="false">https://refactoring.fm/p/blank-pages-decisions-and-weekly</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 11 May 2026 07:01:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ymRD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf754e5d-f2ee-4225-b0bf-c97c2a6218ad_2600x1300.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, Luca here, welcome to a weekly edition of the</em>&#128161;<em> <strong>Monday Ideas</strong> </em>&#128161;<em> from Refactoring! To access all our articles, library, and community, subscribe to the <a href="https://refactoring.fm/about">full version</a></em></p><div><hr></div><blockquote><h2>Become an investor in AI infra startups! &#10024;</h2><p><em>Today&#8217;s sponsor is <a href="https://www.av.vc/ai-tools-syndicate?utm_medium=email&amp;utm_source=tofu&amp;utm_content=partner-follow-up&amp;utm_campaign=RefactoringMayASend#easyvest">Alumni Ventures</a>!</em></p><p>If you ever thought about doing some angel investing in AI products you like, you can do so via our friends at Alumni Ventures, that give you <a href="https://d5w9-p04.na1.hs-sales-engage.com/Ctc/L3+23284/d5W9-p04/JlY3pr4cW95jsWP6lZ3lCW4fXfmr8VCyLDN5wjD5YHtbdmW39fMnp6fm55QW1vkDkG5jTCMGMgHSJFFxb7cVMPJmS5pgTLPN304H72Mywh8N53XDCcgy-J-VBmqD63MbKrvW6kBQj12n3v_sW7CT43d5s1thWW2RKLTd5qqWrsW7bVZZw8Ch7F8W43X0Nd2Tvzc9W8QKLPX2jQZKvW7q_ZHB95gD52W9hb7w-5xH4hJW5-stdH7kvW1dW7XgGpy5Mz_bfW55bGXx2cMjLcW7jpTNC7nLHVZW3J0y2c7_YvdsW4g5Gn_67_s-sW7SqkRw3xMfQBW7bNVM_7bfbYpW6ThQ051M1lTgW6rn-G865jT2XW4cXtks6zcm8tW3qXHRp1q7XCgW8ryst55knr1Mf8cCqkF04">access to high-growth startup opportunities</a>, co-invested alongside top VC firms like Andreessen Horowitz (a16z), Bessemer, &amp; YCombinator.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ymRD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf754e5d-f2ee-4225-b0bf-c97c2a6218ad_2600x1300.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ymRD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf754e5d-f2ee-4225-b0bf-c97c2a6218ad_2600x1300.png 424w, https://substackcdn.com/image/fetch/$s_!ymRD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf754e5d-f2ee-4225-b0bf-c97c2a6218ad_2600x1300.png 848w, https://substackcdn.com/image/fetch/$s_!ymRD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf754e5d-f2ee-4225-b0bf-c97c2a6218ad_2600x1300.png 1272w, https://substackcdn.com/image/fetch/$s_!ymRD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf754e5d-f2ee-4225-b0bf-c97c2a6218ad_2600x1300.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ymRD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf754e5d-f2ee-4225-b0bf-c97c2a6218ad_2600x1300.png" width="684" height="342" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df754e5d-f2ee-4225-b0bf-c97c2a6218ad_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;:684,&quot;bytes&quot;:140499,&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/196796659?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf754e5d-f2ee-4225-b0bf-c97c2a6218ad_2600x1300.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_!ymRD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf754e5d-f2ee-4225-b0bf-c97c2a6218ad_2600x1300.png 424w, https://substackcdn.com/image/fetch/$s_!ymRD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf754e5d-f2ee-4225-b0bf-c97c2a6218ad_2600x1300.png 848w, https://substackcdn.com/image/fetch/$s_!ymRD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf754e5d-f2ee-4225-b0bf-c97c2a6218ad_2600x1300.png 1272w, https://substackcdn.com/image/fetch/$s_!ymRD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf754e5d-f2ee-4225-b0bf-c97c2a6218ad_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>You can signup for free and get:</p><ul><li><p>A curated deal flow of high-potential AI infrastructure startups</p></li><li><p>Deals in which AV is already investing alongside elite lead venture firms</p></li><li><p>No cost to see deals, and no obligation to invest</p></li></ul><p><strong><a href="https://www.av.vc/ai-tools-syndicate?utm_campaign=RefactoringMayASend&amp;utm_medium=email&amp;utm_content=partner-follow-up&amp;utm_source=tofu#easyvest">Join Alumni Ventures AI Infrastructure Syndicate Today &#8594;</a></strong> </p></blockquote><div><hr></div><h1>&#128161; Never start from a blank page</h1><p>A lot of people ask me how I take notes and write articles &#8212; even more so recently, since I <a href="https://refactoring.fm/p/how-i-run-the-tolaria-project">shipped Tolaria</a>.</p><p>I have often talked about this in the newsletter. I am quite opinionated about it, and a lot of these opinions made it into Tolaria. </p><p>One of these is about the (in)famous <strong>blank page</strong>.</p><p>There is this romantic view of writers sitting in front of a blank page and crafting their work through sheer inspiration. In reality, if you&#8217;re starting from nil, you&#8217;re doing it wrong.</p><p>About this, I love a famous quote from an Italian singer-songwriter, who once was asked how long it takes to write a song. He said:</p><blockquote><p><em>&#8220;It takes me about 10 minutes &#8212; but only if I spend the rest of my life making sure that eventually it takes me 10 minutes.&#8221;</em></p></blockquote><p>This applies to all knowledge work. Good writing is about <em>connecting</em> and <em>refining</em> ideas you already captured, rather than creating from scratch. The prep work <em>is</em> the work.</p><p>To make prep work easier, I am a big believer in dividing it into multiple steps:</p><ul><li><p><strong>Capture</strong> &#8212; store the thought on a durable support.</p></li><li><p><strong>Organize</strong> &#8212; refine it, place it where you&#8217;ll need it, and connect it to other thoughts.</p></li><li><p><strong>Express</strong> &#8212; use it to do something larger.</p></li></ul><p>These are <em>different tasks</em>, and are best done at different times. Conflating them leads to predictable failure modes:</p><ul><li><p>Capture + Organize leads to <em>exhaustion</em> (every note becomes a chore).</p></li><li><p>Organize + Express leads to <em>chaos</em> (missed insights, no scalability).</p></li><li><p>All three at once leads to <em>writer&#8217;s block</em>.</p></li></ul><p>Luhmann&#8217;s Zettelkasten and Tiago Forte&#8217;s CODE system are both built around this separation. You don&#8217;t need to follow either to the letter, but the principle matters.</p><p>I wrote a full piece about note taking a while back &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:170699182,&quot;url&quot;:&quot;https://refactoring.fm/p/how-to-take-notes&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 Take Notes &#127793;&quot;,&quot;truncated_body_text&quot;:&quot;Hey there! Last week we had our book club review of How to Take Smart Notes, by S&#246;nke Ahrens.&quot;,&quot;date&quot;:&quot;2025-08-13T07:02:05.589Z&quot;,&quot;like_count&quot;:53,&quot;comment_count&quot;:3,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;profile_set_up_at&quot;:&quot;2021-06-04T06:23:53.965Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-11-15T17:35:42.775Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:247311,&quot;user_id&quot;:6835984,&quot;publication_id&quot;:64099,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:64099,&quot;name&quot;:&quot;Refactoring&quot;,&quot;subdomain&quot;:&quot;refactoring&quot;,&quot;custom_domain&quot;:&quot;refactoring.fm&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Learn how to make your engineering team ship faster and better. Read weekly by 170,000+ engineers and managers&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;author_id&quot;:6835984,&quot;primary_user_id&quot;:6835984,&quot;theme_var_background_pop&quot;:&quot;#2096ff&quot;,&quot;created_at&quot;:&quot;2020-07-06T14:20:40.525Z&quot;,&quot;email_from_name&quot;:&quot;&#127744; Refactoring&quot;,&quot;copyright&quot;:&quot;Refactoring ETS&quot;,&quot;founding_plan_name&quot;:&quot;&#127942; Community plan&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79ab7b78-71cf-42d2-a607-3aa18960cb64_2400x572.png&quot;}}],&quot;twitter_screen_name&quot;:&quot;lucaronin&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000,&quot;status&quot;:{&quot;bestsellerTier&quot;:1000,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:1000},&quot;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/how-to-take-notes?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 Take Notes &#127793;</div></div><div class="embedded-post-body">Hey there! Last week we had our book club review of How to Take Smart Notes, by S&#246;nke Ahrens&#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; 53 likes &#183; 3 comments &#183; Luca Rossi</div></a></div><div><hr></div><h1>&#127897;&#65039; Principles for better decisions</h1><p>One of the interviews I go back to the most often is the one I did last year with Annie Duke. </p><p>Annie is a former world-class poker player, author of <em>Thinking in Bets</em>, and one of the clearest thinkers on decision-making.</p><p>The conversation was packed with useful frameworks, and one that stuck with me was her four-principle checklist for high-quality decisions:</p><ul><li><p><strong>Speed assessment</strong> &#8212; before anything else, decide how much time this decision deserves. Ask: how long-term is the impact, and how reversible is it? Spend time and effort accordingly.</p></li><li><p><strong>Make the implicit explicit</strong> &#8212; we often decide by &#8220;feel.&#8221; Annie&#8217;s view, instead, is to articulate what that gut feeling actually is. What are the real criteria? Making reasoning explicit helps you catch flawed logic before you commit, and makes it harder to rationalize a bad choice after the fact.</p></li><li><p><strong>Quantify qualitative opinions</strong> &#8212; instead of calling a market &#8220;great,&#8221; rate it. Even in a shallow way, e.g. on a scale from 1 to 10. This forces precision and, in teams, surfaces hidden disagreements otherwise masked by vague language.</p></li><li><p><strong>Collect opinions independently</strong> &#8212; never gather important input in a group setting. Anchoring bias and groupthink are real. Collect individual perspectives first, then compare differences without forcing consensus.</p></li></ul><p>Here is the full interview with Annie:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;b937e090-d377-4987-be17-5ce1f38e5216&quot;,&quot;caption&quot;:&quot;Today's guest is Annie Duke, who is a former world-class professional poker player and one of the world's top experts on decision-making. She's a bestseller author and coach of many tech founders and teams.&quot;,&quot;cta&quot;:&quot;Watch now&quot;,&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;Thinking in Bets for Engineers &#127922;&#8212; with Annie Duke&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-08-01T06:02:15.453Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/p8HAJh52DaE&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/thinking-in-bets-for-engineers-with&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;7755b2e2-da54-4316-82ff-24d3fd49836e&quot;,&quot;id&quot;:169735574,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:22,&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><h1>&#128218; Weekly Readings</h1><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://randsinrepose.com/archives/sometimes-your-job-is-to-get-in-the-way/">Sometimes Your Job Is to Get in the Way</a></h4><h5>5 min &#8226; by Rands</h5><p>Good leaders know when to stay out of the way &#8212; but <em>great</em> leaders also know when to step in and draw a hard line. Fantastic story by Rands, about how a major Slack outage led to a complete transformation of their development process, driven by strong leadership.</p><div><hr></div><h4>&#129352; <a href="https://larahogan.me/blog/why-cant-they-just-revisited/">Why Can&#8217;t They Just&#8230;</a></h4><h5>5 min &#8226; by Lara Hogan</h5><p>&#8220;Why can&#8217;t they just&#8230;&#8221; is a phrase we all use when frustrated with other teams or roles. Instead of dismissing it, Lara explains how to use it as a signal to dig into the <em>complexities</em> behind decisions you don&#8217;t understand, and turn frustration into collaborative problem-solving. Loved it.</p><div><hr></div><h4>&#129353; <a href="https://kristoff.it/blog/contributor-poker-and-ai/">Contributor Poker and AI</a></h4><h5>6 min &#8226; by Loris Cro</h5><p>Open source maintainers don&#8217;t bet on PRs, they bet on <em>contributors</em>. This is a great take by Zig and the best articulated thesis I have heard about banning AI-generated contributions. Worth a read.</p><div><hr></div><p>And that&#8217;s it for today! If you are finding this newsletter valuable, <strong>subscribe to the full version</strong>!</p><p>1700+ engineers and managers have joined already, and they receive our flagship weekly long-form articles about <strong>how to ship faster</strong> and <strong>work better together</strong>! Learn more about the <a href="http://refactoring.fm/about">benefits of the paid plan here</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;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[Personal leverage, junior engineers, and weekly reading 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #206]]></description><link>https://refactoring.fm/p/personal-leverage-junior-engineers</link><guid isPermaLink="false">https://refactoring.fm/p/personal-leverage-junior-engineers</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 04 May 2026 07:01:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vgH8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ddf9af-32fa-4c71-8d56-70516bfbfb84_1200x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, Luca here, welcome to a weekly edition of the</em>&#128161;<em> <strong>Monday Ideas</strong> </em>&#128161;<em> from Refactoring! To access all our articles, library, and community, subscribe to the <a href="https://refactoring.fm/about">full version</a>.</em></p><div><hr></div><blockquote><h2><a href="https://watch.getcontrast.io/register/unblocked-how-to-stop-babysitting-your-agents?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary">Stop babysitting your agents!</a> &#128581;&#8205;&#9794;&#65039;</h2><p><em>Today&#8217;s newsletter is brought to you by <a href="https://watch.getcontrast.io/register/unblocked-how-to-stop-babysitting-your-agents?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary">our friends at Unblocked</a>!</em></p><p>Agents can generate code, we know it.</p><p>But getting it right for our system, conventions, and past decisions is still the hard part &#8212; we waste time and tokens in correction loops. Patching many MCPs together may give agents access to <em>information</em>, but not necessarily <em>understanding</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_!vgH8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ddf9af-32fa-4c71-8d56-70516bfbfb84_1200x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vgH8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ddf9af-32fa-4c71-8d56-70516bfbfb84_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!vgH8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ddf9af-32fa-4c71-8d56-70516bfbfb84_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!vgH8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ddf9af-32fa-4c71-8d56-70516bfbfb84_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!vgH8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ddf9af-32fa-4c71-8d56-70516bfbfb84_1200x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vgH8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ddf9af-32fa-4c71-8d56-70516bfbfb84_1200x600.png" width="686" height="343" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/71ddf9af-32fa-4c71-8d56-70516bfbfb84_1200x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:686,&quot;bytes&quot;:256566,&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/196095778?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ddf9af-32fa-4c71-8d56-70516bfbfb84_1200x600.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_!vgH8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ddf9af-32fa-4c71-8d56-70516bfbfb84_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!vgH8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ddf9af-32fa-4c71-8d56-70516bfbfb84_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!vgH8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ddf9af-32fa-4c71-8d56-70516bfbfb84_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!vgH8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71ddf9af-32fa-4c71-8d56-70516bfbfb84_1200x600.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>That&#8217;s why I am a fan of what <a href="https://watch.getcontrast.io/register/unblocked-how-to-stop-babysitting-your-agents?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary">Unblocked</a> is building with their <strong>context engine</strong> &#8212; giving agents exactly what they need to <em>understand</em> things and succeed. <a href="https://watch.getcontrast.io/register/unblocked-how-to-stop-babysitting-your-agents?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary">Join their webinar on May 6th (free)</a> to see:</p><ul><li><p>Where teams get stuck on the AI maturity curve</p></li><li><p>How a context engine solves for quality, efficiency, and cost</p></li><li><p>Live demo: the same coding task with and without a context engine</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://watch.getcontrast.io/register/unblocked-how-to-stop-babysitting-your-agents?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary&quot;,&quot;text&quot;:&quot;Learn more and register!&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://watch.getcontrast.io/register/unblocked-how-to-stop-babysitting-your-agents?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary"><span>Learn more and register!</span></a></p></blockquote><div><hr></div><h1>&#128161; Personal leverage is now unlimited</h1><p>A couple of months ago I wrote about <a href="https://refactoring.fm/p/my-experience-with-openclaw">my experience with OpenClaw</a> &#8212; what I do with it, what procedures it runs automatically, and so on.</p><p>I also argued that the story of OpenClaw itself seems to point to the idea that a good solo engineer can now achieve&#8230; pretty much anything. Look at the progression of AI assistants and coding tools:</p><ol><li><p>At first, it was VS Code + Copilot. Created by Github/Microsoft, which is a big tech.</p></li><li><p>Copilot was surpassed by Cursor, created by a team around 1/100th its size.</p></li><li><p>Cursor was then surpassed by Claude Code, which has been created literally by 2 engineers inside Anthropic, and whose team to this day is ~20 engineers.</p></li><li><p>OpenClaw has been created by Peter Steinberger. That&#8217;s it.</p></li></ol><p>In my (very small, comparably) experience with <a href="https://github.com/refactoringhq/tolaria">Tolaria</a>, I am seeing this as well. If you are equipped with the right set of ingredients, it&#8217;s hard now to see the limits of what a single engineer can do. But what are these ingredients? To me it&#8217;s:</p><ol><li><p><strong>&#128295; Tech skills</strong> &#8212; you still need these! Especially to steer a sizable project. E.g. Peter is first and foremost a world-class engineer.</p></li><li><p>&#129489;&#8205;&#127859; <strong>Taste</strong> &#8212; your personal taste for what good looks like, your domain expertise, how knowledgeable you are about the problem you want to solve, your <em>product</em> senses &#8212; these are the things that AI is not going to replace anytime soon, if ever.</p></li><li><p>&#127939; <strong>Drive</strong> &#8212; above all, the drive and discipline needed to put something out there. I know an awful lot of people who have the first two ingredients, but kinda miss this one.</p></li></ol><p>My OpenClaw article is one of the most popular pieces I have ever written, you can catch up with it below &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:187528754,&quot;url&quot;:&quot;https://refactoring.fm/p/my-experience-with-openclaw&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;My experience with OpenClaw &#129438;&quot;,&quot;truncated_body_text&quot;:&quot;Hey, Luca here! This is a &#128274; weekly essay &#128274; from Refactoring! To access all our articles, library, and community, subscribe to the full version:&quot;,&quot;date&quot;:&quot;2026-02-11T08:00:09.106Z&quot;,&quot;like_count&quot;:53,&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;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/my-experience-with-openclaw?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">My experience with OpenClaw &#129438;</div></div><div class="embedded-post-body">Hey, Luca here! This is a &#128274; weekly essay &#128274; from 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">6 months ago &#183; 53 likes &#183; Luca Rossi</div></a></div><div><hr></div><h1>&#127897;&#65039; Junior engineers will just be fine</h1><p>Last month I <a href="https://refactoring.fm/p/every-engineer-is-a-manager-now-with">interviewed the legendary Chris Lattner</a> on the podcast. Chris created LLVM, Swift, led Tesla autopilot, brought TPUs to the market at Google, and more! He is now the founder of Modular, where he creates portable infra to work with GPUs.</p><p>Chris told me that, despite the industry-wide narrative that AI favors senior engineers, Modular is actively <strong>hiring a ton of new college grads</strong> and interns. Chris&#8217; reasoning is based on two observations:</p><ul><li><p><strong>&#129504; AI-native thinking</strong> &#8212; junior engineers bring a completely different expertise. They are native to the tools and adapt faster than many experienced engineers.</p></li><li><p><strong>&#9878;&#65039; Team balance</strong> &#8212; good teams need people at multiple levels learning from each other. All-senior or all-junior teams both fail in different ways. (we wrote about this also <a href="https://refactoring.fm/p/in-praise-of-normal-engineers">here</a>!)</p></li></ul><p>You can find the full interview with Chris below:</p><div id="youtube2-PLQs_hHTzSk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;PLQs_hHTzSk&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/PLQs_hHTzSk?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>You can also find it on &#127911; <strong><a href="https://open.spotify.com/episode/7x5fP9l9veyl7VlGFBdoH3?si=ea44113412aa4fc9">Spotify</a></strong> and &#128236; <strong><a href="https://refactoring.fm/p/every-engineer-is-a-manager-now-with">Substack</a></strong></p><div><hr></div><h1>&#128218; Weekly Readings</h1><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://www.epicproduct.engineer/the-last-software-engineer">The Last Software Engineer</a></h4><h5>10 min &#8226; by Kent C. Dodds</h5><p>Fast forward to the moment <em>right before</em> AI takes over everything engineers do &#8212; what&#8217;s the last valuable thing left? I won&#8217;t spoiler! Fantastic article by Kent.</p><div><hr></div><h4>&#129352; <a href="https://www.aicelabs.com/articles/why-sell-software-if-anyone-can-make-it">Why Sell Software If Anyone Can Make It?</a></h4><h5>2 min &#8226; by Clemens Adolphs</h5><p>It&#8217;s not hard to make bread at home &#8212; even better than the one you buy at the bakery. Yet nobody really does it at scale. Don&#8217;t let the &#8220;everyone can code now&#8221; narrative scare you out of building a software business.</p><div><hr></div><h4>&#129353; <a href="https://www.chrismdp.com/coding-with-ai/">How I use AI to Code</a></h4><h5>19 min &#8226; by Chris Sherwood</h5><p>A thorough, opinionated guide on AI coding, updated to April 2026. Covers both the mindset and the practical tools. I liked 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[Bad code, progressive complexity, and weekly readings💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #205]]></description><link>https://refactoring.fm/p/bad-code-progressive-complexity-and</link><guid isPermaLink="false">https://refactoring.fm/p/bad-code-progressive-complexity-and</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 27 Apr 2026 07:01:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/5Q4FasJl0SA" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, Luca here, welcome to a weekly edition of the</em>&#128161;<em> <strong>Monday Ideas</strong> </em>&#128161;<em> from Refactoring! To access all our articles, library, and community, subscribe to the <a href="https://refactoring.fm/about">full version</a>.</em></p><div><hr></div><h2><a href="https://newsletter.chainofthought.show/p/inverting-the-innovators-dilemma">Reporting from Salesforce&#8217;s TDX event!</a> &#129489;&#8205;&#128187;</h2><p><em>This week&#8217;s sponsor is Salesforce!</em></p><p>Our friend <a href="https://newsletter.chainofthought.show/">Conor Bronsdon</a> was our eyes and ears on the floor at <a href="https://www.salesforce.com/tdx/">TDX</a> last week, and wrote a full breakdown on <a href="https://newsletter.chainofthought.show/p/inverting-the-innovators-dilemma">Chain of Thought</a>.</p><p>He says <a href="https://www.salesforce.com/eu/form/agentforce/maximizing-roi-with-agentforce/?d=701ed00000p99uMAAQ&amp;nc=701ed00000pCjLLAA0&amp;utm_content=701ed00000p99uMAAQ&amp;gclsrc=aw.ds&amp;gad_source=1&amp;gad_campaignid=22814410482&amp;gbraid=0AAAABAVtBhSz9uEfWIk83PbS9EjJJUZ2A&amp;gclid=CjwKCAjwqazPBhALEiwAOuXqdCdRf0LHVCkka--kPqK_4UWHYHr9LG1ow0N0iMmldmIcE-7kiaKfGRoCH6sQAvD_BwE">Agentforce</a> is now Salesforce's fastest-growing product, and the signs were everywhere at TDX:</p><ul><li><p>60+ new MCP tools in Headless 360</p></li><li><p>Agent Script open-sourced on GitHub</p></li><li><p>Agentforce Vibes 2.0 (their vibe coding tool),</p></li><li><p>plus new Slack agent capabilities.</p></li></ul><p>Salesforce went as far as publishing the full language spec, grammar, parser, and compiler for their agent-definition language. </p><p>They're betting an <strong>open agent ecosystem wins</strong> developer adoption, while enterprise-grade upgrade paths let businesses actually ship reliable agents to production.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.chainofthought.show/p/inverting-the-innovators-dilemma&quot;,&quot;text&quot;:&quot;Read the full TDX breakdown&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.chainofthought.show/p/inverting-the-innovators-dilemma"><span>Read the full TDX breakdown</span></a></p><div><hr></div><h1>&#128161; Coding is not solved, but bad code&#8230; kinda is</h1><p>Last week I launched <a href="https://refactoring.fm/p/introducing-tolaria">Tolaria</a>, which by now is one of the <a href="https://github.com/refactoringhq/tolaria">fastest growing repos</a> on the whole Github! It got <strong>6000+ stars</strong> in less than a week.</p><p>Tolaria is a lot of code: 100K+ LOCs, 2K+ commits, 3K+ tests, 70+ ADRs. I publicly said many times <a href="https://refactoring.fm/i/194609000/tolaria-refactoring">I didn&#8217;t write any of it</a>, which made some people think I believe coding is <em>solved</em>.</p><p>I don&#8217;t think coding is solved <em>at large</em>, but <em>bad code</em> feels solved. To understand what I mean by that, a useful way to think about tech debt is to split it into two kinds:</p><ul><li><p><strong>Bad code</strong></p></li><li><p><strong>Misaligned code</strong></p></li></ul><p><em>Bad code</em> is basic hygiene failure: lack of tests, high complexity, tight coupling, duplication, outdated libraries. It is bad regardless of business context, and we know it increases lead time, outages, and maintenance cost.</p><p>As of today this kind of debt is largely avoidable if you <strong>choose to enforce quality</strong>. On Tolaria, AI-generated code must meet three gates: high test coverage, strong CodeScene health scores, and current library/docs usage. These rules live both in CLAUDE.md and CI, because agents still forget or ignore instructions. Once those checks are in place, the basics can be trusted without manually reviewing every line.</p><p><em>Misaligned code</em> is harder, and is definitely not solved yet. Code may be clean, tested, and well-structured, but still wrong for the product direction you want. It&#8217;s code that is a good circle when you really needed a square: a leaky abstraction, an old design assumption, or a model that no longer matches intent.</p><p>Reviewing architecture and abstractions still feels supremely important, because they're the things that the AI model can&#8217;t figure out by itself, because they are about what you want to build in the future, and why.</p><p>I wrote more about this in my series of articles about my AI coding workflow:</p><ol><li><p><strong><a href="https://refactoring.fm/p/my-ai-coding-workflow">My AI Coding Workflow</a></strong> (Feb 2026)</p></li><li><p><strong><a href="https://refactoring.fm/p/updates-to-my-ai-coding-workflow">Updates to My AI Coding Workflow</a></strong> (Apr 2026)</p></li><li><p><strong><a href="https://refactoring.fm/p/introducing-tolaria">Introducing Tolaria</a></strong> (last week!)</p></li></ol><div><hr></div><h1>&#127897;&#65039; Progressive disclosure of complexity</h1><p>In May last year I interviewed Guillermo Rauch, founder and CEO of Vercel</p><p>Guillermo talked about the qualities of great technology, and one principle that stuck with me was what he called the <strong>progressive disclosure of complexity</strong>.</p><p>A defining feature of great tech is that&#8217;s approachable for beginners but powerful enough for enterprise needs.</p><p>This principle guides the design of Vercel, Next.js, and everything they do.</p><blockquote><p><em><strong>&#8220;I&#8217;m building a platform that should not be intimidating for your first line of code, and gives you the superpower that you could be one day a top 30 internet website with the same infrastructure, with the same tools, with the same access.&#8221;</strong></em></p></blockquote><p>Guillermo draws inspiration from products like the iPhone, which can be used by both children and the elderly while still serving business professionals with complex needs.</p><p>His approach to API design focuses on what he calls <em>token minimization</em> (not AI tokens!) &#8212; requiring minimal code to get started, then gradually introducing more sophisticated features as needed:</p><ul><li><p>&#127937; <strong>Low barrier to entry</strong> &#8212; a new Next.js project can be started with just a few lines of code.</p></li><li><p>&#127793; <strong>Growing with users</strong> &#8212; complexity is only introduced when needed for specific requirements.</p></li><li><p>&#128260; <strong>Same technology at all scales</strong> &#8212; the technology that powers a beginner&#8217;s first project is the same that can scale to handle millions of users.</p></li></ul><p>Here is the full interview with Guillermo:</p><div id="youtube2-5Q4FasJl0SA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;5Q4FasJl0SA&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/5Q4FasJl0SA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>You can also find it on &#127911; <strong><a href="https://open.spotify.com/episode/2K73fsshI6PvWPsd0pPPHq?si=49224547d4b6431d">Spotify</a></strong> and &#128236; <strong><a href="https://refactoring.fm/p/the-vercel-journey-with-guillermo">Substack</a></strong></p><div><hr></div><h1>&#128218; Weekly Readings</h1><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://theengineeringmanager.substack.com/p/my-cto-daily-driver">My CTO Daily Driver</a></h4><h5>8 min &#8226; by James Stanier</h5><p>I basically recommend all of James&#8217; articles, and this makes no exception. He explains how he uses Claude Code to drive a personalized <em>CTO workspace</em> with memory. With custom slash commands tied to Linear, Notion, and BetterStack.</p><div><hr></div><h4>&#129352; <a href="https://bcantrill.dtrace.org/2026/04/12/the-peril-of-laziness-lost/">The Peril of Laziness Lost</a></h4><h5>12 min &#8226; by Bryan Cantrill</h5><p>Laziness has always been a programmer&#8217;s <em>virtue</em> &#8212; it&#8217;s what drives us to build abstractions instead of doing the same thing twice. LLMs don&#8217;t have that instinct: you have to <em>supply it</em> to them. If you don&#8217;t, you lose the elegance, efficiency, and maintainability that comes from human constraints.</p><div><hr></div><h4>&#129353; <a href="https://x.com/intuitiveml/status/2043545596699750791?s=46">99% of Our Production Code Is Written by AI</a></h4><h5>20 min &#8226; by Peter Pang</h5><p>Took a lot of ideas from this post. Feels a bit AI-generated at times, but the ideas around feature gates, self-healing feedback loop, and bug fixing are awesome. Peak &#8220;harness engineering&#8221;, as kids call it these days.</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[Devex floor, saving the day, and weekly reading 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #204]]></description><link>https://refactoring.fm/p/devex-floor-saving-the-day-and-weekly</link><guid isPermaLink="false">https://refactoring.fm/p/devex-floor-saving-the-day-and-weekly</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 20 Apr 2026 07:00:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vm_O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea02411-c22d-4934-8e52-83a6ea28f7d8_1970x1088.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, Luca here, welcome to a weekly edition of the</em>&#128161;<em> <strong>Monday Ideas</strong> </em>&#128161;<em> from Refactoring! To access all our articles, library, and community, subscribe to the <a href="https://refactoring.fm/about">full version</a>.</em></p><div><hr></div><h2><a href="https://watch.getcontrast.io/register/unblocked-webinar-stop-babysitting-your-agents-building-a-context-engine-for-mergeable-code?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary">Stop babysitting your agents</a> &#127868;</h2><p><em>Today&#8217;s sponsor is <a href="https://watch.getcontrast.io/register/unblocked-webinar-stop-babysitting-your-agents-building-a-context-engine-for-mergeable-code?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary">Unblocked</a>!</em></p><p>Agents can generate code. But getting it right for your system, conventions, and past decisions is the hard part &#8212; you end up wasting time and tokens in correction loops.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uisF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d914-dec4-47bc-933b-144b8277c03c_1330x742.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uisF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d914-dec4-47bc-933b-144b8277c03c_1330x742.png 424w, https://substackcdn.com/image/fetch/$s_!uisF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d914-dec4-47bc-933b-144b8277c03c_1330x742.png 848w, https://substackcdn.com/image/fetch/$s_!uisF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d914-dec4-47bc-933b-144b8277c03c_1330x742.png 1272w, https://substackcdn.com/image/fetch/$s_!uisF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d914-dec4-47bc-933b-144b8277c03c_1330x742.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uisF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d914-dec4-47bc-933b-144b8277c03c_1330x742.png" width="484" height="270.0210526315789" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ded0d914-dec4-47bc-933b-144b8277c03c_1330x742.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:742,&quot;width&quot;:1330,&quot;resizeWidth&quot;:484,&quot;bytes&quot;:447044,&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/194396094?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d914-dec4-47bc-933b-144b8277c03c_1330x742.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_!uisF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d914-dec4-47bc-933b-144b8277c03c_1330x742.png 424w, https://substackcdn.com/image/fetch/$s_!uisF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d914-dec4-47bc-933b-144b8277c03c_1330x742.png 848w, https://substackcdn.com/image/fetch/$s_!uisF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d914-dec4-47bc-933b-144b8277c03c_1330x742.png 1272w, https://substackcdn.com/image/fetch/$s_!uisF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d914-dec4-47bc-933b-144b8277c03c_1330x742.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>More MCPs give agents access to information but not understanding. The teams pulling ahead use a context engine to give agents exactly what they need.</p><p><a href="https://watch.getcontrast.io/register/unblocked-webinar-stop-babysitting-your-agents-building-a-context-engine-for-mergeable-code?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary">Join our friends at Unblocked on April 23 (FREE)</a> to see:</p><ul><li><p>Where teams get stuck on the AI maturity curve</p></li><li><p>How a context engine solves for quality, efficiency, and cost</p></li><li><p>Live demo: the same coding task with and without a context engine</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://watch.getcontrast.io/register/unblocked-webinar-stop-babysitting-your-agents-building-a-context-engine-for-mergeable-code?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary&quot;,&quot;text&quot;:&quot;Register now!&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://watch.getcontrast.io/register/unblocked-webinar-stop-babysitting-your-agents-building-a-context-engine-for-mergeable-code?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=primary"><span>Register now!</span></a></p><div><hr></div><h1>&#128161; Developer Experience is your floor</h1><p>By now we all largely agree that AI amplifies your existing dev practices &#8212; good and bad. I think what most people don&#8217;t realize is just <em>how strong</em> the amplification is.</p><p>Last month I commented on <a href="https://refactoring.fm/p/the-era-of-the-software-factory">the recent </a><strong><a href="https://refactoring.fm/p/the-era-of-the-software-factory">State of Software Delivery</a></strong><a href="https://refactoring.fm/p/the-era-of-the-software-factory"> report</a>. With respect to one year ago, the median team sees:</p><ul><li><p>&#128200; +15% activity on feature branches</p></li><li><p>&#128201; -7% activity on the main branch</p></li><li><p>&#128201; -15% success rate on the main branch</p></li></ul><p>These numbers are brutal: the average team sees exactly <em>zero</em> impact from AI. Even negative in some cases, as displayed by activity on the main branch.</p><p>On the other end, if you look at the top quartiles, the reality is different. Top 5% teams are ~2x as fast, with the same success rate. Top 10% teams are +50% faster, and top 25% are +25% faster.</p><p>These are <em>big</em> numbers, and they come from the teams who were already at the top 3 years ago. So, paraphrasing the famous quote, the best time to invest in good devex was years ago, but the second best time is <em>now.</em></p><p>Good devex is the <em>floor</em> that enables a team to profit from AI. I like the idea that good devex is enabled by three factors:</p><ul><li><p><strong>&#129504; Balanced cognitive load</strong> &#8212; work is challenging but achievable.</p></li><li><p><strong>&#128260; Tight feedback loops</strong> &#8212; engineers are continuously informed that are going in the right direction.</p></li><li><p><strong>&#9201;&#65039; Enough focus time</strong> &#8212; engineers have enough uninterrupted time to do what they need to do.</p></li></ul><p>When these three things happen, engineers can enter a <strong>flow state</strong>: complete immersion in their activity with extreme focus, productivity, and personal enjoyment.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vm_O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea02411-c22d-4934-8e52-83a6ea28f7d8_1970x1088.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vm_O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea02411-c22d-4934-8e52-83a6ea28f7d8_1970x1088.png 424w, https://substackcdn.com/image/fetch/$s_!vm_O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea02411-c22d-4934-8e52-83a6ea28f7d8_1970x1088.png 848w, https://substackcdn.com/image/fetch/$s_!vm_O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea02411-c22d-4934-8e52-83a6ea28f7d8_1970x1088.png 1272w, https://substackcdn.com/image/fetch/$s_!vm_O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea02411-c22d-4934-8e52-83a6ea28f7d8_1970x1088.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vm_O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea02411-c22d-4934-8e52-83a6ea28f7d8_1970x1088.png" width="1456" height="804" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dea02411-c22d-4934-8e52-83a6ea28f7d8_1970x1088.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:804,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:226009,&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/194396094?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea02411-c22d-4934-8e52-83a6ea28f7d8_1970x1088.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_!vm_O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea02411-c22d-4934-8e52-83a6ea28f7d8_1970x1088.png 424w, https://substackcdn.com/image/fetch/$s_!vm_O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea02411-c22d-4934-8e52-83a6ea28f7d8_1970x1088.png 848w, https://substackcdn.com/image/fetch/$s_!vm_O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea02411-c22d-4934-8e52-83a6ea28f7d8_1970x1088.png 1272w, https://substackcdn.com/image/fetch/$s_!vm_O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdea02411-c22d-4934-8e52-83a6ea28f7d8_1970x1088.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>Here are some questions you can ask yourself to assess where you at with these:</p><ul><li><p>Reduce cognitive load &#8594; <em>What feels hard as a developer? How can I make it easier?</em></p></li><li><p>Tighten feedback loops &#8594; <em>What feels slow? How can I make it faster?</em></p></li><li><p>Improve focus time &#8594; <em>What feels wasteful? How can I reduce interruptions?</em></p></li></ul><p>I wrote a full piece about DevEx, AI, and Product Engineering, and how these are 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;:null,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;The 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;:49,&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;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&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"><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">5 months ago &#183; 49 likes &#183; Luca Rossi</div></a></div><div><hr></div><h1>&#127897;&#65039; Why did the day need saving?</h1><p>Last year I interviewed Rands&#8212;one of my heroes&#8212;and we talked a lot about AI, engineering management, and things we are getting wrong in tech.</p><p>Rands believes, as an industry, we are too attached to <em>hero culture</em> that celebrates heroics and <em>save-the-day</em> moments.</p><blockquote><p><em><strong>&#8220;Good job saving the day. Why did the day need saving? We screwed up and you had to save the day so good job cleaning up your screw up.&#8221;</strong></em></p></blockquote><p>Rands believes in <strong>proactive prevention</strong> rather than reactive heroics: addressing issues when they are still yellow flags, instead of big red ones. Effective management goes unnoticed because teams function smoothly &#8212; but that should be a badge of honor.</p><p>Acts of prevention sometimes are hard because they go against your instincts, like giving <strong>early corrective feedback</strong> before problems escalate. It feels easy and innocuous to avoid these small-scale conflicts, but these are exactly what you need to prevent the big fuck-ups.</p><p>Here is the full interview with Rands:</p><div id="youtube2-T8pcMl3rmbM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;T8pcMl3rmbM&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/T8pcMl3rmbM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>You can also find it on &#127911; <strong><a href="https://refactoring.fm/p/how-to-manage-humans-with-rands">Spotify</a></strong> and &#128236; <strong><a href="https://open.spotify.com/episode/6bBVwfdumlhJusAFHuuv3h?si=9e6945c8c46e4f78">Substack</a></strong></p><div><hr></div><h1>&#128218; Weekly Readings</h1><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://theengineeringmanager.substack.com/p/who-will-be-the-senior-engineers">Who Will Be the Senior Engineers of 2035?</a></h4><h5>11 min &#8226; by James Stanier</h5><p>Great article by James, who put together a lot of resources and ideas (also from different industries), and connected the dots to understand what may happen to the software engineering job market. Recommended read.</p><div><hr></div><h4>&#129352; <a href="https://www.strix.ai/blog/cal-com-is-closing-its-code-due-to-ai-threats">Open Source Isn&#8217;t Dead</a></h4><h5>3 min &#8226; by Alex Schapiro</h5><p>Cal.com <a href="http://cal.com/blog/cal-com-goes-closed-source-why">recently announced</a> it&#8217;s going closed source, citing AI vulnerability scanning as the #1 reason. This piece pushes back, and I actually agree with it: closing source code doesn&#8217;t remove the attack surface &#8212; AI can still attack you <em>black-box</em>, at runtime. The better response is continuous AI defense (fire with fire!).</p><div><hr></div><h4>&#129353; <a href="https://lethain.com/agents-as-scaffolding/">Agents as Scaffolding for Recurring Tasks</a></h4><h5>4 min &#8226; by Will Larson</h5><p>Great practical pattern for introducing agents into your workflows: start by prototyping with agent-driven automation, then <em>refactor</em> some agentic parts away into deterministic code, keeping the agent only where it truly shines: navigating ambiguity.</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[Asking engineers, signal areas, and weekly readings 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #203]]></description><link>https://refactoring.fm/p/asking-engineers-signal-areas-and</link><guid isPermaLink="false">https://refactoring.fm/p/asking-engineers-signal-areas-and</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 13 Apr 2026 07:39:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dofp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, Luca here, welcome to a weekly edition of the</em>&#128161;<em> <strong>Monday Ideas</strong> </em>&#128161;<em> from Refactoring! To access all our articles, library, and community, subscribe to the <a href="https://refactoring.fm/about">full version</a>.</em></p><div><hr></div><h2><a href="https://www.augmentcode.com/blog/confidence-is-the-new-bottleneck">How Augment Code is going AI-native</a></h2><p><em>Today&#8217;s sponsor is <a href="https://www.augmentcode.com/">Augment Code</a>!</em></p><p>The guys at Augment have been documenting how they are transforming their engineering team to be AI-first, in several great blog posts:</p><ul><li><p><a href="https://www.augmentcode.com/blog/how-we-hire-ai-native-engineers-now">How we hire AI-native engineers now</a></p></li><li><p><a href="https://www.augmentcode.com/blog/confidence-is-the-new-bottleneck">Confidence is the new bottleneck</a></p></li></ul><p>They would also love to hear from other leaders going through the same thing, and have been running a quick survey for this. You can find it below &#128071;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://form.typeform.com/to/iYpaa0lo&quot;,&quot;text&quot;:&quot;Check out the 5-min survey&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://form.typeform.com/to/iYpaa0lo"><span>Check out the 5-min survey</span></a></p><div><hr></div><h1>&#128161; Just ask engineers</h1><p>By now, as of 2026, there is <a href="https://refactoring.fm/p/the-era-of-the-software-factory?utm_source=publication-search">solid consensus</a> that good developer experience is <em>upstream</em> of how your engineering team performs as a whole. And good devex is, in turn, mostly about <strong>removing friction</strong> from the daily work of engineers.</p><p>To remove friction you first need to know where it hides. What are the biggest blockers for your team? What is slow, hard, or simply a waste of time?</p><p>As engineers, we have a natural bias towards <strong>telemetry</strong> &#8212; quantitative data taken automatically from our processes, so we can debug it as if it were software. This is increasingly backed by research, from <a href="https://refactoring.fm/p/accelerate">Accelerate</a> onwards, and I have written extensively about it:</p><ul><li><p><a href="https://refactoring.fm/p/how-to-get-started-with-engineering">How to get started with engineering metrics</a></p></li><li><p><a href="https://refactoring.fm/p/whats-next-in-measuring-dev-productivity?utm_source=publication-search">What&#8217;s next in measuring dev productivity</a></p></li><li><p><a href="https://refactoring.fm/p/you-have-metrics-now-what?utm_source=publication-search">You have metrics, now what?</a></p></li></ul><p>To summarize what I think about metrics: <strong>they are good, but they are not enough</strong>. Most metrics are <em>cues</em> that something is (or is not) working, but they don&#8217;t tell you what the problem is. They are <em>lagging indicators</em>: to find the actual blockers, you need to dig deeper.</p><p>How? The answer is usually deceptively simple: <strong>ask engineers</strong>. They know.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dofp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dofp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png 424w, https://substackcdn.com/image/fetch/$s_!dofp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png 848w, https://substackcdn.com/image/fetch/$s_!dofp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png 1272w, https://substackcdn.com/image/fetch/$s_!dofp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dofp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png" width="1456" height="638" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:638,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:398366,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://refactoring.fm/i/193797604?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dofp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png 424w, https://substackcdn.com/image/fetch/$s_!dofp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png 848w, https://substackcdn.com/image/fetch/$s_!dofp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png 1272w, https://substackcdn.com/image/fetch/$s_!dofp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a0dcb77-0b55-4861-94df-74d51d4a5ad0_4248x1860.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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>If you combine <strong>qualitative</strong> signal from engineers&#8217; opinions with <strong>quantitative</strong> data from your systems, you&#8217;ll be <em>unstoppable</em>. But counterintuitively, most managers find it harder to do the former&#8212;have good conversations to identify problems&#8212;than the latter.</p><p>So, I am a fan of doing the so-called <strong>Listening Tour</strong>, whose name I lifted from <em><a href="https://developerexperiencebook.com/">Frictionless</a></em>, but whose execution I tweaked based on my own experience. I wrote a full piece about it at the start of the year, and I still stand by it &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:185828322,&quot;url&quot;:&quot;https://refactoring.fm/p/the-listening-tour&quot;,&quot;publication_id&quot;:64099,&quot;embedding_publication_id&quot;:null,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;The Listening Tour &#128222;&quot;,&quot;truncated_body_text&quot;:&quot;For the last month I have been running a program for CTOs and VPs of small to mid-size companies to help them make their engineering teams ship faster.&quot;,&quot;date&quot;:&quot;2026-01-28T08:00:22.619Z&quot;,&quot;like_count&quot;:35,&quot;comment_count&quot;:3,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;profile_set_up_at&quot;:&quot;2021-06-04T06:23:53.965Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-11-15T17:35:42.775Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:247311,&quot;user_id&quot;:6835984,&quot;publication_id&quot;:64099,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:64099,&quot;name&quot;:&quot;Refactoring&quot;,&quot;subdomain&quot;:&quot;refactoring&quot;,&quot;custom_domain&quot;:&quot;refactoring.fm&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Learn how to make your engineering team ship faster and better. Read weekly by 170,000+ engineers and managers&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;author_id&quot;:6835984,&quot;primary_user_id&quot;:6835984,&quot;theme_var_background_pop&quot;:&quot;#2096ff&quot;,&quot;created_at&quot;:&quot;2020-07-06T14:20:40.525Z&quot;,&quot;email_from_name&quot;:&quot;&#127744; Refactoring&quot;,&quot;copyright&quot;:&quot;Refactoring ETS&quot;,&quot;founding_plan_name&quot;:&quot;&#127942; Community plan&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79ab7b78-71cf-42d2-a607-3aa18960cb64_2400x572.png&quot;}}],&quot;twitter_screen_name&quot;:&quot;lucaronin&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000,&quot;status&quot;:{&quot;bestsellerTier&quot;:1000,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:1000},&quot;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/the-listening-tour?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!CR5A!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png" loading="lazy"><span class="embedded-post-publication-name">Refactoring</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">The Listening Tour &#128222;</div></div><div class="embedded-post-body">For the last month I have been running a program for CTOs and VPs of small to mid-size companies to help them make their engineering teams ship faster&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">7 months ago &#183; 35 likes &#183; 3 comments &#183; Luca Rossi</div></a></div><div><hr></div><h1>&#127897;&#65039; Past behavior predicts future results</h1><p>With tech chops getting a bit <em>diluted</em> by AI, <strong>behavioral interviews</strong> have recently gotten into the spotlight as a crucial way to select good engineers. Always have been? Probably &#8212; but today, even more so.</p><p>I recently talked about this <a href="https://refactoring.fm/p/how-to-master-behavioral-interviews-e75">on the podcast with Austin McDonald</a>, former hiring committee chair at Meta. Austin said behavioral interviewers are essentially <strong>forecasters</strong>: they study your past performance to predict your future results. And, with people, this generally works (unlike with financial portfolios!)</p><p>Austin breaks down what interviewers look for into <strong>signal areas</strong>:</p><ul><li><p><strong>&#127919; Scope &amp; ownership</strong> &#8212; how large a project can you handle, and do you drive it forward without being asked?</p></li><li><p><strong>&#127787;&#65039; Ambiguity &amp; perseverance</strong> &#8212; how do you navigate unclear situations and push through setbacks?</p></li><li><p><strong>&#129309; Conflict resolution, communication &amp; leadership</strong> &#8212; how do you handle disagreements, convey ideas, and rally teams?</p></li></ul><p>These signal areas map closely to most company values, but not always one-to-one. Newer AI companies like Anthropic, for instance, look for safety-oriented signals about thinking through the implications of building AI.</p><p>So Austin recommends combining general areas with company-specific research&#8212;their website, recruiter conversations, YouTube talks&#8212;to build a complete picture of what you&#8217;ll be assessed on.</p><blockquote><p><em><strong>&#8220;Every question they ask has this kind of thing behind it. Especially follow-up questions. People often forget &#8212; when they get a follow-up question, they just think the person wants more information. Instead, think: why are they asking me this?&#8221;</strong></em></p></blockquote><p>In fact, companies exist on a wide spectrum:</p><ul><li><p>Amazon sits at one extreme end with <a href="https://www.amazon.jobs/content/en/our-workplace/leadership-principles">16 rigorously enforced leadership principles</a>.</p></li><li><p>Meta is in the middle with <a href="https://www.metacareers.com/swe-prep-onsite">five structured behavioral areas</a>.</p></li><li><p>Google has traditionally leaned more technical.</p></li></ul><p>Here is the full interview with Austen:</p><div id="youtube2-dIUZ8AcCfLg" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;dIUZ8AcCfLg&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/dIUZ8AcCfLg?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>You can also find it on &#127911; <strong><a href="https://open.spotify.com/episode/5dTyUawGzRizbC8PJPsPIG?si=5c3a2c5c494b4e73">Spotify</a></strong> and &#128236; <strong><a href="https://refactoring.fm/p/how-to-master-behavioral-interviews-e75">Substack</a></strong></p><div><hr></div><h1>&#128218; Weekly Readings</h1><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://piechowski.io/post/git-commands-before-reading-code/">The Git Commands I Run Before Reading Any Code</a></h4><h5>3 min &#8226; by Ally Piechowski</h5><p>Great piece that makes you understand the power of version control history. There is so much you can understand about a codebase (and a team) by running simple git commands. Hotspots, bus factor, bug clusters, crisis patterns &#8212; all from git history.</p><div><hr></div><h4>&#129352; <a href="https://martinfowler.com/articles/reduce-friction-ai/feedback-flywheel.html">Feedback Flywheel</a></h4><h5>10 min &#8226; by Rahul Garg</h5><p>I really liked this article &#8212; it&#8217;s very practical and proposes some novel angles to AI feedback. Every AI interaction generates signal: prompts that worked, context that was missing, patterns that failed. Rahul proposes a structured practice that takes learnings from AI sessions and feeds them back into the team&#8217;s shared artifacts.</p><div><hr></div><h4>&#129353; <a href="https://newsletter.whatsmyjob.club/archive/the-human-weight-of-it/">The Human Weight of It</a></h4><h5>7 min &#8226; by Cate Huston</h5><p>Can Claude replace coaching? Cate has been experimenting: using AI for structured issues, but keeping her human coach for the <em>messier</em> stuff. AI is great when you need structure and validation. But when you need to feel <em>seen</em>, you need the human weight of someone else&#8217;s confidence in you. I loved it.</p><div><hr></div><p>And that&#8217;s it for today! If you are finding this newsletter valuable, <strong>subscribe to the full version</strong>!</p><p>1700+ engineers and managers have joined already, and they receive our flagship weekly long-form articles about <strong>how to ship faster</strong> and <strong>work better together</strong>! Learn more about the <a href="http://refactoring.fm/about">benefits of the paid plan here</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Make your team ship faster!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p>See you next week!<br>Luca</p>]]></content:encoded></item><item><title><![CDATA["Why" context, functional teams, and weekly readings 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #202]]></description><link>https://refactoring.fm/p/why-context-functional-teams-and</link><guid isPermaLink="false">https://refactoring.fm/p/why-context-functional-teams-and</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 06 Apr 2026 07:12:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0UaP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, Luca here, welcome to a weekly edition of the</em>&#128161;<em> <strong>Monday Ideas</strong> </em>&#128161;<em> from Refactoring! To access all our articles, library, and community, subscribe to the <a href="https://refactoring.fm/about">full version</a>:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Make your team ship faster!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p><em>Resources: </em>&#127963;&#65039;<em> <strong><a href="https://refactoring.fm/p/library-tracks">Library</a></strong> &#8226; </em>&#128172;<em> <strong><a href="https://refactoring.fm/p/refactoring-community">Community</a> </strong>&#8226;<strong> </strong></em><strong>&#127897;&#65039;</strong><em><strong> <a href="https://refactoring.fm/podcast">Podcast</a> </strong>&#8226; </em>&#128227;<em> <strong><a href="https://airtable.com/app6T1no2xUAkvqqI/pagmohBDjtBNk9dKY/form">Advertise</a> </strong></em></p><div><hr></div><blockquote><h2>Build with <em><a href="https://www.augmentcode.com/product/intent">Intent</a> &#128301;</em></h2><p><em>This is brought to you by today&#8217;s sponsor, <a href="https://www.augmentcode.com/">Augment Code</a>!</em></p><p><em>It is no secret that I am a fan of what Augment Code is building, and I am especially a big fan of <a href="https://www.augmentcode.com/product/intent">Intent</a>, their developer workspace where agents are coordinated via live specs.</em></p><p><em>Intent was created by Amelia Wattenberger, with whom I <a href="https://refactoring.fm/p/what-comes-after-the-ide-with-amelia">talked on the podcast</a> last month about what comes after the IDE. We also wrote an <a href="https://refactoring.fm/p/the-telephone-game-of-software">article together</a> about what it means to translate specs at different altitudes, from the original product intent (pun intended) to the final code. We called it: the telephone game of software &#128071;</em></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;deeea281-350d-4765-9d82-6dffa025625d&quot;,&quot;caption&quot;:&quot;My favorite byproduct of the AI shift in engineering is that it is making us think harder at workflows and ideas we have taken for granted for a long time.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Telephone Game of Software&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000}],&quot;post_date&quot;:&quot;2026-03-25T08:42:59.887Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b8713384-a4c2-4057-b6c2-731abcc0d68b_2382x1580.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/the-telephone-game-of-software&quot;,&quot;section_name&quot;:&quot;&#129525; Essays&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:191761060,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:36,&quot;comment_count&quot;:0,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p><em>You can learn more about Intent, Augment Code, and Amelia&#8217;s work below.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.augmentcode.com/product/intent&quot;,&quot;text&quot;:&quot;Learn more about Intent&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.augmentcode.com/product/intent"><span>Learn more about Intent</span></a></p></blockquote><div><hr></div><h1>1) &#127919; In your AI context, share the <em>why</em></h1><p>Most of the conversation about how to create good AI context for coding focuses on <em>tactical</em> parts, like PRDs, tech specs, or dev process conventions.</p><p>These are obviously important, and basically cover <em>what</em> should be done, and <em>how</em>.</p><p>There is a third category of context, though, that feels a bit underrated today, which is about the <strong>why</strong>.</p><p>Let&#8217;s say you are not simply developing a new feature, but you want to get help from the AI to find architecture improvements, refactoring opportunities, or make some product strategy. To do that, the <em>what</em> is still up in the air, and the <em>how</em> is largely not relevant yet. Instead, you need context on <em>why</em> something would be valuable to have.</p><p><em><strong>Why</strong></em><strong> context</strong> can be evergreen (e.g. your principles, values, the business domain), about the future (e.g. your quarter goals), and about the past (e.g. your past goals, ADRs).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0UaP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0UaP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png 424w, https://substackcdn.com/image/fetch/$s_!0UaP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png 848w, https://substackcdn.com/image/fetch/$s_!0UaP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!0UaP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0UaP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png" width="1456" height="844" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:844,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:387654,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://refactoring.fm/i/193052967?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0UaP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png 424w, https://substackcdn.com/image/fetch/$s_!0UaP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png 848w, https://substackcdn.com/image/fetch/$s_!0UaP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!0UaP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c80fb31-523a-4379-a3f9-e829d6bdca3a_2042x1184.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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 stuff is not <em>always</em> important to perform some task, but in cases where it is, it is invaluable. So, before you even think about AI, you can ask yourself questions like:</p><ul><li><p><em>How much of this is written down?</em></p></li><li><p><em>Has everyone access to it? Do they know where it is?</em></p></li><li><p><em>Do people think it&#8217;s important? What does it happen if they ignore it?</em></p></li></ul><p>I wrote a full guide about context engineering earlier this year &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:177872864,&quot;url&quot;:&quot;https://refactoring.fm/p/managing-context-for-ai-coding&quot;,&quot;publication_id&quot;:64099,&quot;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 Manage Context in AI Coding &#128209;&quot;,&quot;truncated_body_text&quot;:&quot;Last month I had the privilege to keynote at the CTO Craft Conference in Berlin, where I tried to paint a broad picture of how engineering teams are using AI today.&quot;,&quot;date&quot;:&quot;2025-11-05T08:01:35.835Z&quot;,&quot;like_count&quot;:57,&quot;comment_count&quot;:1,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;profile_set_up_at&quot;:&quot;2021-06-04T06:23:53.965Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-11-15T17:35:42.775Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:247311,&quot;user_id&quot;:6835984,&quot;publication_id&quot;:64099,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:64099,&quot;name&quot;:&quot;Refactoring&quot;,&quot;subdomain&quot;:&quot;refactoring&quot;,&quot;custom_domain&quot;:&quot;refactoring.fm&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Learn how to make your engineering team ship faster and better. Read weekly by 170,000+ engineers and managers&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;author_id&quot;:6835984,&quot;primary_user_id&quot;:6835984,&quot;theme_var_background_pop&quot;:&quot;#2096ff&quot;,&quot;created_at&quot;:&quot;2020-07-06T14:20:40.525Z&quot;,&quot;email_from_name&quot;:&quot;&#127744; Refactoring&quot;,&quot;copyright&quot;:&quot;Refactoring ETS&quot;,&quot;founding_plan_name&quot;:&quot;&#127942; Community plan&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79ab7b78-71cf-42d2-a607-3aa18960cb64_2400x572.png&quot;}}],&quot;twitter_screen_name&quot;:&quot;lucaronin&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000,&quot;status&quot;:{&quot;bestsellerTier&quot;:1000,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:1000},&quot;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/managing-context-for-ai-coding?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!CR5A!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png" loading="lazy"><span class="embedded-post-publication-name">Refactoring</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">How to Manage Context in AI Coding &#128209;</div></div><div class="embedded-post-body">Last month I had the privilege to keynote at the CTO Craft Conference in Berlin, where I tried to paint a broad picture of how engineering teams are using AI today&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">9 months ago &#183; 57 likes &#183; 1 comment &#183; Luca Rossi</div></a></div><div><hr></div><h1>2) &#127897;&#65039; Functional vs cross-functional teams</h1><p>A couple of months ago I interviewed <strong>Gon&#231;alo Silva</strong>, CTO at <a href="https://doist.com/">Doist</a>.</p><p>Among other things, Gon&#231;alo told me Doist organizes engineering into functional teams (Android, iOS, Frontend, Backend, &#8230;) rather than cross-functional product teams, because it allows them to create a culture of deep expertise and passion:</p><blockquote><p><em><strong>&#8220;When we hire for our Android team, we go after people who are really passionate about Android, and then we put them in an Android team where they own the Android apps. When you pair control and passion, usually you get a lot of taste back.&#8221;</strong></em></p></blockquote><p>To ship features, they assemble temporary squads each quarter, staffing them based on project needs. This creates flexibility: e.g. when COVID hit, they were able to pivot almost the entire company to work on <a href="https://twist.com/">Twist</a> within four weeks.</p><p>The flip side is that <em>continuity</em> can suffer. A feature might launch, but two months later when interesting feedback arrives, nobody&#8217;s actively working on it anymore. So there&#8217;s no perfect system, and Doist intentionally optimizes for agility over long-lived domain expertise.</p><p>Their product team is also extremely lean: just four people (including the head of product) supporting about 30 engineers working on product-related work. Engineers are expected to be autonomous and opinionated: they dogfood their own products daily, so everyone has informed perspectives on what to build next.</p><p>Here is the full interview with Gon&#231;alo:</p><div id="youtube2-zaGmjQzmR-I" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;zaGmjQzmR-I&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/zaGmjQzmR-I?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>You can also find it on &#127911; <strong><a href="https://open.spotify.com/episode/3NCLKPNCEHKiqOTjPQi1rb?si=10d44545a12847ea">Spotify</a></strong> and &#128236; <strong><a href="https://refactoring.fm/p/how-todoist-is-built-with-goncalo">Substack</a></strong></p><div><hr></div><h1>&#128218; Weekly Readings</h1><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://apenwarr.ca/log/20260316">Every Layer of Review Makes You 10x Slower</a></h4><h5>11 min &#8226; by Avery Pennarun</h5><p>Awesome piece that many many people I know need to read. Every layer of review makes your process exponentially slower &#8212; and AI can speed up the coding part, but it does nothing against the time spent <em>waiting</em> for others to do stuff. Reducing reviews is less about AI and more about building a culture of quality and trust.</p><div><hr></div><h4>&#129352; <a href="https://annievella.com/posts/the-middle-loop/">The Middle Loop</a></h4><h5>7 min &#8226; by Annie Vella</h5><p>AI is shifting engineering work from <em>creation</em> to <em>verification</em>: Annie calls it the <em>middle loop</em>, sitting between the inner loop (writing code) and the outer loop (CI/CD, deploy). A useful mental model for how the day-to-day of engineering is evolving.</p><div><hr></div><h4>&#129353; <a href="https://alexhwoods.com/dont-let-ai-write-for-you/">Don&#8217;t Let AI Write For You</a></h4><h5>2 min &#8226; by Alex Woods</h5><p>Writing is fundamentally about <em>structuring your thinking</em>. Producing text is simply a (nice) byproduct of it. So, using LLMs to write for you undermines both your credibility and your ability to reason deeply. Use them for research and brainstorming, but the final words should be yours.</p><div><hr></div><h4>4) <a href="https://larahogan.me/blog/ai-aha-team-meetings/">AI &#8220;Aha&#8221; Team Meetings</a></h4><h5>7 min &#8226; by Lara Hogan</h5><p>There&#8217;s a growing gap between engineers who are thriving with AI tools and those who feel left behind. Lara held many interviews to learn more about how teams work today. She proposes regular team meetings where people share their AI <em>aha moments</em>: tips, tricks, and even mistakes.</p><div><hr></div><p>And that&#8217;s it for today! If you are finding this newsletter valuable, <strong>subscribe to the full version</strong>!</p><p>1700+ engineers and managers have joined already, and they receive our flagship weekly long-form articles about <strong>how to ship faster</strong> and <strong>work better together</strong>! Learn more about the <a href="http://refactoring.fm/about">benefits of the paid plan here</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Make your team ship faster!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p>See you next week!<br>Luca</p>]]></content:encoded></item><item><title><![CDATA[Leadership archetypes, perfect teams, and weekly readings 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #201]]></description><link>https://refactoring.fm/p/leadership-archetypes-perfect-teams</link><guid isPermaLink="false">https://refactoring.fm/p/leadership-archetypes-perfect-teams</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 30 Mar 2026 07:02:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!JM_W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facd641e3-e58c-4c97-af71-69d0c511124e_594x494.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, Luca here, welcome to a weekly edition of the</em>&#128161;<em> <strong>Monday Ideas</strong> </em>&#128161;<em> from Refactoring! </em></p><p><em>I am repeating <a href="https://refactoring.fm/p/slave-software-polarities-and-weekly">last week&#8217;s experiment</a> of adding the best articles I have read last week, other than the classic weekly ideas. Let me know if you like it!</em></p><p><em>To access all our articles, library, community, and support my work, subscribe to the <a href="https://refactoring.fm/about">full version of Refactoring</a>.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://refactoring.fm/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><blockquote><h2><em>Secure your mobile app and the APIs it interacts with</em></h2><p><em>Brought to you by this week&#8217;s sponsor &#8212; <a href="https://www.vpdae.com/redirect/wkl41xmowtqcvbv0st8spbxdxcw">Guardsquare</a>!</em></p><p><em>What if your APIs are trusting the wrong mobile apps? Cloned apps. Repackaged builds. Instrumented devices. Automated fraud. Most attackers don&#8217;t break in&#8212;they just log in.</em></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JM_W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facd641e3-e58c-4c97-af71-69d0c511124e_594x494.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JM_W!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facd641e3-e58c-4c97-af71-69d0c511124e_594x494.png 424w, https://substackcdn.com/image/fetch/$s_!JM_W!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facd641e3-e58c-4c97-af71-69d0c511124e_594x494.png 848w, https://substackcdn.com/image/fetch/$s_!JM_W!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facd641e3-e58c-4c97-af71-69d0c511124e_594x494.png 1272w, https://substackcdn.com/image/fetch/$s_!JM_W!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facd641e3-e58c-4c97-af71-69d0c511124e_594x494.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JM_W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facd641e3-e58c-4c97-af71-69d0c511124e_594x494.png" width="254" height="211.23905723905725" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/acd641e3-e58c-4c97-af71-69d0c511124e_594x494.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:494,&quot;width&quot;:594,&quot;resizeWidth&quot;:254,&quot;bytes&quot;:126165,&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/192074275?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facd641e3-e58c-4c97-af71-69d0c511124e_594x494.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_!JM_W!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facd641e3-e58c-4c97-af71-69d0c511124e_594x494.png 424w, https://substackcdn.com/image/fetch/$s_!JM_W!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facd641e3-e58c-4c97-af71-69d0c511124e_594x494.png 848w, https://substackcdn.com/image/fetch/$s_!JM_W!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facd641e3-e58c-4c97-af71-69d0c511124e_594x494.png 1272w, https://substackcdn.com/image/fetch/$s_!JM_W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facd641e3-e58c-4c97-af71-69d0c511124e_594x494.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><em>On March 31 we&#8217;ll unpack what mobile attackers are actually doing and why securing only the app or API is no longer enough &#128071;</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.vpdae.com/redirect/wkl41xmowtqcvbv0st8spbxdxcw&quot;,&quot;text&quot;:&quot;Register now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.vpdae.com/redirect/wkl41xmowtqcvbv0st8spbxdxcw"><span>Register now</span></a></p></blockquote><div><hr></div><h1>1) &#129525; Tech Leadership Archetypes</h1><p>In February we published a great guide by the one and only Pat Kua about the various <a href="https://refactoring.fm/p/cto-archetypes">CTO Archetypes</a>. Last year we also published a similar one <a href="https://refactoring.fm/p/the-engineering-manager-archetypes">about Engineering Managers</a>.</p><p>I like <em>archetype</em> articles, because I believe they are useful for many things:</p><h3>1) Clarify expectations</h3><p>Two people with the same title can have radically different responsibilities. Naming the archetype you&#8217;re operating in helps make explicit where you&#8217;re spending time and what you&#8217;re optimizing for.</p><h3>2) Sense how the role evolves over time</h3><p>Archetypes are not a personality quiz, also because people, orgs, and roles change over time. They are most useful as point-in-time references. E.g. as a company grows from startup to international brand, the CTO role might shift from Startup to Scale-Up to M&amp;A. The same applies individually: a Group CTO might leave to found a company, becoming a Founder CTO.</p><h3>3) Identify signals when hiring</h3><p>Strong candidates use interviews to both sense <em>and shape</em> the role. Archetypes help you understand a company&#8217;s situation and spot mismatches early. If the role doesn&#8217;t align with your strengths, the model gives you language to say: <em>&#8220;This is a valid role, but not the one I&#8217;m best suited for.&#8221;</em></p><h3>4) Plan intentional career growth</h3><p>Many tech leaders excel at one company but struggle at another. Archetypes explain why: they help you reflect on where your strengths play best and what you&#8217;d need to develop to grow into other archetypes.</p><p>You can find the full guides below &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;384a7216-9379-411e-b65b-df75e38e5869&quot;,&quot;caption&quot;:&quot;Hey! This week I am excited to host an original article by Pat Kua &#8212; a coach and CTO with 25+ years of experience in tech, and one of my favorite authors, whose ideas I have often quoted and mentioned here on Refactoring!&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&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;CTO Archetypes &#129513;&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-04T08:01:25.651Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Ksz1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71a66bed-5310-4054-8f99-8243a9510899_2918x1918.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/cto-archetypes&quot;,&quot;section_name&quot;:&quot;&#129525; Essays&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:186312746,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:50,&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 class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;9e0b3cba-9ebf-46bf-869e-11f25de58dcf&quot;,&quot;caption&quot;:&quot;Hey, Luca here! Today&#8217;s article is from Thiago Ghisi, a dear friend and one of the most thoughtful engineering writers I know.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Engineering Manager Archetypes &#128202;&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000},{&quot;id&quot;:2072940,&quot;name&quot;:&quot;Thiago Ghisi&quot;,&quot;bio&quot;:&quot;Helping Staff+ Engineers, EMs &amp; Tech Execs scale teams, grow careers &amp; fix the hard stuff. Previously Eng. Director @ Nubank, Apple, Amex, ThoughtWorks. LinkedIn: linkedin.com/in/thiagoghisi&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%2F784c8d44-3f15-4fe6-8db0-d9bcb340ea72_400x400.jpeg&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://thiagoghisi.substack.com/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://thiagoghisi.substack.com&quot;,&quot;primaryPublicationName&quot;:&quot;Ghisi's Newsletter&quot;,&quot;primaryPublicationId&quot;:1073383}],&quot;post_date&quot;:&quot;2025-06-04T06:01:01.438Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c3bb61f-fc24-4ba7-b4d9-4c54256d81df_3068x2034.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/the-engineering-manager-archetypes&quot;,&quot;section_name&quot;:&quot;&#129525; Essays&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:164997143,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:70,&quot;comment_count&quot;:4,&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><h1>2) &#127897;&#65039; The Perfect Team</h1><p>At the end of last year <a href="https://refactoring.fm/p/how-to-build-product-development">I interviewed Rob Zuber</a>, CTO of CircleCI.</p><p>At some point I asked him what his <em>ideal</em> product team looked like &#8212; I mean the atomic unit of &lt;10 people building a product together.</p><p>His answer focused on a single quality: <strong>speed of learning</strong>. The fundamental question the team needs to ask all the time is: <em>what&#8217;s the fastest way to get the information needed to make the next decision?</em></p><p>Granted, simply asking the question is not enough, because there exist plenty of *bad answers.*To get <em>good</em> answers, Rob believes the team needs three factors:</p><ul><li><p>&#127919; <strong>Clear business understanding</strong> &#8212; every engineer needs to understand what the business is trying to achieve and why</p></li><li><p>&#9889; <strong>Rapid experimentation mindset</strong> &#8212; willingness to test hypotheses quickly rather than debate endlessly</p></li><li><p>&#129309; <strong>High trust environment</strong> &#8212; team members can admit when they&#8217;re stuck and ask for help without fear. Build the trust needed for anyone to be able to raise their hand and say &#8220;<em>I have no idea how to do this</em>&#8221;<em>.</em></p></li></ul><p>Here is the full interview with Rob:</p><div id="youtube2-FBkcI6LzyA0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;FBkcI6LzyA0&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/FBkcI6LzyA0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>You can also find it on &#127911; <strong><a href="https://open.spotify.com/episode/6FdD74W8LTRfFZJVCWxG0g?si=48a16d86e2ad426c">Spotify</a></strong> and &#128236; <strong><a href="https://refactoring.fm/p/how-to-build-product-development">Substack</a></strong></p><div><hr></div><h1>3) &#128218; Weekly readings</h1><p>Finally, here are the best articles I have read this week:</p><div><hr></div><h4>&#129351; <a href="https://martinfowler.com/bliki/ArchitectureDecisionRecord.html">Architecture Decision Record</a></h4><h5>8 min &#8226; by Martin Fowler</h5><p>Maintaining ADRs is a great practice, which only got more useful with AI. Martin&#8217;s piece is a great primer for them, also linking to useful tools.</p><div><hr></div><h4>&#129352; <a href="https://www.citriniresearch.com/p/2028gic">The 2028 Global Intelligence Crisis</a></h4><h5>25 min &#8226; by Citrini Research</h5><p>I finally caught up with this viral imaginary report from 2028, that was published last month. Very useful to read to reflect on the second and third order effects of AI. It was a good test for my own beliefs: which predictions do I find reasonable? Which dubious?</p><div><hr></div><h4>&#129353; <a href="https://terriblesoftware.org/2026/03/03/nobody-gets-promoted-for-simplicity/">Nobody Gets Promoted for Simplicity</a></h4><h5>8 min &#8226; by Matheus Lima</h5><p>Tale as old as time &#8212; we most often reward complexity as a display of brilliance, and ignore simplicity. Engineers who over-build get a compelling narrative, while the ones who ship the simplest (and thus the best!) thing get&#8230; nothing.</p><div><hr></div><h4>4) <a href="https://randsinrepose.com/archives/better-faster-and-even-more/">Better, Faster, and Even More</a></h4><h5>10 min &#8226; by Rands</h5><p>I am really enjoying Rands&#8217; blog lately. It has become a blend of classic Rands&#8217; management advice and occasional tales from his own AI experiments. This is one of the latter. I also love how practical he explains these &#8212; there are code snippets!</p><div><hr></div><p>And that&#8217;s it for today! If you are finding this newsletter valuable, <strong>subscribe to the full version</strong>!</p><p>1700+ engineers and managers have joined already, and they receive our flagship weekly long-form articles about <strong>how to ship faster</strong> and <strong>work better together</strong>! Learn more about the <a href="http://refactoring.fm/about">benefits of the paid plan here</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Make your team ship faster!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p>See you next week!<br>Luca</p>]]></content:encoded></item></channel></rss>