<?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[Peter O'Leary]]></title><description><![CDATA[Peter O'Leary]]></description><link>https://www.timelight.com</link><image><url>https://substackcdn.com/image/fetch/$s_!UgLb!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfa86f7c-ff5d-4445-ba29-8c7dcc0f8b76_1158x1158.jpeg</url><title>Peter O&apos;Leary</title><link>https://www.timelight.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 21 Aug 2026 19:38:17 GMT</lastBuildDate><atom:link href="https://www.timelight.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Peter O'Leary]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[peteoleary@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[peteoleary@substack.com]]></itunes:email><itunes:name><![CDATA[Peter O'Leary]]></itunes:name></itunes:owner><itunes:author><![CDATA[Peter O'Leary]]></itunes:author><googleplay:owner><![CDATA[peteoleary@substack.com]]></googleplay:owner><googleplay:email><![CDATA[peteoleary@substack.com]]></googleplay:email><googleplay:author><![CDATA[Peter O'Leary]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[A Social Contract for Tech Founders]]></title><description><![CDATA[What the Meta Trial Should Teach Silicon Valley about social responsibility]]></description><link>https://www.timelight.com/p/a-social-contract-for-tech-founders</link><guid isPermaLink="false">https://www.timelight.com/p/a-social-contract-for-tech-founders</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Wed, 19 Aug 2026 17:26:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!5Iau!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d488b4d-c3a7-4d69-b5c7-3925c769743f_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5Iau!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d488b4d-c3a7-4d69-b5c7-3925c769743f_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5Iau!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d488b4d-c3a7-4d69-b5c7-3925c769743f_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!5Iau!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d488b4d-c3a7-4d69-b5c7-3925c769743f_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!5Iau!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d488b4d-c3a7-4d69-b5c7-3925c769743f_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!5Iau!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d488b4d-c3a7-4d69-b5c7-3925c769743f_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5Iau!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d488b4d-c3a7-4d69-b5c7-3925c769743f_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d488b4d-c3a7-4d69-b5c7-3925c769743f_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5Iau!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d488b4d-c3a7-4d69-b5c7-3925c769743f_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!5Iau!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d488b4d-c3a7-4d69-b5c7-3925c769743f_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!5Iau!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d488b4d-c3a7-4d69-b5c7-3925c769743f_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!5Iau!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d488b4d-c3a7-4d69-b5c7-3925c769743f_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This morning I was watching a BBC News segment on the trial Meta is currently facing, and it stopped me cold. The numbers being discussed aren&#8217;t hundreds of millions, or even a few billion &#8212; plaintiffs are pursuing damages that could run into the hundreds of billions, potentially over a trillion dollars. Twenty-nine state attorneys general, led by California, Colorado, Kentucky, and New Jersey, are arguing in federal court in Oakland that Meta built Facebook and Instagram to be addictive to kids, knew it, and hid what it knew. The case centers on internal decisions &#8212; infinite scroll, notification design, algorithmic feeds tuned for engagement &#8212; and on emails going back to at least 2016 that reportedly show the company tracking &#8220;teen time spent&#8221; as a growth metric. Mark Zuckerberg himself is expected to testify before the trial wraps in about six weeks. It follows an earlier bellwether verdict this spring that already found Meta liable for contributing to a young woman&#8217;s mental health injuries.</p><p>Whatever the outcome, the trial is a landmark moment. And watching it unfold, I found myself thinking less about Meta specifically and more about the pattern it represents &#8212; a pattern I&#8217;ve had a front-row seat to for forty years in this business.</p><h2>Forty years of product meetings, and the question nobody asks</h2><p>I&#8217;ve sat in a great many product design meetings over my career. I can tell you, without exaggeration, that in not one of them has there been a representative in the room, or even a passing discussion, about the potential social harm of the feature being introduced. The conversation is always, one hundred percent, about growth and engagement. How do we get more people to install this? How do we get them to open it every day? How do we keep them here longer?</p><p>That wasn&#8217;t always the industry&#8217;s center of gravity. When I started out, we were selling packaged software to businesses. In the 90s, that same business-to-business model migrated onto the web. The earliest consumer-facing uses of the internet were mundane and useful &#8212; companies putting up web forms so you could book a flight, sign up for a service, or check your bank balance. Nothing addictive about any of that.</p><p>Then, in the mid-2000s, social networks arrived, and something changed. Facebook emerged from a crowded field &#8212; MySpace and others &#8212; and the engagement numbers it was showing potential investors were unlike anything anyone had seen. That triggered a genuine panic among investors to get in early, and from that point on, the entire industry&#8217;s definition of success shifted. Hypergrowth in the consumer base became the barometer. How fast could you scale? Monetization was often an afterthought &#8212; the real question was what features would get people to install the app, keep it installed, and open it daily. That is, I think, the moment that set the current reckoning in motion. And more recently, tech has gone a step further: in many corners of this industry, the explicit definition of success isn&#8217;t just growth &#8212; it&#8217;s attaining a monopolistic position outright.</p><h2>The problem with how we regulate harm</h2><p>Here&#8217;s what strikes me about the Meta trial, and about the wave of similar litigation before it: our legal system is built to respond to harm only after it has already happened. A civil tort trial requires proof of damages &#8212; you have to show that real harm occurred before a court will even hear the case. So the sequence is always the same. A company starts up, grows to enormous scale, some social harm becomes impossible to ignore, and only then do we end up in a courtroom arguing over money.</p><p>But by the time a trillion-dollar verdict is even on the table, the damage is done. The growth that built the company happened at the expense of actual people &#8212; people whose lives have been upended, who&#8217;ve gone through serious financial hardship, who&#8217;ve developed real health and mental health problems, and in the worst cases, people who have died, directly or by their own hand. A settlement or judgment, however large, doesn&#8217;t undo any of that. It&#8217;s the market&#8217;s after-the-fact way of correcting itself, and it&#8217;s a genuinely terrible way to protect people, because it only works once the harm is already irreversible.</p><p>I want to be clear that I don&#8217;t think the answer is heavy-handed regulation of every startup from day one. Silicon Valley&#8217;s traditional argument &#8212; that overregulating how businesses get started and enter markets would stifle the innovation that gave us things like Facebook, Uber, and DoorDash &#8212; is a fair point, and largely a correct one. I&#8217;ll grant one exception: Uber&#8217;s early growth involved knowingly bending and breaking local taxi and livery laws, and that&#8217;s a genuinely different case. But in general, we do want young companies to be free to build, experiment, and take risks.</p><h2>A social contract for founders</h2><p>So here&#8217;s what I&#8217;ve been thinking, and it&#8217;s an idea I&#8217;d like to see taught at business schools, in ethics classes, right alongside the standard startup playbook.</p><p>Start your business. Grow your business. Do what you need to do to succeed. But go in aware of a social contract: once your company crosses a certain threshold &#8212; and reasonable people can debate exactly where that line is, whether it&#8217;s the number of people affected, or the percentage of the population your product touches &#8212; you take on a new obligation. At that point, your company becomes subject to regulation, and it&#8217;s on you to help shape what that regulation looks like, rather than waiting for it to be imposed on you after something has gone wrong.</p><p>Think of it as an analogue to the S-1 process. When a company prepares to go public, it doesn&#8217;t wait until the IPO is imminent to get its financial house in order &#8212; venture-backed companies build the processes and controls appropriate to a public company from a very early stage, often almost from the get-go, because they know that day is coming. I&#8217;d propose something similar here: once a company reaches meaningful scale, it should be expected to prepare a statement &#8212; essentially its own regulatory S-1 &#8212; laying out how its business should be regulated, and to work with government to actively craft rules that prevent social harm, or mitigate it if some has already occurred. The goal is to never end up in a courtroom facing a trillion-dollar judgment because harm went unaddressed for a decade.</p><p>I actually think this could benefit companies, not just the public. If a founding team knows from day one that regulatory scrutiny is coming once they hit scale, that knowledge changes the conversation inside the company from the very beginning. It means someone in that product meeting finally has to ask the question I never heard asked in forty years: what harm could this cause? What regulations might we eventually be subject to, and how do we get ahead of them? That conversation, happening early and often, is worth infinitely more than a class-action settlement negotiated after the harm has already been done, and after real people have already paid the price for someone else&#8217;s growth chart.</p><div><hr></div><p><em>Sources on the current Meta trial:</em></p><ul><li><p><a href="https://www.washingtonpost.com/technology/2026/08/17/meta-faces-federal-trial-demanding-14-trillion-alleged-teen-harms/">Meta faces federal trial demanding $1.4 trillion for alleged teen harms &#8211; Washington Post</a></p></li><li><p><a href="https://www.npr.org/2026/08/18/nx-s1-5935458/meta-child-safety-social-media-addiction-trial-opening">&#8216;Profits won.&#8217; The child safety trial against Meta kicks off in federal court &#8211; NPR</a></p></li><li><p><a href="https://www.pbs.org/newshour/nation/meta-is-on-trial-again-heres-what-you-need-to-know-about-this-major-case">Meta is on trial &#8211; again. Here&#8217;s what to know about the case brought by dozens of states &#8211; PBS NewsHour</a></p></li><li><p><a href="https://www.bloomberg.com/news/articles/2026-08-17/facebook-instagram-under-scrutiny-in-meta-social-media-addiction-trial">Meta Stares Down Trillion-Dollar Threat as Landmark Social Media Trial Begins &#8211; Bloomberg</a></p></li></ul><div data-attrs="{&quot;url&quot;:&quot;/images/illustrations/session-progress.svg&quot;}" data-component-name="AssetErrorToDOM"><picture><img src="/img/missing-image.png" height="455" width="728"></picture></div><div data-attrs="{&quot;url&quot;:&quot;/images/illustrations/session-progress-dark.svg&quot;}" data-component-name="AssetErrorToDOM"><picture><img src="/img/missing-image.png" height="455" width="728"></picture></div><p>See task progress for longer tasks.</p><p>meta-lawsuit-social-contract.md</p><p>Connectors</p><p><span>Web Search</span></p>]]></content:encoded></item><item><title><![CDATA[The One Question Almost No Candidate Asks]]></title><description><![CDATA[Ask this question at your next interview for more clarity and better results]]></description><link>https://www.timelight.com/p/the-one-question-almost-no-candidate</link><guid isPermaLink="false">https://www.timelight.com/p/the-one-question-almost-no-candidate</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Thu, 16 Jul 2026 02:27:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!h-aw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc231d74e-f29b-4f7e-b7df-b7602de12a7b_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!h-aw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc231d74e-f29b-4f7e-b7df-b7602de12a7b_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h-aw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc231d74e-f29b-4f7e-b7df-b7602de12a7b_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!h-aw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc231d74e-f29b-4f7e-b7df-b7602de12a7b_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!h-aw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc231d74e-f29b-4f7e-b7df-b7602de12a7b_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!h-aw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc231d74e-f29b-4f7e-b7df-b7602de12a7b_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h-aw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc231d74e-f29b-4f7e-b7df-b7602de12a7b_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c231d74e-f29b-4f7e-b7df-b7602de12a7b_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!h-aw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc231d74e-f29b-4f7e-b7df-b7602de12a7b_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!h-aw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc231d74e-f29b-4f7e-b7df-b7602de12a7b_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!h-aw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc231d74e-f29b-4f7e-b7df-b7602de12a7b_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!h-aw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc231d74e-f29b-4f7e-b7df-b7602de12a7b_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Over the course of more than 30 years as an engineering manager, I&#8217;ve interviewed hundreds---possibly even thousands---of software engineers. At my previous company alone, I conducted a few hundred interviews while helping build out the engineering organization.</p><p>We had a structured interview process, and I always explained it carefully to candidates. After a recruiter qualified someone, I conducted the first interview as the hiring manager. I made it clear that I wasn&#8217;t going to review their resume or ask technical questions. Instead, I wanted to understand their previous experiences---particularly how they worked with managers, peers, and, in some cases, engineers they had led.</p><p>Our interviews followed a consistent format. We used a scorecard in our applicant tracking system with a standard set of questions, so I became very familiar with asking the same questions in the same order. While every candidate brought different experiences, we were generally hiring for the same role: a senior software engineer with strong technical leadership skills.</p><p>We were looking for someone who could take ownership of a feature from beginning to end, collaborate effectively with product management, coordinate with other engineers, and help guide technical decisions. Throughout the interview, I paced the conversation carefully so there would always be about ten minutes at the end for the candidate to ask questions.</p><p>Most candidates did ask questions. Typically they wanted to know about the team, the engineering organization, the company culture, or the technology stack. If they asked technical questions, I usually deferred them since dedicated technical interviews would come later.</p><p>But there was one question that almost nobody asked, even though I had made it clear that I was their prospective manager.</p><p>The question is remarkably simple:</p><blockquote><p><strong>&#8220;What do you need me to do?&#8221;</strong></p></blockquote><p>Or, more personally:</p><blockquote><p><strong>&#8220;How can I make you successful?&#8221;</strong></p></blockquote><p>There are many ways to ask the same thing:</p><ul><li><p>What do you expect from the person in this role?</p></li><li><p>What problem are you hoping this person will solve?</p></li><li><p>What isn&#8217;t getting done today that you need someone to own?</p></li><li><p>What would success look like after six or twelve months?</p></li></ul><p>A thoughtful hiring manager should have clear answers. They should know what they&#8217;re hiring for, the problems they need solved, and why your background caught their attention in the first place. Perhaps there is something on your resume that aligns with a challenge they&#8217;re facing. Discovering that early gives you valuable information.</p><p>That information helps in several ways.</p><p>First, it helps you throughout the rest of the interview process. If you know which of your skills the hiring manager values most, you can emphasize those experiences in your subsequent interviews.</p><p>Second, the question demonstrates initiative. It shows that you don&#8217;t simply wait to be told what to do---you actively seek to understand where you can have the greatest impact.</p><p>Finally, it communicates something subtle but important: you understand that your role is to make your manager successful. People rarely phrase it that way, but in almost every organization, part of your job is to help your manager achieve their goals. Candidates who recognize that tend to think more like leaders than individual contributors.</p><p>At my last company, the manager interview was followed by a detailed review of the candidate&#8217;s resume. Understanding what the hiring manager cared about made it much easier for candidates to highlight the experiences that mattered most.</p><p>The next time you&#8217;re interviewing with a hiring manager, try asking some version of:</p><blockquote><p><strong>&#8220;What do you need me to accomplish?&#8221;</strong></p></blockquote><p>You may be surprised by how much you learn---and by how few other candidates think to ask.</p>]]></content:encoded></item><item><title><![CDATA[Dad's Homemade Cheesesteak Sandwich]]></title><description><![CDATA[Hey Liam, this is how Dad makes homemade cheesesteak sandwiches]]></description><link>https://www.timelight.com/p/dads-homemade-cheesesteak-sandwich</link><guid isPermaLink="false">https://www.timelight.com/p/dads-homemade-cheesesteak-sandwich</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Tue, 14 Jul 2026 02:00:12 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/206948133/e07b8d3e263d1f374863aad3cec18b83.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<h1>Dad-Style Cheesesteak Sandwich &#8212; Transcript</h1><p><strong>00:00:00,480 --&gt; 00:00:13,900</strong> <em>Intro &#8212; showing the short rib meat, bought from Ranch 99.</em></p><p>Hey Liam. Today I&#8217;m gonna show you how dad makes a homemade cheesesteak sandwich. This is some short rib that I bought from Ranch 99 yesterday. You can use any kind of thinly sliced meat.</p><p><strong>00:00:14,940 --&gt; 00:00:28,320</strong> <em>Weighing the meat (6 oz) and prepping the bolillo roll.</em></p><p>I&#8217;ve already weighed out six ounces of it, and you can see that&#8217;s how much this is. And then this is a Bolillo roll that I bought from Safeway yesterday, and I&#8217;ve already cut it in half, longitudinally, with this bread knife right here.</p><p><strong>00:00:29,420 --&gt; 00:01:37,720</strong> <em>Setting up at the stove, heating the grill, toasting the rolls, and searing the meat with salt.</em></p><p>Okay, we&#8217;re at the stove and we&#8217;re ready to cook. I&#8217;ve got my bolillo rolls and some provolone cheese right here. I&#8217;ve got the six ounces of meat like before, and I&#8217;ve got my favorite spatula for cooking. And then I&#8217;ve got a pair of tongs as well, standing by in case I need that to load up the sandwich. So we&#8217;re gonna turn the stove on high, and we&#8217;re gonna wait for it to heat up. All right, the stove is heating up. I&#8217;ve got my thermometer on there, it&#8217;s almost up to 400 degrees. You can hear the background noise because the vent is on. I start by just putting these rolls down on the edge of the grill. It&#8217;s gonna warm them up a little bit and hopefully increase the flavor. And then this is gonna go on the grill and you can hear right away that sizzle. That sizzle means that the grill was hot enough. Can I add one more thing that I haven&#8217;t shown before &#8212; I&#8217;m just gonna put a little salt on top of this to add some flavor. You gotta remember that the bolillo rolls are a little more bland, so you wanna salt the meat to get a little bit more flavor on it. So while this is cooking, I&#8217;m just gonna kinda</p><p><strong>00:01:38,960 --&gt; 00:02:09,179</strong> <em>No oil needed thanks to the fat in the short ribs; first flip of the meat.</em></p><p>move it around a little bit. With this cast iron grill and short ribs, you don&#8217;t need to add &#8212; you&#8217;ll notice I didn&#8217;t put any oil on the grill because short ribs have a lot of fat in them, and they&#8217;re gonna cook up just fine. So I&#8217;m gonna leave that go for a minute and we&#8217;ll come back when it&#8217;s right. This has been cooking for like 10 or 20 seconds, and you can see if you sort of turn this over, that the other side of the meat is already starting to turn a different color. So I&#8217;m just gonna grab this up, flip it over.</p><p><strong>00:02:10,259 --&gt; 00:02:11,520</strong> <em>Checking the flipped meat.</em></p><p>And there you go. You can see</p><p><strong>00:02:12,680 --&gt; 00:02:13,660</strong> <em>Confirming it&#8217;s cooking well.</em></p><p>it&#8217;s cooking just fine.</p><p><strong>00:02:16,400 --&gt; 00:02:17,160</strong> <em>Brief check-in on the cooking process.</em></p><p>Got that going.</p><p><strong>00:02:19,820 --&gt; 00:02:26,860</strong> <em>Explaining the meat only needs one flip.</em></p><p>And I&#8217;m really not gonna turn this meat multiple times because it really doesn&#8217;t need it. It&#8217;s gonna cook up,</p><p><strong>00:02:28,040 --&gt; 00:02:38,860</strong> <em>Packing the meat to roll size and adding provolone cheese.</em></p><p>just from one side to the other. So what I&#8217;m gonna do is pack it together a little bit, to get a little bit closer to the size of the bolillo roll. I&#8217;m gonna throw the provolone right on top here,</p><p><strong>00:02:40,220 --&gt; 00:02:56,960</strong> <em>Cheese melts and helps hold the sandwich together; making just one sandwich today.</em></p><p>and then that&#8217;s gonna start to melt. But the other thing it&#8217;s gonna do is keep the sandwich together, and you&#8217;re gonna see that when I try to take this off, that&#8217;s important. I&#8217;m not gonna make a bunch of sandwiches today &#8212; I&#8217;m only gonna do this as one cut. So,</p><p><strong>00:02:58,220 --&gt; 00:03:05,260</strong> <em>Preparing to assemble the sandwich with the spatula.</em></p><p>[laughs] I&#8217;m probably gonna mess this up when I try to flip the sandwich together, but I&#8217;m gonna do it with the spatula</p><p><strong>00:03:06,340 --&gt; 00:03:30,240</strong> <em>Turning off the heat (residual heat is enough) and assembling the sandwich.</em></p><p>and not with the tongs. So the first thing I&#8217;m gonna do is turn the heat off, because with the cast iron grill, you&#8217;ve got plenty of residual heat and there&#8217;s no reason to keep it on this long. So here I go, trying to make the sandwich &#8212; hopefully I don&#8217;t mess this up. I&#8217;m gonna grab all this meat up and flip it onto the top right there,</p><p><strong>00:03:31,540 --&gt; 00:03:35,580</strong> <em>Meat stays together; adding the bottom roll.</em></p><p>and you can see it all stays kind of nicely together. I&#8217;m gonna add the bottom,</p><p><strong>00:03:37,000 --&gt; 00:03:42,859</strong> <em>Final flip and reveal of the finished sandwich.</em></p><p>flip this back over, and there is your dad-style cheesesteak sandwich.</p>]]></content:encoded></item><item><title><![CDATA[Half of a Good Idea is a Bad Idea]]></title><description><![CDATA[The Half of Netflix&#8217;s Culture Everyone Forgets]]></description><link>https://www.timelight.com/p/half-of-a-good-idea-is-a-bad-idea</link><guid isPermaLink="false">https://www.timelight.com/p/half-of-a-good-idea-is-a-bad-idea</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Tue, 14 Jul 2026 01:51:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!doyg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ff9391-9193-46c0-92eb-84c30e3f5f44_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!doyg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ff9391-9193-46c0-92eb-84c30e3f5f44_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!doyg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ff9391-9193-46c0-92eb-84c30e3f5f44_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!doyg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ff9391-9193-46c0-92eb-84c30e3f5f44_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!doyg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ff9391-9193-46c0-92eb-84c30e3f5f44_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!doyg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ff9391-9193-46c0-92eb-84c30e3f5f44_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!doyg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ff9391-9193-46c0-92eb-84c30e3f5f44_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/64ff9391-9193-46c0-92eb-84c30e3f5f44_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!doyg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ff9391-9193-46c0-92eb-84c30e3f5f44_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!doyg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ff9391-9193-46c0-92eb-84c30e3f5f44_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!doyg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ff9391-9193-46c0-92eb-84c30e3f5f44_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!doyg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64ff9391-9193-46c0-92eb-84c30e3f5f44_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When I started my new job a couple of months ago, my desk came with the usual gear: monitor, mouse, charging cable plus a small stack of books management clearly hoped we&#8217;d read and live by. One of them was about Netflix&#8217;s engineering culture.</p><p>I&#8217;d already heard the mythology. Netflix went from mailing DVDs to running one of the largest streaming operations on earth, and somewhere in that leap, the story goes, they overhauled their engineering org: they kept only the &#8220;far exceeds expectations&#8221; performers and let everyone else go. Productivity went up. Netflix became a giant. The end.</p><p>I&#8217;ve heard versions of this story more than once in my own performance review cycles, usually from someone in management asking, half-joking and half-not, why we don&#8217;t just do what Netflix did. Why carry anyone who merely &#8220;meets expectations&#8221;? Just cut them.</p><p>That question always leads somewhere useful: a conversation about whether your own bar is genuinely high, and whether you&#8217;ve actually told your engineers, clearly, what&#8217;s expected of them. But it also skips the part of Netflix&#8217;s culture that matters more than the bar itself.</p><p><strong>Netflix&#8217;s real bet wasn&#8217;t the bar. It was the trade.</strong></p><p>The half of the story that gets dropped is that Netflix engineers are also unusually autonomous. Product managers don&#8217;t direct the work or prescribe how a feature gets built, they collaborate. The engineer is expected to own the business outcome of what they ship. Netflix&#8217;s own culture memo puts a name to this: <strong>&#8220;context, not control&#8221;</strong> &#8212; managers give teams the information and clarity to make good decisions themselves, instead of making the decisions for them. For big calls, they name one <strong>&#8220;informed captain&#8221;</strong> accountable for the judgment, then let different teams, each with their own captain, execute independently &#8220;highly aligned and loosely coupled.&#8221; Decisions get argued over (&#8221;farming for dissent&#8221;), and once made, everyone, including the people who disagreed, is expected to <strong>&#8220;disagree, then commit.&#8221;</strong></p><p>That&#8217;s the part I keep coming back to. You cannot ask someone to own an outcome they didn&#8217;t get to shape. I&#8217;ve worked places where a product manager specifies not just what to build but how, waves off real pushback from the engineers building it, and then still expects those same engineers to be accountable for how it performs. That&#8217;s not accountability, it&#8217;s someone else&#8217;s decision wearing your name.</p><p>Netflix&#8217;s near-zero rulebook only makes sense in that context. Vacation policy: &#8220;Take vacation.&#8221; Expense policy: &#8220;Act in Netflix&#8217;s best interests.&#8221; Those aren&#8217;t quirky perks, they&#8217;re what you get when the company has already decided its people should be trusted with judgment calls, so it stops writing rules for people who don&#8217;t need them.</p><p>Worth saying plainly: this isn&#8217;t a purely happy story. Netflix has acknowledged, including in its own updated culture memo, that the freedom got abused: an assistant expensing $30,000 with no rule technically broken is the go-to example. Their fix, notably, wasn&#8217;t to add more control. It was to reinforce the responsibility half; hence &#8220;People Over Process&#8221; now sitting where &#8220;Freedom and Responsibility&#8221; used to.</p><p>Which is really the point. Freedom and accountability aren&#8217;t two separate policies you can mix and match. They&#8217;re one system, and it only works as a pair. A high performance bar without real decision-making authority isn&#8217;t Netflix&#8217;s culture, it&#8217;s just a harsher review cycle bolted onto the same old command structure. You&#8217;ve kept the consequence and cut the deal that made the consequence fair.</p><p>So when the question comes up &#8212; why don&#8217;t we just get rid of anyone who isn&#8217;t &#8220;far exceeds?&#8221; The honest answer is: you can, but only after you&#8217;ve given your engineers what Netflix gave theirs first. Real context. Real ownership. Real say in how the work gets done. Skip that part and copy only the bar, and you haven&#8217;t adopted Netflix&#8217;s culture. You&#8217;ve adopted half of it and half of a good idea is a bad idea.</p>]]></content:encoded></item><item><title><![CDATA[AI Has Made Software Engineering Fun Again]]></title><description><![CDATA[AI has made software engineering fun again]]></description><link>https://www.timelight.com/p/ai-has-made-software-engineering</link><guid isPermaLink="false">https://www.timelight.com/p/ai-has-made-software-engineering</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Sat, 11 Jul 2026 18:36:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!6gc-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe111c383-6cd4-4f9a-814a-0606b7fe6a02_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6gc-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe111c383-6cd4-4f9a-814a-0606b7fe6a02_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6gc-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe111c383-6cd4-4f9a-814a-0606b7fe6a02_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!6gc-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe111c383-6cd4-4f9a-814a-0606b7fe6a02_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!6gc-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe111c383-6cd4-4f9a-814a-0606b7fe6a02_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!6gc-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe111c383-6cd4-4f9a-814a-0606b7fe6a02_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6gc-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe111c383-6cd4-4f9a-814a-0606b7fe6a02_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e111c383-6cd4-4f9a-814a-0606b7fe6a02_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6gc-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe111c383-6cd4-4f9a-814a-0606b7fe6a02_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!6gc-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe111c383-6cd4-4f9a-814a-0606b7fe6a02_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!6gc-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe111c383-6cd4-4f9a-814a-0606b7fe6a02_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!6gc-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe111c383-6cd4-4f9a-814a-0606b7fe6a02_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I wanted to share some thoughts on AI in the workplace from the perspective of someone who has spent nearly four decades building software. I&#8217;m 58 years old, and next year I&#8217;ll celebrate forty years as a professional software engineer. I started at nineteen while I was still studying at UC Irvine, and over those four decades I&#8217;ve worked as both a software engineer and an engineering manager across companies ranging from startups to large enterprises. During that time I&#8217;ve seen the industry reinvent itself several times, from the rise of the web, to mobile computing, to cloud services. AI feels different&#8212;not because it&#8217;s replacing software engineering, but because it&#8217;s changing who can effectively contribute to every other part of building a business.</p><p>I recently joined a software company where AI isn&#8217;t simply another tool in the toolbox; it&#8217;s part of the company&#8217;s culture. During a recent company retreat, our CEO published a collection of AI skills that employees use throughout the organization. People use them to review specifications, documentation, engineering tickets, product proposals, and other internal documents to ensure they are clear, consistent, and aligned with the company&#8217;s goals. Working in this environment has reinforced something I&#8217;ve suspected for a long time: AI is most valuable when it amplifies human expertise rather than attempting to replace it.</p><h2>The Communication Gap</h2><p>To explain why I believe that, it&#8217;s helpful to describe something I&#8217;ve observed throughout my career. Being an excellent engineer and being an excellent communicator are two very different skill sets. Some engineers possess both, but many do not. I&#8217;ve worked with brilliant people who could solve incredibly difficult technical problems yet struggled to explain those solutions to anyone outside engineering. As a result, engineering organizations often become isolated from the rest of the company. Product managers translate customer requirements into engineering work. Marketing translates technical capabilities into customer value. Sales translates product features into business outcomes. Every layer adds value, but every layer also introduces another opportunity for misunderstanding or loss of nuance.</p><p>For much of my career I&#8217;ve naturally gravitated toward that boundary between engineering and product management. I&#8217;ve enjoyed helping bridge the gap between technical implementation and business requirements, and I think I&#8217;ve been reasonably successful at it. Even so, I discovered that communicating my own ideas beyond my immediate team was surprisingly difficult. I could often see an opportunity, understand the technology required to pursue it, and even build a prototype, but I struggled to package those ideas into something investors, customers, or even colleagues could immediately understand.</p><h2>The Companies I Never Built</h2><p>I can think of at least two occasions where that limitation probably prevented me from building a successful company.</p><p>The first occurred in the early 2000s while I was consulting for several Fortune 500 companies. They all seemed to struggle with a common problem: they possessed enormous amounts of business information but lacked effective ways to present it to decision makers. I recognized there was an opportunity, but I couldn&#8217;t identify the right market, define the right feature set, or clearly articulate the value proposition. I spent months exploring the idea and even spoke with a few venture capitalists I knew, but eventually abandoned the project because I couldn&#8217;t explain what I was trying to build.</p><p>Looking back with twenty years of hindsight, I now realize I was describing what eventually became known as web-based business intelligence. The market was there; I simply couldn&#8217;t frame the opportunity clearly enough to pursue it.</p><p>A few years later, as smartphones and social media began transforming the technology landscape, I found myself working on another idea. I was fascinated by the relationship between people, places, and social connections, and I built a mobile application that allowed you to choose a location, tell your friends you planned to be there, and let members of your social circle discover where their friends were gathering. Like many early mobile applications, it suffered from technical limitations&#8212;GPS accuracy wasn&#8217;t particularly reliable at the time&#8212;but that wasn&#8217;t the real problem. The larger issue was that I still didn&#8217;t know how to describe the business. I couldn&#8217;t clearly explain who the customers were, how the company would grow, or why investors should care.</p><p>Someone else eventually solved that problem. The company was called <strong>Foursquare</strong>.</p><h2>What AI Actually Changes</h2><p>Those experiences have shaped how I think about AI today. I often hear people speculate that AI will eventually create entire companies from scratch, independently discovering markets, inventing products, and building successful businesses. Perhaps that day will come, but I haven&#8217;t seen convincing evidence of it yet.</p><p>What I have seen is something that, in many ways, is more immediately valuable.</p><p>If I had those same ideas today, I have little doubt I could build a company around them. Not because AI would generate the ideas, but because it would help me develop them. It would help me identify potential markets, evaluate competitors, refine the messaging, prepare financial projections, challenge my assumptions, develop a business plan, and produce investor presentations. None of those activities replace creativity; they allow creativity to reach people who can act on it.</p><p>I think that&#8217;s the real revolution. AI isn&#8217;t replacing expertise&#8212;it is removing many of the barriers that prevented expertise from being translated into products, businesses, and ideas that other people can understand.</p><h2>AI Isn&#8217;t the Source of &#8220;Slop&#8221;</h2><p>This leads to another criticism I hear frequently&#8212;that AI is flooding the internet with low-quality content, or what many people call &#8220;AI slop.&#8221; There is certainly some truth to that. The internet is already filling up with generic articles, marketing copy, presentations, and documentation generated with very little thought or care.</p><p>But I think that criticism misunderstands the technology.</p><p>AI doesn&#8217;t inherently produce poor content; it reflects the quality of the thinking behind the prompt. Ask a vague question and you&#8217;ll receive a vague answer. Ask for generic marketing copy and you&#8217;ll receive generic marketing copy. In many cases, what people call AI slop is simply human slop produced more efficiently.</p><p>Over forty years in software engineering, I&#8217;ve learned that the difficult part of communication isn&#8217;t writing sentences. The difficult part is organizing your thoughts, understanding your audience, deciding what matters, and explaining complicated ideas without oversimplifying them. Those are still fundamentally human skills.</p><p>When I use AI, I&#8217;m rarely asking it to write something for me. I&#8217;m asking it to help me think. I provide context, explain my goals, describe my audience, ask it to challenge my assumptions, and iterate on the results. Sometimes I reject everything it produces. Other times it helps me discover a clearer explanation or a stronger structure than I would have found on my own.</p><p>The value isn&#8217;t that AI is doing my thinking.</p><p>The value is that it helps me communicate my thinking.</p><h2>Why I&#8217;m Optimistic</h2><p>As engineers, we&#8217;ve always understood that tools amplify the quality of the person using them. A compiler doesn&#8217;t magically produce good software because someone typed code into it, and a database doesn&#8217;t produce valuable business insights simply because someone executed a query. The quality of the output depends on the quality of the design, the quality of the inputs, and the judgment of the person using the tool.</p><p>AI is no different.</p><p>In fact, I think it does something even more interesting: it increases the return on expertise. Forty years of engineering experience still matter. If anything, they matter more than ever because AI allows me to apply that experience in areas where I was never formally trained&#8212;product strategy, marketing, business planning, technical writing, and communication.</p><p>Looking back, I don&#8217;t think AI would have given my younger self better ideas. I think it would have given those ideas a much better chance of succeeding by helping me explain them, test them, challenge them, and communicate them to investors, customers, and teammates. The ideas were always there; what was missing was the ability to translate them into something the rest of the world could understand.</p><p>As I near the end of my career, I find that realization surprisingly energizing. I could retire today&#8212;and probably could have retired several years ago&#8212;but instead I find myself more excited about software engineering than I have been in a very long time.</p><p>Simply put, AI has made this job fun again.</p><p>Not because it has replaced what I&#8217;ve learned over the last forty years, but because, for the first time in my career, I feel like those forty years of experience can finally reach farther than they ever could before.</p>]]></content:encoded></item><item><title><![CDATA[Staying Sharp and Staying Moving: Notes on Getting Older]]></title><description><![CDATA[Keep your mind and your body moving at all times]]></description><link>https://www.timelight.com/p/staying-sharp-and-staying-moving</link><guid isPermaLink="false">https://www.timelight.com/p/staying-sharp-and-staying-moving</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Sat, 11 Jul 2026 18:30:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!XSFi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58deff42-c21e-4b83-a979-d90891b2f423_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XSFi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58deff42-c21e-4b83-a979-d90891b2f423_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XSFi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58deff42-c21e-4b83-a979-d90891b2f423_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!XSFi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58deff42-c21e-4b83-a979-d90891b2f423_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!XSFi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58deff42-c21e-4b83-a979-d90891b2f423_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!XSFi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58deff42-c21e-4b83-a979-d90891b2f423_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XSFi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58deff42-c21e-4b83-a979-d90891b2f423_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58deff42-c21e-4b83-a979-d90891b2f423_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XSFi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58deff42-c21e-4b83-a979-d90891b2f423_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!XSFi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58deff42-c21e-4b83-a979-d90891b2f423_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!XSFi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58deff42-c21e-4b83-a979-d90891b2f423_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!XSFi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58deff42-c21e-4b83-a979-d90891b2f423_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><p><span>I want to talk a little bit about keeping yourself mentally and physically fit as an older person. Let&#8217;s be honest: the body starts failing you, and there isn&#8217;t a lot of time on your hands. That&#8217;s not because you&#8217;re lazy &#8212; it&#8217;s because of everything else pulling at you. Work. Extended family. A spouse, kids, maybe even grandchildren. Fitness, in both senses, has to compete for whatever time is left.</span></p><h2><span>Staying mentally fit</span></h2><p><span>For me, mental fitness has always come down to one thing: going deeper into whatever subject grabs me. There&#8217;s a touch of ADHD in my family &#8212; something we only figured out later in life &#8212; and once I understood that a little better, a lot of my own habits made more sense. I don&#8217;t think of it as a disorder. It&#8217;s just how I&#8217;m wired. I get interested in something, or even a little frightened by it, and I want to </span><em><span>know</span></em><span>.</span></p><p><span>My mom likes to tell the family that she got so tired of fielding questions from me and my brother that she bought us an encyclopedia &#8212; and I read every volume, cover to cover, over the course of my childhood.</span></p><p><span>So when the internet came along and information exploded, I was in my element. We all know what happened next, too &#8212; a flood of disinformation and content deliberately designed to mislead. It got harder to tell what was true. But it also got easier to strip away the noise and find sources worth trusting, if you knew what to look for.</span></p><p><span>More recently, AI has become a genuinely interesting tool for me &#8212; both as someone who&#8217;s just curious about the world, and in my day job as a software engineer. That deserves its own post, so I&#8217;ll leave it there for now.</span></p><h2><span>Staying physically fit</span></h2><p><span>Now for the harder half. One of the biggest challenges as we get older is that we simply can&#8217;t work out the way we used to &#8212; our bodies can&#8217;t take the punishment, and recovery takes a lot longer. I think that&#8217;s the real reason competitive athletes eventually have to walk away from their sport: not that they&#8217;ve lost the skill, but that they can&#8217;t put in the preparation anymore.</span></p><p><span>Over time I&#8217;ve developed one trick that&#8217;s actually made a real difference, and it connects back to that same attention-span issue I mentioned earlier. I&#8217;ll also admit something else here: I&#8217;ve struggled with anxiety, with &#8220;future-tripping,&#8221; and with catastrophizing things before they&#8217;ve even happened. Applied to exercise, that means when I think about working out, my mind jumps straight to all the effort I&#8217;m about to have to put in. I lose touch with the payoff &#8212; the part that actually feels good.</span></p><p><span>For most of my life I&#8217;ve studied rhetorical devices and logical fallacies, both formal and informal. I&#8217;ve talked to my son, who&#8217;s 18 now, about how important it is to understand how people construct arguments &#8212; and how people try to manipulate each other with them.</span></p><p><span>Here&#8217;s the twist: it turns out you can manipulate </span><em><span>yourself</span></em><span> with a logical fallacy, on purpose, for your own good. The one I use is the sunk cost fallacy.</span></p><p><span>If you&#8217;re not familiar with it, the sunk cost fallacy is a common error in reasoning where, instead of judging a decision on its actual future value, you let yourself be swayed by how much you&#8217;ve already invested &#8212; time, money, effort &#8212; in getting to this point. You keep going not because it still makes sense, but because you&#8217;ve already put so much in.</span></p><p><span>Here&#8217;s how I use that against my own resistance to exercise. Instead of confronting the decision &#8220;should I work out today?&#8221; as one big, effort-loaded question, I break it down into its smallest, most concrete steps. Get out of bed. Take off the pajamas. Put on workout clothes. Walk to the gym, or step outside. Each one of those is small and undemanding on its own &#8212; nobody dreads putting on socks. But once I&#8217;ve done two or three of them, I&#8217;ve already sunk cost into the process. Quitting now would mean the getting-dressed part was for nothing, and that&#8217;s usually enough to carry me the rest of the way into an actual workout.</span></p><p><span>It&#8217;s a small trick, but it works because it sidesteps the part of my brain that wants to catastrophize the whole effort up front. By the time that part of my brain notices what&#8217;s happening, I&#8217;m already at the gym.</span></p><p><span>If you&#8217;ve got a mind that likes to future-trip the way mine does, it might be worth trying on yourself too.</span></p>]]></content:encoded></item><item><title><![CDATA[Erling Haaland's Diet]]></title><description><![CDATA[Should you 6000 calories a day of nothing but meat, cheese, eggs and milk?]]></description><link>https://www.timelight.com/p/erling-haalands-diet</link><guid isPermaLink="false">https://www.timelight.com/p/erling-haalands-diet</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Sat, 11 Jul 2026 17:29:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KQg5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7c8f034-b43c-484e-b578-efa82390f93d_1024x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><span>Made this helpful graph for people who are thinking about eating like Erling Haaland does:</span></p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7c8f034-b43c-484e-b578-efa82390f93d_1024x1536.png&quot;}],&quot;caption&quot;:&quot;Helpful flow chart regarding Erling Haaland's diet&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7c8f034-b43c-484e-b578-efa82390f93d_1024x1536.png&quot;}},&quot;isEditorNode&quot;:true}"></div>]]></content:encoded></item><item><title><![CDATA[A "Clever" Way to Crash the Economy Again]]></title><description><![CDATA[The AI Data Center Debt Bubble Is 2008 With Better PR]]></description><link>https://www.timelight.com/p/a-clever-way-to-crash-the-economy</link><guid isPermaLink="false">https://www.timelight.com/p/a-clever-way-to-crash-the-economy</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Fri, 10 Jul 2026 01:01:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!2Y4z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f34baf-c907-4da7-91ee-c74ae0148d99_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2Y4z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f34baf-c907-4da7-91ee-c74ae0148d99_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2Y4z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f34baf-c907-4da7-91ee-c74ae0148d99_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!2Y4z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f34baf-c907-4da7-91ee-c74ae0148d99_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!2Y4z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f34baf-c907-4da7-91ee-c74ae0148d99_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!2Y4z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f34baf-c907-4da7-91ee-c74ae0148d99_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2Y4z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f34baf-c907-4da7-91ee-c74ae0148d99_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/05f34baf-c907-4da7-91ee-c74ae0148d99_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!2Y4z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f34baf-c907-4da7-91ee-c74ae0148d99_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!2Y4z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f34baf-c907-4da7-91ee-c74ae0148d99_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!2Y4z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f34baf-c907-4da7-91ee-c74ae0148d99_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!2Y4z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f34baf-c907-4da7-91ee-c74ae0148d99_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;ve been reading about how companies raising the tens (and in some cases hundreds) of billions of dollars needed to build AI data centers have landed on a financing strategy that gets described as clever: borrow the money, then bundle that debt and sell it off to institutional investors in pieces.</p><p>It isn&#8217;t clever. It&#8217;s a rerun.</p><h2>We&#8217;ve seen this movie before</h2><p>That exact pattern &#8212; pooling a large number of loans and slicing them into tranches to sell to institutional investors &#8212; is what caused the 2008 mortgage crisis. Banks bundled home loans, marketed them as high-quality debt, and sold them off. The flaw was simple: the whole scheme assumed housing prices in different regions wouldn&#8217;t all fall at once. They did. Supposedly nobody saw it coming. Everybody saw it coming.</p><p>The data center version isn&#8217;t hypothetical or something I&#8217;m speculating might start &#8212; it&#8217;s already well underway. Data center loans are increasingly being securitized through commercial mortgage-backed securities (CMBS) and asset-backed securities (ABS), the same structures used for mortgage bonds. JPMorgan projects annual data center securitization issuance could reach $30 billion to $40 billion in both 2026 and 2027, representing 7% to 10% of combined CMBS and ABS issuance in those years, up from about $27 billion in 2025.[1] That&#8217;s on top of a much larger wave of AI-related corporate debt and private credit &#8212; AI-related companies and projects tapped debt markets for at least $200 billion in 2025 alone, and Morgan Stanley expects $250 billion to $300 billion of issuance in 2026 from hyperscalers like Microsoft and Meta.[1]</p><p>It&#8217;s not just journalists and bloggers drawing the 2008 comparison. The Bank for International Settlements warned in its annual report that an AI investment bust could hit credit markets with disruption comparable to the 2008 financial crisis, specifically flagging what it called &#8220;circular financing&#8221; &#8212; chipmakers and hyperscalers taking equity stakes in AI labs or neocloud providers who in turn commit to multi-year purchases of chips or computing power from those same investors, with deal terms that are typically poorly disclosed.[4] Lawyers who worked structured-finance litigation after 2008 are using the same word to describe what they&#8217;re seeing now: one attorney who worked on housing-crisis litigation said tracking developments in AI data center financing feels like &#8220;deja vu,&#8221; noting we&#8217;re talking about trillions of dollars with almost no transparency about the financing structures.[3]</p><h2>The scale is the scary part</h2><p>In 2008, the underlying problem wasn&#8217;t just that some mortgages were bad &#8212; it was how enormous the mortgage market was, and how much of it had been securitized and distributed into &#8220;safe&#8221; institutional portfolios. Data center financing is being talked about in the same order of magnitude. Global data center spending could reach $7 trillion by 2030 according to McKinsey estimates,[3] and that money increasingly can&#8217;t come just from hyperscalers writing checks out of cash flow &#8212; it&#8217;s being raised through corporate bonds, private credit, and securitization, layered on top of each other in ways that are hard for any single investor to fully see through.</p><h2>Will the demand actually be there?</h2><p>The 2008 crisis depended on a bet that home prices could never fall everywhere at once. The AI data center bet depends on demand for AI compute continuing to grow at something close to its current pace, forever, to justify the debt taken on to build it.</p><p>I&#8217;ll admit the data here is messier than I expected going in. Per-token prices for AI models have actually been falling sharply, not rising, thanks to competition and efficiency gains &#8212; and so far that hasn&#8217;t suppressed demand; if anything, usage has grown even faster than prices have dropped. Anthropic&#8217;s annualized first-quarter 2026 revenue rose fivefold to $45 billion, and token consumption is forecast to keep climbing even as chipmakers lower annual token costs by 60% to 70%.[5] So the simple story of &#8220;prices are rising, so demand must be cooling&#8221; doesn&#8217;t hold up cleanly.</p><p>But that doesn&#8217;t mean the underlying concern is wrong &#8212; it just points at a different pressure point. The real open question is whether AI usage translates into revenue that can service all this debt. Enterprises are already pushing back on cost, with many companies reporting minimal measurable profit from generative AI pilots,[5] and Goldman Sachs Research has found that gains from the AI buildout have concentrated heavily in infrastructure stocks &#8212; semiconductors, hyperscalers, data center operators &#8212; with equity gains far outpacing growth in actual forward earnings, a gap that has made analysts more cautious about how long capital spending can run ahead of visible monetization.[6] If growth in paying, profitable AI usage doesn&#8217;t keep outrunning the buildout &#8212; whether because adoption plateaus, competition erodes pricing power faster than volume grows, or the ROI just isn&#8217;t there for enough customers &#8212; you get a glut of very expensive, purpose-built infrastructure with no way to pay off the debt behind it. And these facilities aren&#8217;t easily repurposed: they&#8217;re built around GPU racks, power density, and cooling systems tailored to one job.</p><p>There&#8217;s also a real question, separate from the financing mechanics, about what all this compute is actually for. It&#8217;s not always clear whether the buildout is meant for bigger models, more inference to serve existing demand, or a more speculative bet that enough compute gets you a qualitative leap toward general intelligence. It&#8217;s probably some mix of all three. But the dollar figures being thrown around are what make the uncertainty concerning &#8212; you don&#8217;t want to find out after the fact which bet you were actually financing.</p><h2>Nobody is stepping in</h2><p>In 2008, the mortgage crisis eventually forced a regulatory response, but not before triggering a global financial crisis. What&#8217;s needed now is the thing the U.S. is generally bad at: getting ahead of it. That means regulators actually looking at how these data center financing deals are structured and passing rules that prevent debt from being oversubscribed or repackaged past the point where anyone can trace the real risk.</p><p>There are early signs some people in government are paying attention. Four U.S. senators sent a letter this year calling on the government to investigate how Big Tech is turning to complex and opaque debt markets to borrow staggering sums of cash, warning that massive debt loads could cause destabilizing losses for financial institutions and trigger a broader financial crisis.[3] Whether that turns into actual legislation before something breaks is another matter.</p><p>To be fair, there are real differences from 2008 worth naming. Data center tenants are predominantly investment-grade hyperscalers with enormous cash reserves, the underlying demand for AI compute is demonstrably real and growing, and the physical assets have genuine utility that residential mortgage-backed securities lacked when housing demand collapsed.[2] That&#8217;s a meaningfully different starting point than subprime borrowers with no ability to pay. But &#8220;the borrowers are richer this time&#8221; was also roughly the argument made about corporate debt before plenty of past blowups, and it doesn&#8217;t address the structural issue: opaque, layered securitization that lets risk pile up in places nobody&#8217;s really pricing correctly, at a scale &#8212; trillions of dollars &#8212; that rhymes uncomfortably with the last time this went wrong.</p><h2>A side note on Andrew Yang&#8217;s tax-AI argument</h2><p>Andrew Yang has been making a related but distinct case: that the U.S. should tax AI itself rather than labor, on the theory that AI is going to displace workers at scale, and the tax code shouldn&#8217;t keep penalizing employers for hiring humans while automation goes untaxed.[7] His argument is built on the same underlying number that worries me here &#8212; the trillion-plus dollars going into AI infrastructure &#8212; but he uses it to argue corporations need to generate enough revenue from AI to justify those valuations, and that revenue has to come from somewhere, likely payroll.</p><p>Taxing the construction and operation of data centers directly could be another route to some of what Yang wants, even if it&#8217;s not exactly what he&#8217;s proposed. A tax on data center capex or on-site power draw would land squarely on the physical infrastructure driving both the job-displacement story and the financing bubble described above, and it would generate revenue precisely at the moment resources are being committed &#8212; rather than waiting to tax AI revenue or job losses after the fact, when the money may already be spoken for by debt service. It also sidesteps some of the &#8220;where does AI stop and the human interpretation start&#8221; line-drawing problems that critics of a compute or automation tax raise, since a data center is a discrete, physical, easy-to-measure thing to tax. Whether that&#8217;s better or worse policy than taxing compute or automation directly is a separate question, but it&#8217;s worth having on the table alongside whatever regulatory response eventually comes to the financing side.</p><div><hr></div><p><strong>Sources</strong></p><ol><li><p><a href="https://energynow.com/2026/02/the-3-trillion-ai-data-center-build-out-becomes-all-consuming-for-debt-markets/">The $3 Trillion AI Data Center Build-Out Becomes All-Consuming For Debt Markets</a> &#8212; EnergyNow, Feb. 2026</p></li><li><p><a href="https://www.theaiconsultingnetwork.com/blog/ai-data-center-gpu-debt-financing-insurance-cre-investors-2026">AI Data Center Financing Hits $200B: CRE Impact 2026</a> &#8212; The AI Consulting Network, Apr. 2026</p></li><li><p><a href="https://www.cnbc.com/2026/04/06/ai-data-centers-financing-insurance-deals-gpu-debt.html">AI data center boom &#8216;stress tests&#8217; insurers as private capital floods in</a> &#8212; CNBC, Apr. 2026</p></li><li><p><a href="https://thenextweb.com/news/bis-ai-bust-credit-risk-2008-circular-financing">The BIS warns an AI bust could hit credit markets as hard as the 2008 financial crisis</a> &#8212; The Next Web, June 2026</p></li><li><p><a href="https://www.forbes.com/sites/petercohan/2026/06/11/the-ai-bubble-isnt-bursting-but-a-vicious-price-war-is-here/">The AI Bubble Is Stable As A Price War Forces A New Reality</a> &#8212; Forbes, June 2026</p></li><li><p><a href="https://theaiinsider.tech/2026/07/08/how-ai-token-supply-shapes-prices-and-investor-returns/">How AI Token Supply Shapes Prices and Investor Returns</a> &#8212; The AI Insider, July 2026</p></li><li><p><a href="https://blog.andrewyang.com/p/tax-ai-not-humans-again">Tax AI, Not Humans, Again</a> &#8212; Andrew Yang, June 2026</p></li></ol>]]></content:encoded></item><item><title><![CDATA[The 3 Reasonables]]></title><description><![CDATA[My thoughts on handling confrontation]]></description><link>https://www.timelight.com/p/the-3-reasonables</link><guid isPermaLink="false">https://www.timelight.com/p/the-3-reasonables</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Tue, 09 Jun 2026 15:00:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!R_x3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba877ee-4b5f-456c-bcbd-46b5a400c4d5_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!R_x3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba877ee-4b5f-456c-bcbd-46b5a400c4d5_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!R_x3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba877ee-4b5f-456c-bcbd-46b5a400c4d5_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!R_x3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba877ee-4b5f-456c-bcbd-46b5a400c4d5_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!R_x3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba877ee-4b5f-456c-bcbd-46b5a400c4d5_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!R_x3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba877ee-4b5f-456c-bcbd-46b5a400c4d5_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!R_x3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba877ee-4b5f-456c-bcbd-46b5a400c4d5_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ba877ee-4b5f-456c-bcbd-46b5a400c4d5_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!R_x3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba877ee-4b5f-456c-bcbd-46b5a400c4d5_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!R_x3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba877ee-4b5f-456c-bcbd-46b5a400c4d5_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!R_x3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba877ee-4b5f-456c-bcbd-46b5a400c4d5_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!R_x3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ba877ee-4b5f-456c-bcbd-46b5a400c4d5_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is going to be a short post, in the spirit of some messages I want to leave for my son. I&#8217;ve said this to him before, and I say it to myself a lot.</p><p>The topic is confrontation &#8212; or really any situation where two people have to come to an agreement. Like a lot of things in life, some people are just naturally good at it. I had to learn, and I&#8217;ll describe how.</p><p>The formula I came up with is simple. I call it the three reasonables: if you make a reasonable request, to a reasonable person, in a reasonable way, you will usually get what you want.</p><p>But you have to be honest about all three. Is what you&#8217;re asking for actually reasonable? Depending on the situation, it may or may not be. Are you dealing with a reasonable person? This matters especially in heightened situations &#8212; even ones where things might turn physical. You have to be clear-eyed about who you&#8217;re dealing with. And finally, are you making the request in a reasonable way? If you&#8217;re both shouting, neither of you is.</p><p>That&#8217;s why I think it&#8217;s so important to learn to control your emotions &#8212; anger and fear especially. They make people behave unreasonably. And honestly, that third reasonable was the hardest one for me. I&#8217;d get emotionally triggered, fear would follow, and fear would turn to anger. Anger, as neuroscience tells us, puts blinders on you. It cuts off the part of your brain that&#8217;s actually equipped to handle the situation. And then you&#8217;re no longer reasonable.</p><p>That&#8217;s my thought on confrontation &#8212; on situations where you have to hold your own</p>]]></content:encoded></item><item><title><![CDATA[You Are What You Do Every Day]]></title><description><![CDATA[Advice for my son as he becomes a man]]></description><link>https://www.timelight.com/p/you-are-what-you-do-every-day</link><guid isPermaLink="false">https://www.timelight.com/p/you-are-what-you-do-every-day</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Tue, 09 Jun 2026 14:57:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bKIq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c4ac92-e307-4f5f-961c-3933d532168b_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bKIq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c4ac92-e307-4f5f-961c-3933d532168b_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bKIq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c4ac92-e307-4f5f-961c-3933d532168b_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!bKIq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c4ac92-e307-4f5f-961c-3933d532168b_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!bKIq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c4ac92-e307-4f5f-961c-3933d532168b_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!bKIq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c4ac92-e307-4f5f-961c-3933d532168b_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bKIq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c4ac92-e307-4f5f-961c-3933d532168b_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/65c4ac92-e307-4f5f-961c-3933d532168b_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bKIq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c4ac92-e307-4f5f-961c-3933d532168b_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!bKIq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c4ac92-e307-4f5f-961c-3933d532168b_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!bKIq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c4ac92-e307-4f5f-961c-3933d532168b_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!bKIq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c4ac92-e307-4f5f-961c-3933d532168b_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><p>There&#8217;s a conversation I&#8217;ve been meaning to have with my son &#8212; not about any single decision, but about the ones you make every single day without even thinking about them.</p><p>Aristotle got there first: <em>&#8220;We are what we repeatedly do. Excellence, then, is not an act but a habit.&#8221;</em> He wasn&#8217;t being poetic. He was describing a mechanism.</p><div><hr></div><h2>The small things aren&#8217;t small</h2><p>When you wake up and reach for your phone before your feet hit the floor, that&#8217;s a choice. When you skip the workout because you&#8217;re tired, that&#8217;s a choice. When you sit down and do the hard thing before the easy one &#8212; that&#8217;s a choice too. None of these feel significant in the moment. But they compound.</p><p>Science backs this up in ways that should give you pause. Research from University College London found it takes an average of <strong>66 days</strong> &#8212; not the mythical 21 &#8212; for a new behavior to become automatic. Some habits take up to a year to truly set. The point isn&#8217;t to discourage you. The point is that the person you are becoming right now is being built slowly, quietly, by what you do every morning before the world starts asking things of you.</p><div><hr></div><h2>Identity follows action</h2><p>Most people think it works the other way &#8212; that you decide who you want to be, and then you act accordingly. But watch how it actually unfolds. You don&#8217;t become disciplined and <em>then</em> start showing up. You show up, imperfectly, repeatedly, and one day you look back and realize: <em>that&#8217;s who I am now.</em></p><p>James Clear put it well: <em>&#8220;Every action you take is a vote for the person you wish to become.&#8221;</em></p><p>You&#8217;re casting those votes constantly. The question is whether you&#8217;re doing it consciously.</p><div><hr></div><h2>What I&#8217;ve learned</h2><p>Lao Tzu traced the whole arc: <em>&#8220;Watch your thoughts, they become your words; watch your words, they become your actions; watch your actions, they become your habits; watch your habits, they become your character; watch your character, it becomes your destiny.&#8221;</em></p><p>That&#8217;s not philosophy. That&#8217;s a warning.</p><p>Your daily routine isn&#8217;t just how you spend your time. It&#8217;s how you spend your self. The morning you protect to think clearly. The hour you put toward something that matters. The discipline to finish what you start even when the enthusiasm has worn off &#8212; especially then.</p><div><hr></div><h2>What I want you to remember</h2><p>You will not be remembered for the things you intended to do. You will be shaped &#8212; thoroughly, permanently &#8212; by the things you actually did, day after day, when no one was watching and nothing was forcing you.</p><p>Build your days with that in mind.</p><p>The secret of your life is hidden in your daily routine. Guard it accordingly.</p>]]></content:encoded></item><item><title><![CDATA[The Last Thing They Expect]]></title><description><![CDATA[Patience is a virtue in business and in life]]></description><link>https://www.timelight.com/p/the-last-thing-they-expect</link><guid isPermaLink="false">https://www.timelight.com/p/the-last-thing-they-expect</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Sun, 24 May 2026 18:34:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Jqb5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348e0d9-8c44-4f47-a7a2-3ab400a656e2_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Jqb5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348e0d9-8c44-4f47-a7a2-3ab400a656e2_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jqb5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348e0d9-8c44-4f47-a7a2-3ab400a656e2_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!Jqb5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348e0d9-8c44-4f47-a7a2-3ab400a656e2_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!Jqb5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348e0d9-8c44-4f47-a7a2-3ab400a656e2_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!Jqb5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348e0d9-8c44-4f47-a7a2-3ab400a656e2_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jqb5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348e0d9-8c44-4f47-a7a2-3ab400a656e2_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6348e0d9-8c44-4f47-a7a2-3ab400a656e2_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Jqb5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348e0d9-8c44-4f47-a7a2-3ab400a656e2_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!Jqb5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348e0d9-8c44-4f47-a7a2-3ab400a656e2_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!Jqb5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348e0d9-8c44-4f47-a7a2-3ab400a656e2_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!Jqb5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6348e0d9-8c44-4f47-a7a2-3ab400a656e2_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As I get closer to the end of my career, I&#8217;m finding it more and more important to break down some of the experiences I&#8217;ve had as a professional software engineer over almost 40 years &#8212; to share them, and to try to help the next generation of engineers deal with some of the problems I&#8217;ve had to deal with.</p><p>So here&#8217;s one. When you get into a situation where somebody tries to screw you over &#8212; or actually does screw you over &#8212; the last thing they expect is for you to patiently wait for the right opportunity to fix the situation, whatever that may be.</p><p>Let me give you an example from my own career.</p><p>A few years ago now, before the Pandemic, I accepted a relatively small consulting engagement with a very, very early-stage startup. They hadn&#8217;t built any product yet &#8212; not a single line of code. They needed somebody to come in and architect the system for them, and work with another engineer to build a prototype.</p><p>So I put a contract in place. A very important provision in any contract you sign as a professional engineer is the Acceptance Criteria: under what circumstances has the customer accepted the work you&#8217;ve done, and therefore owes you payment? A very common provision &#8212; one I always add &#8212; is that if the customer uses your software for any commercial purpose, they have accepted the software.</p><p>The situation was that I went to work for this very early-stage startup. It was about a $27,000 engagement over the course of, I&#8217;d say, six weeks or so, with three milestones, each carrying its own milestone payment. The company originally told me they only wanted to pay $18,000 for the engagement, but I sent them some estimates and said, well, I think it&#8217;s really going to take more like $27,000. That was the very first tell. Looking back, I realize it was the first sign there might be problems.</p><p>They wanted me to use my own computer, but even though I was a contractor, they insisted I come into their office every day. It was actually a WeWork in downtown San Francisco. And despite the fact that asking a consultant to show up at nine in the morning and work until five in the evening sort of automatically makes you not a consultant, I agreed to that as well, because I thought it was an interesting thing to work on.</p><p>So I went into the office and was introduced to the other engineer on the project. He was a front-end engineer, I was a back-end engineer, and we were going to be working together to build this prototype. I very quickly realized that this was literally his first job out of college. He had zero experience working in a professional environment. So in addition to building the back end of the system, I was immediately put in the position of having to mentor him, coach him, and help him with his work.</p><p>We trundled along through the first milestone. I submitted my invoice and got paid $9,000. Then we trundled along through the second milestone, and I submitted another invoice and got paid again. After a couple more weeks of work, I was getting ready to deliver the final milestone. We had a demoable system &#8212; one that showed potential investors what the product was ultimately going to be able to do, and what the value proposition of the company was.</p><p>But along the way, a couple of other red flags started to pop up.</p><p>I got into a very serious back-and-forth with the CEO about HIPAA compliance. This company was intending to launch a technology product in the healthcare space, and since we were going to be storing patient data, we had to be &#8212; in my view &#8212; HIPAA compliant. At that time we were running our system on Heroku, which is a very convenient platform to launch startup ideas on. But Heroku is not HIPAA compliant. You cannot launch a HIPAA-compliant product on Heroku.</p><p>So I made the CEO aware of this and put some options in front of him that would eventually lead to HIPAA compliance. And I got immediate pushback. It was too much cost, too much effort, way too many problems. At the same time, there was a conversation going on about launching a limited pilot with real patients.</p><p>That&#8217;s where my concern lay. It became clear to me that the CEO was not going to take HIPAA compliance seriously. In fact, I found out he met with a consultant at one point who told him that companies can self-certify for HIPAA compliance. I pointed out to the CEO that self-certification was for companies like Johnson &amp; Johnson or Procter &amp; Gamble &#8212; companies with big internal IT organizations that could actually check all the boxes for true HIPAA compliance.</p><p>So I ended up sending the CEO an email basically saying: I&#8217;ve done all this work, but I won&#8217;t put this system into production for you. I won&#8217;t be involved in making this system available to real patients in any capacity, because of the lack of HIPAA compliance.</p><p>And with that, I submitted my final invoice and went on vacation with my family.</p><p>We went to England. I was sitting in Wembley Stadium with my son and my wife, watching The Pretenders open for Fleetwood Mac &#8212; that was the concert we went to at Wembley &#8212; and I was thoroughly enjoying myself when my phone suddenly blew up.</p><p>Two things were happening at the exact same time. On one hand, the young engineer was texting me, because the CEO was getting ready to demo our product to a potential investor, and he had lots of questions about how to set up the back end and get everything working correctly. So I was helping him with that, sending him instructions for how to do it.</p><p>At the same time, I got a message from the CEO and his co-founder telling me they were not accepting the work I had done. They were not going to make the final milestone payment. And in fact, the system was so unacceptable, they said, that they were planning to sue me to get back the $18,000 they had already paid me.</p><p>It was at that point that all the red flags came together &#8212; and there were other red flags I don&#8217;t care to get into here. I realized that for these guys, $18,000 was all they ever had. That&#8217;s all they ever intended to pay me. They had essentially been stringing me along to get as much work out of me as possible.</p><p>So I sent them back a notice saying: listen, I know you&#8217;re about to do a demo for a potential investor. In my view, that constitutes a commercial use of the system I built. So you have accepted this product, and you do in fact owe me the last $9,000.</p><p>I can&#8217;t remember what they wrote back, because frankly, I was on vacation enjoying myself with my family. So I just filed it away and didn&#8217;t think much about it for several years.</p><p>The Pandemic happened, and we all got through that. I just waited patiently. Every once in a while I would check in with this company to see what was going on. They were in the telemedicine business, so like a lot of other companies during the Pandemic, they did extremely well. They got funding, they launched, they signed up a lot of patients, and by all accounts were doing extremely well.</p><p>Sometime toward the end of the Pandemic &#8212; or maybe after &#8212; I decided to check in with them again. One of the first things I did was check my laptop, because it turned out I still had a couple of artifacts on my machine from the work I&#8217;d done for them. I had the code, because there was no reason for me to delete it. And I also had some AWS keys that I had originally used to set up parts of the system.</p><p>Almost on a whim, I tried to access Amazon. I won&#8217;t say exactly which services I tried to access, but I just sort of probed. And I discovered that the Amazon keys I had issued to myself years earlier were still valid.</p><p>In other words, this company had not done even the most superficial, cursory security cleanup when they let me go &#8212; a consultant they had basically stiff-armed and never paid. They hadn&#8217;t changed those keys. I immediately shut down what I was doing and went no further, because at one point I was actually looking at patient data. And I was like, okay, this is not good.</p><p>So then I checked their website, found out the name of their venture capital firm, and found out the name of the partner who sat on their board. I sent that gentleman a very nicely worded, very helpful, but also very serious message. I laid out the whole thing for him. It was sort of a &#8220;did you know about this?&#8221; You have these security holes. You obviously don&#8217;t have a culture around security. I doubt you&#8217;re HIPAA compliant. And &#8212; can I please get paid for the work I did, so we can put this all behind us?</p><p>And lo and behold, I got paid within three or four days.</p><p>Remember, this was years after the initial fallout. I had waited patiently for this point, because that&#8217;s the best thing to do. At the point they actually owed me the money years ago, there was no use trying &#8212; I wouldn&#8217;t have gotten paid. But several years later, after they had raised quite a bit of money, the potential liability was a very serious issue for them. So I got paid right away.</p><p>In fact, they asked me to sign a mutual non-disparagement and non-disclosure agreement around these issues, which I did. In retrospect, I probably should have asked for more money to sign it. But I didn&#8217;t. I just put the whole thing behind me.</p><p>Several years after that, I came to find out that this company, after its initial success, basically imploded &#8212; because it turned out they were sending confidential patient data to a third party. I still don&#8217;t know what ultimately happened to their business, because at this point I don&#8217;t care.</p><p>But the point is this: in your professional career, you will run across all sorts of people. And unfortunately, what I&#8217;ve seen in my almost 40 years in this business is that the caliber and integrity of a lot of people in our industry has degraded significantly. This is not the only story I have about a startup founder who not only bent the rules but blatantly broke them &#8212; broke laws, even &#8212; in order to be successful, thinking the rules don&#8217;t apply to them. And they do.</p><p>So when you run into a situation like this in your career, be thoughtful and be patient. Wait for your opportunity to make things right.</p>]]></content:encoded></item><item><title><![CDATA[Everything Is Getting Worse on Purpose]]></title><description><![CDATA[Enshittification is a feature, not a bug]]></description><link>https://www.timelight.com/p/everything-is-getting-worse-on-purpose</link><guid isPermaLink="false">https://www.timelight.com/p/everything-is-getting-worse-on-purpose</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Sun, 10 May 2026 18:03:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!27GV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16008ffe-8567-48fc-ace2-09ca0c3d2b0a_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!27GV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16008ffe-8567-48fc-ace2-09ca0c3d2b0a_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!27GV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16008ffe-8567-48fc-ace2-09ca0c3d2b0a_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!27GV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16008ffe-8567-48fc-ace2-09ca0c3d2b0a_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!27GV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16008ffe-8567-48fc-ace2-09ca0c3d2b0a_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!27GV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16008ffe-8567-48fc-ace2-09ca0c3d2b0a_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!27GV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16008ffe-8567-48fc-ace2-09ca0c3d2b0a_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16008ffe-8567-48fc-ace2-09ca0c3d2b0a_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!27GV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16008ffe-8567-48fc-ace2-09ca0c3d2b0a_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!27GV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16008ffe-8567-48fc-ace2-09ca0c3d2b0a_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!27GV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16008ffe-8567-48fc-ace2-09ca0c3d2b0a_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!27GV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16008ffe-8567-48fc-ace2-09ca0c3d2b0a_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You&#8217;ve probably noticed it, even if you don&#8217;t have a name for it. The washing machine that doesn&#8217;t last as long as the one your parents had. The software you now rent instead of own. The Starbucks that seems perpetually understaffed. The streaming service where you&#8217;ve &#8220;purchased&#8221; dozens of movies you&#8217;ll lose the moment you cancel your subscription.</p><p>There&#8217;s a word for this. It&#8217;s called <em>enshittification</em> &#8212; the gradual, deliberate decrease in the quality of any product or service over time. The term was coined by the author and journalist Cory Doctorow, who originally used it to describe a specific pattern in tech platforms: the way a platform attracts users with good service, then degrades that service to extract more value for advertisers, then degrades it further to extract more value for shareholders, until there&#8217;s almost nothing left for the people who originally showed up. I want to use it more broadly here, because the pattern Doctorow identified in platforms turns out to describe nearly everything. And I want to draw a through line that I don&#8217;t think gets enough attention: the legal and political conditions that made enshittification not just possible, but almost inevitable.</p><div><hr></div><h3><strong>How We Got Here: The Legal Foundation</strong></h3><p>To understand enshittification, you have to go back over a century, to a 1919 Michigan Supreme Court case called <em>Dodge v. Ford Motor Company</em>.</p><p>The Dodge brothers &#8212; yes, those Dodges, the ones who would go on to found the rival car company &#8212; were minority shareholders in Ford. Henry Ford had decided he wanted to stop paying large special dividends and instead reinvest profits into the company, expand production, and raise worker wages. The Dodge brothers sued. And they won. The Michigan Supreme Court ruled that Ford had to pay the dividends, writing that &#8220;a business corporation is organized and carried on primarily for the profit of the stockholders.&#8221; Not for its workers. Not for its customers. Not even for the long-term health of the enterprise itself. For shareholders. First, last, and primarily.</p><p>That principle &#8212; shareholder primacy &#8212; became the foundational legal logic of American corporate governance. (<em>Dodge v. Ford Motor Company</em>, 204 Mich. 459, Michigan Supreme Court, 1919.)</p><p>The intellectual machinery came later. In 1970, the economist Milton Friedman published a famous essay in the New York Times Magazine titled &#8220;The Social Responsibility of Business Is to Make Money.&#8221; His argument was blunt: corporate executives who voluntarily spend shareholder money on social goods &#8212; cleaner factories, better wages, community investment &#8212; are, in effect, imposing an unauthorized tax. The only legitimate obligation of a business is to increase profits within the rules of the game. Friedman&#8217;s essay gave academic cover to a doctrine that had been humming along in the courts for half a century, and it became enormously influential in business schools throughout the 1970s and 1980s.</p><p>Then came the political dimension. To understand how shareholder primacy moved from legal doctrine to cultural operating system, you have to read a document called the Powell Memo.</p><p>In August 1971, a corporate attorney named Lewis Powell wrote a confidential memo to the U.S. Chamber of Commerce titled &#8220;Attack on American Free Enterprise System.&#8221; His argument was that American corporations were under coordinated assault &#8212; from the political left, from academia, from consumer advocates like Ralph Nader, from the press &#8212; and that business had been far too passive in its own defense. His prescription was systematic and well-funded: corporations needed to staff and fund think tanks, shape what was being taught in universities, cultivate relationships with media, and lobby government with far greater aggression and coordination than they had before. He was, in effect, writing the blueprint for the modern corporate political infrastructure &#8212; institutions like the Heritage Foundation and the American Enterprise Institute trace significant parts of their origin and funding to exactly this moment.</p><p>Two months after writing the memo, Lewis Powell was nominated to the Supreme Court by President Nixon. He was confirmed in December 1971. And in 1978, he wrote the majority opinion in <em>First National Bank of Boston v. Bellotti</em> &#8212; the decision that gave corporations First Amendment rights to spend money on political referendums. The man who wrote the corporate mobilization playbook handed corporations one of their most powerful legal weapons from the bench.</p><p>Over a period of roughly a century, American courts steadily expanded the legal rights of corporations until they resembled, in many respects, the constitutional rights of individual citizens. The arc is worth tracing briefly: in 1886, <em>Santa Clara County v. Southern Pacific Railroad</em> (118 U.S. 394) was cited &#8212; through a contested court reporter&#8217;s headnote, not the actual ruling &#8212; as establishing that corporations are &#8220;persons&#8221; entitled to equal protection under the Fourteenth Amendment. In 1978, the U.S. Supreme Court&#8217;s <em>First National Bank of Boston v. Bellotti</em> (435 U.S. 765) gave corporations First Amendment rights to spend money on political referendums. And in 2010, <em>Citizens United v. FEC</em> (558 U.S. 310) completed the circuit, ruling that corporations could spend unlimited sums on political speech. Along the way, the Supreme Court&#8217;s 5-4 ruling in <em><a href="https://www.oyez.org/cases/2013/13-354">Burwell v. Hobby Lobby Stores, Inc.</a></em> (573 U.S. 682, 2014) held that closely held, for-profit corporations could claim religious exemptions under the Religious Freedom Restoration Act (RFRA) &#8212; a statutory rather than constitutional ruling, which means Congress retains the power to amend RFRA and close that door.</p><p>The practical consequence is that corporations gained the political and legal standing of persons without the moral accountability of persons. They can speak. They can lobby. They can donate. But they cannot go to jail.</p><p>Put all of this together &#8212; the shareholder primacy doctrine of <em>Dodge v. Ford</em>, the intellectual legitimization of Friedman&#8217;s essay, the decades of expanding corporate rights &#8212; and you&#8217;ve built a legal and cultural environment in which corporations believe, sometimes rightly and sometimes wrongly, that their only real obligation is to maximize returns for shareholders, even at the cost of the general public, their own employees, and ultimately their own products.</p><p>That belief is the engine of enshittification.</p><div><hr></div><h3><strong>The Evidence Is Overwhelming</strong></h3><p>If you want proof that shareholder primacy has taken hold as an operational doctrine &#8212; not just a legal theory, but a genuine guide to corporate behavior &#8212; the evidence is not hard to find.</p><p>Start with stock buybacks. In 2018, companies in the S&amp;P 500 collectively spent more than $800 billion buying back their own stock, directly inflating share prices. That same year, they spent less than $600 billion on research and development. The math tells you everything: returning money to shareholders was a higher priority than investing in the future of the business.</p><p>Look at executive compensation. In 1965, the average CEO of a large American company earned roughly 20 times what the median worker at that company earned. By the early 2020s, that ratio had climbed above 300 to 1 in many industries. The primary driver of executive pay is stock price performance. CEOs are, structurally, optimized to make one number go up &#8212; not to build great products, retain talented employees, or serve customers well. If those things happen to make the stock go up, fine. If they don&#8217;t, they&#8217;re expenses to be cut.</p><p>Even the corporate establishment has quietly acknowledged the problem. In 1997, the Business Roundtable &#8212; the lobbying organization that represents CEOs of America&#8217;s largest corporations &#8212; published a statement declaring that corporations exist principally to serve their shareholders. In 2019, to some fanfare, they reversed themselves, issuing a new statement signed by nearly 200 CEOs pledging that corporations should serve all stakeholders: employees, customers, suppliers, communities, and shareholders. It was treated as a landmark moment.</p><p>And then, largely, those same companies continued doing what they had always done. Harvard Law School professors Lucian Bebchuk and Roberto Tallarita examined what actually happened after the signing in a paper titled &#8220;The Illusory Promise of Stakeholder Governance&#8221; (<em>Cornell Law Review</em>, 2021) and found that virtually none of the signatory companies had updated their corporate governance bylaws &#8212; the actual documents that boards use to make decisions &#8212; to reflect the new stakeholder commitments. The pledge had never been operationalized. It was, in their words, an &#8220;illusory promise.&#8221; The statement was, in the end, a press release. The incentive structure hadn&#8217;t changed, because nobody in the boardroom had been asked to change it.</p><div><hr></div><h3><strong>The Cheapening of Everything</strong></h3><p>The most obvious form of enshittification is straightforward: make the product with cheaper inputs and hope the customer doesn&#8217;t notice.</p><p>The American washing machine is an instructive example. Compare the durability and construction of an appliance made in 2022 to one made thirty or forty years ago. There&#8217;s simply no comparison. Corporations have spent decades finding ways to use cheaper materials, less expensive manufacturing techniques, and lower-grade components &#8212; while keeping the product looking, on the surface, roughly the same. The goal isn&#8217;t to deceive customers, exactly. The goal is to preserve the perception of value while steadily eroding the actual value. The machine still washes your clothes. It just won&#8217;t do so for as long.</p><p>Stretch this logic across nearly every consumer product category and the pattern holds. Furniture. Appliances. Tools. Clothing. The things we buy today are, in most cases, designed to need replacement sooner than their predecessors. This is sometimes called planned obsolescence, but that framing lets corporations off the hook too easily. It&#8217;s not just planning for obsolescence &#8212; it&#8217;s engineering it.</p><div><hr></div><h3><strong>The Rise of Monthly Recurring Revenue</strong></h3><p>There is a second, arguably more corrosive form of enshittification: the shift from products you own to services you license.</p><p>Corporations have become infatuated with what the business world calls MRR &#8212; monthly recurring revenue. The logic is seductive from an investor&#8217;s perspective. If you sell someone a product once, and it&#8217;s a genuinely excellent product that lasts a lifetime, you&#8217;ve made one sale. The customer is satisfied. They may even recommend you to others. But you&#8217;ll never make another dollar from them directly. Under the old model, building the best possible product was, at minimum, defensible as a business strategy.</p><p>Under the MRR model, that math inverts. A product so good it never needs replacing is a liability. What you want instead is something the customer pays for every month, every year, indefinitely.</p><p>The tech industry offers the clearest illustration of this shift. I spent part of my career at Lotus Development Corp, which made &#8212; among other things &#8212; a word processor and a spreadsheet called Lotus 1-2-3. These were dominant products. Then Microsoft entered the market, bundled competing products with the operating systems businesses were already buying, and priced Lotus out of existence. That move effectively eliminated a major competitor and consolidated enormous power in Microsoft&#8217;s hands.</p><p>But here&#8217;s the part that deserves more attention. Once Microsoft had that market dominance, it shifted its entire business model. You used to walk into a store and buy a box: Microsoft Word, Microsoft Excel, a one-time purchase. That model is essentially gone. Today, you license those products. You pay every month, or every year, forever. The software is never truly yours.</p><p>And that shift created a problem that Microsoft solved in a particularly telling way: how do you justify charging customers every year for a product they already know how to use? The answer is features. Constant, relentless, often unnecessary features. I watched this from inside the industry and found myself wondering: who is this for? Menus grew more complex. Interfaces became cluttered. At one point, Microsoft had to roll back years of accumulated complexity by redesigning its menus from scratch &#8212; an implicit admission that the product had grown unwieldy. But the underlying dynamic never changed, because it couldn&#8217;t. The business model demands it.</p><p>One consequence of this feature race that I don&#8217;t think gets discussed enough: in their rush to add new capabilities to justify ongoing subscriptions, Microsoft embedded a scripting language &#8212; VBA, Visual Basic for Applications &#8212; directly into Word and Excel. The intention was to give power users more flexibility. The result was a massive, long-lived security vulnerability. Every Excel file, every Word document, became a potential vector for malicious code. A feature nobody asked for, built to satisfy investor expectations, ended up making millions of computers less safe for years.</p><div><hr></div><h3><strong>You Don&#8217;t Own Your Movies, Either</strong></h3><p>The same dynamic has reshaped entertainment. With the rise of streaming, the notion of &#8220;buying&#8221; a movie has become something of a legal fiction. When Amazon Prime offers you the option to purchase a film, what you&#8217;re purchasing is a license to view that film on Amazon&#8217;s platform, subject to Amazon&#8217;s terms of service. If you ever cancel Prime, those &#8220;purchases&#8221; go with it. The fine print in Amazon&#8217;s terms of service makes this explicit &#8212; those licenses are non-transferable. You cannot take them to another platform. You cannot bequeath them. You cannot resell them.</p><p>You are, in effect, paying for the privilege of being locked in. Monthly recurring revenue, applied to culture.</p><div><hr></div><h3><strong>Understaffing as a Business Strategy</strong></h3><p>Move from products to services, and enshittification takes a somewhat different form &#8212; but the logic is identical.</p><p>Walk into a Starbucks today, or sit in a hospital emergency room, or call a customer service line for almost any large corporation, and you are experiencing the results of a decision made in a conference room somewhere: how few people can we employ without meaningfully hurting sales? Not &#8220;how many people do we need to serve our customers well?&#8221; Not &#8220;what staffing level would prevent our employees from burning out?&#8221; The question is almost always about the floor, not the ceiling.</p><p>Labor is typically the largest single operating expense a service business carries. Private equity firms in particular have become skilled at identifying businesses where staffing can be reduced &#8212; the logic being that customers, out of inertia or lack of alternatives, will tolerate a degraded experience rather than leave. And often, they&#8217;re right. At least in the short term.</p><p>The results are visible everywhere, if you&#8217;re paying attention. The Starbucks line that takes twenty-five minutes when it used to take five, because there are two people working a shift that used to have four. The customer service hold time that runs forty-five minutes, then an hour, because the company has decided that the cost of hiring enough agents to answer the phone promptly is higher than the cost of your frustration. These aren&#8217;t accidents or isolated failures. They are the output of a deliberate calculation, made in a spreadsheet, that your time has no value on their balance sheet. You will wait because you have no real choice &#8212; and because the people making that calculation know you&#8217;ll probably stay anyway.</p><p>What makes this particular form of enshittification especially corrosive is that it also falls hardest on the people doing the work. The barista who has to apologize to an irritated customer for a wait that isn&#8217;t her fault. The support agent handling a queue no reasonable person could manage. The ER nurse running between too many patients at once. The degradation of the product and the degradation of the job are the same event, experienced from two different sides of the counter.</p><div><hr></div><h3><strong>You Don&#8217;t Own Your Tractor, Either</strong></h3><p>The software licensing logic doesn&#8217;t stay neatly inside the tech industry. It has migrated into the physical world, with consequences that are, in some cases, a matter of life and livelihood.</p><p>John Deere is the dominant manufacturer of agricultural equipment in the United States. It also sells some of the most software-dependent machinery ever put in a farmer&#8217;s hands &#8212; modern tractors packed with sensors, GPS systems, and onboard computers that would have seemed like science fiction a generation ago. When that equipment breaks down, the software that runs it is locked. Farmers cannot access the diagnostic tools required to identify the problem, let alone fix it. That access is reserved for authorized John Deere dealers.</p><p>The practical consequence is that a farmer whose tractor fails in the middle of harvest &#8212; a window that may last only a few days before crops are lost &#8212; cannot simply fix the machine they own and go back to work. They have to wait for a dealer technician, who may be days away. The tractor sitting in the field is theirs. They paid for it. In every practical sense, however, they do not own it. They own the hardware. The software that makes the hardware run belongs to John Deere, and John Deere has decided that software is not transferable with the sale.</p><p>The argument John Deere makes will sound familiar: you aren&#8217;t purchasing the software, you&#8217;re licensing it. The same logic that turned your Microsoft Office subscription into a monthly fee and your Amazon movie &#8220;purchase&#8221; into a revocable license has now been applied to a $500,000 piece of farm equipment. A farmer in Iowa and a software developer in Seattle are, legally speaking, in the same position: they paid for the use of something they will never truly own.</p><p>John Deere, facing mounting pressure from farmers and legislators, signed a voluntary memorandum of understanding with the American Farm Bureau Federation in 2023, promising expanded access to repair tools. Voluntary. Unenforceable. Sound familiar?</p><div><hr></div><h3><strong>What To Do About It</strong></h3><p>The through line in everything described above is not bad luck or market failure. It is the predictable output of a system that was deliberately constructed &#8212; through case law, through intellectual frameworks, through coordinated political organizing &#8212; to place shareholder returns above every other consideration. That system didn&#8217;t build itself, which means it can be dismantled. Here is where to start.</p><p><strong>Right to repair.</strong> The most direct intervention. Legislation requiring manufacturers to provide customers, and independent repair shops, with the tools, parts, and documentation needed to fix what they own. The European Union has moved aggressively in this direction; the United States has lagged, though more than two dozen states have introduced right-to-repair bills in recent years, and Colorado passed agricultural right-to-repair legislation in 2023. The fight is winnable, but it requires sustained pressure on state and federal legislators who will face well-funded opposition from manufacturers whose dealer service networks are a significant profit center.</p><p><strong>Antitrust enforcement.</strong> Many of the worst enshittification dynamics are downstream of monopoly or near-monopoly power. Microsoft&#8217;s ability to price Lotus out of existence and then lock customers into subscriptions depended on its dominance of the operating system market. Amazon&#8217;s ability to sell you a movie license you can&#8217;t transfer depends on its dominance of streaming infrastructure. John Deere controls roughly half the U.S. market for large agricultural equipment. When companies don&#8217;t have real competition, they don&#8217;t need to treat you well. Antitrust enforcement &#8212; actually breaking up dominant players, or blocking mergers that would create them &#8212; is not a radical idea. It is, historically, how democratic societies have kept market power from concentrating to the point of abuse.</p><p><strong>Open source and cooperative models.</strong> Not every solution is legislative. The open-source software movement has, for decades, produced tools &#8212; Linux, Firefox, LibreOffice, countless others &#8212; that are genuinely owned by their users and deliberately designed not to be enshittified, because no shareholder is waiting to extract value from them. Agricultural cooperatives give farmers collective bargaining power against equipment manufacturers and input suppliers. Credit unions exist as direct structural alternatives to shareholder-owned banks. These models don&#8217;t scale to replace every corporate product, but they demonstrate that the shareholder-primacy model is not the only way to organize the production of things people need.</p><p><strong>A constitutional amendment.</strong> This one is a long shot, and I say that without apology &#8212; long shots are sometimes the only honest answer to a deeply structural problem. The accumulated power of corporate personhood doctrine was not handed down from nature. It was constructed, case by case, over more than a century, by courts interpreting a Constitution that says nothing about corporations at all. What courts have built, a constitutional amendment could clarify: that corporations are not natural persons, that they hold no inherent constitutional rights, and that whatever legal standing they enjoy exists only because democratic governments choose to grant it &#8212; and can choose to limit it. Corporations are legal fictions. They are instruments created by society to organize economic activity. They were never meant to have a bill of rights.</p><p>There are already organized efforts pushing in this direction. The Move to Amend coalition has been working toward a &#8220;We the People Amendment&#8221; that would do exactly this: establish in the Constitution that constitutional rights belong to human beings, not to corporations, and that money is not speech. Whether or not such an amendment ever passes, the argument behind it is correct. A corporation cannot suffer. It cannot be imprisoned. It cannot die. The idea that it should enjoy the same First Amendment protections as a person &#8212; that its capacity to spend unlimited money on politics is constitutionally equivalent to your right to speak your mind &#8212; is a legal fiction built on top of another legal fiction, and it has had consequences that the drafters of the Fourteenth Amendment could not have imagined and would not have endorsed.</p><p>The economists and lawyers who built the legal infrastructure of shareholder primacy spent decades doing it deliberately and patiently. <em>Dodge v. Ford</em> was 1919. The Friedman essay was 1970. The Powell Memo was 1971. <em>Citizens United</em> was 2010. This was not an accident. It was a project. Reversing it will require the same persistence &#8212; which starts with being clear about what actually happened, and why your washing machine doesn&#8217;t last as long as your parents&#8217; did.</p>]]></content:encoded></item><item><title><![CDATA[You’re the Product Manager of Your Own Life]]></title><description><![CDATA[When you&#8217;re trying to live a goal-oriented life, you&#8217;re trying to be constantly improving yourself.]]></description><link>https://www.timelight.com/p/youre-the-product-manager-of-your</link><guid isPermaLink="false">https://www.timelight.com/p/youre-the-product-manager-of-your</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Sun, 03 May 2026 16:41:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7iGO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ec96d4-ea45-4c2d-b15c-aa2a97abcb4e_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7iGO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ec96d4-ea45-4c2d-b15c-aa2a97abcb4e_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7iGO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ec96d4-ea45-4c2d-b15c-aa2a97abcb4e_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!7iGO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ec96d4-ea45-4c2d-b15c-aa2a97abcb4e_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!7iGO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ec96d4-ea45-4c2d-b15c-aa2a97abcb4e_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!7iGO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ec96d4-ea45-4c2d-b15c-aa2a97abcb4e_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7iGO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ec96d4-ea45-4c2d-b15c-aa2a97abcb4e_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/70ec96d4-ea45-4c2d-b15c-aa2a97abcb4e_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!7iGO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ec96d4-ea45-4c2d-b15c-aa2a97abcb4e_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!7iGO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ec96d4-ea45-4c2d-b15c-aa2a97abcb4e_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!7iGO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ec96d4-ea45-4c2d-b15c-aa2a97abcb4e_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!7iGO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ec96d4-ea45-4c2d-b15c-aa2a97abcb4e_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When you&#8217;re trying to live a goal-oriented life, you&#8217;re trying to be constantly improving yourself. That gets harder as you creep toward middle age, because now there are honest-to-god bucket list items you either haven&#8217;t started or just aren&#8217;t making any progress on. They sit there. They mock you a little.</p><p>I&#8217;ve been an engineering manager for more than 30 years, and the way I&#8217;ve started thinking about this is that, just like at a company, the projects I&#8217;ve taken on for myself are a backlog. I&#8217;m a blue belt in jiu-jitsu &#8212; I&#8217;d love to get to purple someday. I&#8217;m trying to claw back my Spanish after letting it rust for 30 years. There&#8217;s general fitness and health, which gets harder, not easier &#8212; you can&#8217;t just flop into bed at the end of the night and pop up eight hours later like you could in your 20s. Now it&#8217;s a struggle to get to sleep, a struggle to stay asleep. Oh, and I&#8217;m trying to write three books. Not one. Three.</p><p>If you&#8217;ve ever worked in software, you know what this looks like: a pile of open Linear tickets that have been sitting there for years. The tasks have subtasks. The subtasks have subtasks. Every time you look at the board, you feel further behind than the last time.</p><h2><strong>The cycle that eats your life</strong></h2><p>Here&#8217;s where it gets ugly. You put all these expectations on yourself, you fail to live up to most of them, and then you beat yourself up about it. The self-criticism kicks the anxiety up a notch. Anxiety scrambles your emotional state. And when you&#8217;re not in a good emotional state, it&#8217;s really difficult to get any work done. It&#8217;s actually painful.</p><p>I think this is one of the reasons people distract themselves so much. When you&#8217;re staring at what feels like an insurmountable list &#8212; a list <em>you</em> put on yourself, by the way &#8212; your brain reaches for the cheapest available dopamine. Phone. TikTok. Instagram. &#8220;Just five minutes.&#8221; Two hours later, you&#8217;ve done nothing, and the list is still right there waiting for you. The cycle is: overwhelm &#8594; distract &#8594; still overwhelmed, but now also two hours behind. It&#8217;s maddening.</p><h2><strong>Manage yourself like an engineer</strong></h2><p>I know how to manage engineers. I&#8217;ve spent decades doing it. So I figured: maybe I should start managing <em>myself</em> like an engineer.</p><p>Here&#8217;s the thing about that. In my work life, I&#8217;ve gotten pretty practiced at staring down product managers and telling them &#8212; politely, but firmly &#8212; to put everything in priority order. Product managers are great people, but their literal job is to ask engineering for things. And if you&#8217;re not careful, a well-meaning PM will overwhelm you with &#8220;must-haves,&#8221; because to them, it&#8217;s all must-haves.</p><p>So I push back. I say: there is no must-have line. Everything goes in priority order. Top to bottom. Because every single day, every engineer on the team is making decisions about what to put their attention on, and they need to be able to look at the list and just <em>start at the top</em>.</p><p>The same thing applies to your personal life. The problem is that <em>you</em> are both the product manager and the engineer. You&#8217;re the one piling on the requests, and you&#8217;re also the one who has to do them. And you, the PM-version-of-you, can absolutely overwhelm you, the engineer-version-of-you, with very well-meaning requests.</p><h2><strong>Build a bomb-proof priority list</strong></h2><p>What you need is a bomb-proof list of priorities, in the actual order they&#8217;re important to you in your life. Not aspirational order. Not &#8220;what would sound good on a podcast&#8221; order. The real order.</p><p>When you have that, then on the days when you&#8217;re overwhelmed and can&#8217;t even figure out where to put your attention next, you don&#8217;t have to figure it out. You just go to the top of the list and ask: <em>am I making progress here? Am I falling behind?</em></p><p>For most people, health probably belongs at or near the top. It&#8217;s also the easiest thing to fall behind on. By health I mean the boring, well-known stuff: drinking enough water, eating real food regularly, getting enough sleep, exercising. We all know we should do these things. That&#8217;s not the hard part. The hard part is the motivation, and the motivation gets a lot easier when health isn&#8217;t competing for attention with eight other things you also told yourself were &#8220;must-haves.&#8221;</p><h2><strong>Stop blaming the people around you</strong></h2><p>One more thing, and this one is uncomfortable.</p><p>When you put too many expectations on yourself, there&#8217;s a real tendency to look around at the people in your life and start blaming <em>them</em>. They&#8217;re asking too much of you. They&#8217;re not helping enough. They&#8217;re getting in your way.</p><p>Be careful with that. In most cases, you&#8217;re the one asking too much of you. You are the product manager of your own life. You are the business manager of your own life. If you&#8217;ve put so many expectations on yourself that you can&#8217;t possibly do it alone &#8212; that&#8217;s fine. Get help. But look in the right places for help, and don&#8217;t reflexively blame the people around you for not solving a problem you created.</p><p>I tell engineers this. I tell my son this. It is <em>totally okay</em> to need help. But you are the one who has to ask for it. You have to figure out who, and how, and in what way to ask. Sometimes the most useful help isn&#8217;t even someone else doing a thing for you &#8212; sometimes it&#8217;s just a person looking at your list with you and saying, &#8220;Yeah, you don&#8217;t actually have to do that one.&#8221;</p><h2><strong>TL;DR</strong></h2><p>You are the product manager. You are the engineer. The PM-you can overwhelm the engineer-you, and when it does, the engineer-you starts scrolling TikTok at 11 p.m. instead of sleeping.</p><p>So manage yourself the way you&#8217;d want to be managed. Make the list. Put it in real priority order, top to bottom, no must-have line. Start at the top. Ask for help when you need it. And every once in a while, give yourself permission to look at a ticket that&#8217;s been open for two years and just close it.</p><p>Not every goal deserves to be on the board.</p>]]></content:encoded></item><item><title><![CDATA[Don't Smoke Your Database With This Common Mistake]]></title><description><![CDATA[Third-Party API Calls Inside Database Transactions]]></description><link>https://www.timelight.com/p/dont-make-third-party-api-calls-inside</link><guid isPermaLink="false">https://www.timelight.com/p/dont-make-third-party-api-calls-inside</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Wed, 15 Apr 2026 02:51:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!I_Cj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d79137-cb67-451b-be10-04623e64694e_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I_Cj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d79137-cb67-451b-be10-04623e64694e_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I_Cj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d79137-cb67-451b-be10-04623e64694e_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!I_Cj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d79137-cb67-451b-be10-04623e64694e_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!I_Cj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d79137-cb67-451b-be10-04623e64694e_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!I_Cj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d79137-cb67-451b-be10-04623e64694e_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I_Cj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d79137-cb67-451b-be10-04623e64694e_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a9d79137-cb67-451b-be10-04623e64694e_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!I_Cj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d79137-cb67-451b-be10-04623e64694e_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!I_Cj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d79137-cb67-451b-be10-04623e64694e_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!I_Cj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d79137-cb67-451b-be10-04623e64694e_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!I_Cj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9d79137-cb67-451b-be10-04623e64694e_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><p>It&#8217;s an easy mistake to make, and an intuitive one. You&#8217;re building a command that does a few things: call Stripe a couple of times, get back payment objects, and write the results to the database. You want the whole thing to be atomic &#8212; if anything fails, nothing should be persisted. So you wrap everything in a transaction. Done, right?</p><p>Not quite. This pattern &#8212; third-party API calls inside database transactions &#8212; is one of those things that looks correct on paper but causes real pain in production. I&#8217;ve seen it take down services at exactly the wrong times. Let me explain why, and what to do instead.</p><div><hr></div><h2><strong>The Intuitive Approach</strong></h2><p>Imagine you&#8217;re scheduling a payment. The operation requires three calls to Stripe: create a customer, attach a payment method, and schedule a charge. After each call you get back an object and you want to persist it. Something like this:</p><pre><code><code>def call
  ActiveRecord::Base.transaction do
    customer = Stripe::Customer.create(email: user.email)
    db_customer = StripeCustomer.create!(stripe_id: customer.id, user: user)

    payment_method = Stripe::PaymentMethod.attach(
      payment_method_id,
      customer: customer.id
    )
    db_payment_method = StripePaymentMethod.create!(
      stripe_id: payment_method.id,
      stripe_customer: db_customer
    )

    charge = Stripe::PaymentIntent.create(
      amount: amount_in_cents,
      currency: 'usd',
      customer: customer.id,
      payment_method: payment_method.id
    )
    StripeCharge.create!(stripe_id: charge.id, stripe_payment_method: db_payment_method)
  end
