<?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>Mon, 29 Jun 2026 10:14:47 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[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;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">a month 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;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">2 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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>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;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">2 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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>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;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">5 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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><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;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">3 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;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">8 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;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">3 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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>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;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">4 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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>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;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&amp;embedding_publication_id=64099&amp;embedding_post_id=170699182"><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">10 months 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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>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;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">5 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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Here 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;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">4 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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you combine <strong>qualitative</strong> signal from engineers&#8217; opinions with <strong>quantitative</strong> data from your systems, you&#8217;ll be <em>unstoppable</em>. But counterintuitively, most managers find it harder to do the former&#8212;have good conversations to identify problems&#8212;than the latter.</p><p>So, I am a fan of doing the so-called <strong>Listening Tour</strong>, whose name I lifted from <em><a href="https://developerexperiencebook.com/">Frictionless</a></em>, but whose execution I tweaked based on my own experience. I wrote a full piece about it at the start of the year, and I still stand by it &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:185828322,&quot;url&quot;:&quot;https://refactoring.fm/p/the-listening-tour&quot;,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;The Listening Tour &#128222;&quot;,&quot;truncated_body_text&quot;:&quot;For the last month I have been running a program for CTOs and VPs of small to mid-size companies to help them make their engineering teams ship faster.&quot;,&quot;date&quot;:&quot;2026-01-28T08:00:22.619Z&quot;,&quot;like_count&quot;:35,&quot;comment_count&quot;:3,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;profile_set_up_at&quot;:&quot;2021-06-04T06:23:53.965Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-11-15T17:35:42.775Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:247311,&quot;user_id&quot;:6835984,&quot;publication_id&quot;:64099,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:64099,&quot;name&quot;:&quot;Refactoring&quot;,&quot;subdomain&quot;:&quot;refactoring&quot;,&quot;custom_domain&quot;:&quot;refactoring.fm&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Learn how to make your engineering team ship faster and better. Read weekly by 170,000+ engineers and managers&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;author_id&quot;:6835984,&quot;primary_user_id&quot;:6835984,&quot;theme_var_background_pop&quot;:&quot;#2096ff&quot;,&quot;created_at&quot;:&quot;2020-07-06T14:20:40.525Z&quot;,&quot;email_from_name&quot;:&quot;&#127744; Refactoring&quot;,&quot;copyright&quot;:&quot;Refactoring ETS&quot;,&quot;founding_plan_name&quot;:&quot;&#127942; Community plan&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79ab7b78-71cf-42d2-a607-3aa18960cb64_2400x572.png&quot;}}],&quot;twitter_screen_name&quot;:&quot;lucaronin&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000,&quot;status&quot;:{&quot;bestsellerTier&quot;:1000,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:1000},&quot;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&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">5 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 role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This stuff is not <em>always</em> important to perform some task, but in cases where it is, it is invaluable. So, before you even think about AI, you can ask yourself questions like:</p><ul><li><p><em>How much of this is written down?</em></p></li><li><p><em>Has everyone access to it? Do they know where it is?</em></p></li><li><p><em>Do people think it&#8217;s important? What does it happen if they ignore it?</em></p></li></ul><p>I wrote a full guide about context engineering earlier this year &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:177872864,&quot;url&quot;:&quot;https://refactoring.fm/p/managing-context-for-ai-coding&quot;,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;How to Manage Context in AI Coding &#128209;&quot;,&quot;truncated_body_text&quot;:&quot;Last month I had the privilege to keynote at the CTO Craft Conference in Berlin, where I tried to paint a broad picture of how engineering teams are using AI today.&quot;,&quot;date&quot;:&quot;2025-11-05T08:01:35.835Z&quot;,&quot;like_count&quot;:57,&quot;comment_count&quot;:1,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;profile_set_up_at&quot;:&quot;2021-06-04T06:23:53.965Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-11-15T17:35:42.775Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:247311,&quot;user_id&quot;:6835984,&quot;publication_id&quot;:64099,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:64099,&quot;name&quot;:&quot;Refactoring&quot;,&quot;subdomain&quot;:&quot;refactoring&quot;,&quot;custom_domain&quot;:&quot;refactoring.fm&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Learn how to make your engineering team ship faster and better. Read weekly by 170,000+ engineers and managers&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;author_id&quot;:6835984,&quot;primary_user_id&quot;:6835984,&quot;theme_var_background_pop&quot;:&quot;#2096ff&quot;,&quot;created_at&quot;:&quot;2020-07-06T14:20:40.525Z&quot;,&quot;email_from_name&quot;:&quot;&#127744; Refactoring&quot;,&quot;copyright&quot;:&quot;Refactoring ETS&quot;,&quot;founding_plan_name&quot;:&quot;&#127942; Community plan&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79ab7b78-71cf-42d2-a607-3aa18960cb64_2400x572.png&quot;}}],&quot;twitter_screen_name&quot;:&quot;lucaronin&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000,&quot;status&quot;:{&quot;bestsellerTier&quot;:1000,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:1000},&quot;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&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&amp;embedding_publication_id=64099&amp;embedding_post_id=177872864"><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">8 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><item><title><![CDATA[Slave software, polarities, and weekly readings 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #200!]]></description><link>https://refactoring.fm/p/slave-software-polarities-and-weekly</link><guid isPermaLink="false">https://refactoring.fm/p/slave-software-polarities-and-weekly</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 23 Mar 2026 08:01:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CR5A!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey there, Luca here! This is our <strong>200th edition</strong> of the Monday Ideas! &#127881;&#127882;</p><p>To celebrate this milestone I want to experiment with some tweaks. Instead of our classic three ideas, today I am going to post:</p><ol><li><p>&#129525; One idea from a recent <strong>article</strong> I wrote.</p></li><li><p>&#127897;&#65039; One idea from a recent <strong>podcast interview</strong> we did.</p></li><li><p>&#128218; A small digest of the <strong>best articles</strong> I have read this week (in the style of what I have been doing with <a href="https://hybridhacker.email/">Hybrid Hacker</a>).</p></li></ol><p>This should turn this Monday email into a <strong>weekly brief</strong> that gives you some food for thought and also keeps you posted about relevant stuff that is published outside of Refactoring.</p><p>I will include a poll at the end where you can <em>rate</em> this edition so I know what you think about it!</p><div><hr></div><blockquote><h2><em>Brought to you by <a href="https://getunblocked.com/?utm_source=refactoring&amp;utm_medium=email&amp;utm_campaign=contextengine">Unblocked</a>! </em>&#128307;</h2><p>It&#8217;s not a secret that I am a big fan of what the guys at Unblocked are building &#8212; to me they are <em>the</em> <em>authority</em> about giving good context to AI agents. </p><p>I <a href="https://refactoring.fm/p/the-future-of-dev-tools-with-dennis?utm_source=publication-search">interviewed their founder</a> last year and we also wrote a <a href="https://refactoring.fm/p/managing-context-for-ai-coding?utm_source=publication-search">full guide together</a>, which is one of our most popular articles <em>ever</em>.</p><p>Unblocked gives coding agents the <strong>organizational knowledge</strong> to generate mergeable code without the back and forth. It pulls context from across your engineering stack, resolves conflicts, and cuts the rework cycle by delivering only what agents need for the task at hand.</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;See how Unblocked works&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>See how Unblocked works</span></a></p></blockquote><div><hr></div><h1>1) &#129525; The rise of <em>slave</em> software</h1><p>There are a lot of situations in which comparing LLMs to people makes for a good analogy. One way LLMs <em>differ</em> from humans, though, is that they&#8217;re perfectly fine doing boring, repetitive work. All day, every day.</p><p>This changes the scope of human work, but I believe also the scope of <em>software itself</em>.</p><p>There is an awful lot of automations and internal tools that are patched together with Zapier, n8n, custom code here and there, that I suspect just aren&#8217;t worth building anymore when you can tell an agent &#8220;<em>every hour, go here, copy this, and paste it there</em>&#8221;.</p><p>Granted, deterministic software would be more efficient for some of these tasks, but the cost of building it is dramatically higher than a one-line instruction in a chat. Even in the age of AI-generated software, nothing beats just telling a <em>slave</em> to do the thing.</p><p>Also, LLMs can handle ambiguity in a way that regular software can&#8217;t (even if written by AI). For a lot of tasks, they can just wing it, and things more or less work.</p><p>Example: I wanted to export my ~10,000-note Notion workspace to markdown files for years, but the complexity always stopped me. Earlier this month OpenClaw did it perfectly, writing scripts for API calls but also improvising the tricky parts, figuring things out on the go. Just like I would have done manually, except that would have taken me weeks.</p><p>So I believe there&#8217;s a growing class of problems for which we won&#8217;t write software anymore. We&#8217;ll just <em>throw an AI slave</em> at them.</p><p>I wrote more about my experience with OpenClaw and personal agents in this recent piece:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;60643f35-3809-4787-903e-23d2b2f6fca3&quot;,&quot;caption&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;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;My experience with OpenClaw &#129438;&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-11T08:00:09.106Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!ofse!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fbaa311-0b83-437c-ac1f-40dae96696c8_3172x1404.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/my-experience-with-openclaw&quot;,&quot;section_name&quot;:&quot;&#129525; Essays&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:187528754,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:51,&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>2) &#127897;&#65039; Be skeptical of <em>polarities</em></h1><p>Two weeks ago <a href="https://refactoring.fm/p/leading-beyond-the-framework-with">I interviewed Richard Hughes-Jones</a>, a professional tech coach with 20+ years of experience.</p><p>One of the ideas that stuck the most with me is what he called <em>polarity work</em>: helping leaders see that what feels like an either/or choice is actually a both/and situation. A few classic examples:</p><ul><li><p><strong>Empowerment vs directness</strong> &#8212; leaders may think they can <em>either</em> empower their teams or have strong opinions about what to do. In most situations, you can find ways to do both at once.</p></li><li><p><strong>Team&#8217;s needs vs business&#8217; needs</strong> &#8212; seeing these two as being <em>at odds</em> is usually a limiting belief that prevents you from finding true good solutions.</p></li></ul><p>You can find the full interview below &#128071; and on <a href="https://www.youtube.com/watch?v=AtIm6kjqqjI">Youtube</a> and <a href="https://open.spotify.com/episode/2ChxJlcpyrgwpF0YXzgTnl?si=ac4b289b0ce2414f">Spotify</a></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;2bef1c1b-b476-48f3-8ede-7ce109670464&quot;,&quot;caption&quot;:&quot;Listen now:&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;Leading Beyond the Framework &#129517; &#8212; with Richard Hughes-Jones&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;bio&quot;:&quot;I write everyday about how to make great software and work well with humans, to 60K+ friends.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6107486-b701-4109-8f21-f450fed6e277_652x690.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:1000}],&quot;post_date&quot;:&quot;2026-03-06T08:42:52.133Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e1705c52-fe5b-44a9-a626-345d61128117_2560x1440.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/leading-beyond-the-framework-with&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;2f3d908f-3334-44da-9cbe-199290a0098d&quot;,&quot;id&quot;:189883444,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:11,&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>3) &#128218; Weekly readings</h1><p>Here are the top three articles I have read:</p><h4><a href="https://annievella.com/posts/finding-comfort-in-the-uncertainty/">Finding Comfort in the Uncertainty</a> &#129351;</h4><h5>8 min &#8226; by Annie Vella</h5><p>Annie attended <a href="https://www.thoughtworks.com/about-us/events/the-future-of-software-development">the future of software development retreat</a>, hosted by Martin Fowler and Thoughtworks, and reported back on her thoughts, which I really enjoyed. I love the eight themes she extracted and how she framed them.</p><h4><a href="https://antirez.com/news/162">GNU and the AI Reimplementations</a> &#129352;</h4><h5>9 min &#8226; by antirez</h5><p>Antirez <em>implicitly</em> comments on recent controversies about AI reimplementations (<a href="https://github.com/chardet/chardet/issues/327">1</a>, <a href="https://blog.cloudflare.com/vinext/">2</a>) by looking at examples from the past. I loved the historical perspective and also the new mental model he proposes: what matters now is <em>design</em>, <em>novelty</em>, and <em>craft</em>, not just the code itself.</p><h4><a href="https://boz.com/articles/prioritize-relatively">Prioritize Relatively</a> &#129353;</h4><h5>2 min &#8226; by Boz</h5><p>Super short post in Boz&#8217;s signature style, about how you should not prioritize things in isolation &#8212; but only prioritize them <em>against each other</em>.</p><div><hr></div><div class="poll-embed" data-attrs="{&quot;id&quot;:479267}" data-component-name="PollToDOM"></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[Layoffs, normal engineers, and second brains 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #199]]></description><link>https://refactoring.fm/p/layoffs-normal-engineers-and-second</link><guid isPermaLink="false">https://refactoring.fm/p/layoffs-normal-engineers-and-second</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 16 Mar 2026 08:01:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FnQV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55f09a4-d716-44e7-8d2d-fb9329f87f49_2676x1092.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, Luca here, welcome to a weekly edition of the</em>&#128161;<em> <strong>Monday Ideas</strong> </em>&#128161;<em> from Refactoring! To access all our articles, library, and community, subscribe to the <a href="https://refactoring.fm/about">full version</a>.</em></p><div><hr></div><blockquote><h3>&#128499;&#65039; Fill out a quick research survey and win $100</h3><p><em>This is sponsored by&#8230; a startup in stealth mode! </em>&#128517;</p><p>Share your experiences about the alignment of Product and Engineering organizations in the quick survey below. 10 randomly selected participants will get a <strong>$100 Amazon gift card</strong>!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://form.typeform.com/to/ZKNHS6jW&quot;,&quot;text&quot;:&quot;Fill out a 3-min survey&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://form.typeform.com/to/ZKNHS6jW"><span>Fill out a 3-min survey</span></a></p></blockquote><div><hr></div><h2>1) &#9986;&#65039; Layoffs predictions are (probably) overblown</h2><p>The recent <a href="https://open.substack.com/pub/conorbronsdon/p/block-cut-4000-jobs-and-blamed-ai?utm_source=share&amp;utm_medium=android&amp;">brutal layoffs at Block</a> have made headlines and reignited the conversation about the job market for engineers, AI, and so on.</p><p>The problem with headlines is <em>selection bias</em>: layoffs always make the news, but are they representative of the state of the market?</p><p>It doesn&#8217;t seem so.</p><p>On Indeed, for example, job postings for software engineers have steadily increased since mid last year &#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_!FnQV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55f09a4-d716-44e7-8d2d-fb9329f87f49_2676x1092.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FnQV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55f09a4-d716-44e7-8d2d-fb9329f87f49_2676x1092.png 424w, https://substackcdn.com/image/fetch/$s_!FnQV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55f09a4-d716-44e7-8d2d-fb9329f87f49_2676x1092.png 848w, https://substackcdn.com/image/fetch/$s_!FnQV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55f09a4-d716-44e7-8d2d-fb9329f87f49_2676x1092.png 1272w, https://substackcdn.com/image/fetch/$s_!FnQV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55f09a4-d716-44e7-8d2d-fb9329f87f49_2676x1092.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FnQV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55f09a4-d716-44e7-8d2d-fb9329f87f49_2676x1092.png" width="1456" height="594" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b55f09a4-d716-44e7-8d2d-fb9329f87f49_2676x1092.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:594,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:185838,&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/190814684?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55f09a4-d716-44e7-8d2d-fb9329f87f49_2676x1092.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_!FnQV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55f09a4-d716-44e7-8d2d-fb9329f87f49_2676x1092.png 424w, https://substackcdn.com/image/fetch/$s_!FnQV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55f09a4-d716-44e7-8d2d-fb9329f87f49_2676x1092.png 848w, https://substackcdn.com/image/fetch/$s_!FnQV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55f09a4-d716-44e7-8d2d-fb9329f87f49_2676x1092.png 1272w, https://substackcdn.com/image/fetch/$s_!FnQV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55f09a4-d716-44e7-8d2d-fb9329f87f49_2676x1092.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And in <a href="https://refactoring.fm/p/the-state-of-ai-adoption-in-engineering">our industry report</a> from Q4 last year, we reported how Directors, VPs, and CTOs are <em>skeptical </em>about AI reducing our need for engineers. They actually think we&#8217;ll need more &#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_!2g7S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef670482-d7a1-46a0-8944-90104d73e97f_1716x742.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2g7S!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef670482-d7a1-46a0-8944-90104d73e97f_1716x742.png 424w, https://substackcdn.com/image/fetch/$s_!2g7S!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef670482-d7a1-46a0-8944-90104d73e97f_1716x742.png 848w, https://substackcdn.com/image/fetch/$s_!2g7S!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef670482-d7a1-46a0-8944-90104d73e97f_1716x742.png 1272w, https://substackcdn.com/image/fetch/$s_!2g7S!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef670482-d7a1-46a0-8944-90104d73e97f_1716x742.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2g7S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef670482-d7a1-46a0-8944-90104d73e97f_1716x742.png" width="1456" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ef670482-d7a1-46a0-8944-90104d73e97f_1716x742.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:108145,&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/190814684?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef670482-d7a1-46a0-8944-90104d73e97f_1716x742.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_!2g7S!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef670482-d7a1-46a0-8944-90104d73e97f_1716x742.png 424w, https://substackcdn.com/image/fetch/$s_!2g7S!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef670482-d7a1-46a0-8944-90104d73e97f_1716x742.png 848w, https://substackcdn.com/image/fetch/$s_!2g7S!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef670482-d7a1-46a0-8944-90104d73e97f_1716x742.png 1272w, https://substackcdn.com/image/fetch/$s_!2g7S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef670482-d7a1-46a0-8944-90104d73e97f_1716x742.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Here are a couple of revealing quotes from the survey:</p><blockquote><p><em>As cost of delivery goes down, more use cases have positive ROI so demand goes up<br>&#8212; Director of Engineering</em></p><p><em>We will continue to grow headcount. AI will simply increase the productivity and output of that headcount<br>&#8212; Director of Engineering</em></p></blockquote><p>You can find the full survey here:</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:175412279,&quot;url&quot;:&quot;https://refactoring.fm/p/the-state-of-ai-adoption-in-engineering&quot;,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;The State of AI Adoption in Engineering Teams &#128202;&quot;,&quot;truncated_body_text&quot;:&quot;Hey! I am incredibly excited to finally release our industry report on how engineering teams are using AI.&quot;,&quot;date&quot;:&quot;2025-10-08T07:02:17.190Z&quot;,&quot;like_count&quot;:50,&quot;comment_count&quot;:4,&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-state-of-ai-adoption-in-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 State of AI Adoption in Engineering Teams &#128202;</div></div><div class="embedded-post-body">Hey! I am incredibly excited to finally release our industry report on how engineering teams are using AI&#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; 50 likes &#183; 4 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>2) &#128296; In the best teams, normal people do great work</h2><p>When people talk about world-class engineering orgs, they often have in mind teams that are top-heavy with staff and principal engineers, or recruiting heavily from the ranks of ex-FAANG employees or top universities.</p><p>But I would argue that a truly great engineering org is one where you don&#8217;t <em>have</em> to be one of the &#8220;best&#8221; or most pedigreed engineers in the world to get shit done and have a lot of impact on the business.</p><p>It&#8217;s actually the other way around.</p><p>A truly great engineering org is one where perfectly normal, workaday software engineers, with decent skills and an ordinary amount of expertise, can consistently move fast, ship code, respond to users, understand the systems they&#8217;ve built, and move the business forward a little bit more, day by day, week by week.</p><p>Anyone can build an org where the most experienced, brilliant engineers in the world can build product and make progress. That&#8217;s not hard. And putting all the spotlight on individual ability has a way of letting your leaders off the hook for doing their jobs.</p><p>Instead, it is a huge competitive advantage if you can build sociotechnical systems where less experienced engineers can convert their effort and energy into product and business momentum.</p><p>We talked more about normal engineers and 10x teams in this amazing article written by Charity Majors &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:156843938,&quot;url&quot;:&quot;https://refactoring.fm/p/in-praise-of-normal-engineers&quot;,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;In Praise of \&quot;Normal\&quot; Engineers &#128736;&#65039;&quot;,&quot;truncated_body_text&quot;:&quot;Hey, Luca here! This is a new article from our brand new guest author program, where some of the best engineering writers in the world contribute to Refactoring with original pieces!&quot;,&quot;date&quot;:&quot;2025-02-12T07:02:05.804Z&quot;,&quot;like_count&quot;:99,&quot;comment_count&quot;:5,&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;:32306597,&quot;name&quot;:&quot;Charity Majors&quot;,&quot;handle&quot;:&quot;charitydotwtf&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!EAp-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7a54851-0549-41da-b041-3cfc959ec0ba_3088x2316.jpeg&quot;,&quot;bio&quot;:&quot;cofounder and CTO of honeycomb.io; pioneered modern observability. co-author of O'Reilly books \&quot;Database Reliability Engineering\&quot; and \&quot;Observability Engineering\&quot;, now wrapping up the 2nd ed. loves free software, free speech, and peaty single malts.&quot;,&quot;profile_set_up_at&quot;:&quot;2022-11-24T22:50:45.155Z&quot;,&quot;reader_installed_at&quot;:&quot;2023-08-30T02:09:51.674Z&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:5,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;subscriber&quot;,&quot;tier&quot;:5,&quot;accent_colors&quot;:null},&quot;paidPublicationIds&quot;:[10845,4756793,458709,2164237,61371,2733782,256838],&quot;subscriber&quot;:null},&quot;primaryPublicationId&quot;:2935724,&quot;primaryPublicationName&quot;:&quot;charity.wtf&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://charitydotwtf.substack.com&quot;,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://charitydotwtf.substack.com/subscribe?&quot;}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/in-praise-of-normal-engineers?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">In Praise of "Normal" Engineers &#128736;&#65039;</div></div><div class="embedded-post-body">Hey, Luca here! This is a new article from our brand new guest author program, where some of the best engineering writers in the world contribute to Refactoring with original pieces&#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; 99 likes &#183; 5 comments &#183; Luca Rossi and Charity Majors</div></a></div><div><hr></div><h2>3) &#127897;&#65039; Your second brain with Claude Code</h2><p>In January <a href="https://refactoring.fm/p/career-sabbaticals-and-self-discovery">I interviewed Thiago Ghisi</a>, who is first and foremost a good friend of mine, former Director of Engineering at Nubank, and now on a sabbatical!</p><p>During his time off Thiago got into an ambitious personal project, using Claude Code to analyze decades of personal data. He created what he calls a &#8220;second brain on steroids&#8221; by converting notes, emails, and data dumps from various services into a searchable repository of his entire digital life.</p><p>The project began with migrating 15+ years of Evernote notes to Obsidian, then expanded to include:</p><ul><li><p>&#128231; <strong>Gmail data</strong> &#8212; 20 years of emails, parsed to extract meaningful communications and create daily activity digests</p></li><li><p>&#128241; <strong>Social media dumps</strong> &#8212; Twitter, LinkedIn data converted to searchable formats</p></li><li><p>&#128218; <strong>Kindle highlights</strong> &#8212; extensive parsing of Amazon data including Whispersync information</p></li><li><p>&#127897;&#65039; <strong>Content creation</strong> &#8212; transcripts of podcast appearances and articles written</p></li></ul><blockquote><p><em>&#8220;I ended up with Claude Code, just reading those data dumps and extracting things in Markdown. For example, I got my Gmail dump... And I got Claude Code to parse all the emails that I ever sent.&#8221;</em></p></blockquote><p>He shared the full story in the interview &#128071;</p><div id="youtube2-MJnw7YVSoSU" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;MJnw7YVSoSU&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/MJnw7YVSoSU?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/1OvoINEDMGovVfOGspxXAq?si=3792bacfea024ed0">Spotify</a></strong> and &#128236; <strong><a href="https://refactoring.fm/p/career-sabbaticals-and-self-discovery">Substack</a></strong></p><div><hr></div><p>And that&#8217;s it for today! If you are finding this newsletter valuable, <strong>subscribe to the full version</strong>!</p><p>1700+ engineers and managers have joined already, and they receive our flagship weekly long-form articles about <strong>how to ship faster</strong> and <strong>work better together</strong>! Learn more about the <a href="http://refactoring.fm/about">benefits of the paid plan here</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Make your team ship faster!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p>See you next week!<br>Luca</p>]]></content:encoded></item><item><title><![CDATA[The big three questions, AI code quality, and standardization 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #198]]></description><link>https://refactoring.fm/p/the-big-three-questions-ai-code-quality</link><guid isPermaLink="false">https://refactoring.fm/p/the-big-three-questions-ai-code-quality</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 09 Mar 2026 08:02:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!M7wu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1e96952-55ea-4848-a730-269392b11820_2092x714.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, Luca here, welcome to a weekly edition of the</em>&#128161;<em> <strong>Monday Ideas</strong> </em>&#128161;<em> from Refactoring! To access all our articles, library, and community, subscribe to the <a href="https://refactoring.fm/about">full version</a>.</em></p><div><hr></div><blockquote><h3>&#128499;&#65039; Fill out a quick research survey and win $100</h3><p><em>This is sponsored by&#8230; a startup in stealth mode! </em>&#128517;</p><p>Share your experiences about the alignment of Product and Engineering organizations in the quick survey below. 10 randomly selected participants will get a <strong>$100 Amazon gift card</strong>!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://form.typeform.com/to/ZKNHS6jW&quot;,&quot;text&quot;:&quot;Fill out a 3-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/ZKNHS6jW"><span>Fill out a 3-min survey</span></a></p></blockquote><div><hr></div><h2>1) &#127933; The Big Three Behavioral Questions</h2><p>A couple of weeks ago I published <a href="https://refactoring.fm/p/how-to-master-behavioral-interviews-e75">my interview with Austen McDonald</a>, former hiring committee chair at Meta, about behavioral interviews.</p><p>Previously we also <a href="https://refactoring.fm/p/how-to-master-behavioral-interviews?utm_source=publication-search">published a guide</a> together, where we explored 1) why behaviorals today matter more than ever, and 2) how you should prepare for them.</p><p>For the latter, there are three questions I&#8217;m very confident you will hear in some variation in any behavioral interview, so it&#8217;s worth preparing for them explicitly:</p><h3>1.1) Tell me about yourself &#128587;&#8205;&#9794;&#65039;</h3><p>This is so ubiquitous it has its own acronym &#8212; TMAY (pronounced tee-may).</p><p>Your goal is to break the ice, leave a great first impression, set up context for the rest of the interview, and steer the conversation toward topics that showcase the best of your career. Here&#8217;s a structure that works:</p><ol><li><p><strong>Personal Summary</strong> &#8212; Start with a couple of sentences introducing yourself: your role, years of experience, and what you specialize in.</p></li><li><p><strong>Accomplishments</strong> &#8212; Highlight 2&#8211;3 key achievements, ideally recent ones, that show strong business value and technical difficulty.</p></li><li><p><strong>Forward-Looking Statement</strong> &#8212; End with a sentence connecting your past to the role you&#8217;re pursuing. Wrap it up and hand the conversation back to the interviewer.</p></li></ol><p>This should take 1&#8211;2 minutes max.</p><h3>1.2) Tell me about your favorite / most impactful project &#128296;</h3><p>This often comes right after TMAY, giving you the opportunity to double down on your impact. When picking what to talk about, choose the project with the most impact, scope, and personal contribution by you &#8212; regardless of how the question is phrased.</p><p>If you&#8217;re talking about a project of meaningful size, structure your response by grouping your actions around themes, then signposting those themes clearly as you speak. This makes a complex story easy to follow.</p><h3>1.3) Tell me about a conflict you resolved &#9876;&#65039;</h3><p>For this, pick a story where the stakes were high and you were highly involved. The interviewer wants to hear about the <em>behaviors</em> you demonstrated &#8212; how you navigated the situation, not just what happened. And it goes without saying, unless you are <em>really</em> confident in your storytelling, pick a story where you ended up being right.</p><p>You can find the full guide below &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:162605254,&quot;url&quot;:&quot;https://refactoring.fm/p/how-to-master-behavioral-interviews&quot;,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;How to Master Behavioral Interviews &#128222;&quot;,&quot;truncated_body_text&quot;:&quot;Hey, Luca here! This is a new article from our guest author program, where some of the best engineering writers in the world contribute to Refactoring with original pieces!&quot;,&quot;date&quot;:&quot;2025-05-07T06:00:56.616Z&quot;,&quot;like_count&quot;:36,&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;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;:59992961,&quot;name&quot;:&quot;Austen McDonald&quot;,&quot;handle&quot;:&quot;austenmc&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!901B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe807098d-a85a-41c5-aa0d-c99ffe66034a_1514x1514.jpeg&quot;,&quot;bio&quot;:&quot;Behavioral Interview Enthusiast and Former Senior Software Engineering Manager at Meta. Author of Mastering Behavioral Interviews. In 9y at FB, I supported 200+ engineers across multiple teams and chaired the iOS and Android hiring committees.&quot;,&quot;profile_set_up_at&quot;:&quot;2022-11-04T17:43:56.783Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-11-04T17:43:05.367Z&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:1,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;subscriber&quot;,&quot;tier&quot;:1,&quot;accent_colors&quot;:null},&quot;paidPublicationIds&quot;:[10845,1319561,458709],&quot;subscriber&quot;:null},&quot;primaryPublicationId&quot;:2384644,&quot;primaryPublicationName&quot;:&quot;Mastering Behavioral Interviews&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://thebehavioral.substack.com&quot;,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://thebehavioral.substack.com/subscribe?&quot;}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/how-to-master-behavioral-interviews?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 Master Behavioral Interviews &#128222;</div></div><div class="embedded-post-body">Hey, Luca here! This is a new article from our guest author program, where some of the best engineering writers in the world contribute to Refactoring with original pieces&#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; 36 likes &#183; 1 comment &#183; Luca Rossi and Austen McDonald</div></a></div><div><hr></div><h2>2) &#128296; AI should improve your code quality</h2><p>Code quality is the #1 concern engineers have about AI. In fact, the dominant narrative is: AI will make you ship more code in less time, but you&#8217;ll have less control over it, and it&#8217;ll be riddled with bugs.</p><p>This <em>can</em> be true &#8212; but it&#8217;s not inevitable, and I don&#8217;t think it&#8217;s the best way to use AI.</p><p>What&#8217;s often overlooked is that AI is excellent at <strong>reasoning about existing code</strong>, which is at the core of reviewing and improving code. AI is fantastic at picking up code smells, security vulnerabilities, missing tests, and even team-specific issues like adherence to your own best practices and conventions.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!M7wu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1e96952-55ea-4848-a730-269392b11820_2092x714.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M7wu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1e96952-55ea-4848-a730-269392b11820_2092x714.png 424w, https://substackcdn.com/image/fetch/$s_!M7wu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1e96952-55ea-4848-a730-269392b11820_2092x714.png 848w, https://substackcdn.com/image/fetch/$s_!M7wu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1e96952-55ea-4848-a730-269392b11820_2092x714.png 1272w, https://substackcdn.com/image/fetch/$s_!M7wu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1e96952-55ea-4848-a730-269392b11820_2092x714.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M7wu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1e96952-55ea-4848-a730-269392b11820_2092x714.png" width="1456" height="497" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d1e96952-55ea-4848-a730-269392b11820_2092x714.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:497,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:149075,&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/189996669?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1e96952-55ea-4848-a730-269392b11820_2092x714.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_!M7wu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1e96952-55ea-4848-a730-269392b11820_2092x714.png 424w, https://substackcdn.com/image/fetch/$s_!M7wu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1e96952-55ea-4848-a730-269392b11820_2092x714.png 848w, https://substackcdn.com/image/fetch/$s_!M7wu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1e96952-55ea-4848-a730-269392b11820_2092x714.png 1272w, https://substackcdn.com/image/fetch/$s_!M7wu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1e96952-55ea-4848-a730-269392b11820_2092x714.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>What&#8217;s also interesting is that AI is shifting code quality further left. Many static analysis checks that previously lived in CI/CD are now real-time suggestions in the IDE. Some have even become MCP servers that can steer AI-generated code before you even save the file.</p><p>So, some of the best code quality tools, like CodeScene, Codacy, or Packmind, allow you to <em>enforce</em> code quality on standards possibly higher than how you would ever be able to on a 100% human team.</p><p>I also talked about this in relation to <a href="https://refactoring.fm/p/my-ai-coding-workflow">my own experiments</a>, for which I am able to keep ~9.5/10 code quality, via CodeScene.</p><p>So, if you ask me, the future of code quality is bright &#8212; but only if you&#8217;re intentional about using AI for that purpose, rather than treating it purely as a code generator.</p><p>This is just one of the ways in which what&#8217;s good for humans is good for AI, which I explored in this article late last year &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:173659480,&quot;url&quot;:&quot;https://refactoring.fm/p/whats-good-for-humans-is-good-for&quot;,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;What's good for humans is good for AI &#10084;&#65039;&quot;,&quot;truncated_body_text&quot;:&quot;It&#8217;s been a couple of months now that a lot of my attention has been focused on a single topic: how good engineering teams are using AI.&quot;,&quot;date&quot;:&quot;2025-09-18T07:02:14.948Z&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;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/whats-good-for-humans-is-good-for?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">What's good for humans is good for AI &#10084;&#65039;</div></div><div class="embedded-post-body">It&#8217;s been a couple of months now that a lot of my attention has been focused on a single topic: how good engineering teams are using AI&#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</div></a></div><div><hr></div><h2>3) &#127897;&#65039; Standardization vs. flexibility</h2><p>One of <a href="https://refactoring.fm/p/how-to-build-product-development">Rob Zuber&#8217;s biggest regrets as CTO of CircleCI</a> was the lack of early standardization &#8212; which became extremely expensive to fix later. When we spoke a couple of months ago on the podcast, he drew a sharp line between decisions that are cheap early and expensive later, and those that remain cheap throughout.</p><p>So, a few things that <em>should</em> be standardized are:</p><ul><li><p>&#128187; <strong>Programming languages</strong> &#8212; avoid the &#8220;auth service written in a language no one knows&#8221; problem.</p></li><li><p>&#128295; <strong>Core infrastructure patterns</strong> &#8212; database connections, queuing, observability.</p></li><li><p>&#128203; <strong>CI/CD processes</strong> &#8212; critical for compliance, auditability, and as the main <em>crossroads</em> of your dev process.</p></li></ul><p>What can stay flexible:</p><ul><li><p>&#128421;&#65039; <strong>Developer environments</strong> &#8212; IDEs, terminal setups, and dev stuff that is up to individual preference.</p></li><li><p>&#128197; <strong>Some agile practices</strong> &#8212; as long as business and stakeholder needs are met!</p></li></ul><blockquote><p><em>&#8220;If you&#8217;re good at providing the things that your stakeholders need before they know they need them, you&#8217;ll have all kinds of freedom to make your own choices. If you aren&#8217;t, people will come make choices for you.&#8221; &#8212; Rob Zuber</em></p></blockquote><p>Rob argued that excessive standardization often emerges defensively, when engineering teams fail to communicate well with their stakeholders. So the real solution most of the time is not more rules, it&#8217;s just better communication.</p><p>Here is the full interview with Rob Zuber:</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/show/7Luds9dmzZDoDC8Q7EMbSw">Spotify</a></strong> and &#128236; <strong><a href="https://refactoring.fm/p/how-to-build-product-development">Substack</a></strong></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[Sharing your culture, finding your allies, and reliable code quality 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #197]]></description><link>https://refactoring.fm/p/sharing-your-culture-finding-your</link><guid isPermaLink="false">https://refactoring.fm/p/sharing-your-culture-finding-your</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 02 Mar 2026 08:01:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/PhWtlhfrsWI" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, Luca here, welcome to a weekly edition of the</em>&#128161;<em> <strong>Monday Ideas</strong> </em>&#128161;<em> from Refactoring! To access all our articles, library, and community, subscribe to the <a href="https://refactoring.fm/about">full version</a>:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Make your team ship faster!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p><em>Resources: </em>&#127963;&#65039;<em> <strong><a href="https://refactoring.fm/p/library-tracks">Library</a></strong> &#8226; </em>&#128172;<em> <strong><a href="https://refactoring.fm/p/refactoring-community">Community</a> </strong>&#8226;<strong> </strong></em><strong>&#127897;&#65039;</strong><em><strong> <a href="https://refactoring.fm/podcast">Podcast</a> </strong>&#8226; </em>&#128227;<em> <strong><a href="https://airtable.com/app6T1no2xUAkvqqI/pagmohBDjtBNk9dKY/form">Advertise</a> </strong></em></p><div><hr></div><h2>&#128214; <a href="https://packmind.com/?utm_source=refactoring&amp;utm_medium=paid_newsletter">Create a shared engineering playbook</a></h2><p><em>This idea is brought to you by <a href="https://packmind.com/?utm_source=refactoring&amp;utm_medium=paid_newsletter">Packmind</a>!</em> </p><p>Most teams adopt AI coding agents without an engineering playbook. Standards <strong>live in people&#8217;s heads</strong>, Slack threads, PR comments, or scattered docs, so AI agents are left guessing.</p><p>Packmind helps teams create and maintain a <strong>shared engineering playbook</strong>, and automatically enforce it across repositories and AI coding agents.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://packmind.com/?utm_source=refactoring&amp;utm_medium=paid_newsletter&quot;,&quot;text&quot;:&quot;Try Packmind Open Source&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://packmind.com/?utm_source=refactoring&amp;utm_medium=paid_newsletter"><span>Try Packmind Open Source</span></a></p><div><hr></div><h2>1) &#129716; Share your culture</h2><p>Speaking of handbooks, culture is not just what you write in there &#8212; it is what happens every day in your org. But you still need to communicate it effectively, especially to people who are not yet part of your company.</p><p>How do you show, rather than tell, your culture? This came up in one of our recent mastermind sessions. Here are the things I have found most useful:</p><h4>1&#65039;&#8419; Map your touch points</h4><p>Every interaction with candidates is an opportunity to demonstrate culture. The most important ones: your public presence (website, blog, open source work), job materials (descriptions, career page), and the interview process itself (how you communicate, what you ask, how interviewers behave).</p><p>Each step tells a story, and the strongest cultures are consistent across all touch points. Shopify, for example, sends candidates a culture handbook upfront &#8212; you can only move forward by explicitly accepting their principles.</p><h4>2&#65039;&#8419; Show, don&#8217;t tell</h4><p>Instead of listing abstract values, share real stories.</p><p>Engineering blogs are perfect for this: they reveal how your team thinks and solves problems. Public post-mortems show how you handle failure. Behind-the-scenes content shows how people actually collaborate.</p><h4>3&#65039;&#8419; Write from your best performers</h4><p>Do not write aspirational statements. Instead, observe your best engineers: what behaviors make them successful? Document those. Instead of &#8220;we value excellence,&#8221; write: &#8220;our best engineers seek feedback early and take ownership end-to-end.&#8221; Concrete behaviors are way more useful than abstract values.</p><p>We talked about this in depth in our article on generative culture &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:151864477,&quot;url&quot;:&quot;https://refactoring.fm/p/generative-culture&quot;,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;Generative culture &#129716;&quot;,&quot;truncated_body_text&quot;:&quot;A few weeks ago we wrote about engineering handbooks. From there, I got many emails with questions about culture, which is a similar but separate topic.&quot;,&quot;date&quot;:&quot;2024-11-20T07:01:06.683Z&quot;,&quot;like_count&quot;:38,&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;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/generative-culture?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">Generative culture &#129716;</div></div><div class="embedded-post-body">A few weeks ago we wrote about engineering handbooks. From there, I got many emails with questions about culture, which is a similar but separate topic&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">2 years ago &#183; 38 likes &#183; 2 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>2) &#127884; Find your allies</h2><p>Improving how a team works&#8212;whether it is culture, quality, or any other kind of change&#8212;is a two-part problem:</p><ol><li><p>You have to identify what needs to change.</p></li><li><p>You have to make change happen.</p></li></ol><p>The second part is much harder. Change is an uphill battle against tight roadmaps and already stressed-out people. So for long-term transformations, one of the most important things you can do is <strong>find your allies</strong> and recruit them.</p><p>Your allies are the people who <em>care the most</em> about this change &#8212; the ones who will not give up when pressure builds, and who keep others accountable. Lasting change is always a mix of top-down and bottom-up input, and the bottom-up part needs <em>champions</em>, especially at the start.</p><p>This reminds me of <a href="https://refactoring.fm/p/my-favorite-ideas-from-ldx3">Christine Pinto&#8217;s three-step model</a> for improving quality in a team. Quality processes do not appear out of the blue &#8212; they follow a messy progression:</p><ol><li><p>&#129464; <strong>Crusader</strong> &#8212; one engineer acts as a hero, spearheading change largely on their own while influencing leadership.</p></li><li><p>&#129716; <strong>Coach</strong> &#8212; the hero teaches others, establishing principles and getting adoption.</p></li><li><p>&#127795; <strong>System</strong> &#8212; when critical mass is reached, individual efforts turn into team-wide processes.</p></li></ol><p>The pattern holds for culture too. It never starts with a policy: it starts with a person. We talked more about this below &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:169555409,&quot;url&quot;:&quot;https://refactoring.fm/p/how-to-help-a-struggling-team&quot;,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;How to Help a Struggling Team &#128201;&quot;,&quot;truncated_body_text&quot;:&quot;Last month we had a great mastermind session about how to raise the quality bar of your team.&quot;,&quot;date&quot;:&quot;2025-07-30T08:01:18.277Z&quot;,&quot;like_count&quot;:25,&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;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-help-a-struggling-team?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 Help a Struggling Team &#128201;</div></div><div class="embedded-post-body">Last month we had a great mastermind session about how to raise the quality bar of your team&#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; 25 likes &#183; Luca Rossi</div></a></div><div><hr></div><h2>3) &#127897;&#65039; Static analysis is not enough for code quality</h2><p>In <a href="https://refactoring.fm/p/technical-debt-as-crime-scene-with">my chat on the podcast with Adam Tornhill</a>&#8212;author of <em>Your Code as a Crime Scene</em> and founder of CodeScene&#8212;one idea stood out to me: static analysis alone is not enough for code quality.</p><p>Traditional static analysis tools examine code at a single point in time, but Adam argues this misses the most critical dimension: <strong>impact and relevance</strong>.</p><blockquote><p><em>&#8220;You can have the most complicated code in the world, but if it has been stable in production for five years, there is nothing urgent on the roadmap.&#8221; <br>&#8212; Adam Tornhill</em></p></blockquote><p>Adam&#8217;s alternative is to <strong>analyze version control history</strong> to understand developer behavior patterns. This reveals a consistent finding across hundreds of codebases:</p><ul><li><p>&#127919; <strong>Extreme distribution</strong> &#8212; the majority of development work concentrates in just 2-3% of the total codebase.</p></li><li><p>&#128293; <strong>Hotspot priority</strong> &#8212; technical debt in highly-active areas becomes exponentially more expensive.</p></li></ul><p>This reframes how we should think about tech debt: do not fix the most complex code &#8212; fix the <em>most active</em> complex code.</p><p>Here is the full interview with Adam: </p><div id="youtube2-PhWtlhfrsWI" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;PhWtlhfrsWI&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/PhWtlhfrsWI?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/show/7Luds9dmzZDoDC8Q7EMbSw">Spotify</a></strong> and &#128236; <strong><a href="https://refactoring.fm/p/technical-debt-as-crime-scene-with">Substack</a></strong></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[Short backlogs, interview methods, and evergreen manager advice 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #196]]></description><link>https://refactoring.fm/p/short-backlogs-interview-methods</link><guid isPermaLink="false">https://refactoring.fm/p/short-backlogs-interview-methods</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 23 Feb 2026 08:01:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!VSgp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28c6953c-4097-411d-ba48-69119cf746db_2258x998.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hey, Luca here, welcome to a weekly edition of the</em>&#128161;<em> <strong>Monday Ideas</strong> </em>&#128161;<em> from Refactoring! To access all our articles, library, and community, subscribe to the <a href="https://refactoring.fm/about">full version</a>:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://refactoring.fm/subscribe?&quot;,&quot;text&quot;:&quot;Make your team ship faster!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://refactoring.fm/subscribe?"><span>Make your team ship faster!</span></a></p><p><em>Resources: </em>&#127963;&#65039;<em> <strong><a href="https://refactoring.fm/p/library-tracks">Library</a></strong> &#8226; </em>&#128172;<em> <strong><a href="https://refactoring.fm/p/refactoring-community">Community</a> </strong>&#8226;<strong> </strong></em><strong>&#127897;&#65039;</strong><em><strong> <a href="https://refactoring.fm/podcast">Podcast</a> </strong>&#8226; </em>&#128227;<em> <strong><a href="https://airtable.com/app6T1no2xUAkvqqI/pagmohBDjtBNk9dKY/form">Advertise</a> </strong></em></p><div><hr></div><h2>Product Methodology Survival Guide &#128218;</h2><p><em>This idea is brought to you by today&#8217;s sponsor, <a href="https://atono.io/?utm_campaign=256141042-2026%20%E2%80%93%20Pistachio%20%E2%80%93%20January%20Gated%20Asset&amp;utm_source=refactoring_fm_substack&amp;utm_medium=sponsored_ad&amp;utm_content=product_methodology_survival_guide">Atono</a>!</em></p><p>Planning gets messy when different teams work in different ways. One team runs sprints, another uses Kanban &#8211; leadership still needs to know what&#8217;s shipping next quarter.</p><p>Atono just published their <strong>Product Methodology Survival Guide</strong>, sharing how they made cross-team planning predictable inside their own engineering org &#8211; without forcing everyone into the same process.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!G6jH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c4d636-c5c8-4866-9c62-6489f2775b32_3600x1473.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!G6jH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c4d636-c5c8-4866-9c62-6489f2775b32_3600x1473.png 424w, https://substackcdn.com/image/fetch/$s_!G6jH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c4d636-c5c8-4866-9c62-6489f2775b32_3600x1473.png 848w, https://substackcdn.com/image/fetch/$s_!G6jH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c4d636-c5c8-4866-9c62-6489f2775b32_3600x1473.png 1272w, https://substackcdn.com/image/fetch/$s_!G6jH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c4d636-c5c8-4866-9c62-6489f2775b32_3600x1473.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!G6jH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c4d636-c5c8-4866-9c62-6489f2775b32_3600x1473.png" width="1456" height="596" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6c4d636-c5c8-4866-9c62-6489f2775b32_3600x1473.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:596,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3422418,&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/188500049?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c4d636-c5c8-4866-9c62-6489f2775b32_3600x1473.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_!G6jH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c4d636-c5c8-4866-9c62-6489f2775b32_3600x1473.png 424w, https://substackcdn.com/image/fetch/$s_!G6jH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c4d636-c5c8-4866-9c62-6489f2775b32_3600x1473.png 848w, https://substackcdn.com/image/fetch/$s_!G6jH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c4d636-c5c8-4866-9c62-6489f2775b32_3600x1473.png 1272w, https://substackcdn.com/image/fetch/$s_!G6jH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c4d636-c5c8-4866-9c62-6489f2775b32_3600x1473.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We&#8217;ve also previously collaborated on pieces like <em><a href="https://refactoring.fm/p/the-ai-productivity-paradox">The AI Productivity Paradox</a></em> and <em><a href="https://refactoring.fm/p/how-to-build-a-product-engineering">How to Build a Product Engineering Culture</a></em>, so if you&#8217;ve enjoyed those, this guide goes deeper into the operational side.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://atono.io/product-methodology-survival-guide?utm_campaign=256141042-2026%20%E2%80%93%20Pistachio%20%E2%80%93%20January%20Gated%20Asset&amp;utm_source=refactoring_fm_substack&amp;utm_medium=sponsored_ad&amp;utm_content=product_methodology_survival_guide&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://atono.io/product-methodology-survival-guide?utm_campaign=256141042-2026%20%E2%80%93%20Pistachio%20%E2%80%93%20January%20Gated%20Asset&amp;utm_source=refactoring_fm_substack&amp;utm_medium=sponsored_ad&amp;utm_content=product_methodology_survival_guide"><span>Download the guide</span></a></p><div><hr></div><h2>1) &#128203; Keep backlogs radically short</h2><p>Speaking of Atono, this reminded me of one of the ideas we discussed in one of our articles together: backlogs &#8212; and how much we hate long ones!</p><p>Shipping fast in a sustainable way requires discipline about what you actually build. Long backlogs are one of the biggest hidden anti-patterns in product teams:</p><ul><li><p><strong>They demoralize the team</strong> &#8212; by removing the feeling of progress.</p></li><li><p><strong>They are ineffective at capturing priorities</strong> &#8212; because items stay there for a long time, becoming sneakily obsolete.</p></li><li><p><strong>They lead you to say yes to everything</strong> &#8212; counterintuitively, it is harder to reject feature requests when the backlog is already long, because &#8220;it&#8217;s just one more thing&#8221;. So you put it there, people get pissed when you assign &#8220;P3&#8221; to it, then you don&#8217;t touch it for six months, then it&#8217;s completely obsolete, then you delete it and piss the requester a second time.</p></li></ul><p><a href="https://www.google.com/search?q=mary+poppendieck">Mary Poppendieck</a>, Agile legend with 30+ years of experience, says &#8220;burn your backlog&#8221; every time she can, and that you should rather focus on flow:</p><blockquote><p><em>Once you&#8217;ve established your current output rate, then you have to stop accepting anything beyond that rate. No backlog. If you can only do ten a month, you only accept ten a month. And you don&#8217;t accept work beyond a month or two.</em></p><p>&#8212; Mary Poppendieck</p></blockquote><p>The Atono team only keeps 2-4 weeks of committed work, which means PMs and engineers reject work all the time. Small feature with unclear impact? Reject. Hard to reproduce bug on niche device? Reject. This discipline is what keeps them focused and fast.</p><p>You can find the full guide below &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:171035004,&quot;url&quot;:&quot;https://refactoring.fm/p/how-to-build-a-product-engineering&quot;,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;How to Build a Product Engineering Culture &#129716;&quot;,&quot;truncated_body_text&quot;:&quot;Hey, Luca here, welcome to a weekly edition of Refactoring! To access all our articles, library, and community, subscribe to the paid version:&quot;,&quot;date&quot;:&quot;2025-08-20T08:16:09.447Z&quot;,&quot;like_count&quot;:55,&quot;comment_count&quot;:4,&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;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-build-a-product-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">How to Build a Product Engineering Culture &#129716;</div></div><div class="embedded-post-body">Hey, Luca here, welcome to a weekly edition of Refactoring! To access all our articles, library, and community, subscribe to the paid version&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">10 months ago &#183; 55 likes &#183; 4 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>2) &#128296; Interview methods for 2026</h2><p>One of the obvious consequences of AI coding getting widespread is that the methods for interviewing engineers that worked just 2-3 years ago, are not working well anymore.</p><p>Last year I surveyed the community and ran a mastermind session with engineering managers to find out how they are adapting.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VSgp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28c6953c-4097-411d-ba48-69119cf746db_2258x998.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VSgp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28c6953c-4097-411d-ba48-69119cf746db_2258x998.png 424w, https://substackcdn.com/image/fetch/$s_!VSgp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28c6953c-4097-411d-ba48-69119cf746db_2258x998.png 848w, https://substackcdn.com/image/fetch/$s_!VSgp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28c6953c-4097-411d-ba48-69119cf746db_2258x998.png 1272w, https://substackcdn.com/image/fetch/$s_!VSgp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28c6953c-4097-411d-ba48-69119cf746db_2258x998.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VSgp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28c6953c-4097-411d-ba48-69119cf746db_2258x998.png" width="1456" height="644" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/28c6953c-4097-411d-ba48-69119cf746db_2258x998.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:644,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2262190,&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/188500049?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28c6953c-4097-411d-ba48-69119cf746db_2258x998.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_!VSgp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28c6953c-4097-411d-ba48-69119cf746db_2258x998.png 424w, https://substackcdn.com/image/fetch/$s_!VSgp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28c6953c-4097-411d-ba48-69119cf746db_2258x998.png 848w, https://substackcdn.com/image/fetch/$s_!VSgp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28c6953c-4097-411d-ba48-69119cf746db_2258x998.png 1272w, https://substackcdn.com/image/fetch/$s_!VSgp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28c6953c-4097-411d-ba48-69119cf746db_2258x998.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>With some degree of simplification, there are three main things worth testing in any engineering interview: pure coding skills, system design ability, and how well someone works with others. The weight you give each depends on the role, but there&#8217;s a clear trend: with AI, pure coding matters less, while system design and collaboration matter more.</p><p>This reshuffles the classic methods.</p><p>LeetCode questions, long despised, have fallen further, as 90%+ can be solved with AI. Take-home assignments have a similar problem: open-ended + greenfield coding is just too convenient for models, making it hard to test real depth.</p><p>For replacing them, two methods stood out in the community:</p><ul><li><p><strong>&#128300; Case studies</strong> &#8212; you bring a real problem your team worked on and ask the candidate to design a solution live. It tests system design, trade-off reasoning, and communication simultaneously.</p></li><li><p><strong>&#128269; Code review</strong> &#8212; give the candidate a PR to review. It&#8217;s faster than a take-home, generates rich discussion, and tells you a lot about someone&#8217;s taste and judgment.</p></li></ul><p>Career highlight stories remain consistently useful at the end of any process, letting candidates show qualities that didn&#8217;t emerge elsewhere.</p><p>You can find the full guide below &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:158369676,&quot;url&quot;:&quot;https://refactoring.fm/p/how-to-interview-engineers&quot;,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;How to Interview Engineers &#128203;&quot;,&quot;truncated_body_text&quot;:&quot;Hey there! This article closes our series on hiring engineers. It&#8217;s our third piece &#8212; in the first two we covered respectively:&quot;,&quot;date&quot;:&quot;2025-03-05T07:01:42.284Z&quot;,&quot;like_count&quot;:45,&quot;comment_count&quot;:0,&quot;bylines&quot;:[{&quot;id&quot;:6835984,&quot;name&quot;:&quot;Luca Rossi&quot;,&quot;handle&quot;:&quot;refactoring&quot;,&quot;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;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-interview-engineers?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 Interview Engineers &#128203;</div></div><div class="embedded-post-body">Hey there! This article closes our series on hiring engineers. It&#8217;s our third piece &#8212; in the first two we covered respectively&#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; 45 likes &#183; Luca Rossi</div></a></div><div><hr></div><h2>3) &#127897;&#65039; Evergreen career advice for engineering managers</h2><p>A couple of years ago I interviewed <a href="https://refactoring.fm/p/founder-mode-and-the-managers-path">Camille Fournier</a>, author of The Manager&#8217;s Path and veteran engineering leader. She offered four main pieces of advice for engineering managers looking to stay valuable and advance their careers, which are just as relevant today:</p><h4>1) Focus on relationships <strong>&#129309;</strong></h4><p>Camille emphasizes the importance of good relationships at all levels:</p><ul><li><p><strong>Reports</strong> &#8212; people have to want to work <em>for</em> you</p></li><li><p><strong>Peers</strong> &#8212; people have to want to work <em>with</em> you (peers and other teams)</p></li><li><p><strong>Superiors</strong> &#8212; your superiors have to want you to work for them</p></li></ul><h4>2) Maintain technical credibility <strong>&#128187;</strong></h4><p>For technical leadership roles, Camille suggests maintaining enough technical knowledge to ask good questions and understand the work:</p><blockquote><p><em>&#8220;I can ask people really good questions about what they&#8217;re doing and often understand what they say to me. And so [&#8230;] because I work in pretty heavily technical areas, people like that.&#8221;</em></p></blockquote><h4>3) Represent the company well <strong>&#127970;</strong></h4><p>She reminded managers that they are representatives of the company:</p><blockquote><p><em>&#8220;You are representative of the company. You can influence the company culture. But a lot of the value and the expectations of you is like, if your boss says you have to do something or something has to happen, how good are you at driving that thing to happen?&#8221;</em></p></blockquote><h4>4) Learn continuously <strong>&#128218;</strong></h4><p>Camille encourages managers to stay curious and open to new ideas:</p><blockquote><p><em>&#8220;You&#8217;ve got to challenge yourself to look outside of your own world, talk to managers at other places, make friends externally that are managers and hear about what they&#8217;re doing and just stay curious.&#8221;</em></p></blockquote><p>You can find the full interview below &#128071;</p><div id="youtube2-ycDyG1PH6T4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;ycDyG1PH6T4&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/ycDyG1PH6T4?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 &#128236; <strong><a href="https://refactoring.fm/p/founder-mode-and-the-managers-path">Substack</a></strong> and &#127911; <strong><a href="https://open.spotify.com/show/7Luds9dmzZDoDC8Q7EMbSw">Spotify</a></strong>.</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 teams, adoption, and public reading 💡]]></title><description><![CDATA[Monday Ideas &#8212; Edition #195]]></description><link>https://refactoring.fm/p/ai-teams-adoption-and-public-reading</link><guid isPermaLink="false">https://refactoring.fm/p/ai-teams-adoption-and-public-reading</guid><dc:creator><![CDATA[Luca Rossi]]></dc:creator><pubDate>Mon, 16 Feb 2026 08:00:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!AzKZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074bbbe-5e7d-455f-bdc0-d409611b650c_630x360.jpeg" 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><h2>Agent-first development for your org &#129302;</h2><p><em>This idea is brought to you by today&#8217;s sponsor, <a href="https://www.warp.dev/resources/reports/cloud-agents-for-the-enterprise?utm_source=publications&amp;utm_medium=newsletter&amp;utm_campaign=2_16_2026_oz_launch_primary&amp;utm_content=refactoring">Warp</a>!</em></p><p>I am a fan of Warp, which I personally use, and I have been in touch with the team for a long time. We even <a href="https://refactoring.fm/p/developers-are-replacing-ides-with?utm_source=publication-search">wrote a piece together</a> last year.</p><p>Their latest work is <strong><a href="http://warp.dev/oz">Oz</a></strong><a href="http://warp.dev/oz"> </a><strong><a href="http://warp.dev/oz">&#8212; the orchestration platform for cloud agents</a></strong>.</p><p>The problem they want to solve is that engineers are shipping code faster than ever, but without good orchestration, individual productivity hits a ceiling fast. Gains don&#8217;t compound and leadership has 1) no visibility, and 2) no way to measure impact.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AzKZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074bbbe-5e7d-455f-bdc0-d409611b650c_630x360.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AzKZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074bbbe-5e7d-455f-bdc0-d409611b650c_630x360.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AzKZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074bbbe-5e7d-455f-bdc0-d409611b650c_630x360.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AzKZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074bbbe-5e7d-455f-bdc0-d409611b650c_630x360.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AzKZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074bbbe-5e7d-455f-bdc0-d409611b650c_630x360.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AzKZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074bbbe-5e7d-455f-bdc0-d409611b650c_630x360.jpeg" width="540" height="308.57142857142856" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4074bbbe-5e7d-455f-bdc0-d409611b650c_630x360.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:360,&quot;width&quot;:630,&quot;resizeWidth&quot;:540,&quot;bytes&quot;:242701,&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/187838507?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074bbbe-5e7d-455f-bdc0-d409611b650c_630x360.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_!AzKZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074bbbe-5e7d-455f-bdc0-d409611b650c_630x360.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AzKZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074bbbe-5e7d-455f-bdc0-d409611b650c_630x360.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AzKZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074bbbe-5e7d-455f-bdc0-d409611b650c_630x360.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AzKZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4074bbbe-5e7d-455f-bdc0-d409611b650c_630x360.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>They just released a full report that explores this, where you can learn:</p><ul><li><p>Why 75% of companies fail at building their own agentic systems</p></li><li><p>How teams save hours per engineer per day by using agent automations</p></li><li><p>What makes 60%+ of PRs agent-generated actually achievable</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.warp.dev/resources/reports/cloud-agents-for-the-enterprise?utm_source=publications&amp;utm_medium=newsletter&amp;utm_campaign=2_16_2026_oz_launch_primary&amp;utm_content=refactoring&quot;,&quot;text&quot;:&quot;Download the free report&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.warp.dev/resources/reports/cloud-agents-for-the-enterprise?utm_source=publications&amp;utm_medium=newsletter&amp;utm_campaign=2_16_2026_oz_launch_primary&amp;utm_content=refactoring"><span>Download the free report</span></a></p><div><hr></div><h2>1) &#128300; Most AI teams don&#8217;t need researchers</h2><p>&#8230; they may not even need AI engineers.</p><p>In October I wrote <a href="https://refactoring.fm/p/how-to-build-ai-into-tech-products">this piece</a> with Barr Yaron, who interviewed (and invested in) tens of founders of AI products.</p><p>She reports that many of the best, fastest-moving AI companies she has seen this year have zero papers, <strong>zero PhDs</strong>, and&#8230; zero guilt about it.</p><p>If you&#8217;re building applied AI products on top of foundation models from big labs, your team might look more like a modern software org: strong in prompt engineering, some MLOps, and good product intuition.</p><p>Nearly every applied AI initiative she has seen has started small, and from someone without a strong AI background: <strong>a hackathon project</strong>, a curious engineer, or an exec tinkering with a model. </p><p>Once an early demo proves useful, a small team is born. As organizations mature, many evolve into a platform-plus-product model: an <strong>AI platform team</strong> builds shared capabilities (evals, inference, data pipelines) and helps product engineers ship responsibly.</p><p>You can find the full article below!</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:177251750,&quot;url&quot;:&quot;https://refactoring.fm/p/how-to-build-ai-into-tech-products&quot;,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;How to Build AI into Tech Products &#128296;&quot;,&quot;truncated_body_text&quot;:&quot;Hey! With all the AI craze happening right now, there are two questions tech teams usually ask themselves about it: 1) should we use more AI at work? and 2) should we integrate AI into our product?&quot;,&quot;date&quot;:&quot;2025-10-29T08:02:06.080Z&quot;,&quot;like_count&quot;:25,&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;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;:106527927,&quot;name&quot;:&quot;Barr Yaron&quot;,&quot;handle&quot;:&quot;barryaron834142&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!2Uyv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F332fcb3c-1bae-478d-a987-506f7fc83cd0_144x144.png&quot;,&quot;bio&quot;:&quot;Partner at Amplify Partners&quot;,&quot;profile_set_up_at&quot;:&quot;2022-10-14T17:45:22.429Z&quot;,&quot;reader_installed_at&quot;:&quot;2025-08-07T22:28:42.037Z&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;primaryPublicationId&quot;:6817124,&quot;primaryPublicationName&quot;:&quot;Barr Yaron&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://byaron.substack.com&quot;,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://byaron.substack.com/subscribe?&quot;}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://refactoring.fm/p/how-to-build-ai-into-tech-products?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 Build AI into Tech Products &#128296;</div></div><div class="embedded-post-body">Hey! With all the AI craze happening right now, there are two questions tech teams usually ask themselves about it: 1) should we use more AI at work? and 2) should we integrate AI into our product&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">8 months ago &#183; 25 likes &#183; 2 comments &#183; Luca Rossi and Barr Yaron</div></a></div><div><hr></div><h2>2) &#128218; I am reading in public, and it&#8217;s working</h2><p>At the end of last year I reviewed my whole content creation workflow.</p><p>By looking at the various steps, realized that those I struggled the most with (good reading &amp; research), are exactly those for which I didn&#8217;t have a <em>build-in-public</em> version.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hMxo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24aa2f6d-405a-4c00-bce2-252e9ebb028b_1494x810.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hMxo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24aa2f6d-405a-4c00-bce2-252e9ebb028b_1494x810.png 424w, https://substackcdn.com/image/fetch/$s_!hMxo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24aa2f6d-405a-4c00-bce2-252e9ebb028b_1494x810.png 848w, https://substackcdn.com/image/fetch/$s_!hMxo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24aa2f6d-405a-4c00-bce2-252e9ebb028b_1494x810.png 1272w, https://substackcdn.com/image/fetch/$s_!hMxo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24aa2f6d-405a-4c00-bce2-252e9ebb028b_1494x810.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hMxo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24aa2f6d-405a-4c00-bce2-252e9ebb028b_1494x810.png" width="1456" height="789" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/24aa2f6d-405a-4c00-bce2-252e9ebb028b_1494x810.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:789,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:164800,&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/187838507?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24aa2f6d-405a-4c00-bce2-252e9ebb028b_1494x810.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_!hMxo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24aa2f6d-405a-4c00-bce2-252e9ebb028b_1494x810.png 424w, https://substackcdn.com/image/fetch/$s_!hMxo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24aa2f6d-405a-4c00-bce2-252e9ebb028b_1494x810.png 848w, https://substackcdn.com/image/fetch/$s_!hMxo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24aa2f6d-405a-4c00-bce2-252e9ebb028b_1494x810.png 1272w, https://substackcdn.com/image/fetch/$s_!hMxo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24aa2f6d-405a-4c00-bce2-252e9ebb028b_1494x810.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So I tried two things:</p><ul><li><p>I made my reading list public and <em>subscribable</em> on Mailbrew &#8212; you can find it <strong><a href="https://app.mailbrew.com/lucaronin/lucas-daily-brew-wa3o73OQUFjL">here</a></strong></p></li><li><p>I wrote an <a href="https://hybridhacker.email/p/what-i-read-this-week">experimental </a><em><a href="https://hybridhacker.email/p/what-i-read-this-week">digest</a></em><a href="https://hybridhacker.email/p/what-i-read-this-week"> email</a> on <a href="https://hybridhacker.email/">Hybrid Hacker</a>, our sister newsletter, containing the best articles I had read the previous week.</p></li></ul><p>Both experiments were a <strong>huge success</strong>.</p><p>I shared my <a href="https://app.mailbrew.com/lucaronin/lucas-daily-brew-wa3o73OQUFjL">reading list</a> on Linkedin and on the community, and as of today it counts ~150 subscribers, plus I got a lot of warm comments privately. This is not going to be a business whatsoever, so I am simply happy about it.</p><p>The digest emails are also getting a lot of great feedback, so I have kept writing them for the past 2 months or so.</p><p>Together, these experiments gave me incredible energy and provided the missing incentives to keep the underlying habits tidy. Now I feel a strong need to:</p><ul><li><p>Keep my reading sources relevant and up to date because there are others who depend on them, and</p></li><li><p>Read <em>more</em> and <em>better</em> because I am responsible for identifying great pieces that I can recommend to readers.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!p6uJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403f0bb2-c5cc-4708-b633-5242a0c5d00e_1462x848.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!p6uJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403f0bb2-c5cc-4708-b633-5242a0c5d00e_1462x848.png 424w, https://substackcdn.com/image/fetch/$s_!p6uJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403f0bb2-c5cc-4708-b633-5242a0c5d00e_1462x848.png 848w, https://substackcdn.com/image/fetch/$s_!p6uJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403f0bb2-c5cc-4708-b633-5242a0c5d00e_1462x848.png 1272w, https://substackcdn.com/image/fetch/$s_!p6uJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403f0bb2-c5cc-4708-b633-5242a0c5d00e_1462x848.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!p6uJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403f0bb2-c5cc-4708-b633-5242a0c5d00e_1462x848.png" width="1456" height="845" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/403f0bb2-c5cc-4708-b633-5242a0c5d00e_1462x848.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:845,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:239193,&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/187838507?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403f0bb2-c5cc-4708-b633-5242a0c5d00e_1462x848.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_!p6uJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403f0bb2-c5cc-4708-b633-5242a0c5d00e_1462x848.png 424w, https://substackcdn.com/image/fetch/$s_!p6uJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403f0bb2-c5cc-4708-b633-5242a0c5d00e_1462x848.png 848w, https://substackcdn.com/image/fetch/$s_!p6uJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403f0bb2-c5cc-4708-b633-5242a0c5d00e_1462x848.png 1272w, https://substackcdn.com/image/fetch/$s_!p6uJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403f0bb2-c5cc-4708-b633-5242a0c5d00e_1462x848.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The lesson I learned from this is to try to create practical <em>incentives</em> for the things that I want to keep doing! Full article here &#128071;</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:179256243,&quot;url&quot;:&quot;https://refactoring.fm/p/what-i-am-reading-in-2025-and-how&quot;,&quot;publication_id&quot;:64099,&quot;publication_name&quot;:&quot;Refactoring&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CR5A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b19138f-e653-496f-a117-a85305715dba_400x400.png&quot;,&quot;title&quot;:&quot;What I am reading in 2025 (and how) &#128218;&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;2025-11-19T08:01:19.874Z&quot;,&quot;like_count&quot;:47,&quot;comment_count&quot;:4,&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;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/what-i-am-reading-in-2025-and-how?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">What I am reading in 2025 (and how) &#128218;</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">7 months ago &#183; 47 likes &#183; 4 comments &#183; Luca Rossi</div></a></div><div><hr></div><h2>3) &#127897;&#65039; Driving AI adoption as a CTO</h2><p>In October I interviewed Darragh Curran, CTO at Intercom, who famously went <em>all-in</em> on AI by:</p><ul><li><p>Setting a <a href="https://ideas.fin.ai/p/2">public target</a> of getting the team to be 2x as productive</p></li><li><p>Spinning off a completely separate AI product, <a href="http://fin.ai/">Fin</a>, instead of bolting AI onto Intercom as an afterthought.</p></li></ul><p>I asked him how he drives AI adoption inside the team, and he replied with a four-step framework:</p><ol><li><p>&#127919; <strong>Set ambition and tone</strong> &#8212; make it clear this isn&#8217;t optional or experimental, but essential.</p></li><li><p>&#128679; <strong>Remove barriers</strong> &#8212; be deliberately permissive about tool choice (Cursor, Claude, Copilot, etc.).</p></li><li><p>&#129330; <strong>Make hands-on experience</strong> &#8212; personally use the tools to understand the developer experience.</p></li><li><p>&#9200; <strong>Protect learning time</strong> &#8212; explicitly give engineers permission to invest time in learning new workflows.</p></li></ol><p>He says the biggest challenge isn&#8217;t technical but cultural, and as a manager you need to navigate this through good conversations, plus implementing the steps above.</p><p>Many engineers also cite lack of time as the primary barrier to adopting AI tools, creating a tension between delivery pressure and the learning required for long-term productivity gains &#128071;</p><blockquote><p><em>&#8220;The number one reason folks have said that they haven&#8217;t really got up to speed with the tools is they just feel like they don&#8217;t have time. So we&#8217;ve tried to make very clear to people and their managers that this is important. You can take time.&#8221;</em></p></blockquote><p>Here is the full interview with Darragh:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;f137a7e0-a153-4878-b997-19e9ea53d3ac&quot;,&quot;caption&quot;:&quot;Listen now:&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;The AI Transformation at Intercom &#129302; &#8212; with Darragh Curran&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-10-24T07:00:47.915Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/UaBR4ou7XQg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://refactoring.fm/p/the-ai-transformation-at-intercom&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:&quot;f2762462-604d-41e9-9ceb-b707b8e8f6d1&quot;,&quot;id&quot;:176812915,&quot;type&quot;:&quot;podcast&quot;,&quot;reaction_count&quot;:10,&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></channel></rss>