end
</code></code></pre><p>The appeal here is obvious. If the third <code>Stripe::PaymentIntent.create</code> call blows up, the transaction rolls back and none of those partial records land in the database. Clean and atomic.</p><p>The problem is what you&#8217;re doing to your database in the meantime.</p><div><hr></div><h2><strong>The Latency Mismatch Problem</strong></h2><p>A database transaction is not a free operation. Depending on your isolation level, it holds locks &#8212; at minimum on the rows it has written to, potentially on the pages or tables those rows live in. Those locks are held for the duration of the transaction.</p><p>On a well-provisioned system &#8212; say, two services on the same AWS availability zone &#8212; a straightforward database operation (a simple <code>SELECT</code>, <code>INSERT</code>, or <code>UPDATE</code>) should complete in well under 10 milliseconds. A batch of several such operations inside a single transaction? Still probably under 10ms total.</p><p>Stripe API calls, on the other hand, regularly take 500&#8211;700ms. Sometimes more. There&#8217;s no amount of infrastructure tuning you can do on your end to change that. You&#8217;re at the mercy of Stripe&#8217;s servers and the public internet.</p><p>So what you&#8217;ve actually built is a transaction that holds database locks for the better part of a second, per call, times however many Stripe calls you need to make. Three Stripe calls? You&#8217;re looking at a transaction that holds locks for potentially 2 seconds or more. And if you have any concurrency at all &#8212; multiple workers, background jobs, web requests &#8212; those locks start competing.</p><div><hr></div><h2><strong>What This Looks Like in Production</strong></h2><p>At Mudflap, we had a background job that ran every morning to update fuel prices and validate a large number of cached objects. This job made multiple third-party API calls and also needed to commit a significant number of database updates. At some point, someone had wired this up with the API calls living inside transactions.</p><p>During the morning run, we started seeing cascading database performance issues. Connections were getting held. Queries were backing up. The combination of high-concurrency writes and long-running transactions caused severe lock contention &#8212; and the morning price update, which customers depend on at the start of their day, was the worst possible time for it.</p><p>The fix was straightforward once we diagnosed the problem: pull the API calls out of the transactions entirely.</p><div><hr></div><h2><strong>The Pre-Transaction Pattern</strong></h2><p>The solution is to restructure your command object so that all third-party API calls happen in a dedicated pre-transaction step. The results are stored as instance variables on the command object. Then, in a separate step, you open the transaction and do nothing inside it except write to the database.</p><p>Here&#8217;s what that looks like:</p><pre><code><code>class SchedulePaymentCommand
  def call
    fetch_stripe_objects   # pre-transaction step: all API calls happen here
    persist_to_database    # transaction step: DB writes only, no network I/O
  end

  private

  def fetch_stripe_objects
    @stripe_customer = Stripe::Customer.create(email: user.email)

    @stripe_payment_method = Stripe::PaymentMethod.attach(
      payment_method_id,
      customer: @stripe_customer.id
    )

    @stripe_charge = Stripe::PaymentIntent.create(
      amount: amount_in_cents,
      currency: 'usd',
      customer: @stripe_customer.id,
      payment_method: @stripe_payment_method.id
    )
  end

  def persist_to_database
    ActiveRecord::Base.transaction do
      db_customer = StripeCustomer.create!(
        stripe_id: @stripe_customer.id,
        user: user
      )

      db_payment_method = StripePaymentMethod.create!(
        stripe_id: @stripe_payment_method.id,
        stripe_customer: db_customer
      )

      StripeCharge.create!(
        stripe_id: @stripe_charge.id,
        stripe_payment_method: db_payment_method
      )
    end
  end
end
</code></code></pre><p>The transaction is now doing only what it should: coordinating a set of fast, local database writes. Lock hold time drops from ~1.5 seconds to under 10ms.</p><div><hr></div><h2><strong>&#8220;But What About Atomicity?&#8221;</strong></h2><p>This is the obvious objection. In the original pattern, if anything fails, the transaction rolls back. With the pre-transaction pattern, what happens if the API calls all succeed but then the database write fails?</p><p>It&#8217;s a fair concern, but it&#8217;s also fully solvable &#8212; and handling it explicitly is actually <em>better</em> than relying on a transaction rollback, because a rollback doesn&#8217;t undo what already happened on Stripe&#8217;s end anyway. If you made three Stripe API calls before the DB write failed, rolling back your database changes leaves you with orphaned Stripe objects. The transaction gives you a false sense of safety.</p><p>The right pattern is a structured error handling routine on the command object &#8212; something that has a specific job: clean up whatever API-side state was created if the overall operation fails. Since the Stripe responses are stored in instance variables, the error handler still has access to them:</p><pre><code><code>class SchedulePaymentCommand
  def call
    fetch_stripe_objects
    persist_to_database
  rescue =&gt; e
    handle_error(e)
    raise
  end

  private

  def fetch_stripe_objects
    @stripe_customer = Stripe::Customer.create(email: user.email)

    @stripe_payment_method = Stripe::PaymentMethod.attach(
      payment_method_id,
      customer: @stripe_customer.id
    )

    @stripe_charge = Stripe::PaymentIntent.create(
      amount: amount_in_cents,
      currency: 'usd',
      customer: @stripe_customer.id,
      payment_method: @stripe_payment_method.id
    )
  end

  def persist_to_database
    ActiveRecord::Base.transaction do
      db_customer = StripeCustomer.create!(
        stripe_id: @stripe_customer.id,
        user: user
      )
      db_payment_method = StripePaymentMethod.create!(
        stripe_id: @stripe_payment_method.id,
        stripe_customer: db_customer
      )
      StripeCharge.create!(
        stripe_id: @stripe_charge.id,
        stripe_payment_method: db_payment_method
      )
    end
  end

  def handle_error(error)
    # Cancel whatever was created on Stripe's end, if anything
    Stripe::PaymentIntent.cancel(@stripe_charge.id) if @stripe_charge
    Stripe::PaymentMethod.detach(@stripe_payment_method.id) if @stripe_payment_method
    Stripe::Customer.delete(@stripe_customer.id) if @stripe_customer

    Rails.logger.error("SchedulePaymentCommand failed: #{error.message}")
  end
end
</code></code></pre><p>The key insight: <code>handle_error</code> is a method designed to be overridden in subclasses. It&#8217;s not a catch-all &#8212; it&#8217;s the specific, intentional cleanup routine for this command. Each command knows what it created and knows how to undo it. That&#8217;s a cleaner contract than hoping a database rollback somehow undoes side effects that already happened in an external system.</p><div><hr></div><h2><strong>The Container Shutdown Problem</strong></h2><p>There&#8217;s a harder failure mode that doesn&#8217;t get talked about as much, and I want to be upfront: it&#8217;s a problem with the pre-transaction pattern specifically, but it&#8217;s also a problem with the original wrapped-transaction pattern. Moving the API calls outside the transaction doesn&#8217;t introduce it &#8212; it already existed. It just becomes more visible when you start thinking carefully about the pre-transaction step in isolation.</p><p>Here&#8217;s the scenario. You have a container running in production. A deploy kicks off, the orchestrator sends a <code>SIGTERM</code>, and the container is supposed to drain in-flight requests before shutting down. Supposed to. In practice, containers sometimes get killed before they finish draining &#8212; either because the shutdown grace period is too short, the orchestrator loses patience, or the drain logic itself has a bug.</p><p>Now imagine that kill signal arrives at exactly the wrong moment: after a Stripe call has been dispatched from the pre-transaction step, but before the response has been received and written to the database. The HTTP request is already in flight to Stripe&#8217;s servers. From Stripe&#8217;s perspective, the operation completes successfully &#8212; the customer, payment method, or charge now exists in their system. From your system&#8217;s perspective, the process is dead. The response never arrived. Nothing was committed to the database. The operation simply didn&#8217;t happen as far as your records are concerned.</p><p>This is sometimes called a &#8220;ghost&#8221; operation: a real side effect in an external system with no corresponding record in yours.</p><p>What happens next depends on how your retry logic works. If the job is re-enqueued on restart and the operation runs again without any memory of what the previous attempt created, you make the same Stripe API calls again. Without idempotency keys, Stripe treats each of these as a new, independent request. In the case of <code>Stripe::PaymentIntent.create</code>, that means two separate charges get created for the same order. The customer gets billed twice.</p><p><strong>Idempotency keys</strong> are the standard mitigation here, and Stripe supports them well. The idea is to generate a stable, deterministic key for each logical operation &#8212; typically derived from something like the order ID and the operation type &#8212; and pass it to Stripe on every call. If Stripe receives two requests with the same idempotency key within a 24-hour window, it returns the result of the first request instead of processing a new one.</p><pre><code><code>def fetch_stripe_objects
  idempotency_key = "schedule_payment_#{order.id}"

  @stripe_customer = Stripe::Customer.create(
    { email: user.email },
    { idempotency_key: "#{idempotency_key}_customer" }
  )

  @stripe_payment_method = Stripe::PaymentMethod.attach(
    payment_method_id,
    { customer: @stripe_customer.id },
    { idempotency_key: "#{idempotency_key}_payment_method" }
  )

  @stripe_charge = Stripe::PaymentIntent.create(
    {
      amount: amount_in_cents,
      currency: 'usd',
      customer: @stripe_customer.id,
      payment_method: @stripe_payment_method.id
    },
    { idempotency_key: "#{idempotency_key}_charge" }
  )
end
</code></code></pre><p>With idempotency keys in place, a retry after a botched shutdown is safe: Stripe deduplicates the calls and returns the original response objects. Your retry can then persist those results to the database as if the first attempt had never been interrupted.</p><p>But idempotency keys don&#8217;t fully solve the problem. They protect you from creating duplicate objects in Stripe, but they don&#8217;t help you recover the original response after a container death. When the retried job runs, it still calls Stripe fresh and gets a response &#8212; it just happens to be the same response as before. The window between &#8220;API call succeeded&#8221; and &#8220;result written to the database&#8221; is still a gap where a process death causes silent data loss. And depending on how you structure retries, you may not even know the first attempt ever started.</p><p>At the time of writing, we&#8217;re still working on a robust solution to this. The approaches worth exploring involve making the pre-transaction step itself more durable &#8212; writing an intent record to the database <em>before</em> making the API call, so that a retry can detect partially completed operations and reconcile them. That&#8217;s a more involved pattern, and it deserves its own writeup.</p><div><hr></div><h2><strong>The Rule</strong></h2><p>Here&#8217;s how I think about it now: <strong>a database transaction should contain only database operations.</strong> Any call that goes over a network &#8212; to Stripe, to a payment processor, to any external service &#8212; should live outside the transaction. Make all your external calls first, validate that the results look sane, then commit everything to the database in a fast, tight transaction. Handle failures explicitly with cleanup logic that knows what it actually needs to undo.</p><p>Transactions are a powerful primitive. They&#8217;re designed for coordinating local, fast, reliable operations. Stretching them to cover slow, unreliable network calls doesn&#8217;t make your system more correct &#8212; it just makes it slower and more fragile at the same time.</p>]]></content:encoded></item><item><title><![CDATA[The Missing Team: How Engineering Organizations Lose Sync With Themselves]]></title><description><![CDATA[The pod model works beautifully &#8212; until architectural debt accumulates in the space between teams. Here's the structure that closes the gap.]]></description><link>https://www.timelight.com/p/the-missing-team-how-engineering</link><guid isPermaLink="false">https://www.timelight.com/p/the-missing-team-how-engineering</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Mon, 30 Mar 2026 21:57:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0CRR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d6faae-71a7-40bd-8b1c-092d268d364b_1360x680.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There&#8217;s a deceptively healthy-looking organizational pattern that quietly breaks down in mid-sized engineering teams. It looks like this: a handful of product managers, each running a small pod of engineers, everyone moving fast, shipping product. From the outside, things are humming.</p><p>The cracks appear later. Some part of the database is straining under load you could have predicted. A shared library has three incompatible versions living in three different pods. Nobody owns the work needed to fix it, because nobody was ever asked to.</p><p>The problem isn&#8217;t the pod structure &#8212; that part works. The problem is a missing team.</p><h2><strong>How the pod model is set up</strong></h2><p>The typical structure is elegant in its simplicity. You have five or six product managers, each paired with a pod of engineers &#8212; say, five or six people, led by a tech lead. A layer of engineering management sits across those pods. Engineers report up through management but work day-to-day with their product manager.</p><p>This creates something genuinely valuable: tight product-engineering alignment at the team level. Engineers understand the &#8220;why&#8221; behind what they&#8217;re building. Product managers develop technical intuition. The pod is largely autonomous, with few dependencies on other teams.</p><p>Product orgEng. managementPM 1GrowthPM 2PlatformPM 3Core productPod 15&#8211;6 engineersPod 25&#8211;6 engineersPod 35&#8211;6 engineersSolid = product directionDashed = reporting line</p><p>The standard pod structure &#8212; effective for product velocity, but silent on cross-pod technical work</p><p>At 40&#8211;50 engineers across six pods, this is a formidable product machine. But notice what&#8217;s missing from the diagram above: there&#8217;s no regular forum where the engineers in those pods talk to each other as a technical community.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0CRR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d6faae-71a7-40bd-8b1c-092d268d364b_1360x680.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0CRR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d6faae-71a7-40bd-8b1c-092d268d364b_1360x680.png 424w, https://substackcdn.com/image/fetch/$s_!0CRR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d6faae-71a7-40bd-8b1c-092d268d364b_1360x680.png 848w, https://substackcdn.com/image/fetch/$s_!0CRR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d6faae-71a7-40bd-8b1c-092d268d364b_1360x680.png 1272w, https://substackcdn.com/image/fetch/$s_!0CRR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d6faae-71a7-40bd-8b1c-092d268d364b_1360x680.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0CRR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d6faae-71a7-40bd-8b1c-092d268d364b_1360x680.png" width="1360" height="680" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03d6faae-71a7-40bd-8b1c-092d268d364b_1360x680.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:680,&quot;width&quot;:1360,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:51073,&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://www.timelight.com/i/192665062?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d6faae-71a7-40bd-8b1c-092d268d364b_1360x680.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_!0CRR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d6faae-71a7-40bd-8b1c-092d268d364b_1360x680.png 424w, https://substackcdn.com/image/fetch/$s_!0CRR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d6faae-71a7-40bd-8b1c-092d268d364b_1360x680.png 848w, https://substackcdn.com/image/fetch/$s_!0CRR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d6faae-71a7-40bd-8b1c-092d268d364b_1360x680.png 1272w, https://substackcdn.com/image/fetch/$s_!0CRR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d6faae-71a7-40bd-8b1c-092d268d364b_1360x680.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>The asymmetry nobody talks about</strong></h2><p>Here&#8217;s a tension baked into the pod model. The product organization is small &#8212; six people who meet regularly, coordinate roadmaps, and share context. They function as a team. The engineering organization is five or six times larger, and typically meets in fragments: each pod runs its own standups and planning, but the 40-person engineering org rarely convenes as a whole.</p><p>This isn&#8217;t a failure of management. A weekly all-hands with 40 engineers is genuinely unwieldy. But the practical consequence is that nobody is holding the cross-cutting technical picture.</p><p><strong>Where it breaks down:</strong> Shared architectural components that two pods both touch. Technical debt that doesn&#8217;t belong to any PM&#8217;s roadmap. Infrastructure that needs re-architecture to support the growth the product team has already planned for &#8212; but hasn&#8217;t told engineering about yet.</p><p>The product team has visibility into what&#8217;s coming. The pod teams have deep visibility into their own corner. No one has the full technical view. That&#8217;s the gap.</p><h2><strong>The tech lead council</strong></h2><p>The fix is a standing team of tech leads &#8212; one from each pod &#8212; meeting on the same cadence as the rest of the organization. Call it a tech lead council, an architecture forum, whatever fits your culture. The name matters less than the habit.</p><p>This team does something specific: it holds the technical picture that no individual pod can hold on its own.</p><p>In practice that means: comparing implementation approaches across pods before work diverges, identifying opportunities for shared components, surfacing technical work that needs to happen for business reasons no PM has yet named, and developing a 6&#8211;12 month technical roadmap that runs alongside the product roadmap.</p><p>Product roadmapPM team, quarterlyTech roadmapLead council, quarterlyShared planningRisk, priority, sequencingLead, pod 1Arch, debt, shared codeLead, pod 2Arch, debt, shared codeLead, pod 3Arch, debt, shared code</p><p>The tech lead council bridges pod-level execution and org-level planning</p><p>The goal is that this team&#8217;s outputs &#8212; architectural recommendations, decisions to adopt new tooling, proposals to allocate sprint capacity to debt retirement &#8212; are treated with the same weight as product requirements. That takes time to earn. The team earns it by being right consistently, by communicating their reasoning clearly, and by building a track record the rest of the organization learns to trust.</p><p><em>&#8220;At the same time you&#8217;re developing a vision of what the product will look like a year from now, you need a group of people meeting regularly to discuss what the future of your technical stack looks like.&#8221;</em></p><p>In more mature organizations, this function often migrates toward staff engineers or a principal engineering group. The exact structure depends on where the company is. What shouldn&#8217;t vary is the underlying principle: <em>technical planning must be ongoing, structured, and given organizational standing.</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_!QSsj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F220bc1d5-ba82-4eb9-b635-6b72b7c718d8_1360x580.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QSsj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F220bc1d5-ba82-4eb9-b635-6b72b7c718d8_1360x580.png 424w, https://substackcdn.com/image/fetch/$s_!QSsj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F220bc1d5-ba82-4eb9-b635-6b72b7c718d8_1360x580.png 848w, https://substackcdn.com/image/fetch/$s_!QSsj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F220bc1d5-ba82-4eb9-b635-6b72b7c718d8_1360x580.png 1272w, https://substackcdn.com/image/fetch/$s_!QSsj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F220bc1d5-ba82-4eb9-b635-6b72b7c718d8_1360x580.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QSsj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F220bc1d5-ba82-4eb9-b635-6b72b7c718d8_1360x580.png" width="1360" height="580" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/220bc1d5-ba82-4eb9-b635-6b72b7c718d8_1360x580.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:580,&quot;width&quot;:1360,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:44908,&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://www.timelight.com/i/192665062?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F220bc1d5-ba82-4eb9-b635-6b72b7c718d8_1360x580.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_!QSsj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F220bc1d5-ba82-4eb9-b635-6b72b7c718d8_1360x580.png 424w, https://substackcdn.com/image/fetch/$s_!QSsj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F220bc1d5-ba82-4eb9-b635-6b72b7c718d8_1360x580.png 848w, https://substackcdn.com/image/fetch/$s_!QSsj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F220bc1d5-ba82-4eb9-b635-6b72b7c718d8_1360x580.png 1272w, https://substackcdn.com/image/fetch/$s_!QSsj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F220bc1d5-ba82-4eb9-b635-6b72b7c718d8_1360x580.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Team-ness at every level</strong></h2><p>There&#8217;s a broader pattern here, one that applies not just to tech leads but to every layer of the organization. The most effective teams aren&#8217;t collections of individuals each reporting to a shared manager. They&#8217;re actual teams &#8212; people with shared goals who work together on the business of their level, not just up and down their individual reporting lines.</p><p>One CEO put it well to his executive team: &#8220;You&#8217;re not six people who each report to me. You&#8217;re a team, and I&#8217;m the lead of that team.&#8221; The consequence was that most decisions got made and executed by the team, without the CEO needing to be in the room. Issues came to the weekly meeting; only the things that required a tiebreaker or an especially consequential call escalated further.</p><p>The same logic applies at the tech lead level. If those leads see themselves as a team &#8212; not just representatives of their respective pods attending a meeting &#8212; they&#8217;ll make better architectural decisions, resolve cross-pod tensions more quickly, and present a more coherent technical direction to the rest of the organization.</p><h2><strong>Putting it into practice</strong></h2><p>None of this requires a reorg. It requires one standing meeting, a clear mandate, and leadership willing to treat the outputs as real inputs to planning. Start with the tech leads meeting biweekly. Give them a simple agenda: what architectural work is each pod planning this sprint, is any of it shared, and what technical work needs to happen in the next six months that isn&#8217;t on any PM&#8217;s roadmap yet.</p><p>The meeting will feel unfocused at first. Give it three months. By then, the leads will have developed shared context, a working vocabulary, and a sense of what they can resolve themselves versus what needs to escalate. That&#8217;s when the value shows up &#8212; not in a single decision, but in a dozen small ones that don&#8217;t require a VP to broker.</p><p>The pod model gives you product velocity. The tech lead council gives you the architectural coherence to sustain it. You need both.</p>]]></content:encoded></item><item><title><![CDATA[Innovation vs. The Quarter]]></title><description><![CDATA[A Long View From 40 Years in Software]]></description><link>https://www.timelight.com/p/innovation-vs-the-quarter</link><guid isPermaLink="false">https://www.timelight.com/p/innovation-vs-the-quarter</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Thu, 05 Feb 2026 23:58:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YWrS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb99bd652-da53-42ed-a55e-2d744825b23d_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YWrS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb99bd652-da53-42ed-a55e-2d744825b23d_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YWrS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb99bd652-da53-42ed-a55e-2d744825b23d_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!YWrS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb99bd652-da53-42ed-a55e-2d744825b23d_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!YWrS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb99bd652-da53-42ed-a55e-2d744825b23d_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!YWrS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb99bd652-da53-42ed-a55e-2d744825b23d_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YWrS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb99bd652-da53-42ed-a55e-2d744825b23d_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b99bd652-da53-42ed-a55e-2d744825b23d_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YWrS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb99bd652-da53-42ed-a55e-2d744825b23d_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!YWrS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb99bd652-da53-42ed-a55e-2d744825b23d_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!YWrS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb99bd652-da53-42ed-a55e-2d744825b23d_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!YWrS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb99bd652-da53-42ed-a55e-2d744825b23d_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>I&#8217;ve been a professional software developer for almost 40 years. I&#8217;ve spent more than 30 of those years as an engineering manager and executive &#8212; CTO, VP of Engineering &#8212; watching the industry evolve through multiple generations of technology.</p><p>I started in the era of packaged software. We put programs on disks, sealed them in boxes, and sold them in stores. Then came client-server development. Then the web. Then mobile. Then social media. And now AI.</p><p>Across all of those waves, Silicon Valley &#8212; and American technology companies more broadly &#8212; have led the world in innovation. We&#8217;ve built new categories of products, created massive global businesses, and changed how people live and work.</p><p>But over the last 10 to 20 years, as companies have grown bigger, richer, and more powerful, I&#8217;ve watched the same tragic pattern repeat itself over and over again.</p><p>We invent something world-changing &#8212; and then we immediately chain it to the quarterly result.</p><h4>The Moment Innovation Gets Constrained</h4><p>The cycle is predictable.</p><p>A company builds a new technology. It proves itself commercially viable. Customers love it. The product begins to change the world in real, meaningful ways.</p><p>And almost immediately, the organization clamps down on it to satisfy Wall Street expectations.</p><p>The long-term vision that drove the innovation &#8212; the idea that we were building something transformative &#8212; starts to narrow. The horizon shrinks. Instead of asking what the technology could become in five or ten years, leadership becomes focused on how it performs next quarter.</p><p>The spirit of innovation doesn&#8217;t disappear. Engineers and product teams still believe in the big ideas. But structurally, the company shifts from exploration to extraction.</p><h4>Shipping Too Early: The First Self-Inflicted Wound</h4><p>One of the worst mistakes a company can make is bringing a product to market before it is ready.</p><p>I&#8217;ve seen this happen many times. A promising idea gets rushed out the door because leadership wants momentum, headlines, or revenue sooner rather than later. The result is predictable: customers become frustrated, trust erodes, and the original promise of the product gets overshadowed by early negative experiences.</p><p>Good ideas have been ruined this way.</p><p>There is a difference between iterating quickly and shipping prematurely. Healthy iteration builds confidence and improves quality. Premature release creates a reputation that can follow a product for years, even after it improves.</p><p>The pressure to meet quarterly expectations often accelerates this mistake. When timelines are driven by financial cycles rather than product maturity, teams lose the space needed to refine and stabilize what they&#8217;re building.</p><h4>When Entire Technologies Get Distorted</h4><p>There&#8217;s an even more dangerous version of this pattern: trying to extract too much value from a new technology before it has fully matured.</p><p>In those cases, it&#8217;s not just customer frustration that&#8217;s at risk &#8212; the entire category of technology can become warped by premature monetization and short-term incentives.</p><p>Social media is a powerful example.</p><p>Many early platforms carried a genuine promise: connecting people across distance, fostering conversation, and creating new forms of community. There was a sense that these systems could become forums for constructive discourse and shared understanding.</p><p>But once the pressure to maximize engagement and revenue intensified, the incentives changed. Feeds filled with ads. Algorithms optimized for attention rather than well-being. Doom scrolling replaced meaningful interaction. Online trolling and bullying became amplified rather than mitigated.</p><p>The technology itself wasn&#8217;t inherently flawed. The way value was extracted from it &#8212; too early, too aggressively, and too narrowly focused on growth metrics &#8212; reshaped the category into something far different from its original vision.</p><h4>Heads Down, Eyes Off the Horizon</h4><p>Once a company ties its identity to quarterly performance, something subtle changes in how decisions get made.</p><p>Roadmaps compress. Risk tolerance drops. Long-term investments become harder to justify. Teams spend more time optimizing metrics than imagining possibilities.</p><p>I&#8217;ve seen organizations put blinders on &#8212; not because people stopped caring about innovation, but because the system incentivized short-term predictability over long-term transformation.</p><p>Every year, plans are built around hitting numbers. Miss the numbers, and the market punishes you. The stock price drops. Investors look for a new CEO who promises tighter execution and faster results.</p><p>Over time, this creates a culture where innovation is tolerated only if it can be forecasted on a spreadsheet.</p><h4>The Long Game vs. The Quarter</h4><p>It&#8217;s impossible to ignore the global context. Over the course of my career, China has emerged as a technology powerhouse.</p><p>Yes, some technologies originated here in the United States. Some were copied or adapted. But what stands out to me is not just what was built &#8212; it&#8217;s how long-term strategy was applied.</p><p>Chinese companies, from my perspective, have often played a longer game. They invest in infrastructure, ecosystems, and platforms with a time horizon that extends beyond the next earnings call.</p><p>That doesn&#8217;t mean they ignore financial performance &#8212; every business has to survive economically. But there is a visible willingness to think in decades rather than quarters.</p><p>Meanwhile, American companies frequently limit themselves with what is, in many ways, a self-imposed constraint: the belief that innovation must immediately translate into quarterly revenue growth.</p><h4>A Made-Up Constraint</h4><p>The quarterly cycle is not a law of physics. It&#8217;s a financial construct &#8212; one that has grown powerful enough to shape how entire industries behave.</p><p>And I&#8217;ve watched it hobble companies that were once bold.</p><p>As soon as a technology begins to succeed, it becomes less about building the future and more about protecting the number. Engineering decisions shift. Product strategy shifts. Risk appetite narrows. The organization becomes less willing to invest in ideas that might not pay off immediately.</p><p>Over decades, that pattern has had a real impact on how technology evolves, especially inside successful companies that should have the most freedom to take long bets.</p><h4>What Gets Lost</h4><p>What&#8217;s frustrating is that the innovative spirit never fully disappears. The engineers are still there. The ideas are still there. The ambition is still there.</p><p>But the structure around them changes.</p><p>Instead of asking, &#8220;How big could this become?&#8221; the question becomes, &#8220;How does this help us hit next quarter?&#8221;</p><p>And that&#8217;s where the real loss happens &#8212; not in talent or creativity, but in time horizon.</p><p>After nearly four decades in software, I don&#8217;t believe the challenge is a lack of innovation in the United States. We are still extraordinarily good at inventing the future.</p><p>The challenge is that we often stop ourselves from fully realizing it.</p><p>We build something transformative &#8212; and then we shrink our vision to fit inside a quarterly report.</p>]]></content:encoded></item><item><title><![CDATA[The Most Dangerous Incentive in Growing Engineering Organizations]]></title><description><![CDATA[Undermining organizational culture with visibility bias]]></description><link>https://www.timelight.com/p/the-most-dangerous-incentive-in-growing</link><guid isPermaLink="false">https://www.timelight.com/p/the-most-dangerous-incentive-in-growing</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Thu, 05 Feb 2026 15:18:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!6Wzg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8667eb-ba1a-4e93-9851-ed012ac6f937_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6Wzg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8667eb-ba1a-4e93-9851-ed012ac6f937_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6Wzg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8667eb-ba1a-4e93-9851-ed012ac6f937_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!6Wzg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8667eb-ba1a-4e93-9851-ed012ac6f937_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!6Wzg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8667eb-ba1a-4e93-9851-ed012ac6f937_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!6Wzg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8667eb-ba1a-4e93-9851-ed012ac6f937_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6Wzg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8667eb-ba1a-4e93-9851-ed012ac6f937_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ff8667eb-ba1a-4e93-9851-ed012ac6f937_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6Wzg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8667eb-ba1a-4e93-9851-ed012ac6f937_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!6Wzg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8667eb-ba1a-4e93-9851-ed012ac6f937_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!6Wzg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8667eb-ba1a-4e93-9851-ed012ac6f937_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!6Wzg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8667eb-ba1a-4e93-9851-ed012ac6f937_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Every loves a good product feature discussion</figcaption></figure></div><p>I&#8217;ve been a professional software engineer for almost 30 years. Over that time I&#8217;ve served as a manager, engineering leader, VP of Engineering, and CTO across organizations ranging from small startups to companies the size of IBM. Watching engineering organizations grow from small teams into large, complex systems has given me a long view into how culture and incentives evolve &#8212; and sometimes break.</p><p>One of the most destructive tendencies I&#8217;ve seen develop over time is surprisingly subtle: engineers begin to believe that the only way to advance their careers is to work on the most visible, most successful products inside the company.</p><p>At first glance, that seems reasonable. Of course people want to work on the products that generate revenue, attract executive attention, and shape the company&#8217;s public identity. But inside a modern software organization, that instinct can quietly undermine the long-term health of the entire engineering system.</p><h4>Visibility Bias Inside Engineering Organizations</h4><p>Even in companies that technically have a single product &#8212; especially SaaS organizations &#8212; different parts of the system receive vastly different levels of visibility. The UI, the client experience, and customer-facing features are seen by marketing, sales, executives, and customers every day. Those parts of the system become the center of attention.</p><p>Engineers naturally gravitate toward that visibility. It feels like the place where careers are made.</p><p>But modern software systems are far larger than what users see. Reliability engineering, infrastructure, fraud mitigation, security, risk management, customer support tooling &#8212; these areas operate behind the scenes. They are less glamorous, less visible, and often harder to explain to non-technical stakeholders. Yet they are just as critical to a company&#8217;s success as the features that generate revenue.</p><p>When incentives drift toward visibility instead of system health, organizations slowly become unbalanced.</p><h4>From Boxed Software to Web Systems: A Cultural Shift</h4><p>Early in my career, I worked on packaged desktop software &#8212; the kind that shipped in boxes on store shelves. In those environments, nearly every engineer worked on the same deliverable. The entire team focused on what would go into the box.</p><p>As the industry shifted toward web-based systems, and later toward mobile and distributed architectures, that unity disappeared. Engineering work fragmented into layers: front-end, mobile, APIs, infrastructure, data systems, security, and operational tooling.</p><p>The engineers working on the visible layers received more attention from across the company. Sales teams, marketing teams, and executives could see the UI. They could interact with it directly. Naturally, conversations gravitated there.</p><p>Meanwhile, the backend systems grew larger, more complex, and more essential &#8212; but less visible.</p><p>That imbalance created a cultural gravity well.</p><h4>The Executive Table and the Hidden Work</h4><p>When I moved into leadership roles and eventually sat at executive tables, I saw this bias amplified. Entire executive teams would discuss what the product looked like, how it behaved for customers, and which features were driving growth. Those conversations were important &#8212; but someone had to worry about how the system actually ran.</p><p>More often than not, that responsibility fell to the engineering leader alone.</p><p>Over time, I found myself investing more attention in infrastructure, reliability, and backend architecture &#8212; not because it was more interesting, but because it was necessary. The health of the company depended on systems that most people in the room couldn&#8217;t see.</p><p>This is where many organizations struggle: how do you convince engineers to invest their careers in parts of the system that receive less external recognition?</p><h4>Why the &#8220;Best Product&#8221; Mentality Is Dangerous</h4><p>When engineers believe promotions come from working on the most visible product areas, several problems emerge:</p><p>&#8211; Critical infrastructure roles become harder to staff.<br>&#8211; Reliability and security work become reactive instead of proactive.<br>&#8211; Organizational knowledge becomes skewed toward features rather than systems.<br>&#8211; Long-term risk accumulates quietly beneath short-term success.</p><p>Modern architectures make this especially dangerous. Backend systems are no longer simple servers running behind a UI. They include distributed services, data pipelines, observability platforms, and compliance layers that grow more complex every year.</p><p>Ignoring these areas doesn&#8217;t make them less important &#8212; it makes them fragile.</p><h4>Engineering Leadership as Incentive Design</h4><p>The challenge for engineering leaders has always been incentive alignment.</p><p>You cannot promote engineers faster or compensate them more simply because they work on the UI or on the product areas that executives see most often. If the incentive structure favors visibility over impact, engineers will optimize for visibility every time.</p><p>Instead, organizations need to reward outcomes that reflect true system health:</p><p>&#8211; System uptime and reliability<br>&#8211; Backend performance and scalability<br>&#8211; Risk mitigation and fraud prevention<br>&#8211; Operational excellence and maintainability</p><p>These achievements are harder to measure and often less glamorous, but they are the foundation that allows visible products to succeed.</p><p>In my own leadership journey, I tried to make infrastructure and backend work a first-class path to growth. That meant recognizing engineers publicly for reliability improvements, tying performance reviews to system outcomes rather than feature count, and ensuring that compensation and promotion paths reflected the value of invisible work.</p><h4>Aligning Culture With Reality</h4><p>The deeper lesson is simple: culture follows incentives.</p><p>If engineering organizations reward visibility, engineers will chase visibility. If they reward stability, collaboration, and long-term system health, engineers will invest in those areas instead.</p><p>The goal is not to diminish UI or product innovation &#8212; those are essential to any company&#8217;s success. But a sustainable engineering culture recognizes that the parts of the system no one sees are often the ones that determine whether the company survives.</p><p>After three decades in engineering, one truth has become clear to me: the strongest organizations are not the ones where everyone wants to work on the most successful product.</p><p>They are the ones where engineers understand that success comes from building &#8212; and valuing &#8212; the entire system.</p>]]></content:encoded></item><item><title><![CDATA[Lower the Estate Tax Exemption to Wipe Out the US National Debt]]></title><description><![CDATA[The U.S.]]></description><link>https://www.timelight.com/p/lower-the-estate-tax-exemption-to</link><guid isPermaLink="false">https://www.timelight.com/p/lower-the-estate-tax-exemption-to</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Tue, 13 Jan 2026 23:44:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jqrQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd552c030-6c64-4fe5-bbb3-6bbc97942562_1600x1000.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The U.S. national debt is often treated as an unsolvable problem&#8212;too large, too abstract, too politically toxic to touch. At nearly forty trillion dollars, the number feels disconnected from everyday reality.</p><p>But the debt only looks impossible in isolation.</p><p>When you place it next to where American wealth actually resides, a very different picture appears. Not a simple solution&#8212;but a real one, with real tradeoffs.</p><div><hr></div><h2>The Scale of the Problem (and the Wealth)</h2><p>As of late 2025, total U.S. federal debt stands at roughly <strong>$38 trillion</strong>. Of that amount, about <strong>$31 trillion</strong> is <em>debt held by the public</em>&#8212;Treasury securities owned by investors, institutions, and foreign governments. This is the portion economists usually focus on, because it represents external obligations.</p><p>Now compare that with Baby Boomer wealth.</p><p>Americans born between 1946 and 1964 collectively hold about <strong>$83 trillion</strong> in net wealth&#8212;more than <strong>half of all U.S. household wealth</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_!jqrQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd552c030-6c64-4fe5-bbb3-6bbc97942562_1600x1000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jqrQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd552c030-6c64-4fe5-bbb3-6bbc97942562_1600x1000.png 424w, https://substackcdn.com/image/fetch/$s_!jqrQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd552c030-6c64-4fe5-bbb3-6bbc97942562_1600x1000.png 848w, https://substackcdn.com/image/fetch/$s_!jqrQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd552c030-6c64-4fe5-bbb3-6bbc97942562_1600x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!jqrQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd552c030-6c64-4fe5-bbb3-6bbc97942562_1600x1000.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jqrQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd552c030-6c64-4fe5-bbb3-6bbc97942562_1600x1000.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d552c030-6c64-4fe5-bbb3-6bbc97942562_1600x1000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:52781,&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://www.timelight.com/i/184489154?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd552c030-6c64-4fe5-bbb3-6bbc97942562_1600x1000.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_!jqrQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd552c030-6c64-4fe5-bbb3-6bbc97942562_1600x1000.png 424w, https://substackcdn.com/image/fetch/$s_!jqrQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd552c030-6c64-4fe5-bbb3-6bbc97942562_1600x1000.png 848w, https://substackcdn.com/image/fetch/$s_!jqrQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd552c030-6c64-4fe5-bbb3-6bbc97942562_1600x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!jqrQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd552c030-6c64-4fe5-bbb3-6bbc97942562_1600x1000.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Baby Boomer wealth exceeds both total U.S. federal debt and debt held by the public. The constraint is not national wealth, but how and when it is taxed.</em></figcaption></figure></div><p>This comparison changes the framing. The United States is not &#8220;broke.&#8221; The money exists. It is simply concentrated and lightly taxed at the point of transfer.</p><div><hr></div><h2>Average vs. Median: Why This Matters</h2><p>Wealth among Boomers is highly uneven:</p><ul><li><p><strong>Average (mean) net worth:</strong> roughly <strong>$1.2&#8211;$1.7 million</strong></p></li><li><p><strong>Median net worth:</strong> roughly <strong>$200,000&#8211;$400,000</strong></p></li></ul><p>This distinction matters because estate taxes apply only to the top of the distribution. Most Americans&#8212;and most Boomers&#8212;are nowhere near today&#8217;s exemption thresholds.</p><div><hr></div><h2>How the Estate Tax Works Today</h2><ul><li><p><strong>Top federal estate tax rate:</strong> 40%</p></li><li><p><strong>Estate tax exemption:</strong> ~$14&#8211;15 million per individual</p></li><li><p><strong>Share of estates that pay:</strong> fewer than <strong>0.2%</strong></p></li></ul><p>Despite an unprecedented intergenerational wealth transfer already underway, the estate tax raises relatively little revenue.</p><div><hr></div><h2>A Simple Thought Experiment</h2><p>To understand scale&#8212;not to propose a literal policy&#8212;consider a simplified model:</p><p><strong>Assumptions (for illustration only):</strong></p><ul><li><p>Total Boomer wealth: ~$83T</p></li><li><p>Estate tax rate: 40%</p></li><li><p>Wealth above an exemption is taxed once, over time</p></li><li><p>Ignore avoidance, deductions, timing, and behavior</p></li></ul><p>This is not how policy works. It is a measuring tool.</p><div><hr></div><h2>Could Boomer Wealth Retire the National Debt?</h2><ul><li><p><strong>Total gross debt (~$38T):</strong><br>Even taxing all Boomer wealth at 40% raises only ~$33T &#8594; <em>not enough</em>.</p></li><li><p><strong>Debt held by the public (~$31T):</strong><br>Mathematically achievable at a 40% rate with a very low exemption.</p></li></ul><p>The math shows <em>capacity</em>. But math alone is not policy.</p><div><hr></div><h2>The Overlooked Question: Would This Be Deflationary?</h2><p>Yes&#8212;<strong>by default</strong>, retiring all or most of the national debt would be <strong>deflationary</strong>.</p><p>This is where many &#8220;just pay it off&#8221; arguments quietly collapse.</p><p>Paying down federal debt removes financial assets from the private sector. Treasury securities are not just liabilities&#8212;they are core infrastructure of the financial system.</p><div><hr></div><h2>How Fast Matters More Than Whether</h2><p>The economic risk depends almost entirely on <strong>speed</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_!1avr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea99f5bd-9a5d-4df1-86bd-770b56c6e09c_1600x1000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1avr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea99f5bd-9a5d-4df1-86bd-770b56c6e09c_1600x1000.png 424w, https://substackcdn.com/image/fetch/$s_!1avr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea99f5bd-9a5d-4df1-86bd-770b56c6e09c_1600x1000.png 848w, https://substackcdn.com/image/fetch/$s_!1avr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea99f5bd-9a5d-4df1-86bd-770b56c6e09c_1600x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!1avr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea99f5bd-9a5d-4df1-86bd-770b56c6e09c_1600x1000.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1avr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea99f5bd-9a5d-4df1-86bd-770b56c6e09c_1600x1000.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ea99f5bd-9a5d-4df1-86bd-770b56c6e09c_1600x1000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:46290,&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://www.timelight.com/i/184489154?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea99f5bd-9a5d-4df1-86bd-770b56c6e09c_1600x1000.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_!1avr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea99f5bd-9a5d-4df1-86bd-770b56c6e09c_1600x1000.png 424w, https://substackcdn.com/image/fetch/$s_!1avr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea99f5bd-9a5d-4df1-86bd-770b56c6e09c_1600x1000.png 848w, https://substackcdn.com/image/fetch/$s_!1avr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea99f5bd-9a5d-4df1-86bd-770b56c6e09c_1600x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!1avr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea99f5bd-9a5d-4df1-86bd-770b56c6e09c_1600x1000.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Retiring debt too quickly creates a powerful fiscal drag, increasing deflation and recession risk unless offset by spending or monetary easing....</figcaption></figure></div><p>What this chart shows:</p><ul><li><p>A <strong>slow payoff</strong> (~0.5T/year) creates manageable drag</p></li><li><p>A <strong>moderate payoff</strong> (~1T/year) is meaningfully contractionary</p></li><li><p>A <strong>fast payoff</strong> (~2T/year) risks recession and financial stress</p></li></ul><div><hr></div><h2>Three Payoff Paths</h2><h3>1. Fast Payoff (High Risk)</h3><p>Aggressive estate taxation and rapid debt retirement.</p><p><strong>Likely outcome:</strong><br>Strong deflationary pressure, tighter credit, recession risk.</p><div><hr></div><h3>2. Phased Payoff With Offsets</h3><p>Gradual debt reduction over decades, paired with:</p><ul><li><p>Public investment</p></li><li><p>Tax cuts elsewhere</p></li><li><p>Monetary accommodation</p></li></ul><p><strong>Likely outcome:</strong><br>Debt declines without choking demand.</p><div><hr></div><h3>3. Partial Payoff (Most Stable Option)</h3><p>Reduce debt <em>relative to GDP</em>, not to zero, while preserving a deep Treasury market.</p><p><strong>Likely outcome:</strong><br>Lower long-term fiscal risk without destabilizing the system.</p><div><hr></div><h2>The Deeper Insight</h2><p>The national debt is not like household debt.</p><p>From a macroeconomic perspective, it represents the <strong>net financial assets of the private sector</strong>. Eliminating it entirely would mean fewer safe assets, tighter credit, and less financial flexibility.</p><p>The goal should not be <em>zero debt</em>, but the <strong>right amount of debt</strong>, sensibly balanced against private inherited wealth.</p><div><hr></div><h2>Final Thought</h2><p>Over the coming decades, Baby Boomers will pass on <strong>more than $80 trillion</strong> in wealth.</p><p>We will choose:</p><ul><li><p>To fund the future through <strong>inheritance</strong>, or</p></li><li><p>To fund it through <strong>debt</strong></p></li></ul><p>Lowering the estate tax exemption would not magically solve everything. But it would force an honest reckoning with how wealth, risk, and responsibility are shared across generations.</p><p>The debt exists.<br>The wealth exists.<br>What remains is deciding <strong>which one we want to pass on</strong>.</p>]]></content:encoded></item><item><title><![CDATA[Carrots for Breakfast]]></title><description><![CDATA[Creative writing assignment #1]]></description><link>https://www.timelight.com/p/escalator</link><guid isPermaLink="false">https://www.timelight.com/p/escalator</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Sat, 04 Oct 2025 15:54:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!t21B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2594e309-65a5-4888-9dfe-f197de399612_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!t21B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2594e309-65a5-4888-9dfe-f197de399612_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t21B!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2594e309-65a5-4888-9dfe-f197de399612_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!t21B!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2594e309-65a5-4888-9dfe-f197de399612_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!t21B!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2594e309-65a5-4888-9dfe-f197de399612_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!t21B!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2594e309-65a5-4888-9dfe-f197de399612_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t21B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2594e309-65a5-4888-9dfe-f197de399612_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2594e309-65a5-4888-9dfe-f197de399612_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!t21B!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2594e309-65a5-4888-9dfe-f197de399612_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!t21B!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2594e309-65a5-4888-9dfe-f197de399612_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!t21B!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2594e309-65a5-4888-9dfe-f197de399612_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!t21B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2594e309-65a5-4888-9dfe-f197de399612_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">2 carrots for breakfast with coffee</figcaption></figure></div><p>Carina is a 20 something broke, exhausted professional living alone in a tiny one room mid-Manhattan apartment. Her apartment is so small and cramped that her parrot Bart has more room in his <strong>cage</strong> than Carina does. </p><p>For someone so young and seemingly successful, Carina has never figured out how to correctly use an alarm clock to get herself to her subway train by 9:00am. She&#8217;s tried every conceivable <strong>trick</strong> over the years but nothing has worked and now she is still in bed asleep at 8:55am.</p><p>The sun is shining through the partially opened curtains and a narrow beam of sunlight pokes through into the room. The sunlight falls on Carina&#8217;s face, she yawns, stretch herself gently while the <strong>memory</strong> of a pleasant dream rolls around her head until her eyes snap open suddenly.</p><p>She casts her eyes around the apartment, she can&#8217;t even be sure where she put her alarm clock but she is certain that she is late again. Carina screws her eyes shut for a moment, she wants so much to go back to sleep and <strong>pretend</strong> this isn&#8217;t happening again.</p><p>She has been late so many times she is sure this time she will lose her job. She jumps out of bed, dashing across the room to her closet to get dressed but trips and falls over the only <strong>appliance</strong> in her place, a little refrigerator.</p><p>&#8220;You could have just asked me to wake you up Carina&#8221;, says Bart. Bart has never spoken before. Carina is so stunned she lays on the floor for a few moments before opening the fridge and giving Bart the only thing she finds in there: an old <strong>carrot</strong>.</p><p>It&#8217;s a rather lovely morning in the city Carina thinks when she reaches the street via the back stairwell. She has a second to check her looks in the reflection of the subway car window before she jumps <strong>aboard</strong>. </p>]]></content:encoded></item><item><title><![CDATA[Immortality, Expansion, and the Dark Forest]]></title><description><![CDATA[I recently revisited Isaac Asimov&#8217;s short story The Last Question. Without spoiling too much, it explores the fate of the universe and humanity&#8217;s place in it. The story traces the arc of human civilization: from living alongside artificial intelligence, to merging with it, to eventually spreading among the stars and populating entire galaxies.]]></description><link>https://www.timelight.com/p/immortality-expansion-and-the-dark</link><guid isPermaLink="false">https://www.timelight.com/p/immortality-expansion-and-the-dark</guid><dc:creator><![CDATA[Peter O'Leary]]></dc:creator><pubDate>Sun, 21 Sep 2025 22:53:18 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1526666923127-b2970f64b422?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw4fHxhbGllbnN8ZW58MHx8fHwxNzU4NDk0OTI2fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1526666923127-b2970f64b422?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw4fHxhbGllbnN8ZW58MHx8fHwxNzU4NDk0OTI2fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1526666923127-b2970f64b422?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw4fHxhbGllbnN8ZW58MHx8fHwxNzU4NDk0OTI2fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1526666923127-b2970f64b422?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw4fHxhbGllbnN8ZW58MHx8fHwxNzU4NDk0OTI2fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1526666923127-b2970f64b422?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw4fHxhbGllbnN8ZW58MHx8fHwxNzU4NDk0OTI2fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1526666923127-b2970f64b422?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw4fHxhbGllbnN8ZW58MHx8fHwxNzU4NDk0OTI2fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1526666923127-b2970f64b422?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw4fHxhbGllbnN8ZW58MHx8fHwxNzU4NDk0OTI2fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="4928" height="3280" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1526666923127-b2970f64b422?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw4fHxhbGllbnN8ZW58MHx8fHwxNzU4NDk0OTI2fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:3280,&quot;width&quot;:4928,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;gray satellite disc on field&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="gray satellite disc on field" title="gray satellite disc on field" srcset="https://images.unsplash.com/photo-1526666923127-b2970f64b422?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw4fHxhbGllbnN8ZW58MHx8fHwxNzU4NDk0OTI2fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1526666923127-b2970f64b422?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw4fHxhbGllbnN8ZW58MHx8fHwxNzU4NDk0OTI2fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1526666923127-b2970f64b422?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw4fHxhbGllbnN8ZW58MHx8fHwxNzU4NDk0OTI2fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1526666923127-b2970f64b422?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw4fHxhbGllbnN8ZW58MHx8fHwxNzU4NDk0OTI2fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@wizwow">Donald Giannatti</a> on <a href="https://unsplash.com">Unsplash</a></figcaption></figure></div><p>I recently revisited Isaac Asimov&#8217;s short story <em>The Last Question</em>. Without spoiling too much, it explores the fate of the universe and humanity&#8217;s place in it. The story traces the arc of human civilization: from living alongside artificial intelligence, to merging with it, to eventually spreading among the stars and populating entire galaxies.</p><p>Running through the narrative is a powerful theme: human survival. Asimov asks whether, given humanity&#8217;s relentless expansion, there will always be enough resources to sustain us &#8212; no matter what form we take.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.timelight.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>At one point, Asimov describes a future where humans have achieved a kind of immortality. Consciousness is separated from the body, the body is perfectly preserved, and death is no longer possible. This liberation of consciousness allows humanity to exist and act indefinitely.</p><p>That idea made me think of Liu Cixin&#8217;s <em>The Dark Forest</em>, the second book in his <em>Three-Body Problem</em> trilogy. Its &#8220;dark forest theory&#8221; offers one of the most chilling answers to the Fermi Paradox &#8212; the question of why, in such a vast and ancient universe, we have never encountered alien life.</p><p>The dark forest theory suggests that the universe is teeming with intelligent civilizations, but that every civilization is both a potential threat and a potential target. Because resources are finite, any species that expands unchecked could one day endanger others. As a result, the safest strategy for any intelligent lifeform is to eliminate other civilizations as soon as they detect them.</p><p>The metaphor is that the universe is a dark forest. Every civilization is a hunter, moving silently through the woods. The moment one becomes aware of another, its survival instincts demand that it attack before it is attacked.</p><p>But Asimov&#8217;s vision raises an interesting challenge to this grim worldview. If a civilization achieves immortality &#8212; true immortality &#8212; does it still need to reproduce and expand? Reproduction is, in a way, a biological strategy for achieving immortality by passing on DNA. But if individuals never die, reproduction becomes unnecessary.</p><p>A species that no longer needs to reproduce would also no longer expand at the same rate, and its resource needs could eventually stabilize. In that scenario, such a civilization might no longer feel compelled to destroy potential competitors.</p><p>Of course, there&#8217;s another possibility: immortal civilizations might still feel threatened by species that <em>are</em> reproducing and expanding, and thus act as the &#8220;hunters&#8221; in the dark forest &#8212; wiping out younger species before they grow too large.</p><p>This interplay between immortality, reproduction, and survival opens up fascinating philosophical questions. Is endless expansion inevitable? Or could the path to universal peace lie in transcending the need to reproduce at all?</p><p>I highly recommend reading both Asimov&#8217;s <em>The Last Question</em> and Liu Cixin&#8217;s <em>The Dark Forest</em>. Together, they offer two very different but deeply thought-provoking visions of humanity&#8217;s future &#8212; and the universe we inhabit.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>This post was voice recorded, transcribed with speech to text then cleaned up with ChatGPT</p></div></div>]]></content:encoded></item></channel></rss>