<?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[The Pragmatic Engineer]]></title><description><![CDATA[Big Tech and startups, from the inside. Highly relevant for software engineers, AI engineers and engineering leaders, useful for those working in tech.]]></description><link>https://newsletter.pragmaticengineer.com</link><image><url>https://substackcdn.com/image/fetch/$s_!eod5!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27076b05-e3f4-4d05-9621-3da4f7f189cd_300x300.png</url><title>The Pragmatic Engineer</title><link>https://newsletter.pragmaticengineer.com</link></image><generator>Substack</generator><lastBuildDate>Mon, 15 Jun 2026 07:57:15 GMT</lastBuildDate><atom:link href="https://newsletter.pragmaticengineer.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Gergely Orosz]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[pragmaticengineer@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[pragmaticengineer@substack.com]]></itunes:email><itunes:name><![CDATA[Gergely Orosz]]></itunes:name></itunes:owner><itunes:author><![CDATA[Gergely Orosz]]></itunes:author><googleplay:owner><![CDATA[pragmaticengineer@substack.com]]></googleplay:owner><googleplay:email><![CDATA[pragmaticengineer@substack.com]]></googleplay:email><googleplay:author><![CDATA[Gergely Orosz]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Pulse: Did Anthropic’s new model just boost rival Codex’s market share?]]></title><description><![CDATA[Anthropic&#8217;s new model, Fable, has restrictions many users find unacceptable. Also: a new trend of smart model routing, Coinbase&#8217;s core service has no automatic cross-zone failover, and more.]]></description><link>https://newsletter.pragmaticengineer.com/p/did-anthropics-new-model-just-boost</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/did-anthropics-new-model-just-boost</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Thu, 11 Jun 2026 16:26:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!TeI_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0e46905-09eb-42df-ba51-722c91d4fb63_1316x1018.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>The Pulse is a series covering events, insights, and trends within Big Tech and startups. Notice an interesting event or trend? Hit reply and share it with me.</em></p><p>Today, we cover:</p><ol><li><p><strong>Anthropic alienates customers with Fable&#8217;s data retention and nerf policies. </strong>Anthropic&#8217;s latest mode, Fable, stores customer prompts and data for 30+ days and performs worse if Anthropic thinks devs&#8217; usage could potentially pose a commercial threat. The launch is an urgent reminder to have an off-ramp from Claude if you want to be able to vote with your feet.</p></li><li><p><strong>New trend: smart model routing. </strong>Are there any &#8216;intelligent&#8217; router solutions out there which select the right model for the right task? I looked into it, and there are a few options. More suggestions welcome!</p></li><li><p><strong>Reliability fail: No automated zone failover for Coinbase&#8217;s global trading service. </strong>Back in 2016, Uber had a cross-region failover for its core business. Ten years later, Coinbase does not, so it&#8217;s little wonder the platform suffered an embarrassing 10-hour outage. The big mess is a head scratcher.</p></li><li><p><strong>Industry pulse. </strong>Anthropic and OpenAI file for IPOs, open source project quits GitHub after maintainer banned without appeal, Opendoor &#8220;reshores&#8221; jobs from India to the US with AI-native engineers, and more.</p></li><li><p><strong>Are LLMs eroding software engineering skills? </strong>A software engineer admits they feel increasingly useless due to how capable LLMs are, in an article that has resonated with lots of folks. My sense is that we give too much credit to LLMs, while underestimating our own capabilities and understanding.</p></li></ol><h2>1. Anthropic&#8217;s new model release is a reminder to have an off-ramp plan from Claude</h2>
      <p>
          <a href="https://newsletter.pragmaticengineer.com/p/did-anthropics-new-model-just-boost">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[State of the software engineering job market in 2026, part 2]]></title><description><![CDATA[Deepdive into the tech jobs market with exclusive data revealing AI labs are more attractive than Big Tech, native mobile & frontend roles are declining, management&#8217;s &#8220;great flattening&#8221;, and more]]></description><link>https://newsletter.pragmaticengineer.com/p/the-job-market-in-2026-part-2</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/the-job-market-in-2026-part-2</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Tue, 09 Jun 2026 16:35:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!6pbI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d04df85-7afe-471e-8b70-a8f9e83800df_2048x1452.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>What&#8217;s going on in today&#8217;s job market? We try to answer that big question in this second part of our deepdive into the tech employment market, following <a href="https://newsletter.pragmaticengineer.com/p/state-of-the-job-market-2026">Part 1</a>, published two weeks ago.</p><p>First of all, a big thank you to partner teams for sharing exclusive details for this deepdive:</p><ul><li><p><strong><a href="http://interviewing.io">Interviewing.io</a></strong>: anonymous mock interviews with engineers from top companies. Thanks to founder and CEO, Aline Lerner.</p></li><li><p><strong><a href="http://workforce.ai">Workforce.ai</a>,</strong> built by Live Data Technologies, which monitors 1M+ job changes and 300M+ employment validations monthly, across companies, roles, levels, functions, industries, and locations. Special thanks to Alex Hamilton for his input.</p></li><li><p><strong><a href="https://www.signalfire.com/">SignalFire</a></strong>: a VC firm with a standout data analysis team. Ordinarily, their data is used to give their portfolio companies a major commercial advantage, but they made an exception to share some for this article. Special thanks to Asher Bantock.</p></li><li><p><strong><a href="https://www.trueup.io/">TrueUp</a></strong>: a platform that scans every open job in Big Tech, top startups, and scaleups, typically paying in the top two tiers of the trimodal software engineering compensation model. Thanks, Amit Taylor.</p></li></ul><p>Today, we cover:</p><ol><li><p><strong>Top AI labs are now more attractive than Big Tech.</strong> Anthropic is most in demand among job candidates for interview preparation services. Along with OpenAI, it&#8217;s almost certainly the place with the most competition for jobs in tech.</p></li><li><p><strong>Harder for new grads &amp; interns to get hired. </strong>Data shows that intern intakes have fallen, even as software engineering recruitment recovers. Large tech companies take on half as many interns as before, and candidates&#8217; work and educational backgrounds matter more than ever.</p></li><li><p><strong>Mobile and frontend demand drops, AI &amp; FDE surges. </strong>Frontend engineer titles are disappearing fastest across the industry, followed by native iOS and Android ones.</p></li><li><p><strong>AI engineering comp &gt; software engineering comp.</strong> AI engineers are more in demand than software engineers, and get higher compensation offers, especially with equity. At the 80th percentile in the US, $300K+ base salaries are the norm now for senior engineers.</p></li><li><p><strong>Management&#8217;s &#8220;great flattening&#8221; continues. </strong>There are fewer engineering managers for each engineer across the industry, and fewer VP of engineering and director of engineering posts at Big Tech.</p></li><li><p><strong>Big Tech seniority &amp; tenure keep rising.</strong> Since the end of zero interest rates in 2023, it&#8217;s as if there&#8217;s fewer ways to tempt Big Tech workers to switch jobs, so they remain in situ.</p></li><li><p><strong>Interview preparation signups: what do they indicate? </strong>Companies doing mass layoffs tend to see the biggest surge in devs signing up to practice interviews. A list of the top 20 companies from where engineers are preparing to interview elsewhere.</p></li><li><p><strong>Where engineers go after Big Tech. </strong>From Amazon, they go pretty much everywhere. From Google, Apple &amp; Meta, it&#8217;s mostly to AI labs. Microsoft is where the most ex-workers become their own bosses by working for themselves next.</p></li></ol><p>As a reminder, <strong><a href="https://newsletter.pragmaticengineer.com/p/state-of-the-job-market-2026">in Part 1,</a></strong> we covered:</p><ul><li><p>Software engineering recruitment: trending up, mostly</p></li><li><p>Big Tech and publicly-traded companies</p></li><li><p>Who&#8217;s hiring the most software engineers?</p></li><li><p>AI engineering: explosive demand</p></li><li><p>Who&#8217;s hiring the most AI engineers?</p></li><li><p>Is AI engineering replacing software engineering hiring?</p></li></ul><p>Let&#8217;s get into the latest data:</p><h2>1. Top AI labs now more attractive than Big Tech</h2><p>In Part 1 of this mini-series, we cover the <a href="https://newsletter.pragmaticengineer.com/i/199358573/4-ai-engineering-explosive-demand">exploding</a> demand for AI engineering:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Cq3z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf7df771-58ec-466d-af9b-b7c281eb1af6_2048x1223.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Cq3z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf7df771-58ec-466d-af9b-b7c281eb1af6_2048x1223.png 424w, https://substackcdn.com/image/fetch/$s_!Cq3z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf7df771-58ec-466d-af9b-b7c281eb1af6_2048x1223.png 848w, https://substackcdn.com/image/fetch/$s_!Cq3z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf7df771-58ec-466d-af9b-b7c281eb1af6_2048x1223.png 1272w, https://substackcdn.com/image/fetch/$s_!Cq3z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf7df771-58ec-466d-af9b-b7c281eb1af6_2048x1223.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Cq3z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf7df771-58ec-466d-af9b-b7c281eb1af6_2048x1223.png" width="1456" height="869" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bf7df771-58ec-466d-af9b-b7c281eb1af6_2048x1223.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:869,&quot;width&quot;:1456,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Cq3z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf7df771-58ec-466d-af9b-b7c281eb1af6_2048x1223.png 424w, https://substackcdn.com/image/fetch/$s_!Cq3z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf7df771-58ec-466d-af9b-b7c281eb1af6_2048x1223.png 848w, https://substackcdn.com/image/fetch/$s_!Cq3z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf7df771-58ec-466d-af9b-b7c281eb1af6_2048x1223.png 1272w, https://substackcdn.com/image/fetch/$s_!Cq3z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf7df771-58ec-466d-af9b-b7c281eb1af6_2048x1223.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Source: <a href="https://www.trueup.io/">TrueUp</a></em></figcaption></figure></div><p>AI engineering job openings have increased 60% in the past year at top companies, while software engineering openings grew by 7% in the same places. We also found that Big Tech is significantly growing AI engineering headcount:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xt6D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdb3bd7-3f9b-499c-ba4e-9a17d3e616b3_1873x1440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xt6D!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdb3bd7-3f9b-499c-ba4e-9a17d3e616b3_1873x1440.png 424w, https://substackcdn.com/image/fetch/$s_!xt6D!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdb3bd7-3f9b-499c-ba4e-9a17d3e616b3_1873x1440.png 848w, https://substackcdn.com/image/fetch/$s_!xt6D!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdb3bd7-3f9b-499c-ba4e-9a17d3e616b3_1873x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!xt6D!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdb3bd7-3f9b-499c-ba4e-9a17d3e616b3_1873x1440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xt6D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdb3bd7-3f9b-499c-ba4e-9a17d3e616b3_1873x1440.png" width="1456" height="1119" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dbdb3bd7-3f9b-499c-ba4e-9a17d3e616b3_1873x1440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1119,&quot;width&quot;:1456,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xt6D!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdb3bd7-3f9b-499c-ba4e-9a17d3e616b3_1873x1440.png 424w, https://substackcdn.com/image/fetch/$s_!xt6D!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdb3bd7-3f9b-499c-ba4e-9a17d3e616b3_1873x1440.png 848w, https://substackcdn.com/image/fetch/$s_!xt6D!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdb3bd7-3f9b-499c-ba4e-9a17d3e616b3_1873x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!xt6D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbdb3bd7-3f9b-499c-ba4e-9a17d3e616b3_1873x1440.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>AI engineering headcount growth at Big Tech. We look into Microsoft&#8217;s spike <a href="https://newsletter.pragmaticengineer.com/i/199358573/what-happened-in-mid-2025-at-microsoft">in Part 1.</a> Source: Workforce.ai</em></figcaption></figure></div><h3>Anthropic: most in demand</h3><p>New data suggests that the two biggest AI labs are attracting the most candidates to apply for their AI engineering roles, which is pretty predictable.</p><p><a href="http://interviewing.io">Interviewing.io</a> is a job interview preparation service which offers coaching for clients who are getting ready for interviews at specific companies. Based on the number of mentions by clients, Anthropic is the one most candidates are preparing for with paid coaching, and it&#8217;s not even close:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6pbI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d04df85-7afe-471e-8b70-a8f9e83800df_2048x1452.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6pbI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d04df85-7afe-471e-8b70-a8f9e83800df_2048x1452.png 424w, https://substackcdn.com/image/fetch/$s_!6pbI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d04df85-7afe-471e-8b70-a8f9e83800df_2048x1452.png 848w, https://substackcdn.com/image/fetch/$s_!6pbI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d04df85-7afe-471e-8b70-a8f9e83800df_2048x1452.png 1272w, https://substackcdn.com/image/fetch/$s_!6pbI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d04df85-7afe-471e-8b70-a8f9e83800df_2048x1452.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6pbI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d04df85-7afe-471e-8b70-a8f9e83800df_2048x1452.png" width="1456" height="1032" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2d04df85-7afe-471e-8b70-a8f9e83800df_2048x1452.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1032,&quot;width&quot;:1456,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6pbI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d04df85-7afe-471e-8b70-a8f9e83800df_2048x1452.png 424w, https://substackcdn.com/image/fetch/$s_!6pbI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d04df85-7afe-471e-8b70-a8f9e83800df_2048x1452.png 848w, https://substackcdn.com/image/fetch/$s_!6pbI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d04df85-7afe-471e-8b70-a8f9e83800df_2048x1452.png 1272w, https://substackcdn.com/image/fetch/$s_!6pbI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d04df85-7afe-471e-8b70-a8f9e83800df_2048x1452.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Most popular employers in coaching prep. Source: <a href="http://interviewing.io">interviewing.io</a></em></figcaption></figure></div><p>It&#8217;s also notable that OpenAI (16% of candidates) gets around the same share as Google (17%) and other large tech companies (17%). Combined, Anthropic and OpenAI account for 51% of all interviewing.io coaching requests. For context, interviewing.io only added coaching for frontier labs this year!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ooWY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f08f71-3c32-402e-9459-e3346146041e_1584x1312.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ooWY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f08f71-3c32-402e-9459-e3346146041e_1584x1312.png 424w, https://substackcdn.com/image/fetch/$s_!ooWY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f08f71-3c32-402e-9459-e3346146041e_1584x1312.png 848w, https://substackcdn.com/image/fetch/$s_!ooWY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f08f71-3c32-402e-9459-e3346146041e_1584x1312.png 1272w, https://substackcdn.com/image/fetch/$s_!ooWY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f08f71-3c32-402e-9459-e3346146041e_1584x1312.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ooWY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f08f71-3c32-402e-9459-e3346146041e_1584x1312.png" width="1456" height="1206" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c9f08f71-3c32-402e-9459-e3346146041e_1584x1312.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1206,&quot;width&quot;:1456,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ooWY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f08f71-3c32-402e-9459-e3346146041e_1584x1312.png 424w, https://substackcdn.com/image/fetch/$s_!ooWY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f08f71-3c32-402e-9459-e3346146041e_1584x1312.png 848w, https://substackcdn.com/image/fetch/$s_!ooWY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f08f71-3c32-402e-9459-e3346146041e_1584x1312.png 1272w, https://substackcdn.com/image/fetch/$s_!ooWY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f08f71-3c32-402e-9459-e3346146041e_1584x1312.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Weekly coaching demand for Anthropic vs OpenAI. Source: <a href="http://interviewing.io">interviewing.io</a></em></figcaption></figure></div><p>There are a few potential causes of the surge of interest in Anthropic:</p><ul><li><p><strong>OpenAI replaces Anthropic as AI supplier for the US&#8217;s novel &#8216;Department of War&#8217;. </strong>In early March, the US Government controversially declared Anthropic a &#8220;supply chain risk&#8221;, and appointed OpenAI as its<a href="https://newsletter.pragmaticengineer.com/i/190020609/anthropic-versus-department-of-war"> AI supplier</a>, after Anthropic raised concerns about the future use of AI in mass surveillance and fully autonomous weapons. This raised suspicions that OpenAI agreed to cross &#8216;red lines&#8217;.</p></li><li><p><strong>Anthropic&#8217;s market dominance continues.</strong> Claude Code is the most popular developer tool, as found by our AI tooling survey <a href="https://newsletter.pragmaticengineer.com/p/ai-tooling-2026">in February</a>. It seems little has changed.</p></li><li><p><strong>Anthropic&#8217;s value exceeds OpenAI&#8217;s.</strong> In March, Anthropic <a href="https://www.cnbc.com/2026/05/28/anthropic-open-ai-startup-value.html">raised</a> a $65B funding round at a $965B valuation, making it more valuable than OpenAI for the first time.</p></li><li><p><strong>Anthropic files to go public first. </strong>Last week, Anthropic <a href="https://www.anthropic.com/news/confidential-draft-s1-sec">filed</a> to go public, beating OpenAI which <a href="https://www.reuters.com/technology/openai-files-us-ipo-after-anthropic-ai-giants-head-public-markets-2026-06-08/">has done so a week later.</a></p></li></ul><p>Anthropic also recruited the most in-demand AI researcher, Andrej Karpathy, <a href="https://newsletter.pragmaticengineer.com/i/198733941/andrej-karpathy-joins-anthropic">in May</a>. My sense is that between the two labs, Anthropic has more momentum for the time being, and has perhaps acquired a &#8216;halo effect&#8217; with its seemingly principled stance. It&#8217;s not surprising that it&#8217;s attracting more candidates.</p><h3>Where are AI labs hiring from?</h3><p>We looked into the sources of recruits to the three most in-demand AI labs: Anthropic, OpenAI, and Google DeepMind. Here&#8217;s what we found:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JX6C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518f80bc-c98b-4927-8d71-a3030970abd0_2048x1823.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JX6C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518f80bc-c98b-4927-8d71-a3030970abd0_2048x1823.png 424w, https://substackcdn.com/image/fetch/$s_!JX6C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518f80bc-c98b-4927-8d71-a3030970abd0_2048x1823.png 848w, https://substackcdn.com/image/fetch/$s_!JX6C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518f80bc-c98b-4927-8d71-a3030970abd0_2048x1823.png 1272w, https://substackcdn.com/image/fetch/$s_!JX6C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518f80bc-c98b-4927-8d71-a3030970abd0_2048x1823.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JX6C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518f80bc-c98b-4927-8d71-a3030970abd0_2048x1823.png" width="1456" height="1296" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/518f80bc-c98b-4927-8d71-a3030970abd0_2048x1823.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1296,&quot;width&quot;:1456,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JX6C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518f80bc-c98b-4927-8d71-a3030970abd0_2048x1823.png 424w, https://substackcdn.com/image/fetch/$s_!JX6C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518f80bc-c98b-4927-8d71-a3030970abd0_2048x1823.png 848w, https://substackcdn.com/image/fetch/$s_!JX6C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518f80bc-c98b-4927-8d71-a3030970abd0_2048x1823.png 1272w, https://substackcdn.com/image/fetch/$s_!JX6C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518f80bc-c98b-4927-8d71-a3030970abd0_2048x1823.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Where top AI labs recruit from, and where folks go next. Source: <a href="http://workforce.ai">workforce.ai</a></em></figcaption></figure></div><p><strong>Where Anthropic hires from,</strong> in order of popularity:</p><ol><li><p>Google (often Google DeepMind)</p></li><li><p>Meta</p></li><li><p>Stripe</p></li><li><p>Microsoft</p></li><li><p>Amazon (AWS)</p></li><li><p>Databricks</p></li></ol><p><strong>OpenAI</strong>:</p><ol><li><p>Google</p></li><li><p>Meta</p></li><li><p>Apple</p></li><li><p>Stripe</p></li><li><p>Statsig (after OpenAI acquired Statsig)</p></li><li><p>Microsoft</p></li><li><p>Amazon (mostly AWS)</p></li><li><p>Databricks</p></li><li><p>Airbnb</p></li><li><p>NVIDIA</p></li></ol><p><strong>Google DeepMind:</strong></p><ol><li><p>Internal transfer</p></li><li><p>Meta</p></li><li><p>Microsoft</p></li><li><p>Amazon</p></li><li><p>Windsurf</p></li></ol><p><strong>Anthropic has the highest retention rate of all AI labs. </strong>Data from SignalFire found the 2-year retention rate (percentage of employees who stay 2 years) is:</p><ul><li><p>OpenAI: 67%. This is consistent with the rest of Big Tech</p></li><li><p>Google DeepMind: 78%. Well above the rest of Big Tech</p></li><li><p>Anthropic: 80%. Standout, industry-wide!</p></li></ul><p>Consistent with SignalFire&#8217;s 2025 finding, OpenAI 2-year retention was 67% (FAANG-level) versus Anthropic (80%), and DeepMind (78%).</p><h2>2. Harder for graduates &amp; interns to get hired</h2><p>It&#8217;s well known that it&#8217;s getting harder to be hired as an early-career engineer, and new data underlines this.</p><h3>Intern intakes down since 2022</h3><p>Live Data Technologies looked at software engineer vs engineering intern hiring trends at 30-80 US-based tech companies, pinned to 2019 hiring numbers (100% being that year&#8217;s total number of hires). <em>The spread is wide because Live Data Technologies selects the top few dozen companies that meet their criteria for a &#8220;large public tech company&#8221; in their database.</em></p><p><em>The findings:</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_!AwMR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a8c03fc-2d93-46b9-8f1d-f7ea03f39fa5_1986x1976.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AwMR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a8c03fc-2d93-46b9-8f1d-f7ea03f39fa5_1986x1976.png 424w, https://substackcdn.com/image/fetch/$s_!AwMR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a8c03fc-2d93-46b9-8f1d-f7ea03f39fa5_1986x1976.png 848w, https://substackcdn.com/image/fetch/$s_!AwMR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a8c03fc-2d93-46b9-8f1d-f7ea03f39fa5_1986x1976.png 1272w, https://substackcdn.com/image/fetch/$s_!AwMR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a8c03fc-2d93-46b9-8f1d-f7ea03f39fa5_1986x1976.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AwMR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a8c03fc-2d93-46b9-8f1d-f7ea03f39fa5_1986x1976.png" width="1456" height="1449" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6a8c03fc-2d93-46b9-8f1d-f7ea03f39fa5_1986x1976.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1449,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:630932,&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://newsletter.pragmaticengineer.com/i/201325168?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a8c03fc-2d93-46b9-8f1d-f7ea03f39fa5_1986x1976.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_!AwMR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a8c03fc-2d93-46b9-8f1d-f7ea03f39fa5_1986x1976.png 424w, https://substackcdn.com/image/fetch/$s_!AwMR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a8c03fc-2d93-46b9-8f1d-f7ea03f39fa5_1986x1976.png 848w, https://substackcdn.com/image/fetch/$s_!AwMR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a8c03fc-2d93-46b9-8f1d-f7ea03f39fa5_1986x1976.png 1272w, https://substackcdn.com/image/fetch/$s_!AwMR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a8c03fc-2d93-46b9-8f1d-f7ea03f39fa5_1986x1976.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Intern hiring is falling, but not software engineering recruitment. Source: Live Data Technologies</figcaption></figure></div><p>Zooming into intern hiring, here&#8217;s a visualization of it as a percentage of all appointments:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!h7Y-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F057dca33-32c5-4180-8fd2-88225a7fd96b_1226x1202.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h7Y-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F057dca33-32c5-4180-8fd2-88225a7fd96b_1226x1202.png 424w, https://substackcdn.com/image/fetch/$s_!h7Y-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F057dca33-32c5-4180-8fd2-88225a7fd96b_1226x1202.png 848w, https://substackcdn.com/image/fetch/$s_!h7Y-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F057dca33-32c5-4180-8fd2-88225a7fd96b_1226x1202.png 1272w, https://substackcdn.com/image/fetch/$s_!h7Y-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F057dca33-32c5-4180-8fd2-88225a7fd96b_1226x1202.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h7Y-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F057dca33-32c5-4180-8fd2-88225a7fd96b_1226x1202.png" width="1226" height="1202" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/057dca33-32c5-4180-8fd2-88225a7fd96b_1226x1202.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1202,&quot;width&quot;:1226,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!h7Y-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F057dca33-32c5-4180-8fd2-88225a7fd96b_1226x1202.png 424w, https://substackcdn.com/image/fetch/$s_!h7Y-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F057dca33-32c5-4180-8fd2-88225a7fd96b_1226x1202.png 848w, https://substackcdn.com/image/fetch/$s_!h7Y-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F057dca33-32c5-4180-8fd2-88225a7fd96b_1226x1202.png 1272w, https://substackcdn.com/image/fetch/$s_!h7Y-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F057dca33-32c5-4180-8fd2-88225a7fd96b_1226x1202.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Tech companies are hiring fewer interns. Source: Live Data Technologies</figcaption></figure></div><p>Alex Hamilton, analyst at Live Data Technologies, says:</p><blockquote><p>&#8220;We&#8217;ve seen overall software engineering hiring start to come back since the 2023 tough market. However, intern intake just kept falling alongside it, which isn&#8217;t what you&#8217;d normally expect.</p><p><strong>Historically, intern programmes have tended to bounce back pretty quickly once companies start hiring again. </strong>That hasn&#8217;t happened this time, and 2024 and 2025 are the first years in the series where the two lines are moving in opposite directions.</p><p>Where you do see companies holding intern intake steady or growing it, it&#8217;s almost always a reflection of where they are as a business, be that earlier-stage or faster-growing companies, rather than any kind of broader market recovery&#8221;.</p></blockquote><h3>Graduate jobs trending down</h3><p>Anecdotally, we hear new grads continue to have a hard time finding a position. Our new recruitment data on major US tech companies confirms it:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cKU_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43e6596-e176-420c-87ca-6eaf576ecc69_1362x1352.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cKU_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43e6596-e176-420c-87ca-6eaf576ecc69_1362x1352.png 424w, https://substackcdn.com/image/fetch/$s_!cKU_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43e6596-e176-420c-87ca-6eaf576ecc69_1362x1352.png 848w, https://substackcdn.com/image/fetch/$s_!cKU_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43e6596-e176-420c-87ca-6eaf576ecc69_1362x1352.png 1272w, https://substackcdn.com/image/fetch/$s_!cKU_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43e6596-e176-420c-87ca-6eaf576ecc69_1362x1352.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cKU_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43e6596-e176-420c-87ca-6eaf576ecc69_1362x1352.png" width="1362" height="1352" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c43e6596-e176-420c-87ca-6eaf576ecc69_1362x1352.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1352,&quot;width&quot;:1362,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cKU_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43e6596-e176-420c-87ca-6eaf576ecc69_1362x1352.png 424w, https://substackcdn.com/image/fetch/$s_!cKU_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43e6596-e176-420c-87ca-6eaf576ecc69_1362x1352.png 848w, https://substackcdn.com/image/fetch/$s_!cKU_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43e6596-e176-420c-87ca-6eaf576ecc69_1362x1352.png 1272w, https://substackcdn.com/image/fetch/$s_!cKU_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc43e6596-e176-420c-87ca-6eaf576ecc69_1362x1352.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Share of new grad recruitment at 28 large US tech companies. Source: Live Data Technologies</figcaption></figure></div><p>&#8220;New grads&#8221; in this data are software engineers who graduated less than a year before getting a job as a software engineer. In 2025, just one in 10 engineering hires at larger companies were recent grads, down from nearly three in 10 in 2023.</p><h3>Pedigree matters more for new grads</h3><p>We looked closely at the places from where new graduate software engineers are joining US-based tech companies, and found the share of successful candidates from &#8220;elite&#8221; universities is growing:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gBsQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19924b4b-5d21-4c1e-8935-00df0b2a7857_1514x1496.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gBsQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19924b4b-5d21-4c1e-8935-00df0b2a7857_1514x1496.png 424w, https://substackcdn.com/image/fetch/$s_!gBsQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19924b4b-5d21-4c1e-8935-00df0b2a7857_1514x1496.png 848w, https://substackcdn.com/image/fetch/$s_!gBsQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19924b4b-5d21-4c1e-8935-00df0b2a7857_1514x1496.png 1272w, https://substackcdn.com/image/fetch/$s_!gBsQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19924b4b-5d21-4c1e-8935-00df0b2a7857_1514x1496.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gBsQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19924b4b-5d21-4c1e-8935-00df0b2a7857_1514x1496.png" width="1456" height="1439" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/19924b4b-5d21-4c1e-8935-00df0b2a7857_1514x1496.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1439,&quot;width&quot;:1456,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gBsQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19924b4b-5d21-4c1e-8935-00df0b2a7857_1514x1496.png 424w, https://substackcdn.com/image/fetch/$s_!gBsQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19924b4b-5d21-4c1e-8935-00df0b2a7857_1514x1496.png 848w, https://substackcdn.com/image/fetch/$s_!gBsQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19924b4b-5d21-4c1e-8935-00df0b2a7857_1514x1496.png 1272w, https://substackcdn.com/image/fetch/$s_!gBsQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19924b4b-5d21-4c1e-8935-00df0b2a7857_1514x1496.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Source: Live Data Technologies</em></figcaption></figure></div><p>By &#8220;elite&#8221; universities, we mean one of the top 20 US colleges for computer science, such as MIT, Stanford, Carnegie Mellon, UC Berkeley, Harvard, Caltech, Georgia Tech, and Cornell.</p><p>Obviously, the influence of these places&#8217; reputations is not a new thing, it&#8217;s what makes them &#8220;elite&#8221; universities, after all. But with new grad hiring down across tech, even graduates from these universities can expect fewer opportunities than before.</p><p>Even so, the pedigree that comes from graduating from a well-known university, or doing an internship at a well-known company, becomes ever more significant as the job market tightens.</p><h2>3. Mobile and frontend demand drops, AI &amp; FDE surges</h2><p>Here&#8217;s interesting data showing the shifting prevalence of job titles on sites like LinkedIn over time:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!B9zQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b9646e-dece-44bd-ada0-eaa406e5d539_2048x1240.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!B9zQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b9646e-dece-44bd-ada0-eaa406e5d539_2048x1240.png 424w, https://substackcdn.com/image/fetch/$s_!B9zQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b9646e-dece-44bd-ada0-eaa406e5d539_2048x1240.png 848w, https://substackcdn.com/image/fetch/$s_!B9zQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b9646e-dece-44bd-ada0-eaa406e5d539_2048x1240.png 1272w, https://substackcdn.com/image/fetch/$s_!B9zQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b9646e-dece-44bd-ada0-eaa406e5d539_2048x1240.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!B9zQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b9646e-dece-44bd-ada0-eaa406e5d539_2048x1240.png" width="1456" height="882" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07b9646e-dece-44bd-ada0-eaa406e5d539_2048x1240.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:882,&quot;width&quot;:1456,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!B9zQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b9646e-dece-44bd-ada0-eaa406e5d539_2048x1240.png 424w, https://substackcdn.com/image/fetch/$s_!B9zQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b9646e-dece-44bd-ada0-eaa406e5d539_2048x1240.png 848w, https://substackcdn.com/image/fetch/$s_!B9zQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b9646e-dece-44bd-ada0-eaa406e5d539_2048x1240.png 1272w, https://substackcdn.com/image/fetch/$s_!B9zQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b9646e-dece-44bd-ada0-eaa406e5d539_2048x1240.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>How engineering titles changed in the last four years. Source: <a href="https://www.signalfire.com/">SignalFire</a></em></figcaption></figure></div><p>Some takeaways:</p><ul><li><p><strong>AI engineering&#8217;s on fire.</strong> This is not surprising and is evident throughout our study.</p></li><li><p><strong>Forward Deployed Engineers (FDE) are growing rapidly</strong>. We covered the sudden demand for FDEs <a href="https://newsletter.pragmaticengineer.com/p/forward-deployed-engineers">in 2025</a>, and this year we&#8217;re seeing the FDE role heat up again.</p></li><li><p><strong>Modest increase in sales engineers: </strong>Sales engineers help close large, B2B-type, deals, and are typical at companies selling to enterprises. The rise in prevalence of this position suggests more companies are targeting enterprise-scale clients. Also, my sense is that FDEs can operate like sales engineers.</p></li><li><p><strong>There are fewer native mobile engineers. </strong>In 2022, I observed <a href="https://newsletter.pragmaticengineer.com/p/native-vs-cross-platform">a drop in demand</a> for native iOS and Android engineers. Cross-platform frameworks being more capable today may contribute to fewer places investing in native applications, and a fall in demand for this discipline overall. Is the &#8220;golden age&#8221; of native mobile development over, with its standalone native iOS, native Android, and web teams for a single product?</p></li><li><p><strong>Frontend-only engineers are disappearing. </strong>This is one of the most interesting trends in the data. I&#8217;ve observed full-stack engineers become the norm at many places, who can do both frontend and backend development. Especially with AI, there is no reason a proficient frontend engineer should not work on backend as well, so, I expect &#8220;pure&#8221; frontend engineers will be employed only in larger companies, where demand exists for things like building a design system. <em>We cover more on this topic in the deepdive, <a href="https://newsletter.pragmaticengineer.com/p/design-systems-for-software-engineers">Design systems for software engineers</a>.</em></p></li></ul><h2>4. AI engineering comp &gt; software engineering comp</h2><p>One poorly-kept secret in tech is that although software engineering compensation is very good at Big Tech and top startups, it&#8217;s superior for AI engineering jobs at the same places &#8211; and even better at leading AI labs:</p>
      <p>
          <a href="https://newsletter.pragmaticengineer.com/p/the-job-market-in-2026-part-2">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Kubernetes and retiring at the top with Kelsey Hightower]]></title><description><![CDATA[Kelsey Hightower reflects on his journey from self-taught technician to Google Distinguished Engineer, sharing lessons on open source, Kubernetes, AI, and building technology that serves people.]]></description><link>https://newsletter.pragmaticengineer.com/p/kubernetes-and-retiring-at-the-top</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/kubernetes-and-retiring-at-the-top</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Wed, 03 Jun 2026 17:59:17 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/200337027/2edfd165a115b333c23c09f1e7d8aa9c.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<h3>Stream the latest episode</h3><p><strong>Listen and watch now on <a href="https://youtu.be/UlXpOGIpITM">YouTube</a>, <a href="https://open.spotify.com/episode/25qDLvBsunU9WJ3YpiftCG">Spotify</a>, and <a href="https://podcasts.apple.com/us/podcast/the-pragmatic-engineer/id1769051199">Apple</a>.</strong> See the episode transcript at the top of this page, and timestamps for the episode at the bottom.</p><h3><strong>Brought to You by</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HVBB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a9e89e3-866b-4248-91a9-e6461be25cd8_1497x131.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HVBB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a9e89e3-866b-4248-91a9-e6461be25cd8_1497x131.png 424w, https://substackcdn.com/image/fetch/$s_!HVBB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a9e89e3-866b-4248-91a9-e6461be25cd8_1497x131.png 848w, https://substackcdn.com/image/fetch/$s_!HVBB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a9e89e3-866b-4248-91a9-e6461be25cd8_1497x131.png 1272w, https://substackcdn.com/image/fetch/$s_!HVBB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a9e89e3-866b-4248-91a9-e6461be25cd8_1497x131.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HVBB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a9e89e3-866b-4248-91a9-e6461be25cd8_1497x131.png" width="1456" height="127" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1a9e89e3-866b-4248-91a9-e6461be25cd8_1497x131.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:127,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:41380,&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://newsletter.pragmaticengineer.com/i/200337027?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a9e89e3-866b-4248-91a9-e6461be25cd8_1497x131.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_!HVBB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a9e89e3-866b-4248-91a9-e6461be25cd8_1497x131.png 424w, https://substackcdn.com/image/fetch/$s_!HVBB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a9e89e3-866b-4248-91a9-e6461be25cd8_1497x131.png 848w, https://substackcdn.com/image/fetch/$s_!HVBB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a9e89e3-866b-4248-91a9-e6461be25cd8_1497x131.png 1272w, https://substackcdn.com/image/fetch/$s_!HVBB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a9e89e3-866b-4248-91a9-e6461be25cd8_1497x131.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><strong>&#8226; <a href="https://antithesis.com/pragmatic">Antithesis</a></strong> &#8211; managing infra has gone through a mindset shift: from an imperative approach (with the likes of Puppet and Ansible) to a declarative one (with the likes of Terraform and Kubernetes). Software development is going through a similar shift with AI agents &#8211; and Antithesis is the declarative testing tool that can keep up with these AI agents. <a href="https://antithesis.com/pragmatic">Learn more</a></p><p><strong>&#8226; <a href="https://buildkite.com/pragmatic">Buildkite </a></strong>&#8211; the CI used by companies like OpenAI, Anthropic, Uber, Shopify, Airbnb, Ramp and many more. Buildkite was stress-tested at the largest scale inside companies solving some of the hardest engineering problems. It&#8217;s built to absorb whatever your coding agents throw at the build queue, today. <a href="https://buildkite.com/pragmatic">Learn more.</a></p><p><strong>&#8226; <a href="http://sentry.io/pragmatic,">Sentry</a></strong> &#8211; application monitoring software built by developers, for developers. With Sentry MCP and CLI, set up a helpful flow like &#8220;when a production error fires, have an agent investigate it, pulling all the error context that Sentry already has. <a href="http://sentry.io/pragmatic,">Check out Sentry</a></p><h3><strong>In this episode</strong></h3><p>Kelsey Hightower went from a self-taught technician installing DSL modems to becoming one of Google&#8217;s elite Distinguished Engineers, whom the CEO of Microsoft personally tried to recruit. Hightower&#8217;s career achievements are rooted in hard work and self-directed learning, and today he&#8217;s one of the most influential voices in modern infrastructure, through his talks, open source work, and writing.</p><p>In this episode of The <em>Pragmatic Engineer podcast</em>, Kelsey and I cover his unconventional path into tech and the lessons he&#8217;s learned during three decades in the industry. We discuss his entrepreneurial years, building a reputation through open source, the rise of containers and Kubernetes, and his time at Google during one of the most consequential periods in cloud computing.</p><p>He recounts how a job offer from a big tech giant led to the biggest raise of his career, what prompted him to slow down after years of career acceleration, and we also discuss his perspective on AI. Throughout, Kelsey keeps a simple idea front of mind: that technology is ultimately about people. Whether it&#8217;s infrastructure, leadership, careers, or AI, he argues that the goal is not to build technology for its own sake; it&#8217;s to solve meaningful human problems.</p><h3>My observations from the conversation with Kelsey</h3><p>This is a long episode with many compelling, previously unshared stories. As such, there&#8217;s a lengthier-than-usual list of 15 interesting takeaways.</p><div id="youtube2-UlXpOGIpITM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;UlXpOGIpITM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/UlXpOGIpITM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p><strong>1. Kelsey&#8217;s career path is incredibly inspiring. </strong>From modest beginnings with no role models in technology, Kelsey worked his way up from technician, to software engineer, and grew into one of the most respected Distinguished Engineers at Google. His drive to improve and to always do his very best work is infectious. My sense is Kelsey would never be satisfied with &#8220;good enough&#8221; and has always aimed for standout work. This approach is rare and has opened doors that stay closed to average work.</p><p><strong>2. Treat every public talk like a job interview.</strong> Kelsey&#8217;s career inflection points often came from people in audiences offering him jobs. He joined CoreOS because the team watched him PXE-boot CoreOS live on stage; afterwards, they wanted to recruit him.</p><p><strong>3. &#8220;Some people have 20 years&#8217; tenure &#8211; but only one year of experience.&#8221; </strong>Doing the exact same work for years does not advance your skillset. For example, Kelsey observed people in a call center doing identical manual, ticket-closing work for two decades, who never thought of automating themselves out of even some of it. Kelsey started doing this almost immediately and gained valuable new experience.</p><p><strong>4. Side hustles and doing your own thing teach you business like no IC job can.</strong> Before becoming a software engineer at Google, Kelsey was a manager for his comedian friend, operated a computer store, and did IT contracting. These gigs taught him logistics, planning, and about money. All this helped him be far more effective at talking with executives and acting as an executive sponsor inside Google.</p><p><strong>5. Business owners get paid last, but not employees. </strong>Kelsey ran a computer store in Atlanta that did well, but he closed it down to become an employee. As he puts it: &#8220;Employees get paid first, the owner gets paid last, and there are months where you get paid last, or you don&#8217;t get paid at all.&#8221; Kelsey hit a point in his life where he valued the predictability of a salary over volatile income.<br><br><strong>6. Leading without influence: don&#8217;t tell people the answers, let them be discovered.</strong> Kelsey knew that Kubernetes was difficult to onboard and needed the Kubernetes team&#8217;s help to fix it. To get this done, he got the Kubernetes team to install K8s with no scripts, watched them struggle, and then guided them to what was missing. After people discovered the problems themselves, they set about fixing them. Kelsey noted that people uncovering problems on their own works better than an issue being handed down to them.</p><p><strong>7. Can you explain what your startup does without mentioning AI?</strong> When Kelsey researches startups seeking his advice, he challenges founders to not say &#8220;AI&#8221; once. This means that they must explain the <em>actual</em> value their company creates. One unexpected benefit of this is that it often reveals there are easier, cheaper ways to achieve a goal than with AI.</p><p><strong>8. &#8220;Look in the mirror&#8221;: AI&#8217;s impact on the software engineering profession. </strong>Kelsey says that when complaining about AI, engineers should bear in mind how their industry has disrupted and displaced jobs in other parts of the economy. It might be one reason why affected software engineers get seemingly little public sympathy.</p><p><strong>9. Don&#8217;t let agents run loose on raw infra; provide guardrails and context.</strong> As Kelsey puts it, &#8220;I&#8217;ve seen what humans do when you just give them the AWS console. Watch what Claude&#8217;s going to do!&#8221;<br><br><strong>10. It&#8217;s okay to interview when you&#8217;re happy in a job. Just put your ego aside and check out the market.</strong> Kelsey wasn&#8217;t looking and didn&#8217;t want to bother, but his wife pushed him, saying Kelsey should see what&#8217;s out there. She was right!</p><p><strong>11. It&#8217;s very rare to get an extra zero put on your compensation figure &#8211; but it happened. </strong>Kelsey was a successful, well-paid Google engineer when Microsoft made him an offer that 10x&#8217;d his compensation. When Kelsey told Google he was planning to take the offer, it matched the offer, proving that his market value had massively increased. It shows that being well paid doesn&#8217;t necessarily mean you&#8217;re being paid at the correct market rate.</p><p><strong>12. Satya Nadella: &#8220;We gave you an offer as if you were running away from something. We should have given you something to run towards.&#8221;</strong> Microsoft&#8217;s CEO himself acknowledged that when trying to recruit Kelsey, the Windows maker should&#8217;ve focused on the mission and growth opportunities, instead of just throwing money at him. It&#8217;s a lesson that goes well beyond this specific case.</p><p><strong>13. Reframe money as &#8220;freedom tokens&#8221; instead of status.</strong> Once Kelsey stopped caring about impressing others with displays of wealth, money became a means to exit the game, not an end in itself. This reframing changed what he optimized for: to have enough money to not <em>have</em> to work for someone else.</p><p><strong>14. Kelsey&#8217;s advisory setup: 1-year, no cliff, 10-year exercise window, plus a retainer. </strong>Kelsey advises select startups and has learned a few important things:</p><ul><li><p>Advisory shares <em>alone</em> are usually worth nothing, mostly due to dilution and the tax traps of exercising them.</p></li><li><p>Cash retainers ensure he is not working for free. It also means the companies paying him expect impact, and real impact is worth paying for &#8211; by serious companies, that is.</p></li></ul><p>Referrals are the fuel for winning more advisory work, and these are based on outcomes. Kelsey advised Pixie Labs, which was later acquired by New Relic, partly thanks to Kelsey&#8217;s involvement. Word got around that Kelsey&#8217;s advisory could make an impact, so more VCs and founders started reaching out to him.<br><br><strong>15. Apply &#8220;intentional living&#8221; everywhere, not just where it&#8217;s comfortable.</strong> As a long-time minimalist, Kelsey is intentional about possessions, but realized he was being unintentional in other areas. For example, he now reads lyrics while listening to music to actually understand a song. Intentionality is a habit you extend, not a one-time setting.</p><h3><strong>The Pragmatic Engineer deepdives relevant for this episode</strong></h3><p><strong>&#8226; </strong><a href="https://newsletter.pragmaticengineer.com/p/career-paths-for-software-engineers">Career paths for software engineers at large tech companies</a></p><p><strong>&#8226; </strong><a href="https://newsletter.pragmaticengineer.com/p/the-past-and-future-of-backend-practices">The past and future of modern backend practices</a></p><p><strong>&#8226; </strong><a href="https://newsletter.pragmaticengineer.com/p/how-kubernetes-is-built-with-kat">How Kubernetes is built</a></p><p><strong>&#8226; </strong><a href="https://newsletter.pragmaticengineer.com/p/how-linux-is-built-with-greg-kroah">How Linux is built</a></p><p><strong>&#8226; </strong><a href="https://newsletter.pragmaticengineer.com/p/the-staff-engineers-path">The Staff Engineer&#8217;s Path: You&#8217;re a role model now (sorry!)</a></p><h3><strong>Timestamps</strong></h3><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM">00:00</a> Intro</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=214s">03:34</a> Kelsey&#8217;s first job at McDonald&#8217;s</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=304s">05:04</a> His non-traditional path into tech</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=705s">11:45</a> Landing his first tech job with an A+ certification</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=933s">15:33</a> His entrepreneurial years</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=1185s">19:45</a> Joining Google as a data center technician</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=1668s">27:48</a> Learning automation at a Rackspace spinoff</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=2006s">33:26</a> Moving into financial services</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=3000s">50:00</a> Building a reputation through open source</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=3235s">53:55</a> From configuration management to containers</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=4100s">1:08:20</a> The rise of Kubernetes</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=5105s">1:25:05</a> Why he almost joined NASA instead of Google</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=5360s">1:29:20</a> Defining DevRel at Google</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=5900s">1:38:20</a> Demonstrating impact at Google</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=6080s">1:41:20</a> Microsoft&#8217;s offer</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=6920s">1:55:20</a> Learning how to slow down</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=7599s">2:06:39</a> Advising and investing</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=8103s">2:15:03</a> A people-first view of GenAI</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=8667s">2:24:27</a> Using AI with guardrails</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=8906s">2:28:26</a> Matching AI to the task</p><p><a href="https://www.youtube.com/watch?v=UlXpOGIpITM&amp;t=9366s">2:36:06</a> Staying relevant in the AI era</p><h3><strong>References</strong></h3><p><strong>Where to find Kelsey Hightower:</strong></p><p>&#8226; X: <a href="https://x.com/kelseyhightower">https://x.com/kelseyhightower</a></p><p>&#8226; LinkedIn: <a href="https://www.linkedin.com/in/kelsey-hightower-849b342b1">https://www.linkedin.com/in/kelsey-hightower-849b342b1</a></p><p><strong>Mentions during the episode:</strong></p><p>&#8226; TI-BASIC: <a href="https://en.wikipedia.org/wiki/TI-BASIC">https://en.wikipedia.org/wiki/TI-BASIC</a></p><p>&#8226; Georgia HOPE scholarships: <a href="https://www.gafutures.org/hope-state-aid-programs/hope-zell-miller-scholarships/hope-scholarship/">https://www.gafutures.org/hope-state-aid-programs/hope-zell-miller-scholarships/hope-scholarship</a></p><p>&#8226; BellSouth: <a href="https://en.wikipedia.org/wiki/BellSouth">https://en.wikipedia.org/wiki/BellSouth</a></p><p>&#8226; FreeBSD: <a href="https://en.wikipedia.org/wiki/FreeBSD">https://en.wikipedia.org/wiki/FreeBSD</a></p><p>&#8226; Puppet: <a href="https://www.puppet.com">https://www.puppet.com</a></p><p>&#8226; Rackspace: <a href="https://www.rackspace.com">https://www.rackspace.com</a></p><p>&#8226; TSYS: <a href="https://www.tsys.com">https://www.tsys.com</a></p><p>&#8226; James Turnbull&#8217;s website: <a href="https://jamesturnbull.net">https://jamesturnbull.net</a></p><p>&#8226; Kubernetes: <a href="https://kubernetes.io">https://kubernetes.io</a></p><p>&#8226; Red Hat: <a href="https://www.redhat.com">https://www.redhat.com</a></p><p>&#8226; Terraform: <a href="https://developer.hashicorp.com/terraform">https://developer.hashicorp.com/terraform</a></p><p>&#8226; Docker: <a href="https://www.docker.com">https://www.docker.com</a></p><p>&#8226; Mitchell Hashimoto&#8217;s new way of writing code: <a href="https://newsletter.pragmaticengineer.com/p/mitchell-hashimoto">https://newsletter.pragmaticengineer.com/p/mitchell-hashimoto</a></p><p>&#8226; CoreOS: <a href="https://fedoraproject.org/coreos">https://fedoraproject.org/coreos</a></p><p>&#8226; Mesos: <a href="https://en.wikipedia.org/wiki/Apache_Mesos">https://en.wikipedia.org/wiki/Apache_Mesos</a></p><p>&#8226; Go: <a href="https://go.dev">https://go.dev</a></p><p>&#8226; GopherCon: <a href="https://www.gophercon.com">https://www.gophercon.com</a></p><p>&#8226; Rob Pike&#8217;s blog: <a href="https://commandcenter.blogspot.com">https://commandcenter.blogspot.com</a></p><p>&#8226; Russ Cox&#8217;s website: <a href="https://swtch.com/~rsc/">https://swtch.com/~rsc/</a></p><p>&#8226; Brad Fitzpatrick&#8217;s website: <a href="https://bradfitz.com">https://bradfitz.com</a></p><p>&#8226; Erik St. Martin on X: <a href="https://x.com/erikstmartin">https://x.com/erikstmartin</a></p><p>&#8226; Brian Ketelsen&#8217;s website: <a href="https://brian.dev">https://brian.dev</a></p><p>&#8226; Billie Cleek on LinkedIn: <a href="https://www.linkedin.com/in/billie-cleek-677b0830">https://www.linkedin.com/in/billie-cleek-677b0830</a></p><p>&#8226; KubeCon: <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/">https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/</a></p><p>&#8226; How Kubernetes is Built with Kat Cosgrove: <a href="https://newsletter.pragmaticengineer.com/p/how-kubernetes-is-built-with-kat">https://newsletter.pragmaticengineer.com/p/how-kubernetes-is-built-with-kat</a></p><p>&#8226; <em>Kubernetes: Up and Running: Dive into the Future of Infrastructure</em>: <a href="https://www.amazon.com/Kubernetes-Running-Dive-Future-Infrastructure/dp/1491935677">https://www.amazon.com/Kubernetes-Running-Dive-Future-Infrastructure/dp/1491935677</a></p><p>&#8226; Brian Grant on LinkedIn: <a href="https://www.linkedin.com/in/bgrant0607">https://www.linkedin.com/in/bgrant0607</a></p><p>&#8226; Eric Tune on LinkedIn: <a href="https://www.linkedin.com/in/eric-tune-3033693">https://www.linkedin.com/in/eric-tune-3033693</a></p><p>&#8226; Dawn Chen on LinkedIn: <a href="https://www.linkedin.com/in/chendawnhomepage">https://www.linkedin.com/in/chendawnhomepage</a></p><p>&#8226; Satya Nadella on X: <a href="https://x.com/satyanadella">https://x.com/satyanadella</a></p><p>&#8226; Hit Refresh: The Quest to Rediscover Microsoft&#8217;s Soul and Imagine a Better Future for Everyone: <a href="https://www.amazon.com/Hit-Refresh-Rediscover-Microsofts-Everyone-ebook/dp/B01HOT5SQA">https://www.amazon.com/Hit-Refresh-Rediscover-Microsofts-Everyone-ebook/dp/B01HOT5SQA</a></p><p>&#8226; Thomas Kurian on LinkedIn: <a href="https://www.linkedin.com/in/thomas-kurian-469b6219">https://www.linkedin.com/in/thomas-kurian-469b6219</a></p><p>&#8226; Liz Rice on LinkedIn: <a href="https://www.linkedin.com/in/lizrice">https://www.linkedin.com/in/lizrice</a></p><p>&#8226; Pixilabs: <a href="https://www.pixilabs.com">https://www.pixilabs.com</a></p><p>&#8226; Datadog: <a href="https://www.datadoghq.com">https://www.datadoghq.com</a></p><p>&#8226; Guillermo Rauch on X: <a href="https://x.com/rauchg">https://x.com/rauchg</a></p><p>&#8226; Massdriver: <a href="https://www.massdriver.cloud">https://www.massdriver.cloud</a></p><p>&#8226; Here&#8217;s everything the iPhone has replaced in the last 10 years: <a href="https://www.cnbc.com/2017/06/29/everything-the-iphone-has-destroyed-in-the-last-10-years.html">https://www.cnbc.com/2017/06/29/everything-the-iphone-has-destroyed-in-the-last-10-years.html</a></p><p>&#8226; Wix: <a href="https://www.wix.com">https://www.wix.com</a></p><p>&#8226; Lambda: <a href="https://aws.amazon.com/lambda">https://aws.amazon.com/lambda</a></p><p>&#8212;</p><p>Production and marketing by <a href="https://penname.co/">Pen Name</a>. </p><p></p>]]></content:encoded></item><item><title><![CDATA[Ideas: slow down to speed up when working with AI agents]]></title><description><![CDATA[Devs are generating twice as much code (or more) than just 6 months ago, which is a problem for quality, reliability, and tech debt. A rational fix is available for these, but who&#8217;s acting rationally?]]></description><link>https://newsletter.pragmaticengineer.com/p/ideas-slow-down-to-speed-up-when</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/ideas-slow-down-to-speed-up-when</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Tue, 02 Jun 2026 16:42:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vg8z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb13752-d141-4958-948f-223fa5cf58fa_1024x559.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Scheduling update: this week, there will be a podcast episode on Wednesday and no The Pulse on Thursday.</em></p><p>I&#8217;m in Budapest, Hungary, this week, for Craft Conference, where I&#8217;ll be giving a keynote presentation alongside other speakers, including software engineering legend Kent Beck, who&#8217;s been <a href="https://newsletter.pragmaticengineer.com/p/tdd-ai-agents-and-coding-with-kent">on the podcast</a>, Hillel Wayne, a formal methods expert and the author of &#8216;<a href="https://leanpub.com/logic">Logic for Programmers</a>&#8217;, and Titus Winters, lead author of <a href="https://abseil.io/resources/swe-book">Software Engineering at Google</a>.</p><p>The title of my keynote is<em> &#8220;Slow down to speed up&#8221;, </em>and I&#8217;ve been thinking about this topic a lot recently. Here are some things I&#8217;ve been seeing that I feel are relevant&#8230;</p><h3>AI coding tools now used by pretty much all software engineers &#8211; that&#8217;s fast!</h3>
      <p>
          <a href="https://newsletter.pragmaticengineer.com/p/ideas-slow-down-to-speed-up-when">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Pulse: a trend of trying to cut back on AI spend within eng departments?]]></title><description><![CDATA[Top-down and bottom-up efforts to rationalize AI token spend, interesting AI coding stats from Cursor, GCP suspends $2M/month customer without warning, and more]]></description><link>https://newsletter.pragmaticengineer.com/p/the-pulse-a-trend-of-trying-to-cut</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/the-pulse-a-trend-of-trying-to-cut</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Thu, 28 May 2026 16:57:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jc0L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44648fa6-3c4b-4d02-84ee-bef090ea707d_1474x792.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>The Pulse is a series covering events, insights, and trends within Big Tech and startups. Notice an interesting event or trend? Hit reply and share it with me.</em></p><p>Today, we cover:</p><ol><li><p><strong>New trend? ROI questions for AI investments. </strong>I talked with engineering leaders at mid-sized and large companies, where spending on AI agents is being dampened via per-engineer mont&#8230;</p></li></ol>
      <p>
          <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-a-trend-of-trying-to-cut">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Building OpenCode with Dax Raad]]></title><description><![CDATA[Dax Raad, co-founder of OpenCode, joins the show to discuss their explosive growth, the limits of AI coding tools, and why engineering judgment still matters.]]></description><link>https://newsletter.pragmaticengineer.com/p/opencode</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/opencode</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Wed, 27 May 2026 16:07:30 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/199350843/aa58fe2b3564e42f06d4457a024337df.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<h3>Stream the latest episode</h3><p><strong>Listen and watch now on <a href="https://youtu.be/1VqKUrxR2C8">YouTube</a>, <a href="https://open.spotify.com/episode/10InvdH4AqOfZGCMTyzqiM">Spotify</a>, and <a href="https://podcasts.apple.com/us/podcast/the-pragmatic-engineer/id1769051199">Apple</a>.</strong> See the episode transcript at the top of this page, and timestamps for the episode at the bottom.</p><h3><strong>Brought to You by</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YCsL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YCsL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png 424w, https://substackcdn.com/image/fetch/$s_!YCsL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png 848w, https://substackcdn.com/image/fetch/$s_!YCsL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png 1272w, https://substackcdn.com/image/fetch/$s_!YCsL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YCsL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png" width="1280" height="80" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:80,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:33236,&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://newsletter.pragmaticengineer.com/i/197401883?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.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_!YCsL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png 424w, https://substackcdn.com/image/fetch/$s_!YCsL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png 848w, https://substackcdn.com/image/fetch/$s_!YCsL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png 1272w, https://substackcdn.com/image/fetch/$s_!YCsL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>&#8226; <strong><a href="https://antithesis.com/pragmatic">Antithesis</a></strong> &#8211;  if you&#8217;re using agentic workflows, you need to be extremely clear about what you&#8217;re building and how your system should behave. Antithesis brings specification and verification together, making your agents faster, smarter, and safer. And when you&#8217;re using Antithesis, you&#8217;ll have greater clarity about your code as well. <a href="http://antithesis.com/pragmatic">Learn more</a>.</p><p>&#8226;<strong><a href="https://workos.com/">WorkOS</a></strong> &#8211; The fastest AI-native teams have to slow down for the hard problems &#8212; WorkOS makes sure auth, for your app and your agents, is never one of them.</p><p>&#8226; <strong><a href="https://turbopuffer.com/pragmatic">turbopuffer</a></strong> &#8211; a search engine that companies like Cursor, Notion, and Linear use to index and retrieve every byte of context for their AI agents. It&#8217;s ridiculously scalable, built on object storage, with smart caching on NVMe SSDs so it&#8217;s very fast. It also offers many different search indexes and tools: <a href="https://turbopuffer.com/pragmatic">check it out.</a></p><h3><strong>In this episode</strong></h3><p>OpenCode is one of the fastest-growing AI developer tools around, surging in just a few months from roughly 650,000 monthly active users to nearly 8 million, and almost 1M daily active users.</p><p>In this episode of The Pragmatic Engineer Podcast, we meet Dax Raad, co-founder of OpenCode, for a discussion about the gaps in developer tooling that led him to build OpenCode, the advantages of open source, and why taste and engineering judgment matter even more as AI becomes a core part of software development.</p><p>We also cover how OpenCode turned Anthropic&#8217;s blocking of integration with Claude Code into a massive growth lever by partnering with OpenAI and other model providers, why GPU demand is becoming a bottleneck everywhere, how come AI coding tools don&#8217;t automatically mean engineering teams move faster, and also why Dax is personally skeptical about predictions for the future of engineering and work, in general.</p><p>I found this conversation especially interesting because Dax displays a healthy skepticism toward the benefits of AI, even while building one of the most popular AI coding harnesses.</p><h3>My observations from the conversation with Dax</h3><p>Here are 14 of my most interesting takeaways from talking with Dax:</p><div id="youtube2-1VqKUrxR2C8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;1VqKUrxR2C8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/1VqKUrxR2C8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p><strong>1. AI makes coding easier, but the hard parts of the job don&#8217;t vanish. </strong>Dax remarks that a lot of the job has become objectively easier with AI, but then follows up with a simple question: why does it feel like he is still having to think as hard as he ever did?</p><p><strong>2. Thinking upfront beats building prototypes and seeing what sticks. </strong>This is especially true in the period before a product-market fit is found, Dax says. AI doesn&#8217;t help much in this early phase because the problem is figuring out <em>what</em> to build, not how fast you can build it, he says. Therefore, thinking hard about the right direction for development beats taking unfocused swings at different ideas.</p><p><strong>3. Shipping 10x more features is a recipe for a Frankenstein-like product</strong>. It&#8217;s tempting to one-to-one prompt an agent for every user&#8217;s complaint or competitor&#8217;s feature. But the more features are jammed into a product, the worse it tends to become. Also, don&#8217;t forget that every shipped feature will need to be supported for as long as it&#8217;s part of the product!</p><p><strong>4. No AI-native coding agent company is &#8220;winning&#8221; by being better with AI.</strong> Dax says that none of OpenCode&#8217;s competitors are crushing them, and that nobody is using AI so well that others cannot compete.</p><p><strong>5. For OpenCode, product positioning beats speed of execution.</strong> A massive reason for OpenCode becoming the most popular open source AI coding harness is that they noticed no coding agent had successfully claimed the open source category. Dax was wondering why not, given that every market-leading dev tool across the industry is open source. So, he and the team focused on positioning and it paid off handsomely. He summarizes: &#8220;Get positioning right and the world just keeps handing you wins you didn&#8217;t expect.&#8221;</p><p><strong>6. OpenCode&#8217;s &#8220;inverted&#8221; strategy: start with a good-enough product, then optimize. </strong>Dax admits their harness wasn&#8217;t ideal during OpenCode&#8217;s first five months, but it was still good enough. &#8220;Once we won enough market share, we went back and tried to make our harness good and smart.&#8221;</p><p><strong>7. Most software engineers profit from AI as time gained, not increased output &#8212; unless you change incentives!</strong> Dax says the natural way for software engineers to &#8220;cash out&#8221; their AI tooling gains is with time savings, by doing the same work as before, but faster. Until compensation and motivation structures change, most teams should expect output to stay flat while engineers go home earlier. There&#8217;s nothing wrong with this, but AI vendors sell a different outcome to CFOs: increased output.</p><p><strong>8. Motivated engineers who care about quality get buried by slop PRs from devs who don&#8217;t care.</strong> Dax has hired people from companies where they were one of the few who still cared about quality. In contrast, former colleagues just pumped out AI-generated code and focused on getting their tasks done, ignorant of the decreasing quality of code. Motivated devs feel they are drowning in garbage code and tech debt, and getting burnt out by trying to clean it up. Dax calls this an engineering leadership problem that most companies don&#8217;t notice.</p><p><strong>9. AI code generation mutes the &#8220;guilt&#8221; of doing the wrong thing, but this builds up tech debt. </strong>Pre-AI, writing a hack felt bad, the second time it felt <em>really bad,</em> and by the third time you&#8217;d often just refactor in order to fix up the code. Now, the agent hides the hack, which skews devs&#8217; judgment and results in less tech debt being cleaned up.</p><p><strong>10. Dealing with tech debt is easier than ever, and teams should do more of it</strong>. Agents make refactoring across a codebase cheap: for example, ask an agent to implement a new pattern everywhere across the codebase. It&#8217;s very easy and cheap to clear up tech debt, today. So, do more of it!</p><p><strong>11. AI has not really changed the thinking / doing ratio for Dax. </strong>&#8220;Pre-AI, I would spend 95% of my energy thinking about what to do and 5% on doing it. Now I spend 96% of my time thinking, and 4% on actually doing it. So, it&#8217;s like a 20% improvement [from 5% doing to 4% doing], but day to day, it feels as hard as ever.&#8221;</p><p><strong>12. Confident predictions about AI are often forms of self-reassurance.</strong> A post went viral on X claiming that 24-29 year-old engineers will dominate in the future, which was written by &#8211; you can guess &#8211; someone in that exact age bracket. Dax says he sees this pattern a lot and frames such posts in terms of the author making themself feel better: &#8220;Someone like me has all the advantages. Someone unlike me has all the disadvantages&#8221;. Dax says he&#8217;s uninterested in predictions and just focuses on the next task, and the next day.</p><p><strong>13. Old &#8220;enterprise&#8221; patterns are coming back in fashion for writing quality software, as agents are the new junior engineers</strong>. Dax says that things like domain-driven design and verbose design patterns went out of style over the past two decades because they&#8217;re tedious to type out. But they are actually very useful when there are junior devs on the team &#8211; or when there are agents that need strong guardrails. Dax is already using more such &#8220;old school&#8221; patterns.</p><p><strong>14. The future-proof tech career: solid software engineering + deep industry expertise.</strong> Dax reckons engineers undervalue how easily they can become industry insiders compared to people who only focus on engineering, but never become an expert in one business area, as they go.</p><h3><strong>The Pragmatic Engineer deepdives relevant for this episode</strong></h3><ul><li><p><a href="https://newsletter.pragmaticengineer.com/p/how-claude-code-is-built">How Claude Code is built</a></p></li><li><p><a href="https://newsletter.pragmaticengineer.com/p/how-codex-is-built">How Codex is built</a></p></li><li><p><a href="https://newsletter.pragmaticengineer.com/p/cursor">Real-world engineering challenges: building Cursor</a></p></li><li><p><a href="https://newsletter.pragmaticengineer.com/p/the-ai-engineering-stack">The AI Engineering stack</a></p></li><li><p><a href="https://newsletter.pragmaticengineer.com/p/how-uber-uses-ai-for-development">How Uber uses AI for development: inside look</a></p></li></ul><h3><strong>Timestamps</strong></h3><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8">00:00</a> Intro</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=423s">07:03</a> Dax&#8217;s path into tech</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=544s">09:04</a> Early startup experience</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=796s">13:16</a> Getting involved with open source</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=973s">16:13</a> OpenCode</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=1397s">23:17</a> Anthropic banning OpenCode</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=1834s">30:34</a> From terminal to GUI</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=1954s">32:34</a> OpenCode&#8217;s business model</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=2193s">36:33</a> Why inference is profitable</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=2351s">39:11</a> GPU bottlenecks</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=2454s">40:54</a> AI hype</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=2750s">45:50</a> AI spending</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=2927s">48:47</a> Dax&#8217;s memo</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=3341s">55:41</a> Dax&#8217;s skepticism of predictions</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=3538s">58:58</a> Engineering culture at OpenCode</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=3758s">1:02:38</a> How building works at OpenCode</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=3936s">1:05:36</a> Taste and quality</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=4292s">1:11:32</a> Dax&#8217;s work setup</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=4355s">1:12:35</a> The role of engineers and EMs</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=4550s">1:15:50</a> Advice for engineers</p><p><a href="https://www.youtube.com/watch?v=1VqKUrxR2C8&amp;t=4692s">1:18:12</a> Book recommendation</p><h3><strong>References</strong></h3><p><strong>Where to find Dax Raad:</strong></p><p>&#8226; X: <a href="https://x.com/thdxr">https://x.com/thdxr</a></p><p>&#8226; Website: <a href="https://thdxr.com">https://thdxr.com</a></p><p><strong>Mentions during the episode:</strong></p><p>&#8226; OpenCode: <a href="https://opencode.ai">https://opencode.ai</a></p><p>&#8226; Minecraft: <a href="https://www.minecraft.net">https://www.minecraft.net</a></p><p>&#8226; IRC: <a href="https://en.wikipedia.org/wiki/IRC">https://en.wikipedia.org/wiki/IRC</a></p><p>&#8226; Ride Health: <a href="https://www.ridehealth.com">https://www.ridehealth.com</a></p><p>&#8226; Serverless Stack: <a href="https://sst.dev">https://sst.dev</a></p><p>&#8226; OpenNext: <a href="https://opennext.js.org">https://opennext.js.org</a></p><p>&#8226; Vercel: <a href="https://vercel.com">https://vercel.com</a></p><p>&#8226; Red Hat: <a href="https://www.redhat.com">https://www.redhat.com</a></p><p>&#8226; Ubuntu: <a href="https://ubuntu.com">https://ubuntu.com</a></p><p>&#8226; Canonical: <a href="https://canonical.com">https://canonical.com</a></p><p>&#8226; OpenCode Zen: <a href="https://opencode.ai/zen">https://opencode.ai/zen</a></p><p>&#8226; Dax on X &#8220;inference is very profitable&#8221;: </p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/thdxr/status/2042277156940587469&quot;,&quot;full_text&quot;:&quot;inference is very profitable and probably a good opportunity to understand some basic business math\n\n1. companies buy long lived assets like GPUs. these are one time costs and the asset depreciates over time\n\n2. once you own this asset, you can plug it in and produce tokens which&quot;,&quot;username&quot;:&quot;thdxr&quot;,&quot;name&quot;:&quot;dax&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1602333093485891584/mmVqjFNI_normal.jpg&quot;,&quot;date&quot;:&quot;2026-04-09T16:23:12.000Z&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{&quot;full_text&quot;:&quot;@d4m1n i'm a bit confused why so many people say api tokens are sold at a loss\n\nthis isn't true - these models are incredibly expensive compared to the gpu time cost\n\nthere's potential for 90% margin depending on the model&quot;,&quot;username&quot;:&quot;thdxr&quot;,&quot;name&quot;:&quot;dax&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1602333093485891584/mmVqjFNI_normal.jpg&quot;},&quot;reply_count&quot;:65,&quot;retweet_count&quot;:69,&quot;like_count&quot;:1403,&quot;impression_count&quot;:151365,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p>&#8226; The history of servers, the cloud, and what&#8217;s next &#8211; with Oxide: <a href="https://newsletter.pragmaticengineer.com/p/the-history-of-servers-the-cloud">https://newsletter.pragmaticengineer.com/p/the-history-of-servers-the-cloud</a></p><p>&#8226; Dax on X &#8220;everyone&#8217;s talking about their teams like they were at the peak of efficiency&#8221;: </p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/thdxr/status/2022574719694758147&quot;,&quot;full_text&quot;:&quot;everyone's talking about their teams like they were at the peak of efficiency and bottlenecked by ability to produce code\n\nhere's what things actually look like\n\n- your org rarely has good ideas. ideas being expensive to implement was actually helping\n\n- majority of workers have&quot;,&quot;username&quot;:&quot;thdxr&quot;,&quot;name&quot;:&quot;dax&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1602333093485891584/mmVqjFNI_normal.jpg&quot;,&quot;date&quot;:&quot;2026-02-14T07:32:45.000Z&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:288,&quot;retweet_count&quot;:1003,&quot;like_count&quot;:10807,&quot;impression_count&quot;:1017035,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p>&#8226; From IDEs to AI Agents with Steve Yegge: <a href="https://newsletter.pragmaticengineer.com/p/from-ides-to-ai-agents-with-steve">https://newsletter.pragmaticengineer.com/p/from-ides-to-ai-agents-with-steve</a></p><p>&#8226; Stripe: <a href="https://stripe.com">https://stripe.com</a></p><p>&#8226; TDD, AI agents and coding with Kent Beck: <a href="https://newsletter.pragmaticengineer.com/p/tdd-ai-agents-and-coding-with-kent">https://newsletter.pragmaticengineer.com/p/tdd-ai-agents-and-coding-with-kent</a></p><p>&#8226; How AI will change software engineering &#8211; with Martin Fowler: <a href="https://newsletter.pragmaticengineer.com/p/martin-fowler">https://newsletter.pragmaticengineer.com/p/martin-fowler</a></p><p>&#8226; The third golden age of software engineering &#8211; thanks to AI, with Grady Booch: <a href="https://newsletter.pragmaticengineer.com/p/the-third-golden-age-of-software">https://newsletter.pragmaticengineer.com/p/the-third-golden-age-of-software</a></p><p>&#8226; Mitchell Hashimoto&#8217;s new way of writing code: <a href="https://newsletter.pragmaticengineer.com/p/mitchell-hashimoto">https://newsletter.pragmaticengineer.com/p/mitchell-hashimoto</a></p><p>&#8226; Arch Linux: <a href="https://archlinux.org">https://archlinux.org</a></p><p>&#8226; tmux: <a href="https://github.com/tmux/tmux/wiki">https://github.com/tmux/tmux/wiki</a></p><p>&#8226; Neovim: <a href="https://neovim.io">https://neovim.io</a></p><p>&#8226; <em>Skin in the Game: Hidden Asymmetries in Daily Life (Incerto)</em>: <a href="https://www.amazon.com/Skin-Game-Hidden-Asymmetries-Daily/dp/042528462X">https://www.amazon.com/Skin-Game-Hidden-Asymmetries-Daily/dp/042528462X</a></p><p>&#8226; <em>The Black Swan: The Impact of the Highly Improbable, second editio</em>n: <a href="https://www.amazon.com/Black-Swan-Improbable-Robustness-Fragility/dp/081297381X">https://www.amazon.com/Black-Swan-Improbable-Robustness-Fragility/dp/081297381X</a></p><p>&#8212;</p><p>Production and marketing by <a href="https://penname.co/">Pen Name</a>. </p><p></p>]]></content:encoded></item><item><title><![CDATA[State of the software engineering job market in 2026]]></title><description><![CDATA[A deepdive into today&#8217;s tech jobs market, with exclusive data on software engineering jobs, the AI engineering boom, whether AI engineering is &#8220;replacing&#8221; software engineering hiring, and more]]></description><link>https://newsletter.pragmaticengineer.com/p/state-of-the-job-market-2026</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/state-of-the-job-market-2026</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Tue, 26 May 2026 18:10:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!P4An!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e3225d-e5fc-492f-a554-b000806a74d2_1220x1058.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last year, I <a href="https://newsletter.pragmaticengineer.com/p/state-of-the-tech-market-in-2025">described</a> the tech jobs market as &#8220;weird&#8221;, based on reports from both job seekers and hiring managers. In this deepdive, we dig into what &#8211; if anything &#8211; has changed in 2026.</p><p>A year ago, most engineers found it harder to get responses to job applications, while hiring managers found it harder to hire than before. We&#8217;ve now spent two months gathering fresh, never-before-shared data from a range of sources to find out if that paradoxical situation still exists or not.</p><p>We collected the data with software engineer Jessica Salmon &#8211; who&#8217;s joined the team as a tech industry analyst. A big thank you to partner teams who shared exclusive details for this deepdive:</p><ul><li><p><strong><a href="https://www.trueup.io/">TrueUp</a></strong>: a platform that scans every open job in Big Tech, top startups, and scaleups, typically paying in the top two tiers of the <a href="https://newsletter.pragmaticengineer.com/p/trimodal">trimodal software engineering compensation</a> model. <em>Thanks, Amit Taylor.</em></p></li><li><p><strong><a href="http://workforce.ai">Workforce.ai</a></strong>, built by Live Data Technologies, which monitors 1M+ job changes and 300M+ employment validations each month across companies, roles, levels, functions, industries, and locations. <em>Special thanks to Alex Hamilton for his input.</em></p></li></ul><p>Today, we cover:</p><ol><li><p><strong>Software engineering recruitment: trending up, mostly. </strong>More software engineering job postings in the UK and the US, and a decline in Germany and France. &#8220;Top&#8221; tech companies are hiring 20% more vs a year ago.</p></li><li><p><strong>Big Tech and publicly-traded companies. </strong>Meta went on a monster hiring spree for the last two years until layoffs, last week. Microsoft and Amazon were flat, while Google and Apple consistently hired devs. Stripe, Shopify, and Atlassian all hired more than Big Tech.</p></li><li><p><strong>Who&#8217;s hiring the most software engineers?</strong> Apple, Amazon, and IBM are the top 3 by number of positions listed, while Meta dropped off the top 20 with layoffs there. The fastest-growing companies seem to be in fintech, observability, and security.</p></li><li><p><strong>AI engineering: explosive demand. </strong>Most tech companies seem to be prioritizing AI engineering recruitment over software engineers. Observability companies appear to be hiring fastest.</p></li><li><p><strong>Who&#8217;s hiring the most AI engineers? </strong>Apple, Google, and TikTok have the most openings, and many larger tech companies have 50-100% more AI engineering job listings than a year ago.</p></li><li><p><strong>Is AI engineering replacing software engineering hiring?</strong> The data doesn&#8217;t say, but are the basics of AI engineering becoming a baseline skill for software engineering job candidates?</p></li></ol><p><em>For more on the tech jobs market of 2025, check out <a href="https://newsletter.pragmaticengineer.com/p/state-of-the-tech-market-in-2025">last year&#8217;s deepdive.</a></em></p><p><em>The bottom of this article could be cut off in some email clients. <a href="https://newsletter.pragmaticengineer.com/p/state-of-the-job-market-2026">Read the full article uninterrupted, online.</a></em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.pragmaticengineer.com/p/state-of-the-job-market-2026&quot;,&quot;text&quot;:&quot;Read the full article online&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.pragmaticengineer.com/p/state-of-the-job-market-2026"><span>Read the full article online</span></a></p><h2>1. Software engineering recruitment: trending up, mostly</h2><h3>Top tech companies hiring more, slowly but surely</h3><p>TrueUp tracks open positions at top-paying companies, which are usually US-based. Among this group, recruitment of software engineers has been steadily increasing since March 2023:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cNQi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99284e24-69de-42a3-bc6d-487c438ce44e_1260x850.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cNQi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99284e24-69de-42a3-bc6d-487c438ce44e_1260x850.png 424w, https://substackcdn.com/image/fetch/$s_!cNQi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99284e24-69de-42a3-bc6d-487c438ce44e_1260x850.png 848w, https://substackcdn.com/image/fetch/$s_!cNQi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99284e24-69de-42a3-bc6d-487c438ce44e_1260x850.png 1272w, https://substackcdn.com/image/fetch/$s_!cNQi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99284e24-69de-42a3-bc6d-487c438ce44e_1260x850.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cNQi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99284e24-69de-42a3-bc6d-487c438ce44e_1260x850.png" width="1260" height="850" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/99284e24-69de-42a3-bc6d-487c438ce44e_1260x850.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:850,&quot;width&quot;:1260,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cNQi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99284e24-69de-42a3-bc6d-487c438ce44e_1260x850.png 424w, https://substackcdn.com/image/fetch/$s_!cNQi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99284e24-69de-42a3-bc6d-487c438ce44e_1260x850.png 848w, https://substackcdn.com/image/fetch/$s_!cNQi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99284e24-69de-42a3-bc6d-487c438ce44e_1260x850.png 1272w, https://substackcdn.com/image/fetch/$s_!cNQi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99284e24-69de-42a3-bc6d-487c438ce44e_1260x850.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>&#8220;Top&#8221; startups keep hiring more devs. Source: <a href="https://www.trueup.io/job-trend">TrueUp</a></em></figcaption></figure></div><h3>US growth, but less in Canada and Europe</h3><p>Let&#8217;s take a look at broader industry trends via software developer jobs listed on Indeed.com, the world&#8217;s largest job aggregator site. As a &#8220;jobs aggregator&#8221;, Indeed not only displays paid-for ads but also crawls many other career sites and lists the vacancies.</p><p>Looking at trends over the last five years, the number of software engineering jobs listed is still lower than in May 2021:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V_VW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21201a99-a45c-4ecc-939e-1d549b9f8b7e_1492x856.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V_VW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21201a99-a45c-4ecc-939e-1d549b9f8b7e_1492x856.png 424w, https://substackcdn.com/image/fetch/$s_!V_VW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21201a99-a45c-4ecc-939e-1d549b9f8b7e_1492x856.png 848w, https://substackcdn.com/image/fetch/$s_!V_VW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21201a99-a45c-4ecc-939e-1d549b9f8b7e_1492x856.png 1272w, https://substackcdn.com/image/fetch/$s_!V_VW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21201a99-a45c-4ecc-939e-1d549b9f8b7e_1492x856.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V_VW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21201a99-a45c-4ecc-939e-1d549b9f8b7e_1492x856.png" width="1456" height="835" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/21201a99-a45c-4ecc-939e-1d549b9f8b7e_1492x856.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:835,&quot;width&quot;:1456,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!V_VW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21201a99-a45c-4ecc-939e-1d549b9f8b7e_1492x856.png 424w, https://substackcdn.com/image/fetch/$s_!V_VW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21201a99-a45c-4ecc-939e-1d549b9f8b7e_1492x856.png 848w, https://substackcdn.com/image/fetch/$s_!V_VW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21201a99-a45c-4ecc-939e-1d549b9f8b7e_1492x856.png 1272w, https://substackcdn.com/image/fetch/$s_!V_VW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21201a99-a45c-4ecc-939e-1d549b9f8b7e_1492x856.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Dev job listings in the US, 2021-2026. Source: <a href="https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE">FRED / Indeed</a></em></figcaption></figure></div><p>Obviously, 2021 was the pandemic which created a commercial boom for the tech industry, so it&#8217;s not exactly an ideal comparison. Zooming into the last twelve months shows encouraging growth signs:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TAhM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfc84594-dcb9-4a1c-99c7-503b78412039_1310x1410.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TAhM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfc84594-dcb9-4a1c-99c7-503b78412039_1310x1410.png 424w, https://substackcdn.com/image/fetch/$s_!TAhM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfc84594-dcb9-4a1c-99c7-503b78412039_1310x1410.png 848w, https://substackcdn.com/image/fetch/$s_!TAhM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfc84594-dcb9-4a1c-99c7-503b78412039_1310x1410.png 1272w, https://substackcdn.com/image/fetch/$s_!TAhM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfc84594-dcb9-4a1c-99c7-503b78412039_1310x1410.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TAhM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfc84594-dcb9-4a1c-99c7-503b78412039_1310x1410.png" width="1310" height="1410" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cfc84594-dcb9-4a1c-99c7-503b78412039_1310x1410.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1410,&quot;width&quot;:1310,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TAhM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfc84594-dcb9-4a1c-99c7-503b78412039_1310x1410.png 424w, https://substackcdn.com/image/fetch/$s_!TAhM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfc84594-dcb9-4a1c-99c7-503b78412039_1310x1410.png 848w, https://substackcdn.com/image/fetch/$s_!TAhM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfc84594-dcb9-4a1c-99c7-503b78412039_1310x1410.png 1272w, https://substackcdn.com/image/fetch/$s_!TAhM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfc84594-dcb9-4a1c-99c7-503b78412039_1310x1410.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Dev job listings in the last five years vs the past year. Source: FRED / Indeed</em></figcaption></figure></div><p>Outside of the US, let&#8217;s check out software engineering vacancy trends, per Indeed:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qOwb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a1e574a-52a3-4087-b1e5-f1a89d88ccb1_1924x1502.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qOwb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a1e574a-52a3-4087-b1e5-f1a89d88ccb1_1924x1502.png 424w, https://substackcdn.com/image/fetch/$s_!qOwb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a1e574a-52a3-4087-b1e5-f1a89d88ccb1_1924x1502.png 848w, https://substackcdn.com/image/fetch/$s_!qOwb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a1e574a-52a3-4087-b1e5-f1a89d88ccb1_1924x1502.png 1272w, https://substackcdn.com/image/fetch/$s_!qOwb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a1e574a-52a3-4087-b1e5-f1a89d88ccb1_1924x1502.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qOwb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a1e574a-52a3-4087-b1e5-f1a89d88ccb1_1924x1502.png" width="1456" height="1137" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3a1e574a-52a3-4087-b1e5-f1a89d88ccb1_1924x1502.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1137,&quot;width&quot;:1456,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qOwb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a1e574a-52a3-4087-b1e5-f1a89d88ccb1_1924x1502.png 424w, https://substackcdn.com/image/fetch/$s_!qOwb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a1e574a-52a3-4087-b1e5-f1a89d88ccb1_1924x1502.png 848w, https://substackcdn.com/image/fetch/$s_!qOwb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a1e574a-52a3-4087-b1e5-f1a89d88ccb1_1924x1502.png 1272w, https://substackcdn.com/image/fetch/$s_!qOwb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a1e574a-52a3-4087-b1e5-f1a89d88ccb1_1924x1502.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">S<em>oftware engineering listings over the past 12 months by country. Source: FRED / Indeed</em></figcaption></figure></div><p>In this list, the US and the UK are the only two countries where vacancies are up; Canada is flat, while Germany and France have seen declines. To me, it suggests US-headquartered companies are hiring more devs, mostly in the US and some in the UK, whereas European-headquartered companies are more cautious about recruitment.</p><h3>The software engineering industry still grows</h3><p>Let&#8217;s ask how much the software engineer population has grown or shrunk in the last seven years. Here are some numbers from profiles, as tracked by Workforce.ai:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!P4An!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e3225d-e5fc-492f-a554-b000806a74d2_1220x1058.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!P4An!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e3225d-e5fc-492f-a554-b000806a74d2_1220x1058.png 424w, https://substackcdn.com/image/fetch/$s_!P4An!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e3225d-e5fc-492f-a554-b000806a74d2_1220x1058.png 848w, https://substackcdn.com/image/fetch/$s_!P4An!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e3225d-e5fc-492f-a554-b000806a74d2_1220x1058.png 1272w, https://substackcdn.com/image/fetch/$s_!P4An!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e3225d-e5fc-492f-a554-b000806a74d2_1220x1058.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!P4An!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e3225d-e5fc-492f-a554-b000806a74d2_1220x1058.png" width="1220" height="1058" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29e3225d-e5fc-492f-a554-b000806a74d2_1220x1058.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1058,&quot;width&quot;:1220,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!P4An!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e3225d-e5fc-492f-a554-b000806a74d2_1220x1058.png 424w, https://substackcdn.com/image/fetch/$s_!P4An!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e3225d-e5fc-492f-a554-b000806a74d2_1220x1058.png 848w, https://substackcdn.com/image/fetch/$s_!P4An!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e3225d-e5fc-492f-a554-b000806a74d2_1220x1058.png 1272w, https://substackcdn.com/image/fetch/$s_!P4An!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e3225d-e5fc-492f-a554-b000806a74d2_1220x1058.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Net growth and shrinkage for software engineer profiles. Source: <a href="http://workforce.ai">Workforce.ai</a></em></figcaption></figure></div><p><a href="https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE"><br></a>Let&#8217;s zoom into this chart:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IeAB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ec2c2d7-49e9-48ae-9756-c592d6ba34de_1684x1042.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IeAB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ec2c2d7-49e9-48ae-9756-c592d6ba34de_1684x1042.png 424w, https://substackcdn.com/image/fetch/$s_!IeAB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ec2c2d7-49e9-48ae-9756-c592d6ba34de_1684x1042.png 848w, https://substackcdn.com/image/fetch/$s_!IeAB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ec2c2d7-49e9-48ae-9756-c592d6ba34de_1684x1042.png 1272w, https://substackcdn.com/image/fetch/$s_!IeAB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ec2c2d7-49e9-48ae-9756-c592d6ba34de_1684x1042.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IeAB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ec2c2d7-49e9-48ae-9756-c592d6ba34de_1684x1042.png" width="1456" height="901" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ec2c2d7-49e9-48ae-9756-c592d6ba34de_1684x1042.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:901,&quot;width&quot;:1456,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IeAB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ec2c2d7-49e9-48ae-9756-c592d6ba34de_1684x1042.png 424w, https://substackcdn.com/image/fetch/$s_!IeAB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ec2c2d7-49e9-48ae-9756-c592d6ba34de_1684x1042.png 848w, https://substackcdn.com/image/fetch/$s_!IeAB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ec2c2d7-49e9-48ae-9756-c592d6ba34de_1684x1042.png 1272w, https://substackcdn.com/image/fetch/$s_!IeAB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ec2c2d7-49e9-48ae-9756-c592d6ba34de_1684x1042.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Recruitment shifts over time. Source: Workforce.ai </figcaption></figure></div><p>There are a few interesting details:</p><ul><li><p><strong>Hiring mostly occurs between the months of March and June, </strong>and<strong> </strong>there&#8217;s very little net growth in the second half of the year. This makes sense as tech companies set annual headcount budgets at the beginning of the year and commence hiring from then, with most hires evidently made in the following months. Hiring budgets are usually spent by mid-year.</p></li><li><p><strong>The industry seemingly shrank in 2023. </strong>That year, it was only in Q2 that more software engineers were hired than left their jobs. It was the worst period for software engineers in two decades.</p></li></ul><p><strong>&#8230;and also in 2024 and 2025 during Q3. </strong>Mass layoffs mostly happened between August and October, the charts show.</p><h2>2. Big Tech and publicly-traded companies</h2><h3>Big Tech: modest jobs growth &#8211; but not at Meta</h3><p>Looking at the two years since May 2024, of the five largest tech companies, only Meta grew headcount aggressively:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hiKF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa29342d8-274b-4eec-a73b-d41fcac373ab_1366x940.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hiKF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa29342d8-274b-4eec-a73b-d41fcac373ab_1366x940.png 424w, https://substackcdn.com/image/fetch/$s_!hiKF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa29342d8-274b-4eec-a73b-d41fcac373ab_1366x940.png 848w, https://substackcdn.com/image/fetch/$s_!hiKF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa29342d8-274b-4eec-a73b-d41fcac373ab_1366x940.png 1272w, https://substackcdn.com/image/fetch/$s_!hiKF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa29342d8-274b-4eec-a73b-d41fcac373ab_1366x940.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hiKF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa29342d8-274b-4eec-a73b-d41fcac373ab_1366x940.png" width="1366" height="940" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a29342d8-274b-4eec-a73b-d41fcac373ab_1366x940.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:940,&quot;width&quot;:1366,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hiKF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa29342d8-274b-4eec-a73b-d41fcac373ab_1366x940.png 424w, https://substackcdn.com/image/fetch/$s_!hiKF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa29342d8-274b-4eec-a73b-d41fcac373ab_1366x940.png 848w, https://substackcdn.com/image/fetch/$s_!hiKF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa29342d8-274b-4eec-a73b-d41fcac373ab_1366x940.png 1272w, https://substackcdn.com/image/fetch/$s_!hiKF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa29342d8-274b-4eec-a73b-d41fcac373ab_1366x940.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Meta hired while Microsoft and Amazon stayed more static. Source: <a href="https://app.workforce.ai/insights">Workforce.ai</a></em></figcaption></figure></div><p>In that time, Meta increased its headcount by nearly 20%, so perhaps its recent 10% layoffs could be considered as not a total surprise. As for other tech giants, their software engineering headcount also changed in the last two years:</p><ul><li><p>Apple: +10%</p></li><li><p>Google: +5%</p></li><li><p>Microsoft: -1.1%</p></li><li><p>Amazon: -1.3%</p></li></ul><p>Visualizing this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1ePc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c7a3700-09f4-4333-b468-13f9dcb3f887_1466x852.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1ePc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c7a3700-09f4-4333-b468-13f9dcb3f887_1466x852.png 424w, https://substackcdn.com/image/fetch/$s_!1ePc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c7a3700-09f4-4333-b468-13f9dcb3f887_1466x852.png 848w, https://substackcdn.com/image/fetch/$s_!1ePc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c7a3700-09f4-4333-b468-13f9dcb3f887_1466x852.png 1272w, https://substackcdn.com/image/fetch/$s_!1ePc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c7a3700-09f4-4333-b468-13f9dcb3f887_1466x852.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1ePc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c7a3700-09f4-4333-b468-13f9dcb3f887_1466x852.png" width="1456" height="846" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4c7a3700-09f4-4333-b468-13f9dcb3f887_1466x852.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:846,&quot;width&quot;:1456,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1ePc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c7a3700-09f4-4333-b468-13f9dcb3f887_1466x852.png 424w, https://substackcdn.com/image/fetch/$s_!1ePc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c7a3700-09f4-4333-b468-13f9dcb3f887_1466x852.png 848w, https://substackcdn.com/image/fetch/$s_!1ePc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c7a3700-09f4-4333-b468-13f9dcb3f887_1466x852.png 1272w, https://substackcdn.com/image/fetch/$s_!1ePc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c7a3700-09f4-4333-b468-13f9dcb3f887_1466x852.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Mixed</em> <em>software engineering headcount growth across Big Tech. Source: <a href="https://app.workforce.ai/insights">Workforce.ai</a></em></figcaption></figure></div><p>Apple and Google seem the most &#8220;stable&#8221; places when it comes to growing the software engineering function; Apple has not had mass layoffs for decades. In contrast, Meta is the most volatile place to work; hiring devs quickly and then letting them go. Elsewhere, Amazon and Microsoft are slowly employing more software folks.</p><h3>Meta&#8217;s hire-then-fire rollercoaster</h3><p>Meta warrants a closer look, where morale is reportedly <a href="https://newsletter.pragmaticengineer.com/i/198733941/3-jobs-axe-falls-at-meta-8000-let-go">as low as it&#8217;s ever been</a> right now, due to layoffs of 10% of staff, while thousands of software engineers have been <a href="https://newsletter.pragmaticengineer.com/i/196795826/3-meta-forcefully-assigns-engineers-to-data-labelling-pre-layoff">reassigned to manual data labeling</a> from previous product development or infra work. From 2004 until 2022, Meta never did mass layoffs, but in the past three years there have been three sizeable redundancy rounds (at the end of 2022, early 2024, and last week), with the most rapid hiring growth of any tech giant sandwiched in between:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_whS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20adfb0f-ccbd-4d2e-9a10-810290be1f15_1174x742.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_whS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20adfb0f-ccbd-4d2e-9a10-810290be1f15_1174x742.png 424w, https://substackcdn.com/image/fetch/$s_!_whS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20adfb0f-ccbd-4d2e-9a10-810290be1f15_1174x742.png 848w, https://substackcdn.com/image/fetch/$s_!_whS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20adfb0f-ccbd-4d2e-9a10-810290be1f15_1174x742.png 1272w, https://substackcdn.com/image/fetch/$s_!_whS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20adfb0f-ccbd-4d2e-9a10-810290be1f15_1174x742.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_whS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20adfb0f-ccbd-4d2e-9a10-810290be1f15_1174x742.png" width="1174" height="742" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/20adfb0f-ccbd-4d2e-9a10-810290be1f15_1174x742.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:742,&quot;width&quot;:1174,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_whS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20adfb0f-ccbd-4d2e-9a10-810290be1f15_1174x742.png 424w, https://substackcdn.com/image/fetch/$s_!_whS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20adfb0f-ccbd-4d2e-9a10-810290be1f15_1174x742.png 848w, https://substackcdn.com/image/fetch/$s_!_whS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20adfb0f-ccbd-4d2e-9a10-810290be1f15_1174x742.png 1272w, https://substackcdn.com/image/fetch/$s_!_whS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20adfb0f-ccbd-4d2e-9a10-810290be1f15_1174x742.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Meta laid folks off in bulk, then hired them fastest among Big Techs. Source: <a href="http://workforce.ai">Workforce.ai</a></em></figcaption></figure></div><p>Before 2022, Meta ranked with Google as one of the most stable places to work in tech. Safe to say, the company is currently the riskiest place to be in job-security terms &#8211; even if Mark Zuckerberg has said there will be no more mass layoffs this year.</p><h3>Publicly-traded tech companies: mostly flat recruitment</h3><p>A couple of years ago, larger tech companies were hiring even more than most of Big Tech. Software engineering headcount grew in the past two years at Shopify (+36%), Stripe (+29%), Atlassian (+23%), Snap (+15%) and Spotify (+6%).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!b-M3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7dcc8b6-32e3-44b1-a260-7160dcc5dad0_1072x842.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!b-M3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7dcc8b6-32e3-44b1-a260-7160dcc5dad0_1072x842.png 424w, https://substackcdn.com/image/fetch/$s_!b-M3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7dcc8b6-32e3-44b1-a260-7160dcc5dad0_1072x842.png 848w, https://substackcdn.com/image/fetch/$s_!b-M3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7dcc8b6-32e3-44b1-a260-7160dcc5dad0_1072x842.png 1272w, https://substackcdn.com/image/fetch/$s_!b-M3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7dcc8b6-32e3-44b1-a260-7160dcc5dad0_1072x842.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!b-M3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7dcc8b6-32e3-44b1-a260-7160dcc5dad0_1072x842.png" width="1072" height="842" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7dcc8b6-32e3-44b1-a260-7160dcc5dad0_1072x842.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:842,&quot;width&quot;:1072,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!b-M3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7dcc8b6-32e3-44b1-a260-7160dcc5dad0_1072x842.png 424w, https://substackcdn.com/image/fetch/$s_!b-M3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7dcc8b6-32e3-44b1-a260-7160dcc5dad0_1072x842.png 848w, https://substackcdn.com/image/fetch/$s_!b-M3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7dcc8b6-32e3-44b1-a260-7160dcc5dad0_1072x842.png 1272w, https://substackcdn.com/image/fetch/$s_!b-M3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7dcc8b6-32e3-44b1-a260-7160dcc5dad0_1072x842.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Source: Workforce.ai</figcaption></figure></div><p>But that&#8217;s changed recently. In the past year, headcount growth has slowed at Stripe (+15%), Atlassian (+11%), Shopify (+6%), Snap (+2%), and Spotify (+1%),</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1AxH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dd99464-89aa-410c-b1cf-1d57a283d1a0_1076x810.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1AxH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dd99464-89aa-410c-b1cf-1d57a283d1a0_1076x810.png 424w, https://substackcdn.com/image/fetch/$s_!1AxH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dd99464-89aa-410c-b1cf-1d57a283d1a0_1076x810.png 848w, https://substackcdn.com/image/fetch/$s_!1AxH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dd99464-89aa-410c-b1cf-1d57a283d1a0_1076x810.png 1272w, https://substackcdn.com/image/fetch/$s_!1AxH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dd99464-89aa-410c-b1cf-1d57a283d1a0_1076x810.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1AxH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dd99464-89aa-410c-b1cf-1d57a283d1a0_1076x810.png" width="1076" height="810" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9dd99464-89aa-410c-b1cf-1d57a283d1a0_1076x810.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:810,&quot;width&quot;:1076,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1AxH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dd99464-89aa-410c-b1cf-1d57a283d1a0_1076x810.png 424w, https://substackcdn.com/image/fetch/$s_!1AxH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dd99464-89aa-410c-b1cf-1d57a283d1a0_1076x810.png 848w, https://substackcdn.com/image/fetch/$s_!1AxH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dd99464-89aa-410c-b1cf-1d57a283d1a0_1076x810.png 1272w, https://substackcdn.com/image/fetch/$s_!1AxH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dd99464-89aa-410c-b1cf-1d57a283d1a0_1076x810.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Source: Workforce.ai </figcaption></figure></div><p>This data does not capture Atlassian letting go of 10% of staff <a href="https://newsletter.pragmaticengineer.com/i/197715901/2-why-are-layoffs-spiking">this month</a>, and Snap laying off 16% <a href="https://newsletter.pragmaticengineer.com/i/197715901/2-why-are-layoffs-spiking">in April</a>.</p><p>Among this group, Stripe stands out as a place that keeps hiring at a higher pace than nearly all of Big Tech. Atlassian and Shopify have grown their software engineering headcount faster than Google, Microsoft, and Amazon did in the past two years.</p><h2>3. Who&#8217;s hiring the most software engineers?</h2><p>So, which companies are hiring the most? Let&#8217;s look at this via open positions and growth comparisons.</p><h3>Companies with the most open roles</h3><p>&#8220;Top&#8221; tech companies with the largest number of software engineering openings:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FFc9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa07087aa-3d6f-4a75-af23-d5438a45695f_1454x1300.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FFc9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa07087aa-3d6f-4a75-af23-d5438a45695f_1454x1300.png 424w, https://substackcdn.com/image/fetch/$s_!FFc9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa07087aa-3d6f-4a75-af23-d5438a45695f_1454x1300.png 848w, https://substackcdn.com/image/fetch/$s_!FFc9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa07087aa-3d6f-4a75-af23-d5438a45695f_1454x1300.png 1272w, https://substackcdn.com/image/fetch/$s_!FFc9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa07087aa-3d6f-4a75-af23-d5438a45695f_1454x1300.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FFc9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa07087aa-3d6f-4a75-af23-d5438a45695f_1454x1300.png" width="1454" height="1300" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a07087aa-3d6f-4a75-af23-d5438a45695f_1454x1300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1300,&quot;width&quot;:1454,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FFc9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa07087aa-3d6f-4a75-af23-d5438a45695f_1454x1300.png 424w, https://substackcdn.com/image/fetch/$s_!FFc9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa07087aa-3d6f-4a75-af23-d5438a45695f_1454x1300.png 848w, https://substackcdn.com/image/fetch/$s_!FFc9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa07087aa-3d6f-4a75-af23-d5438a45695f_1454x1300.png 1272w, https://substackcdn.com/image/fetch/$s_!FFc9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa07087aa-3d6f-4a75-af23-d5438a45695f_1454x1300.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Businesses with the most software engineering vacancies. Source: <a href="https://www.trueup.io/job-trend">TrueUp</a></em></figcaption></figure></div><p>Compared to last year:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NLKX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cc38fd-7296-4f7e-9f50-e2844742302a_1572x1290.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NLKX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cc38fd-7296-4f7e-9f50-e2844742302a_1572x1290.png 424w, https://substackcdn.com/image/fetch/$s_!NLKX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cc38fd-7296-4f7e-9f50-e2844742302a_1572x1290.png 848w, https://substackcdn.com/image/fetch/$s_!NLKX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cc38fd-7296-4f7e-9f50-e2844742302a_1572x1290.png 1272w, https://substackcdn.com/image/fetch/$s_!NLKX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cc38fd-7296-4f7e-9f50-e2844742302a_1572x1290.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NLKX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cc38fd-7296-4f7e-9f50-e2844742302a_1572x1290.png" width="1456" height="1195" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/67cc38fd-7296-4f7e-9f50-e2844742302a_1572x1290.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1195,&quot;width&quot;:1456,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NLKX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cc38fd-7296-4f7e-9f50-e2844742302a_1572x1290.png 424w, https://substackcdn.com/image/fetch/$s_!NLKX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cc38fd-7296-4f7e-9f50-e2844742302a_1572x1290.png 848w, https://substackcdn.com/image/fetch/$s_!NLKX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cc38fd-7296-4f7e-9f50-e2844742302a_1572x1290.png 1272w, https://substackcdn.com/image/fetch/$s_!NLKX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cc38fd-7296-4f7e-9f50-e2844742302a_1572x1290.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Companies with the most open positions, 2025 vs 2026. Source: <a href="https://www.trueup.io/job-trend">TrueUp</a></em></figcaption></figure></div><p>Observations:</p><ul><li><p><strong>The top three are unchanged</strong>: It&#8217;s still Apple, IBM, and Amazon</p></li><li><p><strong>New entrants to the top 20:</strong> Accenture (consulting), Tesla, Cadence (hardware), Hewlett Packard Enterprise (HPE), and SpaceX.</p></li><li><p><strong>Dropouts: </strong>Meta and Oracle. Last year, Oracle was #4 on the list with 1,396 open software engineering roles, but the company <a href="https://time.com/article/2026/04/30/oracle-layoffs-ai-tech-jobs">announced</a> up to 30,000 layoffs in March. Also no longer leading in jobs available are Speechify, NTT Data, Meta, and DXC Technology.</p></li><li><p><strong>Big Tech companies hiring more than last year</strong>: Apple and Google, which has +62% more engineering roles advertised than last year.</p></li><li><p><strong>Big companies hiring less vs last year</strong>: Meta, Oracle, and TikTok all have much fewer openings listed. For Meta and Oracle, there&#8217;s little surprise given recent layoffs. TikTok was in US regulatory limbo until January, when a new TikTok USDS joint venture <a href="https://newsroom.tiktok.com/announcement-from-the-new-tiktok-usds-joint-venture-llc?lang=en">was established.</a></p></li><li><p><strong>Hardware companies hiring more software talent</strong>: Micron, Qualcomm, and AMD all have considerably more software engineering openings than last year.</p></li></ul><h3>Where are the &#8220;top&#8221; software engineering jobs?</h3><p>Most of these jobs are in the US, just as most companies leading in recruitment numbers are US-headquartered. Other leading locations for jobs are India, the UK, and Canada:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IE7U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ffa0870-e258-4f97-b0c5-d02cc9bad147_1084x984.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IE7U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ffa0870-e258-4f97-b0c5-d02cc9bad147_1084x984.png 424w, https://substackcdn.com/image/fetch/$s_!IE7U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ffa0870-e258-4f97-b0c5-d02cc9bad147_1084x984.png 848w, https://substackcdn.com/image/fetch/$s_!IE7U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ffa0870-e258-4f97-b0c5-d02cc9bad147_1084x984.png 1272w, https://substackcdn.com/image/fetch/$s_!IE7U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ffa0870-e258-4f97-b0c5-d02cc9bad147_1084x984.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IE7U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ffa0870-e258-4f97-b0c5-d02cc9bad147_1084x984.png" width="1084" height="984" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ffa0870-e258-4f97-b0c5-d02cc9bad147_1084x984.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:984,&quot;width&quot;:1084,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IE7U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ffa0870-e258-4f97-b0c5-d02cc9bad147_1084x984.png 424w, https://substackcdn.com/image/fetch/$s_!IE7U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ffa0870-e258-4f97-b0c5-d02cc9bad147_1084x984.png 848w, https://substackcdn.com/image/fetch/$s_!IE7U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ffa0870-e258-4f97-b0c5-d02cc9bad147_1084x984.png 1272w, https://substackcdn.com/image/fetch/$s_!IE7U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ffa0870-e258-4f97-b0c5-d02cc9bad147_1084x984.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Numbers and locations of software engineering jobs listed by leading tech companies. Source: <a href="https://www.trueup.io/job-trend">TrueUp</a></em></figcaption></figure></div><h3>Fastest-growing: fintech and security</h3><p>Then there are large companies where recruitment has been among the fastest anywhere in software engineering:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!slQE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2da6d85-79f9-4aa4-8194-dbdc1679058b_1248x906.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!slQE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2da6d85-79f9-4aa4-8194-dbdc1679058b_1248x906.png 424w, https://substackcdn.com/image/fetch/$s_!slQE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2da6d85-79f9-4aa4-8194-dbdc1679058b_1248x906.png 848w, https://substackcdn.com/image/fetch/$s_!slQE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2da6d85-79f9-4aa4-8194-dbdc1679058b_1248x906.png 1272w, https://substackcdn.com/image/fetch/$s_!slQE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2da6d85-79f9-4aa4-8194-dbdc1679058b_1248x906.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!slQE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2da6d85-79f9-4aa4-8194-dbdc1679058b_1248x906.png" width="1248" height="906" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2da6d85-79f9-4aa4-8194-dbdc1679058b_1248x906.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:906,&quot;width&quot;:1248,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!slQE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2da6d85-79f9-4aa4-8194-dbdc1679058b_1248x906.png 424w, https://substackcdn.com/image/fetch/$s_!slQE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2da6d85-79f9-4aa4-8194-dbdc1679058b_1248x906.png 848w, https://substackcdn.com/image/fetch/$s_!slQE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2da6d85-79f9-4aa4-8194-dbdc1679058b_1248x906.png 1272w, https://substackcdn.com/image/fetch/$s_!slQE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2da6d85-79f9-4aa4-8194-dbdc1679058b_1248x906.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Companies which hired software engineers rapidly in the last two years</em></figcaption></figure></div><p>Software engineering headcount growth at some companies was significant over the past two years:</p><ul><li><p>Ramp (fintech): +94%</p></li><li><p>Wiz (security): +84%</p></li><li><p>Datadog (observability): +68%</p></li><li><p>Rippling (fintech): +55%</p></li><li><p>Figma (design tooling): +41%</p></li><li><p>Netflix (streaming): +37%</p></li></ul><p>Of this group, Datadog, Figma, and Netflix are publicly traded, and the largest by headcount:</p><ul><li><p><strong>Datadog</strong>: AI agents are driving demand for observability through the roof, and Datadog is the leader of the pack. There&#8217;s demand to expand their infra and offerings. AI companies are also customers: OpenAI famously &#8211; or infamously! &#8211; <a href="https://newsletter.pragmaticengineer.com/i/175118968/1-is-openai-spending-record-sums-on-datadog">spent around $170M on Datadog</a> in 2025.</p></li><li><p><strong>Figma</strong>: the design tooling company went public <a href="https://newsletter.pragmaticengineer.com/i/170985406/3-figmas-ipo-an-end-to-the-tech-ipo-winter">in 2025</a> and is heavily investing in products related to AI, such as Figma AI.</p></li><li><p><strong>Netflix</strong>: the streaming behemoth is transitioning from &#8220;just&#8221; being a video streamer to becoming a broader entertainment platform, doing live events, advertising, gaming, and more. <em>We did a podcast with Netflix CTO, Elizabeth Stone, in 2025 about <a href="https://newsletter.pragmaticengineer.com/p/netflix">Netflix&#8217;s engineering culture</a>.</em></p></li></ul><h2>4. AI engineering: explosive demand</h2><p>AI engineering demand is only going in one direction: upwards, at a fierce tick. Last September, our previous <a href="https://newsletter.pragmaticengineer.com/p/state-of-the-tech-market-in-2025">State of the Tech Job Market report</a> found that AI Engineering was the hottest segment in tech for job listings growth. Today, the trend seems to continue:</p>
      <p>
          <a href="https://newsletter.pragmaticengineer.com/p/state-of-the-job-market-2026">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Pulse: Antigravity 2.0 takes ‘IDE’ out of its new IDE]]></title><description><![CDATA[Negative feedback greets Google&#8217;s redesigned AI IDE, why Google&#8217;s product ecosystem is so chaotic, Meta cuts 10% of staff as it hits record revenue and profits, and more]]></description><link>https://newsletter.pragmaticengineer.com/p/the-pulse-antigravity-20-takes-ide</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/the-pulse-antigravity-20-takes-ide</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Thu, 21 May 2026 17:01:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QVIZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e853b57-6352-4ffc-b5c8-0176efbeb101_1430x1056.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>The Pulse is a series covering events, insights, and trends within Big Tech and startups. Notice an interesting event or trend? Hit reply and share it with me.</em></p><p>Today, we cover:</p><ol><li><p><strong>Antigravity 2.0 takes the &#8216;IDE&#8217; out of its new IDE. </strong>Feedback about the redesigned IDE is overwhelmingly negative due to bugs, poor UX &amp; model support, and eating through Gemini token quotas. Also: a clue that Antigravity&#8217;s own devs use other tools for their work?</p></li><li><p><strong>Why is Google&#8217;s product ecosystem chaotic? </strong>The range of products on display at the Google I/O conference made a messy, incoherent impression. But Google&#8217;s &#8220;let a thousand flowers bloom&#8221; approach might be giving the search giant an underrated advantage in the AI race that no other Big Tech giant has.</p></li><li><p><strong>Meta cuts 8,000 jobs. </strong>Morale is very low inside the social media giant as thousands lose their jobs, just as revenue and profits hit record levels. Meanwhile, those assigned to dull data labeling work are spared the axe.</p></li><li><p><strong>Industry pulse. </strong>Anthropic pays $15B/year for SpaceX compute, SpaceX&#8217;s financials and IPO filing, more woes for GitHub, court dismisses Elon Musk&#8217;s &#8220;hypocritical&#8221; OpenAI lawsuit, and Spain may stop blocking its internet during La Liga football games.</p></li><li><p><strong>How to get a job at a frontier lab in 2026. </strong>A Distinguished Engineer at Google recommends focusing on developing particular skills</p></li></ol><h2>1. Antigravity 2.0 takes the &#8216;IDE&#8217; out of its new IDE</h2>
      <p>
          <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-antigravity-20-takes-ide">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Why Rust is different, with Alice Ryhl]]></title><description><![CDATA[Alice Ryhl from Google&#8217;s Android Rust team explains why developers love Rust, and what makes the language so powerful for building reliable software.]]></description><link>https://newsletter.pragmaticengineer.com/p/why-rust-is-different-with-alice</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/why-rust-is-different-with-alice</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Wed, 20 May 2026 16:22:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/198284678/98eeb62f8e18bb7bdd2d7a1337b2a60b.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<h3>Stream the latest episode</h3><p><strong>Listen and watch now on <a href="https://youtu.be/q9xD36NCtZ8">YouTube</a>, <a href="https://open.spotify.com/episode/0iReyylj72BKPaUD1hE5FG">Spotify</a>, and <a href="https://podcasts.apple.com/us/podcast/why-rust-is-different-with-alice-ryhl/id1769051199?i=1000768769667">Apple</a>.</strong> See the episode transcript at the top of this page, and timestamps for the episode at the bottom. </p><h3><strong>Brought to You by</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!E4-f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcea314b0-b7f7-469d-aaf4-2d8a6bb172bf_1200x105.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!E4-f!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcea314b0-b7f7-469d-aaf4-2d8a6bb172bf_1200x105.png 424w, https://substackcdn.com/image/fetch/$s_!E4-f!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcea314b0-b7f7-469d-aaf4-2d8a6bb172bf_1200x105.png 848w, https://substackcdn.com/image/fetch/$s_!E4-f!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcea314b0-b7f7-469d-aaf4-2d8a6bb172bf_1200x105.png 1272w, https://substackcdn.com/image/fetch/$s_!E4-f!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcea314b0-b7f7-469d-aaf4-2d8a6bb172bf_1200x105.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!E4-f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcea314b0-b7f7-469d-aaf4-2d8a6bb172bf_1200x105.png" width="1200" height="105" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cea314b0-b7f7-469d-aaf4-2d8a6bb172bf_1200x105.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:105,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:30195,&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://newsletter.pragmaticengineer.com/i/198284678?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcea314b0-b7f7-469d-aaf4-2d8a6bb172bf_1200x105.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_!E4-f!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcea314b0-b7f7-469d-aaf4-2d8a6bb172bf_1200x105.png 424w, https://substackcdn.com/image/fetch/$s_!E4-f!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcea314b0-b7f7-469d-aaf4-2d8a6bb172bf_1200x105.png 848w, https://substackcdn.com/image/fetch/$s_!E4-f!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcea314b0-b7f7-469d-aaf4-2d8a6bb172bf_1200x105.png 1272w, https://substackcdn.com/image/fetch/$s_!E4-f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcea314b0-b7f7-469d-aaf4-2d8a6bb172bf_1200x105.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>&#8226; <strong><a href="https://antithesis.com/pragmatic">Antithesis</a></strong> &#8211; if you write Rust code, check out <a href="https://hegel.dev/">Hegel-Rust</a>: a free, open-source property-based testing library for Rust, built by the team behind Hypothesis. It&#8217;s now <a href="https://antithesis.com/blog/2026/hegel/">maintained by Antithesis</a>. If you try Hegel and like it, your Hegel tests will run in <a href="https://antithesis.com/pragmatic">Antithesis</a> as written, as well.</p><p>&#8226; <strong><a href="https://sentry.io/pragmatic">Sentry</a></strong> &#8211; application monitoring software built by developers, for developers. I&#8217;ve used Sentry for 10 years now, starting back at Uber. It shows you the full context on issues: stack traces, user actions, environment details, and more. A new, recent feature: <a href="https://sentry.io/lp/seer">Seer</a>, their debugging agent &#8212; I like it! <a href="https://sentry.io/pragmatic">Check out Sentry.</a></p><p>&#8226; <strong><a href="https://craft-conf.com/2026">Craft Conference</a></strong>: meet myself, Kent Beck, Hillel Wayne and other standout speakers on 4 June, in Budapest, Hungary, at the conference dedicated to the art and science of software delivery craft. <a href="https://craft-conf.com/2026">See details.</a></p><h3><strong>In this episode</strong></h3><p>Rust is one of the most admired programming languages around &#8211; and also one of the hardest to learn. What makes developers stick with it?</p><p>In this episode of The Pragmatic Engineer Podcast, I sit down with Alice Ryhl, a software engineer on Google&#8217;s Android Rust team, and a core maintainer of Tokio, which is the most widely-used async runtime in Rust.</p><p>We discuss what makes Rust different from other languages like TypeScript, Go, and C++, and why so many developers say that &#8220;once it compiles, it works.&#8221; We go deep into memory safety, ownership, borrowing, unsafe Rust, and Cargo.</p><p>We also cover how Rust is governed by RFCs, feature flags, its six-week release cycle, how engineers get paid to work on the language, and also look into how Rust&#8217;s use inside the Linux kernel is progressing.</p><h3>My observations from the conversation with Alice</h3><p>Here are 12 of my most interesting takeaways from talking with Alice:</p><div id="youtube2-q9xD36NCtZ8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;q9xD36NCtZ8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/q9xD36NCtZ8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p><strong>1. Open source contributions can open career doors.</strong> Alice landed her Google job not by sending in an application, but by spending years answering questions on Rust forums, and contributing to documentation and code. She also became a maintainer of Tokio while a college student. One day, an email arrived in her inbox, asking: &#8220;do you want to work on the Android Rust team?&#8221;</p><p><strong>2. Reliability is the backend pitch for choosing Rust over TypeScript. </strong>Alice is adamant that Rust is a backend language and not a TypeScript replacement on the frontend. Rust&#8217;s design for minimizing errors and maximizing reliability can make it a better choice than TypeScript on the backend.</p><p><strong>3. Rust over C++ for development is a strong choice for avoiding a host of security vulnerabilities.</strong> In C++, a trivial off-by-one error in an array can become a massive security vulnerability. In contrast, Rust&#8217;s memory safety eliminates an entire class of such bugs, unless you are brave &#8211; or foolhardy &#8211; enough to use an &#8220;unsafe&#8221; keyword, that is!</p><p><strong>4. Rust was designed to turn implicit failures into compile errors. </strong>Where other languages allow you to forget something, Rust makes an omission into a compilation error for things like null checks, uninitialized variables, or error propagation with the &#8216;?&#8217; character. If you mess something up, it&#8217;s almost certain your program will not compile. If it does, at the very least you should see a lint warning. <em>We previously covered how Andrey Breslav, creator of Kotlin, <a href="https://newsletter.pragmaticengineer.com/p/the-programming-language-after-kotlin">purposely made null safety an important part of Kotlin</a>.</em></p><p><strong>5. The hardest part of learning Rust is not syntax, but data structure design.</strong> Alice observes that newcomers reflexively build cyclic object graphs, like a Book object referencing Page objects that refer back to the Book. Such cyclic graphs are possible in Rust, but its ownership model makes this hard, meaning that Rust novices end up battling the compiler. Obvious solutions are to use structs and understand how ownership works in Rust.</p><p><strong>6. Refactoring in Rust is safe and easy, thanks to the compiler. </strong>Alice: &#8220;I change a return type or struct field, then just fix the compiler errors until the compiler stops shouting. And then once I&#8217;ve done that, I&#8217;ve updated every place I need to update.&#8221; Rust&#8217;s focus on correctness makes refactoring it more straightforward than dynamically-typed languages and Java-style typed ones are to refactor.</p><p><strong>7. Rust may be optimal for AI agents because of the compiler&#8217;s high-quality feedback loop.</strong> Alice&#8217;s refactoring trick of just doing what the compiler says also applies to agents: they can talk to the compiler, be told what to fix, and iterate. Combined with Rust blocking entire bug classes by design, this makes it one of the better languages for agent-generated code.</p><p><strong>8. &#8220;Editions&#8221; allow Rust to make breaking changes without &#8216;breaking&#8217; anyone&#8217;s code.</strong> Rust editions (2015, 2018, 2021, 2024) can be mixed freely across crates. A library on the 2021 edition works seamlessly with a binary on the 2024 edition. This is how Rust evolves syntax (like adding async/await as keywords) without forcing an ecosystem-wide migration.</p><p><strong>9. Rust&#8217;s governance precludes a &#8220;benevolent dictator for life&#8221;. </strong>Unlike with Python and Linux, teams in Rust self-organize and delegate to each other. Tough questions are hashed out at in-person events like &#8216;Rust All Hands&#8217;. It&#8217;s a good illustration that open source projects can thrive across different structures.</p><p><strong>10. Rust in the Linux kernel has graduated from &#8220;experimental.&#8221;</strong> At December 2025&#8217;s Linux Kernel Maintainer Summit, the kernel community agreed Rust is no longer experimental. Combined with US Department of Defense regulations pushing agencies away from non-memory-safe languages, this means we should see more Rust in the Linux kernel and everywhere else, too.</p><p><strong>11. AI code review may matter more than AI code generation in safety-critical codebases.</strong> The kernel community is experimenting with AI bots that review mailing-list patches. Maintainers reportedly find them impressive, especially for kernel code; an area where quality and reliability has always been more important than quantity. It&#8217;s interesting that AI might be helpful as an extra quality gate.</p><p><strong>12. Risk of AI-assisted Rust: false fluency. </strong>Since Rust&#8217;s compiler is so strict, code that compiles can be assumed to be correct. However, Alice describes AI agents adding Rust versions of C build flags with no purpose! She also cautions that junior engineers using AI to learn Rust run the risk of not understanding why the compiler accepts the code they produce.</p><h3><strong>The Pragmatic Engineer deepdives relevant for this episode</strong></h3><p><strong>&#8226; </strong><a href="https://newsletter.pragmaticengineer.com/p/the-past-and-future-of-backend-practices">The past and future of modern backend practices</a></p><p><strong>&#8226; </strong><a href="https://newsletter.pragmaticengineer.com/p/the-programming-language-after-kotlin">How Kotlin was built</a> with Andrey Breslav</p><p><strong>&#8226; </strong><a href="https://newsletter.pragmaticengineer.com/p/from-swift-to-mojo-and-high-performance">How Swift was built</a> with Chris Lattner</p><p><strong>&#8226; </strong><a href="https://newsletter.pragmaticengineer.com/p/how-linux-is-built-with-greg-kroah">How Linux is built</a> with Greg KH</p><h3><strong>Timestamps</strong></h3><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8">00:00</a>) Intro</p><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8&amp;t=249s">04:09</a>) Tokio: an overview</p><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8&amp;t=311s">05:11</a>) What Alice likes about Rust</p><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8&amp;t=768s">12:48</a>) Rust for TypeScript engineers</p><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8&amp;t=831s">13:51</a>) Moving from C++ to Rust</p><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8&amp;t=874s">14:34</a>) Memory safety</p><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8&amp;t=1092s">18:12</a>) Garbage collection tradeoffs</p><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8&amp;t=1306s">21:46</a>) Ownership, references, and borrowing</p><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8&amp;t=1619s">26:59</a>) Unsafe in Rust</p><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8&amp;t=1881s">31:21</a>) Crates and Cargo</p><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8&amp;t=2155s">35:55</a>) Language design and RFCs</p><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8&amp;t=2582s">43:02</a>) Building new features</p><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8&amp;t=2790s">46:30</a>) Editions vs. versions</p><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8&amp;t=2987s">49:47</a>) Getting paid to work on Rust</p><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8&amp;t=3087s">51:27</a>) Contributing to Rust</p><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8&amp;t=3183s">53:03</a>) Rust in the Linux kernel</p><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8&amp;t=3345s">55:45</a>) AI use cases for Rust</p><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8&amp;t=3695s">1:01:35</a>) Learning Rust</p><p>(<a href="https://www.youtube.com/watch?v=q9xD36NCtZ8&amp;t=3834s">1:03:54</a>) Book recommendation</p><h3><strong>References</strong></h3><p><strong>Where to find Alice Ryhl:</strong></p><p>&#8226; LinkedIn: <a href="https://www.linkedin.com/in/aliceryhl">https://www.linkedin.com/in/aliceryhl</a></p><p>&#8226; Website: <a href="https://ryhl.io">https://ryhl.io</a></p><p><strong>Mentions during the episode:</strong></p><p>&#8226; Rust: <a href="https://rust-lang.org">https://rust-lang.org</a></p><p>&#8226; Tokio: <a href="https://tokio.rs">https://tokio.rs</a></p><p>&#8226; Minecraft: <a href="https://www.minecraft.net">https://www.minecraft.net</a></p><p>&#8226; Rust Users Forum: <a href="https://users.rust-lang.org">https://users.rust-lang.org</a></p><p>&#8226; Null&#8217;s creator regrets inventing it: <a href="https://news.ycombinator.com/item?id=12427069">https://news.ycombinator.com/item?id=12427069</a></p><p>&#8226; PHP: <a href="https://www.php.net">https://www.php.net</a></p><p>&#8226; Go: <a href="https://go.dev">https://go.dev</a></p><p>&#8226; TypeScript: <a href="https://www.typescriptlang.org">https://www.typescriptlang.org</a></p><p>&#8226; C++: <a href="https://en.wikipedia.org/wiki/C%2B%2B">https://en.wikipedia.org/wiki/C%2B%2B</a></p><p>&#8226; Pip: <a href="https://pypi.org/project/pip">https://pypi.org/project/pip</a></p><p>&#8226; Why Cargo Exists: <a href="https://doc.rust-lang.org/cargo/guide/why-cargo-exists.html">https://doc.rust-lang.org/cargo/guide/why-cargo-exists.html</a></p><p>&#8226; Linus Torvalds: <a href="https://en.wikipedia.org/wiki/Linus_Torvalds">https://en.wikipedia.org/wiki/Linus_Torvalds</a></p><p>&#8226; Rust Week: <a href="https://2026.rustweek.org">https://2026.rustweek.org</a></p><p>&#8226; Inside Amazon&#8217;s Engineering Culture: <a href="https://newsletter.pragmaticengineer.com/p/amazon">https://newsletter.pragmaticengineer.com/p/amazon</a></p><p>&#8226; How Linux is built with Greg Kroah-Hartman: <a href="https://newsletter.pragmaticengineer.com/p/how-linux-is-built-with-greg-kroah">https://newsletter.pragmaticengineer.com/p/how-linux-is-built-with-greg-kroah</a></p><p>&#8226; Community Grants Program: <a href="https://rustfoundation.org/media/tag/community-grants-program">https://rustfoundation.org/media/tag/community-grants-program</a></p><p>&#8226; Zulip: <a href="https://forge.rust-lang.org/platforms/zulip.html">https://forge.rust-lang.org/platforms/zulip.html</a></p><p>&#8226; The Linux Kernel Archives: <a href="https://www.kernel.org">https://www.kernel.org</a></p><p>&#8226; Linux Plumbers Conference: <a href="https://lpc.events">https://lpc.events</a></p><p>&#8226; Gemini: <a href="https://gemini.google.com/app">https://gemini.google.com/app</a></p><p>&#8226; <em>The Rust Programming Language</em>: <a href="https://doc.rust-lang.org/book">https://doc.rust-lang.org/book</a></p><p>&#8226; <em>Rust for Rustaceans: Idiomatic Programming for Experienced Developers</em>: <a href="https://www.amazon.com/Rust-Rustaceans-Programming-Experienced-Developers/dp/1718501854">https://www.amazon.com/Rust-Rustaceans-Programming-Experienced-Developers/dp/1718501854</a></p><p>&#8226; Rustlings: <a href="https://rustlings.rust-lang.org">https://rustlings.rust-lang.org</a></p><p>&#8212;</p><p>Production and marketing by <a href="https://penname.co/">Pen Name</a>. </p><p></p>]]></content:encoded></item><item><title><![CDATA[AI’s impact on software engineers in 2026: key trends, Part 2]]></title><description><![CDATA[Tradeoffs of AI tooling, why adopting AI at company-level is hard, what&#8217;s changed in two years, and more. The third and final part of a series analyzing our 2026 AI survey results]]></description><link>https://newsletter.pragmaticengineer.com/p/ai-impact-on-software-engineers-part-2</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/ai-impact-on-software-engineers-part-2</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Tue, 19 May 2026 16:43:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tEGy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F039155a2-16a1-481e-bddd-8774cb34e85d_1424x1174.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Earlier this year, we asked The Pragmatic Engineer subscribers about the AI tools you use, how you use them, and, crucially, what you think of them. We received more than 900 responses, and with this article we conclude our analysis of that data, covering:</p><ol><li><p><strong>Tradeoffs of AI tooling. </strong>Positive and negative sentiments, like how AI tools often mean less time spent on tedious, repetitive work, but that it often leads to unrealistic business expectations.</p></li><li><p><strong>Adopting AI at scale is hard. </strong>Companies are struggling to achieve adoption that feels productive at the team and org levels. Our survey finds the benefits of AI heavily depend on the engineering culture that was in place before.</p></li><li><p><strong>Impact on codebase quality. </strong>Codebase quality seems to be decreasing, but management at most places does not care. Meanwhile, maintenance duty is falling upon a shrinking number of engineers who still understand increasingly complex codebases.</p></li><li><p><strong>Less experienced engineers and AI. </strong>For these folks, AI seems to be less helpful and they rack up higher AI token bills. Maybe they need more space to learn, mentorship, and support.</p></li><li><p><strong>AI tooling &#8216;addiction&#8217;. </strong>Using AI agents &#8220;feels like a slot machine&#8221; encouraging &#8220;just one more prompt&#8221;-type behavior, while some folks think that the pricing of plans is built in a way to &#8220;lure&#8221; them to prompt more and more.</p></li><li><p><strong>Changes since 2024. </strong>Fewer devs are negative about AI, but there&#8217;s not all that much more positivity. The models have become much higher quality, and better tooling improves trust.</p></li><li><p><strong>Where are we headed? </strong>The concept of code ownership seems to be eroding, and collaboration within teams becomes less important.</p></li></ol><p>Previously in this series, we covered:</p><ul><li><p><strong><a href="https://newsletter.pragmaticengineer.com/p/ai-tooling-2026">AI tooling for software engineers in 2026</a></strong>: a detailed summary of survey responses, covering the most-used AI tools, trends, AI agent usage, company size and usage, and tools engineers love.</p></li><li><p><strong><a href="https://newsletter.pragmaticengineer.com/p/the-impact-of-ai-on-software-engineers-2026">The impact of AI on software engineers in 2026: key trends. Part 1</a></strong>. Concerns about mounting AI costs, more engineers hitting usage limits, and AI tools having uneven effects upon different types of engineers</p></li></ul><p>Full subscribers can <a href="https://newsletter.pragmaticengineer.com/i/40654455/reports">access a more detailed report.</a></p><h2>1. AI tooling tradeoffs</h2><p>What can be said about the impact of AI tooling on engineers this year? Well, based on the responses that readers sent in to our survey, there are some common patterns:</p><h3>Code and output tradeoffs</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I4Ms!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00f0973e-3076-43f7-874a-b0a32ad1f19c_1460x1240.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I4Ms!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00f0973e-3076-43f7-874a-b0a32ad1f19c_1460x1240.png 424w, https://substackcdn.com/image/fetch/$s_!I4Ms!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00f0973e-3076-43f7-874a-b0a32ad1f19c_1460x1240.png 848w, https://substackcdn.com/image/fetch/$s_!I4Ms!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00f0973e-3076-43f7-874a-b0a32ad1f19c_1460x1240.png 1272w, https://substackcdn.com/image/fetch/$s_!I4Ms!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00f0973e-3076-43f7-874a-b0a32ad1f19c_1460x1240.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I4Ms!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00f0973e-3076-43f7-874a-b0a32ad1f19c_1460x1240.png" width="1456" height="1237" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/00f0973e-3076-43f7-874a-b0a32ad1f19c_1460x1240.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1237,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:690484,&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://newsletter.pragmaticengineer.com/i/198435184?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00f0973e-3076-43f7-874a-b0a32ad1f19c_1460x1240.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_!I4Ms!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00f0973e-3076-43f7-874a-b0a32ad1f19c_1460x1240.png 424w, https://substackcdn.com/image/fetch/$s_!I4Ms!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00f0973e-3076-43f7-874a-b0a32ad1f19c_1460x1240.png 848w, https://substackcdn.com/image/fetch/$s_!I4Ms!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00f0973e-3076-43f7-874a-b0a32ad1f19c_1460x1240.png 1272w, https://substackcdn.com/image/fetch/$s_!I4Ms!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00f0973e-3076-43f7-874a-b0a32ad1f19c_1460x1240.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Productivity tradeoffs</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eDmt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e481765-692c-459a-8842-8b619f4f9d34_1460x1132.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eDmt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e481765-692c-459a-8842-8b619f4f9d34_1460x1132.png 424w, https://substackcdn.com/image/fetch/$s_!eDmt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e481765-692c-459a-8842-8b619f4f9d34_1460x1132.png 848w, https://substackcdn.com/image/fetch/$s_!eDmt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e481765-692c-459a-8842-8b619f4f9d34_1460x1132.png 1272w, https://substackcdn.com/image/fetch/$s_!eDmt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e481765-692c-459a-8842-8b619f4f9d34_1460x1132.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eDmt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e481765-692c-459a-8842-8b619f4f9d34_1460x1132.png" width="1456" height="1129" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e481765-692c-459a-8842-8b619f4f9d34_1460x1132.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1129,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:648183,&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://newsletter.pragmaticengineer.com/i/198435184?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e481765-692c-459a-8842-8b619f4f9d34_1460x1132.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_!eDmt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e481765-692c-459a-8842-8b619f4f9d34_1460x1132.png 424w, https://substackcdn.com/image/fetch/$s_!eDmt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e481765-692c-459a-8842-8b619f4f9d34_1460x1132.png 848w, https://substackcdn.com/image/fetch/$s_!eDmt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e481765-692c-459a-8842-8b619f4f9d34_1460x1132.png 1272w, https://substackcdn.com/image/fetch/$s_!eDmt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e481765-692c-459a-8842-8b619f4f9d34_1460x1132.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Research <a href="https://www.microsoft.com/en-us/worklab/work-trend-index/agents-human-agency-and-the-opportunity-for-every-organization">published</a> two weeks ago (5 May) by Microsoft claims AI expands the pool of people who can do high-value work. Our survey found similar, while MS&#8217;s findings are based on Microsoft 365 Copilot chat usage.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-aYC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699d2e7a-b015-4612-9092-89c2d6de1e70_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-aYC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699d2e7a-b015-4612-9092-89c2d6de1e70_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!-aYC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699d2e7a-b015-4612-9092-89c2d6de1e70_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!-aYC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699d2e7a-b015-4612-9092-89c2d6de1e70_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!-aYC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699d2e7a-b015-4612-9092-89c2d6de1e70_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-aYC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699d2e7a-b015-4612-9092-89c2d6de1e70_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/699d2e7a-b015-4612-9092-89c2d6de1e70_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-aYC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699d2e7a-b015-4612-9092-89c2d6de1e70_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!-aYC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699d2e7a-b015-4612-9092-89c2d6de1e70_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!-aYC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699d2e7a-b015-4612-9092-89c2d6de1e70_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!-aYC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699d2e7a-b015-4612-9092-89c2d6de1e70_1920x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">&#8220;<em>AI used to do more high-value work&#8221; Source: <a href="https://www.microsoft.com/en-us/worklab/work-trend-index/agents-human-agency-and-the-opportunity-for-every-organization">Microsoft</a></em></figcaption></figure></div><p>Obviously, Microsoft has an interest in showing the benefits of its AI tools, but in this specific area, it&#8217;s telling that both studies agree AI does allow devs and non-devs to expand the type of work they do.</p><h3>Software engineering tradeoffs</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UmZb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd00bd67a-d708-4dee-af88-0a901fe712de_1500x1290.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UmZb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd00bd67a-d708-4dee-af88-0a901fe712de_1500x1290.png 424w, https://substackcdn.com/image/fetch/$s_!UmZb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd00bd67a-d708-4dee-af88-0a901fe712de_1500x1290.png 848w, https://substackcdn.com/image/fetch/$s_!UmZb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd00bd67a-d708-4dee-af88-0a901fe712de_1500x1290.png 1272w, https://substackcdn.com/image/fetch/$s_!UmZb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd00bd67a-d708-4dee-af88-0a901fe712de_1500x1290.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UmZb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd00bd67a-d708-4dee-af88-0a901fe712de_1500x1290.png" width="1456" height="1252" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d00bd67a-d708-4dee-af88-0a901fe712de_1500x1290.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1252,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:591806,&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://newsletter.pragmaticengineer.com/i/198435184?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd00bd67a-d708-4dee-af88-0a901fe712de_1500x1290.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_!UmZb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd00bd67a-d708-4dee-af88-0a901fe712de_1500x1290.png 424w, https://substackcdn.com/image/fetch/$s_!UmZb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd00bd67a-d708-4dee-af88-0a901fe712de_1500x1290.png 848w, https://substackcdn.com/image/fetch/$s_!UmZb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd00bd67a-d708-4dee-af88-0a901fe712de_1500x1290.png 1272w, https://substackcdn.com/image/fetch/$s_!UmZb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd00bd67a-d708-4dee-af88-0a901fe712de_1500x1290.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>With AI tools, their &#8216;mileage may vary&#8217; among individuals. </strong>For example, some respondents told us they can spend much more time in a &#8220;flow state&#8221; thanks to AI tools, as they don&#8217;t have to wait for input from peers, can keep unblocking themselves, and have fewer interruptions.</p><p>But others say the opposite: that because they can start so many more tasks in parallel with AI tools, they keep context switching which knocks them out of a flow state!</p><p>The positives and negatives of these tools seem dependent on the environment respondents work in, individuals&#8217; personality traits, and where users are on the AI learning curve.</p><h2>2. Adopting AI at scale is hard</h2><p>One pattern in the responses is that adopting AI at company-scale remains challenging, including:</p><ul><li><p><strong>Costs</strong>: a growing concern covered in depth <a href="https://newsletter.pragmaticengineer.com/i/194201128/1-costs">in Part 1</a></p></li><li><p><strong>Usage</strong>: getting people to use AI tools continuously is not always straightforward</p></li><li><p><strong>Onboarding and education</strong>: at larger companies, there needs to be support to help devs make the most of the tools</p></li><li><p><strong>Reviewing AI-generated output:</strong> code review is a particular pain point</p></li><li><p><strong>Integrating with internal systems:</strong> AI tools are more helpful when they are seamlessly integrated with internal systems, hence why many larger companies use in-house, deeply embedded coding agents</p></li></ul><p>Adopting AI at company-level doesn&#8217;t lead to a magical fix for engineering problems, while the benefits of AI in an organizational sense seem to depend on what was in place <em>before</em>.</p><p><strong>Case in point, AI seems to amplify pre-existing engineering culture. </strong>AI doesn&#8217;t change the underlying <em>quality</em> of an organization&#8217;s engineering culture. Teams with strong engineering practices get more positive benefits out of AI than those without. Teams that see benefits from AI tools already had:</p><ul><li><p><strong>Guardrails</strong>: testing and automation around the codebase and deployments</p></li><li><p><strong>Documentation</strong>: they recorded their architectural decisions and engineering practices</p></li><li><p><strong>A quality codebase:</strong> AI agents will replicate patterns already in a codebase</p></li></ul><p>A few quotes on this from respondents to our survey:</p><blockquote><p>&#8220;AI is an amplifier, not a fixer. Good software engineering practices get multiplied. So do the bad ones. Embedding this properly in teams is exciting and important&#8221;. <em>&#8211; Staff+ engineer at a large company in Europe</em></p><p>&#8220;I feel like AI allows both faster prototyping and increased velocity on iterations to production software; it relies on existing best practices / project templates our team already have&#8221;. &#8211; <em>Solutions Architect at a small company in the US</em></p></blockquote><p><strong>A workflow that makes one dev &#8220;10x&#8221; more productive may not work for another. </strong>This is another reason why rolling out AI tools doesn&#8217;t seem to magically make everyone more productive. A senior engineer working at a large company in Canada told us:</p><blockquote><p><em>&#8220;It feels like AI workflows are very idiosyncratic in that some people derive (I hate this framing, but&#8230;) 10x more productivity benefit from them than other apparently equally clever, educated, and diligent developers. It feels like finding a workflow that clicks with your own habits and heuristics is more important than finding a global optimum for everyone&#8221;.</em></p></blockquote><p><strong>AI amplifies individuals differently, so the team impact is messy to figure out. </strong>A US-based principal engineer at a large company reflected on feeling disconnected from colleagues because of how they use AI differently:</p><blockquote><p><em>&#8220;I use AI in what I think is probably a more sophisticated way than most of my colleagues, so there can be a disconnect between my work and theirs, which is not good news because I am &#8220;The Principal&#8221; on the team&#8221;.</em></p></blockquote><p><strong>&#8220;The tool that works for you&#8221; approach can lead to tooling chaos, even at a team level. </strong>While it&#8217;s empowering to allow devs to choose the AI tools they feel are the most helpful, over time it becomes chaotic when teams can choose their own tech stacks, and when at large companies there are dozens of different technologies. A staff+ engineer at a 200-person business in the Middle East wrote in their response:</p><blockquote><p><em>&#8220;We&#8217;re still trying to figure out how to deal with tooling consistency on a team level. It&#8217;s one of our biggest struggles, but possibly more due to company structure than anything else. Everyone is using different tools with little coherence. It&#8217;s been rough.&#8221;</em></p></blockquote><p><strong>Some companies have briefly rolled back AI to deal with the negative effects first.</strong> From an engineering lead at a 10,000+ person company in Europe:</p><blockquote><p><em>&#8220;Since the AI boom, the quality of technical writing and reasoning from senior engineers in my org has significantly deteriorated. There&#8217;s an overwhelming volume of low-quality work product that is generated entirely or in part by AI, which has made it very difficult to conduct meaningful review of RFCs or code. We&#8217;ve also seen costly production incidents caused by code written and/or approved by AI, and &#8211; while my employer initially bought heavily into the hype &#8211; we have now rolled back some of our AI tools to deal with the drop in quality.&#8221;</em></p></blockquote><h2>3. Impact on codebase quality</h2><p><strong>A concrete pattern in our survey data is that codebase quality is decreasing due to AI. </strong>The contributing factors are not surprising:</p><ul><li><p>&#8220;AI slop&#8221;: more low-quality code generated, such as duplicated, verbose code, and poor abstractions</p></li><li><p>Too many code reviews, which means review quality slips</p></li><li><p>More bugs: due to faster code output and less strict reviews, more bugs sneak into codebases</p></li></ul><p>We discuss the degradation of products and codebases in a recent deepdive, <a href="https://newsletter.pragmaticengineer.com/p/are-ai-agents-actually-slowing-us">Are AI agents actually slowing us down?</a></p><p>One CTO at a European startup lists their negatives about increased AI usage:</p><ol><li><p><em>&#8220;A lot of tiny bugs and low code quality if you are not careful, verify carefully, and have good structure and guardrails</em></p></li><li><p><em>AI agents generate too much and repetitive code, making systems harder to maintain</em></p></li><li><p><em>Developers lose understanding of the codebase and become numb to bad architecture and bad developer experience&#8221;</em></p></li></ol><p><strong>According to our survey, management often seems unfazed by decreasing quality, and instead focuses on the higher output. </strong>A principal DevOps engineer at a large European company said:</p><blockquote><p><em>&#8220;In our company, we hand AI tools to inexperienced engineers who can&#8217;t distinguish good code from bad code and it&#8217;s falling on deaf ears in our leadership. They only seem to care about short to mid-term cost savings.&#8221;</em></p></blockquote><p><strong>The maintenance burden of AI-generated code is falling on the fewer engineers who understand and care. </strong>A staff engineer at a European company listed the problems that AI-generated code is causing:</p><ul><li><p><em>&#8220;Drive by&#8221; contributions are up:</em> many more occasional non-core-engineer contributors adding code but not sharing the maintenance burden</p></li><li><p><em>Contributing without adding guardrails: </em>many engineers and most of engineering leadership are not using reasonable guardrails like tests</p></li><li><p><em>AI slop from folks who have nothing to do with the codebase: </em>huge volume of slop incoming from people who don&#8217;t understand the codebase, but will commit and create PRs without fully understanding what they&#8217;re doing</p></li><li><p><em>Complexity is exploding: </em>thanks to the above</p></li></ul><p>The maintenance budget is falling upon fewer devs, while the task of refactoring bloated codebases and reducing complexity is left to those still sufficiently in touch with the codebase, thereby making the maintenance burden even worse.</p><p>But some leaders &#8220;get it.&#8221; A CEO at a 20-person company told us:</p><blockquote><p><em>&#8220;While AI has made generating code &#8216;cheaper&#8217;, the monitoring and maintenance worry me; the things that have traditionally cost the most in software. We&#8217;re increasing the rate of shipping large amounts of code with less understanding and increasing the unpredictability, so how do we work the predictability back on top?&#8221;</em></p></blockquote><p><strong>There is industry pressure on companies to adopt AI tooling and impose its usage upon engineers, </strong>driven by a mix of factors:</p><ul><li><p>Seeing actual benefits of AI and hearing that other teams and companies enjoy success with it</p></li><li><p>Fear of being left behind by competitors, or becoming less relevant</p></li><li><p>Anxiety about investor interest if a company is seen as not adopting the latest AI tools.</p></li></ul><p>This often leads to:</p><ul><li><p>Top-down mandates to use AI</p></li><li><p>Expectation of headcount reduction, with smaller teams doing the same amount or more</p></li><li><p>Management treating AI productivity gains as a <em>baseline</em> rather than a <em>bonus</em>.</p></li></ul><p>One staff engineer at a 10,000-person US company explained it like this:</p><blockquote><p><em>&#8220;AI is part of almost every work conversation. The entire company expects it to increase productivity and reduce the need to hire people. I keep trying to get better at using it and trying to make it more reliable so I can do more. I do worry about the quality of the work and atrophy of certain skills. It&#8217;s unclear to me if those skills even matter anymore.&#8221;</em></p></blockquote><p><strong>Pushing AI adoption </strong><em><strong>blindly</strong></em><strong> triggers red flags. </strong>Respondents shared what makes them worry about things going south in their workplaces:</p><ul><li><p><em>Focus on tracking AI usage, but not the quality of the output.</em> This will likely lead to product regressions and unhappy customers</p></li><li><p><em>Pushing for universal adoption.</em> Some companies target 50%, 80%, or 100% AI usage for certain tasks, seemingly blind to how some targets can worsen the quality of output, or simply create wasteful usage. <em>See the <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-tokenmaxxing-as-a-weird">trend of tokenmaxxing</a>.</em></p></li><li><p><em>A focus on velocity, but without recognition of quality work. </em>Expecting more velocity and output seems to be the baseline, and there is no recognition for work truly well done.</p></li></ul><p>The &#8220;move fast and break things&#8221; mantra famously championed by Facebook seems widespread across the industry with AI tools. A senior manager working at a large, European-headquartered company told us:</p><blockquote><p><em>&#8220;I see a trend: move fast and break things, and end up breaking things too often. We have to learn to focus on testing and resiliency a lot more, as with AI-driven development we introduce more bugs than before. But the velocity gain is bigger for now&#8221;.</em></p></blockquote><p><strong>Output over quality is leading to the death of code review at some places. </strong>As a lead engineer working at a small company summarized:</p><blockquote><p><em>&#8220;We&#8217;re at the death of code review. I used to do very deep code reviews where I&#8217;d take the time to understand the architecture and organization and provide feedback on maintainability and efficiency. I have no motivation in spending that time to review a giant PR where it&#8217;s clear that even the original author didn&#8217;t bother to do that&#8221;.</em></p></blockquote><h2>4. Less experienced engineers and AI</h2><p>The first generation of software engineers who have never developed without the help of AI are now entering the industry. Here is a response from a young engineer working at a startup as an intern:</p><blockquote><p><em>&#8220;I have never worked as a developer without AI. Writing this scares me a bit, actually, but it&#8217;s the truth!&#8221;</em></p></blockquote><p>But this will be the new reality for those joining the industry. So, what needs to happen to help a new generation of &#8220;AI-native&#8221; grad engineers grow professionally?</p><p><strong>AI is an amplifier which could amplify the lack of experience. </strong>A staff engineer in the US at a large company told us:</p><blockquote><p><em>&#8220;Agentic AI is a fascinating mirror. It can code as well as the user who drives it. If that user is a junior engineer, now you have a faster junior engineer. If the user is a staff engineer, now you have a faster staff engineer.</em></p><p><em>What agentic AI doesn&#8217;t do is magically convert a junior engineer into a staff engineer, because the user driving it still needs enough experience to know what a good solution looks like&#8221;.</em></p></blockquote><p>A junior engineer in Australia shares their experience of how frustrating working with AI tools is:</p><blockquote><p><em>&#8220;I think AI agents are great for vibe coding or prototypes where the code quality and functionality doesn&#8217;t matter that much. I think it&#8217;s also useful for senior engineers who know what they&#8217;re doing.</em></p><p><em>For junior engineers like myself, these AI tools are stressful to use. I don&#8217;t have the experience or knowledge to tell AI exactly what to do or quickly confirm its output, so I spend a lot of time on just triple checking and redoing stuff. I&#8217;m overall frustrated, but I&#8217;m trying to embrace it as we&#8217;ve been asked to by the company&#8221;.</em></p></blockquote><p><strong>Less experienced engineers seem to use more AI tokens and rack up higher bills. </strong>Several respondents observed this: director-level folks noted that junior engineers are in the top-spender category in their orgs, and it is junior devs who spend tokens on unproductive use cases.</p><p>There should be more space for junior folks to grow because they use AI more, one staff engineer respondent said:</p><blockquote><p><em>&#8220;Companies need to give some breathing room to Junior engineers and help them learn and acquire knowledge using AI tools as a booster and not as a replacement&#8221;.</em></p></blockquote><p><strong>Junior folks seem to be delegated fewer opportunities that could help them grow. </strong>This is because senior people can turn to AI for tasks, including those which they would have previously delegated to an intern or new grad. A few responses mention this:</p><blockquote><p>&#8220;AI allows me to have work done that I would usually delegate to a junior or pay a SaaS for; e.g., writing drafts, summarizing the news. &#8220; <em>DevSecOps lead at a small company, Europe</em></p><p>&#8220;I&#8217;ve begun to automate any repetitive task that we previously relied on juniors and offshore contractors for.&#8221;<em> - Engineering manager, at a large company, US</em></p><p>&#8220;I no longer have to delegate work by writing a very long document and briefing a junior engineer.&#8221; <em>- Principal engineer, large company, Europe</em></p></blockquote><p><strong>Why not consider mentoring junior devs in your organization? </strong>It&#8217;s clear that less experienced engineers are having a rocky start to their careers, so delegating stuff to them instead of to AI could be of high value for newer generations of talent.</p><h2>5. AI tooling &#8216;addiction&#8217;</h2><p>It seems that the rapid feedback loops of AI-assisted development create addictive tendencies, and there&#8217;s a noteworthy presence of &#8220;addiction lingo&#8221; in some responses to our survey:</p>
      <p>
          <a href="https://newsletter.pragmaticengineer.com/p/ai-impact-on-software-engineers-part-2">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Pulse: Forward deployed engineering heats up again]]></title><description><![CDATA[Also: a look into rising tech job losses, self-reporting 100% AI usage at big companies, vibe coding & agentic engineering merging, and more]]></description><link>https://newsletter.pragmaticengineer.com/p/the-pulse-forward-deployed-engineering</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/the-pulse-forward-deployed-engineering</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Thu, 14 May 2026 16:09:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RbLf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e0e23f7-eda1-4ceb-9cd0-37106afa3828_1202x684.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>The Pulse is a series covering events, insights, and trends within Big Tech and startups. Notice an interesting event or trend? Hit reply and share it with me.</em></p><p>Today, we cover:</p><ol><li><p><strong>Forward deployed engineering heats up again. </strong>Massive demand for the role at Google, OpenAI, and Anthropic. The latest version of the FDE role looks like the consultant / solution a&#8230;</p></li></ol>
      <p>
          <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-forward-deployed-engineering">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[TypeScript, C# and Turbo Pascal with Anders Hejlsberg]]></title><description><![CDATA[Anders Hejlsberg reflects on building Turbo Pascal, C#, and TypeScript, and shares what AI may change about the future of software engineering.]]></description><link>https://newsletter.pragmaticengineer.com/p/typescript-c-and-turbo-pascal-with</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/typescript-c-and-turbo-pascal-with</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Wed, 13 May 2026 17:06:59 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/197401883/bb88a9e892ab7cd020f06c8d63bf8a26.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<h3>Stream the latest episode</h3><p><strong>Listen and watch now on <a href="https://youtu.be/K-Xv8D8NjTk">YouTube</a>, <a href="https://open.spotify.com/episode/4EHEUwTLM0N4K8qC1xoBED">Spotify</a>, and <a href="https://podcasts.apple.com/us/podcast/the-pragmatic-engineer/id17https://podcasts.apple.com/us/podcast/typescript-c-and-turbo-pascal-with-anders-hejlsberg/id176905119969051199">Apple</a>.</strong> See the episode transcript at the top of this page, and timestamps for the episode at the bottom.</p><h3><strong>Brought to You by</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YCsL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YCsL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png 424w, https://substackcdn.com/image/fetch/$s_!YCsL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png 848w, https://substackcdn.com/image/fetch/$s_!YCsL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png 1272w, https://substackcdn.com/image/fetch/$s_!YCsL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YCsL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png" width="1280" height="80" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:80,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:33236,&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://newsletter.pragmaticengineer.com/i/197401883?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.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_!YCsL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png 424w, https://substackcdn.com/image/fetch/$s_!YCsL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png 848w, https://substackcdn.com/image/fetch/$s_!YCsL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png 1272w, https://substackcdn.com/image/fetch/$s_!YCsL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39bdfbb4-fb73-41d8-83cb-0ca4832aed49_1280x80.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><strong>&#8226; <a href="https://antithesis.com/pragmatic">Antithesis</a> &#8211;</strong> verify your system&#8217;s correctness in the development loop. Build, extend and deploy mission-critical systems: without human review or traditional integration tests, all while avoiding embarrassing outages. Antithesis goes far beyond code review and runs your <em>complete</em> system, exhaustively analyzing its behavior, and exposes bugs as quickly as agents introduce them. <a href="http://antithesis.com/pragmatic">Learn more</a>.</p><p><strong>&#8226; <a href="https://workos.com/">WorkOS</a> &#8211;</strong> Anders has spent decades thinking in programming languages &#8212; WorkOS speaks the same language when it comes to enterprise infrastructure: SSO, SCIM, RBAC, and more, built right so you never have to. <a href="https://workos.com/">See how</a>.</p><p><strong>&#8226; <a href="https://turbopuffer.com/pragmatic">turbopuffer</a> &#8211;</strong> a ridiculously scalable, fast and cheap vector and full-text search engine. Cursor moved to turbopuffer after their existing vector database couldn&#8217;t keep up with the number of codebases they were adding. This move cut their semantic search costs by 95%, and they have <a href="https://turbopuffer.com/customers/cursor">so many good things to say</a> about turbopuffer. <a href="https://turbopuffer.com/pragmatic">Check it out</a>.</p><h3><strong>In this episode</strong></h3><p>Anders Hejlsberg is a living legend and one of the most influential programming language designers of all time. He created Turbo Pascal, Delphi, C#, and also TypeScript. As well as that, he spent nearly a decade at the pioneering dev tools company, Borland, and is now in his 30th year of working at Microsoft, where he&#8217;s a Technical Fellow.</p><p>In this episode, we discuss what it takes to build programming languages that developers love to use, and trace his career from writing his first compiler to creating Turbo Pascal and Delphi, and helping to pioneer modern software development through C# and TypeScript.</p><p>Anders details how C# was designed by a small group of experienced language designers who met a few hours each week, and he explains why tooling was just as important as the language for TypeScript&#8217;s success, and what he has learned from building languages which stay relevant for decades.</p><p>We also look into how Anders uses AI today, which language features suit AI-assisted development, and what he thinks is changing in the craft of software engineering as developers move further away from writing code line by line.</p><p><em>It was special for me as well to talk with Anders: because my first-ever programming language was Turbo Pascal, and my first paying job was at a C# shop, back in the day. And I write most of my backend services using TypeScript, today.</em></p><h3>My observations from the conversation with Anders</h3><p>Here are 14 of my most interesting takeaways from talking with Anders:</p><div id="youtube2-K-Xv8D8NjTk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;K-Xv8D8NjTk&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/K-Xv8D8NjTk?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p><strong>1. The first computers had zero abstractions on top of the hardware</strong>. Anders started programming on an HP 2100 with 32K of memory and a paper tape boot loader. &#8220;Things were so simple. You could see all the way to the bottom. There was just no layering. It was right on top of the hardware,&#8221; he says. The past 50 years of computing have been a process of adding layers above the hardware.</p><p><strong>2. Turbo Pascal won by being more than &#8220;just&#8221; a compiler.</strong> Anders also built an IDE to edit Turbo Pascal programs in, and a debugger to troubleshoot them with. In later languages which Anders designed, he always focused on the entire developer workflow, not just compilation.</p><p><strong>3. &#8220;10x better for 1/10th of the price&#8221; is a proven winner. </strong>This is what Turbo Pascal did: it sold for $49.95 when competing compilers cost $500, and it was faster and more interactive than competitors&#8217; products. Conveniently, the low price tag also killed off piracy</p><p><strong>4. The first Turbo Pascal &#8220;debugger&#8221; was an elegant hack.</strong> The compiler printed the program counter address on a runtime error. Then you could re-run the compiler in a mode that stopped at that address, and the IDE would show which line was being syntactically processed at that point. There were no line maps or debuggers built for this debugging experience: Constraints force creativity!</p><p><strong>5. C# might have not existed without a famous court case. </strong>Microsoft originally hired Anders to architect its Java tools (Visual J++), but the Sun versus Microsoft lawsuit (1997-2001) meant Microsoft could not build on top of Java, as the company that owned Java&#8217;s IP (Sun) sued MS for alleged unauthorized changes to the Java language. Microsoft realized it had to build a new language that combined VB&#8217;s productivity with C++&#8217;s power. This led to C# and .NET.</p><p><strong>6. The original C# design team numbered only six. </strong>They held three meetings per week which lasted two hours each, during which they debated what to build. Anders believes that designing even large languages does not require a large team; it&#8217;s the right experience that matters most. In that group, this meant folks who had built languages before.</p><p><strong>7. C# introduced the async/await pattern that many languages later ran with. </strong>Anders said this pattern spread to so many other languages because compilers can generate state machines that humans hate writing. Manual state machines require moving all stack states into objects and wrapping logic in a giant case statement. Devs generally loath doing this by hand, and async/await lets developers write sequential-looking code while the compiler does the painful rewrite behind the scenes.</p><p><strong>8. TypeScript exists because Anders refused to build Script# for the Outlook.com team. </strong>Microsoft&#8217;s Outlook.com team asked Anders&#8217; C# team to productize &#8220;Script#,&#8221; a language to cross-compile C# to JavaScript. Anders and the C# team pushed back, suggesting that a better approach was to fix JavaScript. Anders felt strongly that to be attractive to the best-of-breed developers in the JavaScript ecosystem, you want people to write <em>JavaScript</em>, and not another language like C#.</p><p><strong>9. Open development on GitHub made TypeScript much better. </strong>TypeScript was open source from the beginning in 2012 on CodePlex, Microsoft&#8217;s open source platform. There was not much community activity there, and in 2014, the project moved to GitHub with its large, active community. &#8220;Open development&#8221; on GitHub is what Anders credits for making TypeScript as good as it has become.</p><p><strong>10. The TypeScript compiler breaks many traditional practices</strong>. The compiler is built to support <a href="https://www.educative.io/answers/what-is-lazy-evaluation-in-typescript">lazy evaluations</a>, and <a href="https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-9.html">deferred imports</a>, and is functional by necessity. For example, with 500 files open, the compiler keeps abstract syntax trees (ASTs) cached for 499, and rebuilds just the one being edited. It only resolves the minimum types needed for the cursor&#8217;s current position.</p><p><strong>11. Training data volume is what makes AI great at TypeScript and Python. </strong>Anders says the language best suited for AI is the one that AI has seen the most in its training set. How well AI agents work in a specific language largely depends on how much of that language exists on the internet. It has less to do with the design of a language.</p><p><strong>12. But AI is limited for writing compilers &#8211; for now, at least. </strong>On Anders&#8217; team, AI is limited in terms of seeing the &#8220;big picture&#8221;; for example, how types, symbols, binding, and parsing all relate. It&#8217;s because LLM training sets don&#8217;t contain much about compilers as yet.</p><p><strong>13. Reviewing code could be the future of the craft.</strong> Anders predicts we&#8217;ll all be project managers in the future, managing armies of junior programmers, aka agents, which generate reams of code. Anders admits he is less interested in reviewing code, personally, but reckons code review could be made much more interesting; for example, AI generating commentary that guides reviewers through changes.</p><p><strong>14. Designing a programming language is a 10-year play.</strong> As Anders puts it:</p><blockquote><p>&#8220;Version one is great, but has all sorts of issues. You&#8217;ve got to do version two, but it&#8217;s not until version three that it really starts to be great. Then you&#8217;ve got to convince people to adopt it.&#8221;</p></blockquote><h3><strong>The Pragmatic Engineer deepdives relevant for this episode</strong></h3><p>&#8226; <a href="https://newsletter.pragmaticengineer.com/p/microsofts-developer-tools-roots">Microsoft&#8217;s developer tools roots</a></p><p>&#8226; <a href="https://newsletter.pragmaticengineer.com/p/50-years-of-microsoft">50 Years of Microsoft and developer tools</a> with Scott Guthrie</p><p>&#8226; <a href="https://newsletter.pragmaticengineer.com/p/how-linux-is-built-with-greg-kroah">How Linux is built</a> with Greg Kroah-Hartman</p><p>&#8226; <a href="https://newsletter.pragmaticengineer.com/p/ubuntu-and-ai">How will AI change operating systems? Part 1: Ubuntu and Linux</a></p><p>&#8226; <a href="https://newsletter.pragmaticengineer.com/p/how-uber-uses-ai-for-development">How Uber uses AI for development: inside look</a></p><h3><strong>Timestamps</strong></h3><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk">00:00</a>) Intro</p><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk&amp;t=168s">02:48</a>) How Anders got into programming</p><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk&amp;t=340s">05:40</a>) Building his first compiler</p><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk&amp;t=464s">07:44</a>) Turbo Pascal</p><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk&amp;t=745s">12:25</a>) Delphi</p><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk&amp;t=893s">14:53</a>) Joining Microsoft</p><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk&amp;t=1181s">19:41</a>) Building C#</p><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk&amp;t=1751s">29:11</a>) Async/await</p><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk&amp;t=2041s">34:01</a>) The rise of JavaScript</p><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk&amp;t=2272s">37:52</a>) Building TypeScript</p><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk&amp;t=2578s">42:58</a>) How the TypeScript compiler works</p><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk&amp;t=2910s">48:30</a>) JavaScript&#8217;s strengths and weaknesses</p><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk&amp;t=3138s">52:18</a>) How Anders uses AI</p><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk&amp;t=3363s">56:03</a>) What language features work well with AI</p><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk&amp;t=3769s">1:02:49</a>) How software craftsmanship is changing</p><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk&amp;t=4069s">1:07:49</a>) Performance and efficiency</p><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk&amp;t=4169s">1:09:29</a>) Anders&#8217; tool stack</p><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk&amp;t=4290s">1:11:30</a>) A 30-year career at Microsoft</p><p>(<a href="https://www.youtube.com/watch?v=K-Xv8D8NjTk&amp;t=4420s">1:13:40</a>) Book recommendation</p><h3><strong>References</strong></h3><p><strong>Where to find Anders Hejlsberg:</strong></p><p>&#8226; X: <a href="https://x.com/ahejlsberg">https://x.com/ahejlsberg</a></p><p>&#8226; LinkedIn: <a href="https://www.linkedin.com/in/ahejlsberg">https://www.linkedin.com/in/ahejlsberg</a></p><p>&#8226; GitHub: <a href="https://github.com/ahejlsberg">https://github.com/ahejlsberg</a></p><p><strong>Mentions during the episode:</strong></p><p>&#8226; Turbo Pascal: <a href="https://en.wikipedia.org/wiki/Turbo_Pascal">https://en.wikipedia.org/wiki/Turbo_Pascal</a></p><p>&#8226; Borland: <a href="https://en.wikipedia.org/wiki/Borland">https://en.wikipedia.org/wiki/Borland</a></p><p>&#8226; Delphi: <a href="https://en.wikipedia.org/wiki/Delphi_(software)">https://en.wikipedia.org/wiki/Delphi_(software)</a></p><p>&#8226; Visual Basic: <a href="https://learn.microsoft.com/en-us/dotnet/visual-basic">https://learn.microsoft.com/en-us/dotnet/visual-basic</a></p><p>&#8226; Skype: <a href="https://en.wikipedia.org/wiki/Skype">https://en.wikipedia.org/wiki/Skype</a></p><p>&#8226; J++: <a href="https://en.wikipedia.org/wiki/Visual_J%2B%2B">https://en.wikipedia.org/wiki/Visual_J%2B%2B</a></p><p>&#8226; Java: <a href="https://en.wikipedia.org/wiki/Java_(programming_language)">https://en.wikipedia.org/wiki/Java_(programming_language)</a></p><p>&#8226; Legal Newsroom Archive: Sun Microsystems Inc. and Microsoft: <a href="https://news.microsoft.com/case-archives/sun-microsystems-inc-and-microsoft">https://news.microsoft.com/case-archives/sun-microsystems-inc-and-microsoft</a></p><p>&#8226; .NET: <a href="https://dotnet.microsoft.com">https://dotnet.microsoft.com</a></p><p>&#8226; Roslyn: <a href="https://en.wikipedia.org/wiki/Roslyn_(compiler)">https://en.wikipedia.org/wiki/Roslyn_(compiler)</a></p><p>&#8226; Async/await: <a href="https://en.wikipedia.org/wiki/Async/await">https://en.wikipedia.org/wiki/Async/await</a></p><p>&#8226; Go: <a href="https://go.dev/">https://go.dev/</a></p><p>&#8226; JavaScript: <a href="https://en.wikipedia.org/wiki/JavaScript">https://en.wikipedia.org/wiki/JavaScript</a></p><p>&#8226; Brendan Eich&#8217;s website: <a href="https://brendaneich.com">https://brendaneich.com</a></p><p>&#8226; Steve Ballmer on X: <a href="https://x.com/Steven_Ballmer">https://x.com/Steven_Ballmer</a></p><p>&#8226; Luke Hoban&#8217;s website: <a href="https://lukehoban.com">https://lukehoban.com</a></p><p>&#8226; TypeScript:<a href="https://www.typescriptlang.org"> https://www.typescriptlang.org</a></p><p>&#8226; GitHub: <a href="https://github.com">https://github.com</a></p><p>&#8226; Language Server Protocol: <a href="https://en.wikipedia.org/wiki/Language_Server_Protocol">https://en.wikipedia.org/wiki/Language_Server_Protocol</a></p><p>&#8226; Caml: <a href="https://caml.inria.fr">https://caml.inria.fr</a></p><p>&#8226; PHP: <a href="https://www.php.net">https://www.php.net</a></p><p>&#8226; Book recommendation: Algorithms + Data structures by Niklaus Wirth = Programs. Full book: <a href="https://www.cl72.org/110dataAlgo/Algorithms%20%20%20Data%20Structures%20=%20Programs%20%5BWirth%201976-02%5D.pdf">https://www.cl72.org/110dataAlgo/Algorithms%20%20%20Data%20Structures%20=%20Programs%20%5BWirth%201976-02%5D.pdf</a> Amazon: https://www.amazon.nl/-/en/Niklaus-Wirth/dp/0130220051</p><p> &#8212;</p><p>Production and marketing by <a href="https://penname.co/">Pen Name</a>. </p><p></p>]]></content:encoded></item><item><title><![CDATA[Revisiting “No Silver Bullets” in the age of AI]]></title><description><![CDATA[Does the noted &#8220;No Silver Bullets&#8221; paper by the author of a classic engineering book still hold up, 40 years later? Is AI the long-sought single silver bullet &#8211; or has one been around for years?]]></description><link>https://newsletter.pragmaticengineer.com/p/revisiting-no-silver-bullets-in-the</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/revisiting-no-silver-bullets-in-the</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Tue, 12 May 2026 17:10:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!fo1L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e17bb3-f81c-4b30-930b-202e336226a6_800x510.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Before we start, some news: my tech compensation site focused on tech total compensation (TC) in Europe, <a href="https://blog.pragmaticengineer.com/techpays-has-been-acquired-levels-fyi/">TechPays has been acquired by Levels.fyi</a>! TechPays was a project I&#8217;ve been building on the side with engineering manager <a href="https://www.linkedin.com/in/rzsombor/">Zsombor Erd&#337;dy-Nagy</a> for a few years, and both of us are pleased that the site found a new and welcoming home. <a href="https://blog.pragmaticengineer.com/techpays-has-been-acquired-levels-fyi/">Read more.</a></em></p><p>Four decades ago, the writer of &#8216;<em>The Mythical Man-Month&#8217;</em> (1975), drew on folklore about werewolves to publish a paper about the prospects of a so-called <em>silver bullet </em>for software development that would make professionals much more productive at their craft.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fo1L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e17bb3-f81c-4b30-930b-202e336226a6_800x510.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fo1L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e17bb3-f81c-4b30-930b-202e336226a6_800x510.png 424w, https://substackcdn.com/image/fetch/$s_!fo1L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e17bb3-f81c-4b30-930b-202e336226a6_800x510.png 848w, https://substackcdn.com/image/fetch/$s_!fo1L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e17bb3-f81c-4b30-930b-202e336226a6_800x510.png 1272w, https://substackcdn.com/image/fetch/$s_!fo1L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e17bb3-f81c-4b30-930b-202e336226a6_800x510.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fo1L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e17bb3-f81c-4b30-930b-202e336226a6_800x510.png" width="800" height="510" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11e17bb3-f81c-4b30-930b-202e336226a6_800x510.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:510,&quot;width&quot;:800,&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_!fo1L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e17bb3-f81c-4b30-930b-202e336226a6_800x510.png 424w, https://substackcdn.com/image/fetch/$s_!fo1L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e17bb3-f81c-4b30-930b-202e336226a6_800x510.png 848w, https://substackcdn.com/image/fetch/$s_!fo1L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e17bb3-f81c-4b30-930b-202e336226a6_800x510.png 1272w, https://substackcdn.com/image/fetch/$s_!fo1L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e17bb3-f81c-4b30-930b-202e336226a6_800x510.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>The Werewolf of Eschenbach, Germany, line engraving, 1685. This image appears in the &#8220;No Silver Bullets&#8221; chapter of Mythical Man-Month (1995)</em></figcaption></figure></div><p>Frederick P. Brooks published <em>&#8220;No Silver Bullet &#8211; Essence and Accident in Software Engineering&#8221; </em>in 1986, and as the title suggests, it is pessimistic about the existence of any silver bullets. The term refers to a super weapon capable of dropping otherwise near-unstoppable werewolves and other creepy supernatural beings in European folk tales.</p><p>Since its release, this paper might have become even better-known than Mythical Man-Month (MMM). In 1995, the second edition of that book included Brooks&#8217; later essay as chapter 17, along with an additional chapter of reflections.</p><p>In this article, we look into whether the essay was correct in its disbelief in silver bullets, or whether any did indeed slay the beast of unproductivity for developers over the course of time. Also, how does AI agents generating so much code, as of today, challenge the entire premise &#8211; or not?</p><p>We cover:</p><ol><li><p><strong>&#8220;No silver bullets&#8221; &#8211; why has it held up? </strong>No single new technology or methodological breakthrough by itself introduced magnitudes-of-improvement to the areas that really matter in software engineering. Is that unusual?</p></li><li><p><strong>Is SRE a silver bullet? </strong>Google&#8217;s Search team introduced the SRE discipline, and won orders-of-magnitude superior reliability to its competitors. But why only Google Search?</p></li><li><p><strong>Was open source + GitHub a silent silver bullet? </strong>No development had a bigger impact on the wider tech industry than the open source wave since the 2010s. Has it been a silent silver bullet, an overlooked cause?</p></li><li><p><strong>Could AI be a silver bullet? </strong>At first glance, AI generates 100x-or-more code output. But productivity, reliability, and simplicity improvements are a bit unimpressive &#8211; at least for now.</p></li></ol><p>Brooks was a computer scientist who led IBM&#8217;s System/360 and OS/360 operating systems development, <em>&#8216;The Mythical Man-Month&#8217;</em> was published in 1975. Last year, we did a deepdive into this engineering classic (<a href="https://newsletter.pragmaticengineer.com/p/what-changed-in-50-years-of-computing">Part 1</a>, <a href="https://newsletter.pragmaticengineer.com/p/what-changed-in-50-years-of-computing-8d0">Part 2</a>, <a href="https://newsletter.pragmaticengineer.com/p/mythical-man-month-part-3">Part 3</a>, <a href="https://newsletter.pragmaticengineer.com/p/mythical-man-month-part-4">Part 4</a>), delving into its predictions and legacy.</p><h2>1. No silver bullets?</h2><p>The paper delves into folklore for its motif, a &#8216;silver bullet,&#8217; and uses it to pose the question of whether there would be any &#8220;silver bullets&#8221; on the horizon (in 1986) that could be similarly fatal to software engineering complexity. From the <a href="https://www.cs.unc.edu/techreports/86-020.pdf">paper</a> (emphasis mine:)</p><blockquote><p>&#8220;Of all the monsters who fill the nightmares of our folklore, none terrify more than werewolves, because they transform unexpectedly from the familiar into horrors. For these, one seeks bullets of silver that can magically lay them to rest.</p><p>The familiar software project has something of this character (at least as seen by the non-technical manager), usually innocent and straightforward, but capable of becoming a monster of missed schedules, blown budgets, and flawed products. So, we hear desperate cries for a silver bullet, something to make software costs drop as rapidly as computer hardware costs do.</p><p>But, as we look to the horizon of a decade hence, we see no silver bullet. <strong>There is no single development, in either technology or management technique, which by itself promises even one order of magnitude improvement in productivity, in reliability, in simplicity</strong>.</p><p>Skepticism is not pessimism, however. Although we see no startling breakthroughs, and indeed, believe such to be inconsistent with the nature of software, many encouraging innovations are under way. A disciplined, consistent effort to develop, propagate, and exploit them should indeed yield an order-of-magnitude improvement. There is no royal road, but there is a road.</p><p>The first step toward the management of disease was replacement of demon theories and humor theories by the germ theory. That very step, the beginning of hope, in itself dashed all hopes of magical solutions. It told workers that progress would be made stepwise, at great effort, and that a persistent, unremitting care would have to be paid to a discipline of cleanliness. So it is with software engineering today.&#8221;</p></blockquote><p>In 1995, Brooks revisited his idea that silver bullets weren&#8217;t real in the software domain. From the <em>Mythical Man-Month&#8217;s </em>anniversary edition:</p><blockquote><p>&#8220;No Silver Bullet&#8221; asserts and argues that no single software engineering development will produce an order-of-magnitude improvement in programming productivity within ten years (from the paper&#8217;s publication in 1986). We are now nine years into that decade, so it is timely to see how this prediction is holding up.</p><p>Whereas The Mythical Man-Month generated many citations but little argument, &#8220;No Silver Bullet&#8221; has occasioned rebuttal papers, letters to journal editors, and letters and essays that continue to this day.</p><p>Most of these attack the central argument that there is no magical solution, and my clear opinion that there cannot be one. Most agree with most of the arguments in &#8220;NSB,&#8221; but then go on to assert that there is indeed a silver bullet for the software beast, which the author has invented. As I reread the early responses today, I can&#8217;t help noticing that the nostrums pushed so vigorously in 1986 and 1987 have not had the dramatic effects claimed.&#8221;</p></blockquote><p>Brooks re-concluded that there had been no technological breakthroughs of the type postulated in NSB.</p><p><strong>But motivation can also have silver bullet-like effects </strong>and always has had, he found<strong> </strong>via more research into scientific evidence that motivation<em> can</em> boost productivity. In his own words:</p><blockquote><p>&#8220;Since &#8220;NSB,&#8221; Bruce Blum has drawn my attention to the 1959 work of Herzberg, Mausner, and Sayderman.</p><p>They find that motivational factors can increase productivity. On the other hand, environmental and accidental factors, no matter how positive, cannot; but these factors can decrease productivity when negative. &#8220;NSB&#8221; argues that much software progress has been the removal of such negative factors: stunningly awkward machine languages, batch processing with long turnaround times, poor tools, and severe memory constraints.&#8221;</p></blockquote><p>Today, it&#8217;s a long time since the mid-nineties; with the benefit of hindsight, were there any silver bullets flying between then and 2022, which fit the bill as slayers of unproductiveness? I suggest a few, below. <em>If you can name other silver bullets since the launch of Windows 95, please do so in the comments!</em></p><ul><li><p><strong>Version control: </strong>(late 1990s.) CVS, Subversion, and later, Git. Version control allowed engineers to collaborate much more fluently, leading to more teamwork and &#8211; in some cases &#8211; less full-on solo labor.</p></li><li><p><strong>IDEs</strong>: (early 2000s). Modern IDEs like Visual Studio, IntelliJS, and others make context-rich editing easy and fast. They also allow for faster, less error-prone refactoring and more efficient debugging.</p></li><li><p><strong>CI/CD and automated testing</strong>: (mid-2000s). CI systems started to spread during the 2000s with the likes of CruiseControl (2000s) &#8594; Jenkins and SaaS CI solutions from the 2010s (e.g., Travis CI, CircleCI, GitLab CI, GitHub Actions).</p></li><li><p><strong>Open source and package managers</strong>: (2010s). Open source has been around for decades, but GitHub&#8217;s rapid adoption made it easier to create and discover, coupled with package managers in the Node, Python, and other language ecosystems to build on top of open source solutions.</p></li><li><p><strong>StackOverflow: </strong>(2010s). The popular programming Q&amp;A site made it easier to get unstuck by finding solutions to common problems, with the capability to ask questions and get responses from the large user community within hours. By 2025, the site <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-134">was pretty much dead.</a></p></li><li><p><strong>Cloud</strong>: (early 2010s). AWS launched in 2006, then Azure and Google Cloud in 2008, and they went mainstream in the 2010s. Today, cloud is everywhere, and increasingly more infrastructure startups build on top of hyperscalers (the biggest public cloud platforms), such as Vercel / Netlify (platform-as-a-service), Supabase / Turbopuffer (databases) and others.</p></li><li><p><strong>Platform teams &amp; DevEx teams</strong>: (mid-2010s). Mid-sized and larger tech companies created dedicated platform teams to own infrastructure and internal platforms. In the 2020s, larger tech companies have created &#8216;Developer Experience&#8217; teams to build better internal dev tools and workflows. <em>We previously covered <a href="https://newsletter.pragmaticengineer.com/p/program-platform-split-uber">Uber&#8217;s program/platform split</a>, and <a href="https://newsletter.pragmaticengineer.com/p/developer-experience-at-uber">Uber&#8217;s developer experience evolution</a>.</em></p></li><li><p><strong>SRE</strong>: the Site Reliability Engineer (SRE) profession grew during the 2010s, much influenced by Google.</p></li></ul><p>These technologies increased developer efficiency and productivity, but none by itself was a productivity accelerator in isolation.</p><p>Obviously, by 2022 the craft of building software had developed greatly since &#8216;<em>No Silver Bullets&#8217; </em>came out; and was more efficient, faster, and more collaborative than ever. One highly anecdotal way to identify this is via the disappearance of cake from some tech workplaces. Back in the day, cake was distributed at work for major product milestones being hit: the shipping of a new product was often marked with awards and tasty baked treats &#8211; at least on teams building browsers, like the IE and Firefox teams.</p><p>But by the 2010s, shipping frequency had increased by so much and was an everyday, unremarkable occurrence at some places, <a href="https://limpet.net/mbrubeck/2012/10/26/mozilla-ie10-cake.html">according to</a> Matt Brubeck, a former engineer on the Firefox team:</p><blockquote><p>&#8220;Back when Firefox 2 was released (six years ago this week!), the Internet Explorer team started a friendly tradition of sending Mozilla a cake as congratulations. This continued for Firefox 3 and Firefox 4. After Firefox switched from major releases once or twice a year to incremental updates every six weeks, they sent us a cupcake for the next few updates instead. :)&#8221;<em> Mozilla engineer, Matt Brubeck</em></p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IXA7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f525e98-c75e-4e3e-a5e1-5b7db3a6e5a5_1828x1354.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IXA7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f525e98-c75e-4e3e-a5e1-5b7db3a6e5a5_1828x1354.png 424w, https://substackcdn.com/image/fetch/$s_!IXA7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f525e98-c75e-4e3e-a5e1-5b7db3a6e5a5_1828x1354.png 848w, https://substackcdn.com/image/fetch/$s_!IXA7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f525e98-c75e-4e3e-a5e1-5b7db3a6e5a5_1828x1354.png 1272w, https://substackcdn.com/image/fetch/$s_!IXA7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f525e98-c75e-4e3e-a5e1-5b7db3a6e5a5_1828x1354.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IXA7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f525e98-c75e-4e3e-a5e1-5b7db3a6e5a5_1828x1354.png" width="1456" height="1078" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7f525e98-c75e-4e3e-a5e1-5b7db3a6e5a5_1828x1354.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1078,&quot;width&quot;:1456,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IXA7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f525e98-c75e-4e3e-a5e1-5b7db3a6e5a5_1828x1354.png 424w, https://substackcdn.com/image/fetch/$s_!IXA7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f525e98-c75e-4e3e-a5e1-5b7db3a6e5a5_1828x1354.png 848w, https://substackcdn.com/image/fetch/$s_!IXA7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f525e98-c75e-4e3e-a5e1-5b7db3a6e5a5_1828x1354.png 1272w, https://substackcdn.com/image/fetch/$s_!IXA7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f525e98-c75e-4e3e-a5e1-5b7db3a6e5a5_1828x1354.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Fruits of success: Cake for Mozilla Firefox team in 2006 after shipping Firefox 1</figcaption></figure></div><p>Today, Firefox ships a stable version about once a month, as does Chrome. In this context, marking each release with more cake could inadvertently cause some health issues on the team &#8211; too much cake, that is! From this September, Chrome <a href="https://developer.chrome.com/blog/chrome-two-week-release">will switch</a> to shipping every two weeks.</p><p><strong>Agile and Scrum is worth a mention</strong>; not as a technology, but a methodology: Scrum encourages teams to move in smaller cycles and deliver more frequently, via sprints that typically range from a week to a month. In the early 2000s, this methodology spread quickly and brought efficiency improvements to many tech companies. However, by the early 2020s, many startups and some of Big Tech had moved on, as covered in <a href="https://newsletter.pragmaticengineer.com/p/project-management-in-tech">How Big Tech runs tech projects and the curious absence of Scrum</a>:</p><blockquote><p>&#8220;Scrum got in the way of shipping on a daily basis. The whole idea of Scrum revolves around Sprints, of committing to tasks at the beginning of the sprint, working on these during the sprint, and demoing what we did at the end.</p><p>The process felt unnatural and like it had been forced on a fast-moving web team. We soon moved to a more fluid way of working, taking the Kanban approach. We stopped caring about sprints, and dropped most rituals that come with Scrum. We just cared about knowing what we&#8217;re working on now, and what it was we&#8217;d get done next.&#8221;</p></blockquote><p>Basically, Scrum worked and still does so for teams wanting to shorten shipping cadence from months to weeks. But for teams shipping daily, it often gets in the way.</p><p><strong>One area that improved significantly has been the pace of shipping incremental software. </strong>In 1975, shipping software several times per day with elements like version control, CI/CD, feature flags and engineers being oncall, might have sounded far-fetched. Back then, software delivery was measured in months and years. In this way, we&#8217;ve perhaps made improvements overall in the regions of 10x to 100x over the years.</p><p>But that came via combinations of new tools like version control and CI/CD, new approaches &amp; methodologies, and testing &#8211; and also from shifting constraints; for example, it&#8217;s now possible to revert backend changes rapidly, and code shipped in binaries can be controlled by feature flags in many cases.</p><p>Even so, improvements were mainly in iteration speed and not necessarily in the complexity of the software shipped. With all that progress, shipping complex and high-quality software still takes comparable time, often years, as 50 years ago. A prime example is the upcoming video game, Grand Theft Auto VI, probably by now the most highly-anticipated game ever, which is set to launch in November, after at least six years &#8211; and potentially 12 &#8211; of total development time:</p><ul><li><p>Initial planning <a href="https://thegameswiki.com/gta6/wiki/development-history">started</a> in 2014 (12 years of development)</p></li><li><p>Development <a href="https://gamerant.com/gta-6-development-start-date-when/">started</a> in earnest in 2020 (circa six years of full-on development)</p></li><li><p>The studio, Rockstar, <a href="https://x.com/RockstarGames/status/1489617718009606150">confirmed</a> development was underway in February 2022 (at least 4.5 years of full development)</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HM_E!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f94d3b7-70e6-4fac-a07d-7c4d315b5578_1100x350.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HM_E!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f94d3b7-70e6-4fac-a07d-7c4d315b5578_1100x350.png 424w, https://substackcdn.com/image/fetch/$s_!HM_E!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f94d3b7-70e6-4fac-a07d-7c4d315b5578_1100x350.png 848w, https://substackcdn.com/image/fetch/$s_!HM_E!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f94d3b7-70e6-4fac-a07d-7c4d315b5578_1100x350.png 1272w, https://substackcdn.com/image/fetch/$s_!HM_E!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f94d3b7-70e6-4fac-a07d-7c4d315b5578_1100x350.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HM_E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f94d3b7-70e6-4fac-a07d-7c4d315b5578_1100x350.png" width="1100" height="350" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f94d3b7-70e6-4fac-a07d-7c4d315b5578_1100x350.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:350,&quot;width&quot;:1100,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HM_E!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f94d3b7-70e6-4fac-a07d-7c4d315b5578_1100x350.png 424w, https://substackcdn.com/image/fetch/$s_!HM_E!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f94d3b7-70e6-4fac-a07d-7c4d315b5578_1100x350.png 848w, https://substackcdn.com/image/fetch/$s_!HM_E!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f94d3b7-70e6-4fac-a07d-7c4d315b5578_1100x350.png 1272w, https://substackcdn.com/image/fetch/$s_!HM_E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f94d3b7-70e6-4fac-a07d-7c4d315b5578_1100x350.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">GTA VI: more ambitious but also slower</figcaption></figure></div><p>The video game development timeline is as long as it ever was, and even longer, as developers strive to meet players&#8217; expectations on things like graphics, lighting, and physics. GTA 6 looks like being the most complex installment in the long-running series. So, perhaps there&#8217;s not been much change in software delivery timelines because when we have more capabilities to work with, the goals get more ambitious and the bar for &#8220;standout&#8221; software keeps rising.</p><h2>2. Is SRE a silver bullet?</h2><p>Brooks&#8217;s definition of a silver bullet:</p><blockquote><p>&#8220;A single development, in either technology or management technique, which by itself promises even one order of magnitude improvement in productivity, in reliability, in simplicity.&#8221;</p></blockquote><p>In simplicity and productivity terms, I struggle to name a single approach that delivered a 10x-or-more improvement by itself. But in the area of reliability, one company that has pioneered novel approaches since the 2000s is Google. Google.com is probably the single most reliable piece of internet software of all. In the last 15 years, Google Search has suffered a single outage, <a href="https://www.gadgets360.com/internet/news/google-search-maps-photos-drive-youtube-experiencing-outages-in-some-parts-of-the-world-3238156">on 8 August 2022</a>, which lasted around an hour. Otherwise, there have been no global outages (of course, there have been several <a href="https://en.wikipedia.org/wiki/Google_services_outages#December_2020_services_outage">for other Google services</a>).</p><p>In 2003, Google created the &#8216;Site Reliability Engineering&#8217; (SRE) role. SRE veteran, Dave O&#8217;Connor, <a href="https://newsletter.pragmaticengineer.com/p/reliability-engineering?">shared with us</a>:</p><blockquote><p>&#8220;The fervent belief of Google&#8217;s founders was that speed and reliability mattered more than features. This belief was coupled with the understanding that we couldn&#8217;t achieve it traditionally, which made it an existential issue. The level of investment in building out all layers of the serving stack was a case of &#8220;because we can&#8221;, but also &#8220;because we have to, as nowhere else does what we need&#8221;.</p><p>There was never a question of whether traditional &#8216;ops&#8217; would work at Google. We needed a specialized role, staffed by folks familiar with the problem space and engineering methods required to make it work.</p><p>In 2003, the SRE role was born. Ben Treynor Sloss had been tasked with building Google&#8217;s &#8220;production team&#8221; and in his own words, he built &#8220;what happens when you ask a software engineer to design an operations team.&#8221; This turned into the birth of the SRE function at Google. From the outset, SRE was staffed in varying measures by systems/operations experts and software engineers. A large part of the remit of the team was to build the tools and practices required to operate Google&#8217;s fleet.&#8221;</p></blockquote><p>Over time, the rest of the industry caught on to SRE and DevOps. From our <a href="https://newsletter.pragmaticengineer.com/p/reliability-engineering">SRE deepdive</a>:</p><blockquote><p>&#8220;Eventually, other companies caught onto the scaling issues, especially the hyperscalers. Each had their own approach, but over time, the notion grew industry-wide that making things reliable was a real-life engineering discipline, not simply &#8216;ops&#8217;.</p><p>This step saw a number of terms coined to describe this engineering, including &#8216;DevOps&#8217;. At its core, this was the notion that the disciplines and practices of reliability engineering should be ingrained into the overall engineering organization. At places other than Google, this mostly took the form of combined developer/operations roles (i.e. &#8220;you build it, you run it&#8221;), which differed from Google&#8217;s implementation, but the practices were similar.</p><p>Around this time, Google started opening up about SRE, eventually publishing the first SRE book, and follow ups. Conferences such as USENIX SRECon, Devops Days, and other movements have solidified reliability engineering as a discipline that scales well beyond Google. Indeed, the company has become a consumer of many state-of-the-art developments.&#8221;</p></blockquote><p><strong>So, at Google Search, the SRE role could be described as a genuine silver bullet for the tech giant.</strong> The company&#8217;s obsession with reliability helped it build what is probably the most reliable public-facing service of all. On the assumption that SRE plays a significant role in the approach, I would feel comfortable with calling SRE a silver bullet for Google Search.</p><p>SRE, as a concept, is commonplace across Google, but the reliability of its other services is not so impressive. For example, Google Cloud has had many outages, and Gmail also goes down every now and then. I&#8217;m sure that without SRE, reliability would be worse, but in general, Google services&#8217; availability these days is probably a magnitude higher than the availability of most online services in the 2000s.</p><p>Similarly, GitHub has an SRE role but the service is <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-github-breaks">at zero nines of availability</a>, partially explained by a 3.5x increase in load in two years. But in other ways, the zero nines is <a href="https://blog.pragmaticengineer.com/the-pulse-ai-load-breaks-github/">likely self-inflicted.</a></p><p><strong>This makes me wonder if the existence of silver bullets depends greatly on teams and individual contexts.</strong> SRE seems like a good case to consider:</p><ul><li><p>a &#8220;silver bullet&#8221; for Google Search</p></li><li><p>&#8230; but not for other Google services</p></li><li><p>&#8230; and definitely not for the broader industry</p></li></ul><p>Could it be that when implemented in the right place, in the right way, and with the correct investment, then SRE &#8211; and an incredible focus on reliability &#8211; will yield a 10x-or-higher increase in reliability?</p><p>My hunch is that Google Search has such standout reliability not just because of SRE, but because Search might be the only organization in Google with reliability as a founding value, embedded in the team&#8217;s culture, with unmatched investments of time and money.</p><p>Google has published <a href="https://sre.google/books/">several books</a> that explain their techniques and practices, but for other teams to get those results, they would need to invest similarly in reliability.</p><h2>3. Was open source + GitHub a silent silver bullet?</h2><p>Perhaps there&#8217;s a silver bullet which is easily missed: open source. In <a href="https://newsletter.pragmaticengineer.com/p/ai-tools-for-software-engineers-simon-willison">the first-ever Pragmatic Engineer Podcast episode</a>, I asked software engineer Simon Willison what the biggest &#8220;productivity leaps&#8221; have been during his career. He <a href="https://youtu.be/uRuLgar5XZw?si=YHz3z6En7ADv4DRu&amp;t=2141">named</a> open source:</p>
      <p>
          <a href="https://newsletter.pragmaticengineer.com/p/revisiting-no-silver-bullets-in-the">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Pulse: Did capacity shortages turn Anthropic hostile to devs?]]></title><description><![CDATA[Also: Amazon finally allows engineers to use Claude Code and Codex, Meta forcefully assigns engineers to data labelling work ahead of layoffs, more small &#8220;AI-forward&#8221; teams, and more]]></description><link>https://newsletter.pragmaticengineer.com/p/the-pulse-did-capacity-shortages</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/the-pulse-did-capacity-shortages</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Thu, 07 May 2026 16:45:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KGEL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F352b2ed9-f071-417a-8866-f2fea2d8abe8_1942x1020.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>The Pulse is a series covering events, insights, and trends within Big Tech and startups. Notice an interesting event or trend? Hit reply and share it with me.</em></p><p>Today, we cover:</p><ol><li><p><strong>Did Anthropic turn hostile on devs because capacity was running low? </strong>For<strong> </strong>the past few weeks, Anthropic has continually upset devs with its &#8220;dumber&#8221; model, and by removing Claude Code access from some paid accounts. After securing lots of compute from SpaceX, could the reason have been to conceal capacity issues?</p></li><li><p><strong>Amazon finally allows Claude Code and Codex usage</strong>. The online retail giant wanted to improve its own coding agent, Kiro, so banned other AI coding tools. But that ban is now lifted.</p></li><li><p><strong>Meta forcefully assigns engineers to data labelling ahead of job cuts. </strong>In several teams, 20-40% of engineers are given menial, data labelling work. Could that actually boost people&#8217;s job security &#8211; for now?</p></li><li><p><strong>New trend: small &#8220;AI-forward&#8221; teams</strong>. Meta and Amazon&#8217;s CEOs say teams of 5-10 devs do better work than teams of 50. There are important caveats: it&#8217;s unclear what they&#8217;ll do with the &#8220;excess,&#8221; and if it&#8217;s limited to &#8220;mechanical&#8221; work like rewrites.</p></li><li><p><strong>Industry Pulse</strong>. Why Meta tracks employees&#8217; computer activity, OpenAI starts to move off Datadog, Apple lets slip it uses Claude Code, GitHub &#8594; Xbox transfers at Microsoft, VS Code inserted &#8220;coathored by Copilot&#8221; even when Copilot did nothing, analysis of the Coinbase layoffs.</p></li></ol><p>Before we start, last week I covered <a href="https://newsletter.pragmaticengineer.com/i/196004322/big-pricing-increase-for-github-copilot">big pricing changes coming from GitHub</a>, but it seems I underplayed how big they will be. Reader Julien has helpfully <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-github-breaks/comment/251597672">clarified</a> the actual impact (thank you!)</p><ul><li><p>The multipliers will be increased for Pro and Pro+ plans <em>on annual renewal</em> (roughly a ~3x increase on average)</p></li><li><p>With other plans (Pro, Pro+, Business, Enterprise) it&#8217;s more drastic; they will adopt API token-based pricing and drop request-based pricing.</p></li></ul><p>This is indeed a massive change; GitHub has heavily subsidized its usage, relative to API billing, and this change will make pricing unpredictable as of 1 June &#8211; at least initially. As Julien put it:</p><blockquote><p>&#8220;We are basically waiting to see how much we will be able to use our actual subscription with the new pricing &#128519;&#8221;</p></blockquote><h2>1. Did Anthropic turn hostile on devs because capacity was running low?</h2>
      <p>
          <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-did-capacity-shortages">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Designing Data-Intensive Applications: The Cloud & Doing the Right Thing]]></title><description><![CDATA[How the cloud changes the way we build applications, and why engineers&#8217; ethical choices matter more than ever. Excerpt from the book, &#8216;Designing Data-Intensive Applications&#8217;, 2nd edition]]></description><link>https://newsletter.pragmaticengineer.com/p/designing-data-intensive-applications-book-excerpt</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/designing-data-intensive-applications-book-excerpt</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Tue, 05 May 2026 16:46:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!C6W6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e245ca-cbda-4c91-b38d-36c8074a7800_1310x940.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In 2016, <a href="https://martin.kleppmann.com/">Martin Kleppmann</a> published <em>&#8216;Designing Data-Intensive Applications&#8217;,</em> which quickly became a go-to book for those of us building backend applications and distributed systems. In it, Martin combined his experience as a startup founder with observations from his time at LinkedIn, and invested years of rigorous, fulltime research in the title.</p><p>Nine years later, he felt the time was ripe for an updated edition, with cloud computing much more widespread than in 2016. So, Martin teamed up with software engineer and investor, <a href="https://cnr.sh/">Chris Riccomini</a>, a former colleague at LinkedIn and the author of <a href="https://nostarch.com/missing-readme">The Missing README</a>, for a full refresh of the book which brings it right up to date for the present day.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!C6W6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e245ca-cbda-4c91-b38d-36c8074a7800_1310x940.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!C6W6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e245ca-cbda-4c91-b38d-36c8074a7800_1310x940.png 424w, https://substackcdn.com/image/fetch/$s_!C6W6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e245ca-cbda-4c91-b38d-36c8074a7800_1310x940.png 848w, https://substackcdn.com/image/fetch/$s_!C6W6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e245ca-cbda-4c91-b38d-36c8074a7800_1310x940.png 1272w, https://substackcdn.com/image/fetch/$s_!C6W6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e245ca-cbda-4c91-b38d-36c8074a7800_1310x940.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!C6W6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e245ca-cbda-4c91-b38d-36c8074a7800_1310x940.png" width="1310" height="940" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/09e245ca-cbda-4c91-b38d-36c8074a7800_1310x940.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:940,&quot;width&quot;:1310,&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_!C6W6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e245ca-cbda-4c91-b38d-36c8074a7800_1310x940.png 424w, https://substackcdn.com/image/fetch/$s_!C6W6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e245ca-cbda-4c91-b38d-36c8074a7800_1310x940.png 848w, https://substackcdn.com/image/fetch/$s_!C6W6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e245ca-cbda-4c91-b38d-36c8074a7800_1310x940.png 1272w, https://substackcdn.com/image/fetch/$s_!C6W6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09e245ca-cbda-4c91-b38d-36c8074a7800_1310x940.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>My copy of the new edition</em></figcaption></figure></div><p>Martin was recently on The Pragmatic Engineer Podcast, where <a href="https://newsletter.pragmaticengineer.com/p/designing-data-intensive-applications">we discussed</a> this updated volume and many related cloud computing matters. We also looked into some topics that have become less relevant over time, like details on MapReduce.</p><p>I asked Martin if this newsletter could share an excerpt of the updated edition of the book about a timeless, important topic, and he generously agreed. So, today we cover:</p><ol><li><p>Cloud versus self-hosting tradeoffs</p></li><li><p>Doing the right thing as a software engineer</p></li></ol><p>These excerpts are only part of the book; the first edition has been on my shelf for years and is now in well-worn condition. I jumped at the chance to get the second edition, and if you&#8217;re interested in building resilient systems, I recommend it as an excellent resource.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://learning.oreilly.com/library/view/designing-data-intensive-applications/9781098119058/&quot;,&quot;text&quot;:&quot;Get the second edition of the book&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://learning.oreilly.com/library/view/designing-data-intensive-applications/9781098119058/"><span>Get the second edition of the book</span></a></p><p><em>My usual disclaimer: as with all my recommendations, I was not paid for this article, and none of the links are affiliates. See <a href="https://blog.pragmaticengineer.com/ethics-statement/">my ethics statement</a> for more.</em></p><div><hr></div><p><em>The excerpt below is from &#8220;<a href="https://learning.oreilly.com/library/view/designing-data-intensive-applications/9781098119058/">Designing Data-Intensive Applications&#8221; second edition</a>, by Martin Kleppmann and Chris Riccomini. Copyright &#169; 2026 Martin Kleppmann, Chris Riccomini. Published by O&#8217;Reilly Media, Inc. Used with permission.</em></p><h2>1. Cloud versus self-hosting tradeoffs</h2><p><em>This excerpt is from Chapter 1: &#8220;Trade-Offs in Data Systems Architecture&#8221;</em></p><p>For anything that an organization needs to do, one of the first questions is whether it should be done in-house or outsourced. That is, should you build or should you buy?</p><p>Ultimately, this is a question about business priorities. A common rule of thumb is that things that are a core competency or a competitive advantage of your organization should be done in-house, whereas things that are non-core, routine, or commonplace should be left to a vendor [<a href="https://world.hey.com/dhh/why-we-re-leaving-the-cloud-654b47e0">20</a>]. To give an extreme example, most companies do not fabricate their own CPUs, since it is cheaper to buy them from the semiconductor manufacturers.</p><p>With software, two important decisions to be made are who builds the software and who deploys it. The spectrum of possibilities is illustrated in Figure 1-2. At one extreme is bespoke software that you write and run in-house; at the other extreme are widely-used cloud services or SaaS products that are implemented and operated by an external vendor and that you access only through a web interface or API.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZkjW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75be7d6-2d6d-4564-a598-cfb501bbcc84_2048x384.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZkjW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75be7d6-2d6d-4564-a598-cfb501bbcc84_2048x384.png 424w, https://substackcdn.com/image/fetch/$s_!ZkjW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75be7d6-2d6d-4564-a598-cfb501bbcc84_2048x384.png 848w, https://substackcdn.com/image/fetch/$s_!ZkjW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75be7d6-2d6d-4564-a598-cfb501bbcc84_2048x384.png 1272w, https://substackcdn.com/image/fetch/$s_!ZkjW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75be7d6-2d6d-4564-a598-cfb501bbcc84_2048x384.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZkjW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75be7d6-2d6d-4564-a598-cfb501bbcc84_2048x384.png" width="1456" height="273" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c75be7d6-2d6d-4564-a598-cfb501bbcc84_2048x384.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:273,&quot;width&quot;:1456,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZkjW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75be7d6-2d6d-4564-a598-cfb501bbcc84_2048x384.png 424w, https://substackcdn.com/image/fetch/$s_!ZkjW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75be7d6-2d6d-4564-a598-cfb501bbcc84_2048x384.png 848w, https://substackcdn.com/image/fetch/$s_!ZkjW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75be7d6-2d6d-4564-a598-cfb501bbcc84_2048x384.png 1272w, https://substackcdn.com/image/fetch/$s_!ZkjW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75be7d6-2d6d-4564-a598-cfb501bbcc84_2048x384.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption"><em>Figure 1-2. The spectrum of decisions on outsourcing software and its operations</em></figcaption></figure></div><p>The middle ground is off-the-shelf software (open source or commercial) that you self-host, or deploy yourself &#8211; for example, if you download MySQL and install it on a server you control. This could be on your own hardware (often called &#8216;on-premises,&#8217; even if the server is in a rented datacenter rack and not literally on your own premises), or on a virtual machine (VM) in the cloud (<em>infrastructure as a service</em>, or IaaS). There are more points along this spectrum, such as taking open source software and running a modified version of it.</p><p>A related question is how you deploy services, either in the cloud or on premises &#8211; for example, whether you use an orchestration framework such as Kubernetes. However, choice of deployment tooling is beyond the scope of this book, since other factors have a greater influence on the architecture of data systems.</p><h3>Pros &amp; Cons of Cloud Services</h3><p>Using a cloud service, rather than running comparable software yourself, essentially outsources the operation of that software to the cloud provider. There are good arguments for and against this approach. Cloud providers claim that using their services saves time and money and allows you to move faster compared to setting up your own infrastructure.</p><p>Whether using a cloud service is actually cheaper and easier than self-hosting depends very much on your skills and the workload on your systems, however. If you already have experience of setting up and operating the systems you need, and if your load is quite predictable (i.e., the number of machines you need does not fluctuate wildly), then it&#8217;s often cheaper to buy your own machines and run the software on them yourself [<a href="https://world.hey.com/dhh/why-we-re-leaving-the-cloud-654b47e0">21</a>, <a href="https://specbranch.com/posts/one-big-server/">22</a>].</p><p>On the other hand, if you need a system that you don&#8217;t already know how to deploy and operate, adopting a cloud service is often easier and quicker than learning to manage the system. Hiring and training staff specifically to maintain and operate the system can get very expensive. You still need an operations team when you&#8217;re using the cloud, but outsourcing the basic system administration can free up your team to focus on higher-level concerns.</p><p>Outsourcing the operation of a system to a company that specializes in running it can potentially result in better service, since the provider gains operational expertise from providing the service to many customers. On the other hand, if you run the service, you can configure and tune it to perform well on your particular workload. A cloud service would likely be unwilling to make such customizations on your behalf.</p><p>Cloud services are particularly valuable if the load on your systems varies a lot over time. If you provision your machines to be able to handle peak load, but those computing resources are idle most of the time, the system becomes less cost-effective. In this situation, cloud services have the advantage that they can make it easier to scale your computing resources up or down in response to changes in demand.</p><p>For example, analytical systems often have extremely variable load. Running a large analytical query quickly requires a lot of computing resources in parallel, but once the query completes, those resources sit idle until a user makes the next query. Predefined queries (e.g., for daily reports) can be enqueued and scheduled to smooth out the load, but for interactive queries, the faster you want them to complete, the more variable the workload becomes. If your dataset is so large that querying it quickly requires significant computing resources, using the cloud can save money as you can return unused resources to the provider rather than leaving them idle. For smaller datasets, this difference is less significant.</p><p>The biggest downside of a cloud service is that you have no control over it:</p><ul><li><p>If it is lacking a feature you need, all you can do is politely ask the vendor whether they will add it; you generally cannot implement it yourself.</p></li><li><p>If the service goes down, all you can do is wait for it to recover.</p></li><li><p>If you are using the service in a way that triggers a bug or causes performance problems, diagnosing the issue will be difficult. With software that you run yourself, you can get performance metrics and debugging information from the operating system to help you understand its behavior, and you can look at the server logs. With a service hosted by a vendor, you usually do not have access to these internals.</p></li><li><p>If the service shuts down or becomes unacceptably expensive, or if the vendor changes their product in a way you don&#8217;t like, you are at their mercy; continuing to run an old version of the software is usually not an option, so you&#8217;ll be forced to migrate to an alternative service [23]. This risk is mitigated if alternative services expose a compatible API, but for many cloud services there are no standard APIs, which raises the cost of switching, making vendor lock-in a problem.</p></li><li><p>If the cloud provider is in another country and a political conflict arises between that country and your own, you risk being locked out of the service due to imposed sanctions.</p></li><li><p>The cloud provider needs to be trusted to keep the data secure, which can complicate the process of complying with privacy and security regulations.</p></li></ul><p>Despite all these risks, it has become more and more popular for organizations to build new applications on top of cloud services, or to adopt a hybrid approach in which cloud services are used for some aspects of a system. However, cloud services will not subsume all in-house data systems. Many older systems predate the cloud, and for any services that have specialist requirements that existing cloud services cannot meet, in-house systems remain necessary. For example, very latency-sensitive applications such as high-frequency trading require full control of the hardware.</p><h3>Cloud-Native System Architecture</h3><p>Besides having a different economic model (subscribing to a service instead of buying hardware and licensing software to run on it), the rise of the cloud has also had a profound effect on how data systems are implemented on a technical level. The term &#8220;cloud native&#8221; is used to describe an architecture that is designed to take advantage of cloud services.</p><p>In principle, almost any software that you can self-host could also be provided as a cloud service, and indeed, such managed services are now available for many popular data systems. However, systems that have been designed from the ground up to be cloud native have been shown to have several advantages: better performance on the same hardware, faster recovery from failures, being able to quickly scale computing resources to match the load, and supporting larger datasets [<a href="https://media.amazonwebservices.com/blog/2017/aurora-design-considerations-paper.pdf">24</a>, <a href="https://www.microsoft.com/en-us/research/wp-content/uploads/2019/05/socrates.pdf">25</a>, <a href="https://www.usenix.org/system/files/nsdi20-paper-vuppalapati.pdf">26</a>]. Table 1-2 lists some examples of both types of systems.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GWaK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78c9fb84-7b57-4970-9dd3-64032ba79950_1268x378.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GWaK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78c9fb84-7b57-4970-9dd3-64032ba79950_1268x378.png 424w, https://substackcdn.com/image/fetch/$s_!GWaK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78c9fb84-7b57-4970-9dd3-64032ba79950_1268x378.png 848w, https://substackcdn.com/image/fetch/$s_!GWaK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78c9fb84-7b57-4970-9dd3-64032ba79950_1268x378.png 1272w, https://substackcdn.com/image/fetch/$s_!GWaK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78c9fb84-7b57-4970-9dd3-64032ba79950_1268x378.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GWaK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78c9fb84-7b57-4970-9dd3-64032ba79950_1268x378.png" width="1268" height="378" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/78c9fb84-7b57-4970-9dd3-64032ba79950_1268x378.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:378,&quot;width&quot;:1268,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GWaK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78c9fb84-7b57-4970-9dd3-64032ba79950_1268x378.png 424w, https://substackcdn.com/image/fetch/$s_!GWaK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78c9fb84-7b57-4970-9dd3-64032ba79950_1268x378.png 848w, https://substackcdn.com/image/fetch/$s_!GWaK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78c9fb84-7b57-4970-9dd3-64032ba79950_1268x378.png 1272w, https://substackcdn.com/image/fetch/$s_!GWaK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78c9fb84-7b57-4970-9dd3-64032ba79950_1268x378.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Table 1-2. Examples of self-hosted and cloud-native database systems</em></figcaption></figure></div><h4>Layering of cloud services</h4><p>Many self-hosted data systems have simple system requirements; they run on a conventional operating system such as Linux or Windows, they store their data as files on the filesystem, and they communicate via standard network protocols such as TCP/IP. A few systems depend on special hardware such as GPUs (for ML) or remote direct memory access (RDMA) network interfaces, but on the whole, self-hosted software tends to use generic computing resources: CPUs, RAM, a filesystem, and an IP network.</p><p>In a cloud, this type of software can be run in an IaaS environment, using one or more VMs (or instances) with a certain allocation of CPUs, memory, disk, and network bandwidth. Compared to physical machines, cloud instances can be provisioned faster and come in a greater variety of sizes, but otherwise they are similar to traditional computers: you can run any software you like on them, but you are responsible for administering it yourself.</p><p>In contrast, the key idea of cloud-native services is not only to use the computing resources managed by your operating system, but also to build upon lower-level cloud services to create higher-level services. For example:</p><ul><li><p>Object storage services such as Amazon S3, Azure Blob Storage, and Cloudflare R2 store large files. They provide more limited APIs than a typical filesystem (basic file reads and writes), but they have the advantage that they hide the underlying physical machines; the service automatically distributes the data across many machines so that you don&#8217;t have to worry about running out of disk space on any one machine. Even if some machines or their disks fail entirely, no data is lost.</p></li><li><p>Many other services are, in turn, built upon object storage and other cloud services. For instance, Snowflake is a cloud-based analytical database (data warehouse) that relies on S3 for data storage [<a href="https://www.usenix.org/system/files/nsdi20-paper-vuppalapati.pdf">26</a>], and some other services, in turn, build upon Snowflake.</p></li></ul><p>As always with abstractions in computing, there is no one right answer to what you should use. As a general rule, higher-level abstractions tend to be more oriented toward particular use cases. If your needs match the situations for which a higher-level system is designed, using the existing higher-level system will probably meet your needs with much less hassle than building it yourself from lower-level systems would. On the other hand, if no high-level system meets your needs, building it yourself from lower-level components is the only option.</p><h4>Separation of storage and compute</h4><p>In traditional computing, disk storage is regarded as durable (we assume that once something is written to disk, it will not be lost). To tolerate the failure of an individual hard disk, RAID (redundant array of independent disks) is often used to maintain copies of the data on several disks attached to the same machine. RAID can be implemented either in hardware or in software by the operating system, and it is transparent to the applications accessing the filesystem.</p><p>In the cloud, compute instances (VMs) may also have local disks attached, but cloud-native systems typically treat these disks more like an ephemeral cache and less like long-term storage. This is because the local disk becomes inaccessible if the associated instance fails, or if the instance is replaced with a bigger or a smaller one (on a different physical machine) to adapt to changes in load.</p><p>As an alternative to local disks, cloud services also offer virtual disk storage that can be detached from one instance and attached to a different one (e.g., Amazon EBS, Azure managed disks, and persistent disks in Google Cloud). Such a virtual disk is not a physical disk, but rather a cloud service provided by a separate set of machines that emulates the behavior of a disk (a block device, where each block is typically 4 KiB in size). This technology makes it possible to run traditional disk-based software in the cloud, but the block device emulation introduces overheads that can be avoided in systems that are designed from the ground up for the cloud [<a href="https://media.amazonwebservices.com/blog/2017/aurora-design-considerations-paper.pdf">24</a>]. The use of virtual disks also makes the application very sensitive to network glitches, since every I/O operation on the virtual block device is a network call [<a href="https://planetscale.com/blog/the-real-fail-rate-of-ebs">27</a>].</p><p>To address this problem, cloud-native services generally avoid using virtual disks and instead build on dedicated storage services that are optimized for particular workloads. Object storage services such as S3 are designed for long-term storage of fairly large files, ranging from hundreds of kilobytes to several gigabytes in size. The individual rows or values stored in a database are typically much smaller than this; cloud databases therefore typically manage smaller values in a separate service and store larger data blocks (containing many individual values) in an object store [<a href="https://www.microsoft.com/en-us/research/wp-content/uploads/2019/05/socrates.pdf">25</a>, <a href="https://blog.colinbreck.com/predicting-the-future-of-distributed-systems/">28</a>].</p><p>In traditional systems architecture, the same computer is responsible for both storage (disk) and computation (CPU and RAM), but in cloud-native systems, these two responsibilities have become somewhat separated, or disaggregated [<a href="https://dl.acm.org/doi/abs/10.1145/3514221.3526055">9</a>, <a href="https://www.usenix.org/system/files/nsdi20-paper-vuppalapati.pdf">26</a>, <a href="https://www.thenile.dev/blog/storage-compute-separation">29</a>, <a href="https://cloud.google.com/blog/products/databases/alloydb-for-postgresql-intelligent-scalable-storage">30</a>]: for example, S3 only stores files, and if you want to analyze that data, you will have to run the analysis code somewhere outside of S3. This implies transferring the data over the network.</p><p>Furthermore, cloud-native systems are often multitenant, which means that rather than having a separate machine for each customer, data and computation from several customers are handled on the same shared hardware by the same service [<a href="https://learning.oreilly.com/library/view/designing-data-intensive-applications/9781098119058/ch01.html#Vanlightly2023serverless">31</a>]. Multitenancy can enable better hardware utilization, easier scalability, and easier management by the cloud provider, but it also requires careful engineering to ensure that one customer&#8217;s activity does not affect the performance or security of the system for other customers [<a href="https://learning.oreilly.com/library/view/designing-data-intensive-applications/9781098119058/ch01.html#Jonas2019">32</a>].</p><h3>Operations in the Cloud Era</h3><p>Traditionally, the people managing an organization&#8217;s server-side data infrastructure were known as database administrators (DBAs), or system administrators (sysadmins). More recently, many organizations have tried to integrate the roles of software development and operations into teams with a shared responsibility for both backend services and data infrastructure; the DevOps philosophy has guided this trend. Site reliability engineers (SREs) are Google&#8217;s implementation of this idea [<a href="https://www.oreilly.com/library/view/site-reliability-engineering/9781491929117/">33</a>].</p><p>The role of operations is to ensure that services are reliably delivered to users (including configuring infrastructure and deploying applications) and to ensure a stable production environment (including monitoring and diagnosing any problems that may affect reliability). For self-hosted systems, operations traditionally involve a significant amount of work at the level of individual machines, such as capacity planning (e.g., monitoring available disk space and adding more disks before you run out of space), provisioning new machines, moving services from one machine to another, and installing operating system patches.</p><p>Many cloud services present an API that hides the individual machines implementing the service. For example, cloud storage replaces fixed-size disks with metered billing, where you can store data without planning your capacity needs in advance, and you are then charged based on the space used. Moreover, many cloud services remain highly available, even when individual machines have failed.</p><p>This shift in emphasis from individual machines to services has been accompanied by a change in the role of operations. The high-level goal of providing a reliable service remains the same, but the processes and tools have evolved.</p><p>The DevOps/SRE philosophy places greater emphasis on the following:</p><ul><li><p>Setting up automation; preferring repeatable processes over manual one-off jobs</p></li><li><p>Using ephemeral VMs and services rather than long-running servers</p></li><li><p>Enabling frequent application updates</p></li><li><p>Learning from incidents</p></li><li><p>Preserving the organization&#8217;s knowledge about the system, even as individuals come and go [<a href="https://queue.acm.org/detail.cfm?id=3434773">34</a>]</p></li></ul><p>With the rise of cloud services, a bifurcation of roles has occurred. Operations teams at infrastructure companies specialize in the details of providing a reliable service to a large number of customers, while the customers of the service spend as little time and effort as possible on infrastructure [<a href="https://www.pluralsight.com/resources/blog/cloud/the-future-of-ops-jobs">35</a>].</p><p>Customers of cloud services still require operations, but they focus on different aspects, such as choosing the most appropriate service for a given task, integrating services with each other, and migrating from one service to another. Even though metered billing removes the need for capacity planning in the traditional sense, it&#8217;s still important to know what resources you are using for which purpose so that you don&#8217;t waste money on cloud resources that are not needed. Capacity planning becomes financial planning, and performance optimization becomes cost optimization [<a href="https://medium.com/riskified-technology/over-pay-as-you-go-for-your-datastore-11a29ae49a8b">36</a>]. Additionally, cloud services do have resource limits or quotas (such as the maximum number of processes you can run concurrently), which you need to know about and plan for before you run into them [<a href="https://thenewstack.io/serverless-doesnt-mean-devopsless-or-noops/">37</a>].</p><p>Adopting a cloud service can be easier and quicker than provisioning and running your own infrastructure, although you still have to learn how to use the cloud service and perhaps work around its limitations. Integration among services becomes a particular challenge as a growing number of vendors offer an ever-broader range of cloud services targeting different use cases [<a href="https://erikbern.com/2021/11/30/storm-in-the-stratosphere-how-the-cloud-will-be-reshuffled.html">38</a>, <a href="https://benn.substack.com/p/the-data-os">39</a>]. ETL is only part of the story; operational cloud services also need to be integrated with each other. At present, we lack standards to facilitate this sort of integration, so it often involves significant manual effort.</p><p>Other operational aspects that cannot fully be outsourced to cloud services include maintaining the security of an application and the libraries it uses, managing the interactions between your own services, monitoring the load on your services, and tracking down the cause of problems such as performance degradations or outages. While the cloud is changing the role of operations, the need for operations is as great as ever.</p><h2>2. Doing the right thing as a software engineer</h2><p><em>The excerpt below is a section from Chapter 14, &#8220;Doing the Right Thing&#8221;</em></p><p>In the final chapter of this book, let&#8217;s take a step back. Throughout, we have examined a wide range of architectures for data systems, evaluated their pros and cons, and explored techniques for building reliable, scalable, and maintainable applications. However, we have left out a fundamental part of the discussion, which we should now fill in.</p><p>Every system is built for a purpose; every action we take has both intended and unintended consequences. The purpose may be as simple as making money, but the consequences may be far-reaching. We, the engineers building these systems, have a responsibility to carefully consider those consequences and to ensure that our decisions do not cause harm.</p><p>We talk about data as an abstract thing, but remember that many datasets are about people: their behavior, their interests, their identities. We must treat such data with humanity and respect. Users are humans too, and human dignity is paramount [<a href="https://schmud.de/posts/2024-08-18-data-is-a-bad-idea.html">1</a>].</p><p>Software development increasingly involves making important ethical choices. There are guidelines to help software engineers navigate these issues, such as the ACM Code of Ethics and Professional Conduct [<a href="https://www.acm.org/code-of-ethics">2</a>], but they are rarely discussed, applied, or enforced in practice. As a result, engineers and product managers sometimes take a cavalier attitude to privacy and the potential negative consequences of their products [<a href="https://www.linkedin.com/blog/engineering/archive/making-hard-choices-the-quest-for-ethics-in-machine-learning">3</a>, <a href="https://www.theguardian.com/commentisfree/2015/dec/06/algorithm-writers-should-have-code-of-conduct">4</a>].</p><p>A technology is not good or bad in itself &#8211; what matters is how it is used and how it affects people. This is true of a software system such as a search engine in much the same way as it is for a weapon like a gun. The ethical responsibility is ours to bear; it is not sufficient for software engineers to focus exclusively on the technology and ignore its consequences.</p><p>In contrast to much of computing, however, the concepts at the heart of ethics are not fixed or determinate in their precise meaning; they require interpretation, which may be subjective [<a href="https://cacm.acm.org/opinion/ethical-ai-is-not-about-ai/">5</a>]. What makes something &#8220;good&#8221; or &#8220;bad&#8221; is not well defined, and serious discourse on the subject among computing professionals is lacking [<a href="https://www.benzevgreen.com/wp-content/uploads/2019/11/19-ai4sg.pdf">6</a>]. Reasoning about ethics is difficult, but also too important to ignore. What does this entail? &#8220;Ethics&#8221; are not a checklist with which to comply; it&#8217;s a participatory and iterative process of reflection, in dialogue with people involved and accountability for the results [<a href="https://cacm.acm.org/opinion/ethics-as-a-participatory-and-iterative-process/">7</a>].</p><h3>Predictive Analytics</h3><p>Predictive analytics is a major part of why people are excited about big data and AI. It&#8217;s also an area that is fraught with ethical dilemmas. Using data analysis to predict the weather, or the spread of diseases, is one thing [<a href="https://cacm.acm.org/news/what-happens-when-big-data-blunders/">8</a>]; it is another matter to predict whether a convict is likely to reoffend, whether an applicant for a loan is likely to default, or whether an insurance customer is likely to make expensive claims [<a href="https://www.cl.cam.ac.uk/research/security/seminars/archive/video/2023-03-07-t196231.html">9</a>]. The latter have a direct effect on people&#8217;s lives.</p><p>Naturally, payment networks want to prevent fraudulent transactions, banks want to avoid bad loans, airlines want to avoid hijackings, and companies want to avoid hiring ineffective or untrustworthy people. From their point of view, the cost of a missed business opportunity is low, but the cost of a bad loan or a problematic employee is much higher, so it is expected for organizations to be cautious. If in doubt, they are better off saying &#8220;no&#8221;.</p><p>However, as algorithmic decision making becomes more widespread, someone who has (accurately or falsely) been labeled as risky by an algorithm may suffer a large number of &#8220;no&#8221; decisions. Systematically being excluded from jobs, air travel, insurance coverage, property rental, financial services, and other key aspects of society is such a large constraint on an individual&#8217;s freedom that it has been called &#8220;algorithmic prison&#8221; [<a href="https://www.theatlantic.com/technology/archive/2014/02/welcome-to-algorithmic-prison/283985/">10</a>]. In countries that respect human rights, the criminal justice system presumes innocence until proven guilty; on the other hand, automated systems can systematically and arbitrarily exclude a person from participating in society without any proof of guilt and little chance of appeal.</p><h4>Bias &amp; discrimination</h4><p>Decisions made by an algorithm are not necessarily any better or any worse than those made by a human. Everyone is likely to have biases, even if they actively try to counteract them, and discriminatory practices can become culturally institutionalized. There is hope that basing decisions on data, rather than subjective and instinctive human assessments, could be more fair and give a better chance to people who are often overlooked or disadvantaged in the traditional system [<a href="https://www.theatlantic.com/magazine/archive/2013/12/theyre-watching-you-at-work/354681/">11</a>].</p><p>When we develop predictive analytics and AI systems, we are not merely automating a human&#8217;s decision by using software to specify the rules for when to say &#8220;yes&#8221; or &#8220;no&#8221;; we are leaving the rules themselves to be inferred from data. However, the patterns learned by these systems are opaque: even if the data indicates a correlation, we may not know why. If the input to an algorithm carries a systematic bias, the system will most likely learn and amplify that bias in its output [<a href="https://www.theguardian.com/technology/2016/aug/03/algorithm-racist-human-employers-work">12</a>].</p><p>In many countries, anti-discrimination laws prohibit treating people differently depending on protected traits such as ethnicity, age, gender, sexuality, disability, or beliefs. Other features of a person&#8217;s data may be analyzed, but what happens if they are correlated with protected traits? For example, in racially segregated neighborhoods, a person&#8217;s postal code or even their IP address is a strong predictor of race. Put like this, it seems ridiculous to believe that an algorithm could somehow take biased data as input and produce fair and impartial output from it [<a href="https://www.scientificamerican.com/article/how-a-machine-learns-prejudice/">13</a>, <a href="https://www.ftc.gov/system/files/ftc_gov/pdf/EEOC-CRT-FTC-CFPB-AI-Joint-Statement%28final%29.pdf">14</a>]. Yet this belief often seems to be implied by proponents of data-driven decision making; an attitude that has been satirized as &#8220;machine learning is like money laundering for bias&#8221; [<a href="https://idlewords.com/talks/sase_panel.htm">15</a>].</p><p>Predictive analytics systems merely extrapolate from the past; if the past is discriminatory, they codify and amplify that discrimination [<a href="https://www.zdnet.com/article/artificial-intelligence-in-healthcare-is-racist/">16</a>]. If we want the future to be better than the past, moral imagination is required, and that&#8217;s something only humans can provide [<a href="https://www.amazon.com/Weapons-Math-Destruction-Increases-Inequality/dp/0553418815">17</a>]. Data and models should be our tools, not our masters.</p><h4>Responsibility and Accountability</h4><p>Automated decision-making raises the question of responsibility and accountability [<a href="https://www.amazon.com/Weapons-Math-Destruction-Increases-Inequality/dp/0553418815">17</a>]. If a human makes a mistake, they can be held accountable, and the person affected by the decision can appeal. Algorithms make mistakes too, but who is accountable when they go wrong? [<a href="https://www.nytimes.com/2016/08/01/opinion/make-algorithms-accountable.html">18</a>] When a self-driving car causes an accident, who is responsible? If an automated credit scoring algorithm systematically discriminates against people of a particular race or religion, is there any recourse? If a decision by your ML system comes under judicial review, can you explain to the judge how the algorithm made its decision? People should not be able to evade responsibility by blaming an algorithm.</p><p>Credit rating agencies are a classic example of collecting data to make decisions about people. A bad credit score makes life difficult, but at least a credit score is normally based on relevant facts about a person&#8217;s actual borrowing history, and any errors in the record can be corrected (although the agencies normally do not make this easy). Scoring algorithms based on machine learning, however, typically use a much wider range of inputs and are much more opaque, making it harder to understand how a particular decision has come about and whether someone is being treated in an unfair or discriminatory way [<a href="https://arxiv.org/abs/1606.08813">19</a>].</p><p>A credit score summarizes &#8220;how did you behave in the past?&#8221; whereas predictive analytics usually work on the basis of &#8220;who is similar to you, and how did people like you behave in the past?&#8221; Drawing parallels to others&#8217; behavior implies stereotyping people; for example, based on where they live (a close proxy for race and socioeconomic class). What about people put in the wrong bucket? Furthermore, if a decision is incorrect because of erroneous data, recourse is almost impossible [<a href="https://www.amazon.com/Weapons-Math-Destruction-Increases-Inequality/dp/0553418815">17</a>].</p><p>Much data is statistical in nature, which means that even if the probability distribution on the whole is correct, individual cases may well be wrong. For example, if the average life expectancy in your country is 80 years, that doesn&#8217;t mean you&#8217;re expected to drop dead on your 80th birthday. From the average and the probability distribution, you can&#8217;t say much about the age to which someone will live. Similarly, the output of a prediction system is probabilistic and may well be wrong in individual cases.</p><p>A blind belief in the supremacy of data for making decisions is not only delusional, but also positively dangerous. As data-driven decision making becomes more widespread, we will need to figure out how to avoid reinforcing existing biases, how to make algorithms accountable and transparent, and how to fix them when they inevitably make mistakes.</p><p>We will also need to figure out how to realize the positive potential of data and prevent it from being used to harm people. For example, analytics can reveal financial and social characteristics about personal lives. On the one hand, this power could be used to focus aid and support to help those who need it most. On the other hand, it is sometimes used by predatory businesses seeking to identify vulnerable people and sell them risky products such as high-cost loans or worthless college degrees [<a href="https://www.amazon.com/Weapons-Math-Destruction-Increases-Inequality/dp/0553418815">17</a>, <a href="https://www.commerce.senate.gov/wp-content/uploads/media/doc/12.18.13%20Senate%20Commerce%20Committee%20Report%20on%20Data%20Broker%20Industry.pdf">20</a>].</p><h4>Feedback loops</h4><p>Even with predictive applications with less immediately far-reaching effects on people, such as recommendation systems, there are difficult issues that we must confront. When services become good at predicting the content users want to see, they may end up showing them only opinions they already agree with, leading to echo chambers in which stereotypes, misinformation, and polarization can breed. We already know the impact that social media echo chambers can have on election campaigns.</p><p>When predictive analytics affect people&#8217;s lives, particularly pernicious problems arise because of self-reinforcing feedback loops. For example, consider the case of employers using credit scores to evaluate potential hires. You may be a good worker with a good credit score, but suddenly find yourself in financial difficulties due to a misfortune beyond your control. As you miss payments on your bills, your credit score suffers, and you will be less likely to find work. Joblessness pushes you toward poverty, which further worsens your score, making it even harder to find employment [<a href="https://www.amazon.com/Weapons-Math-Destruction-Increases-Inequality/dp/0553418815">17</a>]. It&#8217;s a downward spiral due to poisonous assumptions, hidden behind a camouflage of mathematical rigor and data.</p><p>As another example of a feedback loop, economists found that when gas stations in Germany introduced algorithmic prices, competition was reduced and prices for consumers went up because the algorithms learned to collude [<a href="https://economics.yale.edu/sites/default/files/clark_acex_jan_2021.pdf">21</a>].</p><p>We can&#8217;t always predict when such feedback loops may happen. However, many consequences can be predicted by thinking about an entire system (not just the computerized parts, but also the people interacting with it), in an approach known as &#8220;systems thinking&#8221; [<a href="https://www.amazon.nl/Thinking-Systems-Primer-Diana-Wright/dp/1844077268">22</a>]. We can try to understand how a data analysis system responds to different behaviors, structures, or characteristics. Does the system reinforce and amplify existing differences between people (e.g., making the rich richer or the poor poorer), or does it try to combat injustice? Even with the best intentions, we must beware of the possibility of unintended consequences.</p><h3>Surveillance</h3><p><em>The excerpt below is from another section in Chapter 14, &#8220;Doing the Right Thing&#8221;</em></p><p>As a thought experiment, try replacing the word &#8220;data&#8221; with &#8220;surveillance&#8221;, and observe whether common phrases still sound so good [<a href="https://x.com/hashbreaker/status/598076230437568512">23</a>]. How about this: &#8220;In our surveillance-driven organization we collect real-time surveillance streams and store them in our surveillance warehouse. Our surveillance scientists use advanced analytics and surveillance processing in order to derive new insights.&#8221;</p><p>This thought experiment is unusually polemical for this book, &#8220;<em>Designing <strong>Surveillance</strong>-Intensive Applications</em>&#8221;, but strong words are needed to emphasize this point. In our attempts to make software &#8220;eat the world&#8221; [<a href="https://a16z.com/why-software-is-eating-the-world/">24</a>], we have built the greatest mass surveillance infrastructure ever seen. We are rapidly approaching a world in which every inhabited space contains at least one internet-connected microphone, in the form of smartphones, smart TVs, voice-controlled assistant devices, baby monitors, and even children&#8217;s toys that use cloud-based speech recognition. Many of these devices have terrible security track records [<a href="https://arstechnica.com/information-technology/2016/01/how-to-search-the-internet-of-things-for-photos-of-sleeping-babies/">25</a>].</p><p>What is new compared to the past is that digitization has made it easy to collect large amounts of data about people. Surveillance of our location and movements, our social relationships and communications, our purchases and payments, and our health data has become almost unavoidable. A surveillance organization may end up knowing more about a person than that person knows about themselves; for example, identifying illnesses or economic problems before that individual is aware of them.</p><p>Even the most totalitarian, repressive regimes of the past could only dream of putting a microphone in every room and forcing every person to constantly carry a device capable of tracking their location and movements. Yet the benefits that we get from digital technology are so great that we now voluntarily accept this state of total surveillance. The difference is just that the data is being collected by corporations to provide us with services, rather than government agencies seeking control [<a href="https://www.schneier.com/books/data-and-goliath">26</a>].</p><p>Not all data collection necessarily qualifies as surveillance, but examining it as such can help us understand our relationship with the data collector. Why are we seemingly happy to accept surveillance by corporations? Perhaps you feel you have nothing to hide; in other words, you are totally in line with existing power structures, you are not a marginalized minority, and you needn&#8217;t fear persecution [<a href="https://grugq.tumblr.com/post/142799983558/nothing-to-hide">27</a>]. Not everyone is so fortunate. Or perhaps it&#8217;s because the purpose seems benign; it&#8217;s not overt coercion and conformance, merely better recommendations and more personalized marketing. However, combined with the discussion of predictive analytics from the last section, that distinction seems less clear.</p><p>We are already seeing behavioral data about driving, tracked by vehicles without drivers&#8217; consent, affecting their insurance premiums [<a href="https://www.ftc.gov/news-events/news/press-releases/2025/01/ftc-takes-action-against-general-motors-sharing-drivers-precise-location-driving-behavior-data">28</a>], and health insurance coverage that depends on people wearing a fitness tracking device. When surveillance is used to make decisions that hold sway over important aspects of life, such as insurance coverage or employment, it starts to appear less benign. Data analysis can also reveal surprisingly intrusive things; for example, the movement sensor in a smartwatch or fitness tracker can be used to work out what you are typing (e.g., passwords) with fairly good accuracy [<a href="https://arxiv.org/abs/1512.05616">29</a>]. Sensor accuracy and algorithms for analysis are only going to get better.</p><h2>Takeaways</h2><p>Thanks to Martin for writing this book, and to himself and Chris for doing a revamp for the second edition. The volume is now even more relevant to how we build systems in 2026 and beyond. You can purchase a hard copy from <a href="https://learning.oreilly.com/library/view/designing-data-intensive-applications/9781098119058/">the publisher&#8217;s website</a> or <a href="https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1098119061">Amazon</a>.</p><p>The first edition has a timeless quality because it focused on the fundamentals of large systems, and the new second edition follows the same approach, as laid out in its preface:</p><blockquote><p>&#8220;Although the landscape of technologies for processing and storing data is diverse and fast-changing, the underlying principles endure. If you understand those principles, you&#8217;re in a position to see where each tool fits in, how to make good use of it, and how to avoid its pitfalls. This book focuses on those principles.&#8221;</p></blockquote><p>Since the first edition appeared nine years ago, some things have changed in the tech industry:</p><ul><li><p><strong>Much greater focus on the cloud. </strong>Building large systems on top of cloud infrastructure is more common. This brings lower complexity as cloud primitives hide a lot of implementation complexity, but it also means accepting more risk because when the cloud is down, so is your system.</p></li><li><p><strong>Systems which AI tools build upon are more relevant. </strong>Vector databases, <a href="https://www.geeksforgeeks.org/python/pandas-create-test-and-train-samples-from-dataframe/">DataFrames</a> (for training datasets), and the processing of large amounts of training data with batch processing systems are relevant to anyone building production AI systems.</p></li><li><p><strong>Local-first software. </strong>Martin focuses on this area in his work, and with AI, we could see more demand for running models locally. Operating systems like Ubuntu are also <a href="https://newsletter.pragmaticengineer.com/i/195753987/4-betting-on-local-first-and-plans-for-agentic-workflows">focusing on this</a>.</p></li><li><p><strong>Formal methods. </strong>The advent of AI-generated code means this topic is getting more attention industry-wide, and the second edition covers it.</p></li><li><p><strong>Regulation and legal context. </strong>Regulations like the EU&#8217;s General Data Protection Regulation (GDPR) are something software engineers increasingly need to know about, and the book now covers it.</p></li></ul><p>If I had to summarize the evolution of the book in its second edition, it would be more focus on cloud and AI, and more on local-first software, testing, and how regulations affect engineers. Interestingly, this mirrors how the tech industry has developed over time, too.</p><p>I very much appreciate that the book closes with the final chapter focused on &#8220;doing the right thing&#8221; as a software engineer. Software systems have wide-ranging societal impact, and engineers working on these systems have a great say in what gets built, and how it gets built. As engineers, we owe it the very least to ourselves to consider the broader impact of our decisions &#8212; and doing so might also force us to make important ethical choices. There&#8217;s less discussion of the ethics angle on software engineering: and I&#8217;m glad that Martin and Chris did not shy away from going deeper into this topic.</p><p>If you&#8217;d like to get more background on the book &#8211; and on the hard parts of building large-scale systems &#8211; check out <a href="https://newsletter.pragmaticengineer.com/p/designing-data-intensive-applications">our podcast episode with Martin Kleppmann.</a></p>]]></content:encoded></item><item><title><![CDATA[The Pulse: AI load breaks GitHub – why not other vendors?]]></title><description><![CDATA[Also: Anthropic&#8217;s speed run to break devs&#8217; goodwill, big price increases from GitHub Copilot, Mitchell Hashimoto on the &#8220;building block economy,&#8221; and more]]></description><link>https://newsletter.pragmaticengineer.com/p/the-pulse-github-breaks</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/the-pulse-github-breaks</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Thu, 30 Apr 2026 14:23:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!mdep!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F218f2a28-6c30-4753-8c43-2e33ce891050_1656x1038.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>The Pulse is a series covering events, insights, and trends within Big Tech and startups. Notice an interesting event or trend? Hit reply and share it with me.</em></p><p>Today, we cover:</p><ol><li><p><strong>Load from AI breaks GitHub &#8211; but why not other vendors? </strong>GitHub&#8217;s reliability is less than one nine, and getting worse. Prolific open source contributor, Mitchell Hashimoto, is quitting GitHub because he thinks it&#8217;s not suited for professional work. GitHub&#8217;s leadership blames the 3.5x increase in service load as the cause of degradation &#8211; or it might be self-inflicted.</p></li><li><p><strong>Anthropic&#8217;s speedrun to destroy trust.</strong> Anthropic could do no wrong until recently, but in the past month, that&#8217;s all changed. Silently nerfing Claude Code, banning companies from Claude, and baffling price rises all add to a sense that Anthropic is in its &#8220;extraction&#8221; era of generating more revenue for the same or worse service.</p></li><li><p><strong>Industry pulse. </strong>Dramatic price increases at GitHub Copilot, explosive growth at Codex, Google scrambling to build a good coding model, Cursor might be bought by SpaceX, AI agent deletes car business, and more.</p></li><li><p><strong>Mitchell Hashimoto &amp; the &#8220;building block economy</strong>.<strong>&#8221; </strong>Ghostty&#8217;s creator finds that open source &#8220;building blocks&#8221; are the best way to win massive adoption by software components &#8211; but it&#8217;s got harder to build a business on top of open building blocks.</p></li></ol><p><em>The bottom of this article could be cut off in some email clients. <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-github-breaks">Read the full article uninterrupted, online.</a></em></p><h2>1. Load from AI breaks GitHub &#8211; but why not other vendors?</h2><p>GitHub&#8217;s reliability has been beyond unacceptable recently: last month, third party measurements pinned it at <a href="https://newsletter.pragmaticengineer.com/i/192229275/1-does-github-still-merit-top-git-platform-for-ai-native-development-status">one nine</a> (right at 90%). This month, reliability has been down to <em>zero</em> nines &#8211; 86% &#8211; as per <a href="https://mrshu.github.io/github-statuses/">a third-party tracker</a>, and last week, things got even worse: a frankly embarrassing data integrity incident, more outages, and a partial explanation from GitHub, eventually.</p><h3>Data integrity incident</h3>
      <p>
          <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-github-breaks">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Building Pi, and what makes self-modifying software so fascinating]]></title><description><![CDATA[Mario Zechner, creator of Pi, joins Armin Ronacher to explore AI coding&#8217;s limits, arguing that human judgment still matters most in an agent-driven world.]]></description><link>https://newsletter.pragmaticengineer.com/p/building-pi-and-what-makes-self-modifying</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/building-pi-and-what-makes-self-modifying</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Wed, 29 Apr 2026 14:30:17 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/195661847/609e90b3dfa49402fb98b56be3c601e9.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<h3>Stream the latest episode</h3><p><strong>Listen and watch now on <a href="https://youtu.be/n5f51gtuGHE">YouTube</a>, <a href="https://open.spotify.com/episode/1fDw9cSN5Xx6wkgVQLKTHs">Spotify</a>, and <a href="https://podcasts.apple.com/us/podcast/the-pragmatic-engineer/id1769051199">Apple</a>.</strong> See the episode transcript at the top of this page, and timestamps for the episode at the bottom.</p><h3><strong>Brought to You by</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Gh57!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gh57!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png 424w, https://substackcdn.com/image/fetch/$s_!Gh57!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png 848w, https://substackcdn.com/image/fetch/$s_!Gh57!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png 1272w, https://substackcdn.com/image/fetch/$s_!Gh57!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gh57!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png" width="800" height="70" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:70,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:17133,&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://newsletter.pragmaticengineer.com/i/185094534?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.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_!Gh57!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png 424w, https://substackcdn.com/image/fetch/$s_!Gh57!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png 848w, https://substackcdn.com/image/fetch/$s_!Gh57!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png 1272w, https://substackcdn.com/image/fetch/$s_!Gh57!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>&#8226; <strong><a href="http://statsig.com/pragmatic">Statsig</a></strong> &#8211; &#8288; The unified platform for flags, analytics, experiments, and more. Stop switching between different tools, and have them all in one place.</p><p>&#8226; <strong><a href="https://www.sonarsource.com/pragmatic/?utm_medium=paid&amp;utm_source=pragmaticengineer&amp;utm_campaign=ss-ai&amp;utm_content=podcast-sonar-ai-lp&amp;utm_term=ww-all-x&amp;s_category=Paid&amp;s_source=Paid%20Other&amp;s_origin=pragmaticengineer">Sonar</a> &#8212; </strong>The makers of SonarQube, the industry standard for code verification and automated code review. As AI agents generate extreme volumes of code, verification can&#8217;t be optional: SonarQube acts as the independent, zero&#8209;trust, multi-layered verification engine that checks every line of code against your quality, security, and architectural standards, so only safe, reliable, and auditable code reaches production. <a href="https://www.sonarsource.com/plans-and-pricing/?utm_medium=paid&amp;utm_source=pragmaticengineer&amp;utm_campaign=sq-download&amp;utm_content=podcast-sonar-verification&amp;utm_term=ww-all-x&amp;s_category=Paid&amp;s_source=Paid%20Other&amp;s_origin=pragmaticengineer">Try it out for yourself</a>.</p><p>&#8226; <strong><a href="https://workos.com/">WorkOS</a></strong> &#8211; Designing large systems is about tradeoffs. But one thing isn&#8217;t a tradeoff: enterprise features. WorkOS gives you APIs to ship enterprise features &#8211; SSO, directory sync, RBAC, audit logs &#8211; in days, not months. Visit <a href="http://workos.com">WorkOS.com</a> to learn more.</p><h3><strong>In this episode</strong></h3><p>Mario Zechner is the creator of <a href="https://github.com/badlogic/pi-mono">Pi</a>, a minimalist, self-modifying AI coding agent, that is the foundation upon which OpenClaw (created by Peter Steinberger) is built. Meanwhile, Armin Ronacher is the creator of Flask, and a longtime user of Pi. The pair are also friends.</p><p>I sat down with Mario and Armin for the latest episode of the Pragmatic Engineer Podcast for an interesting conversation about AI and their reservations about it &#8211; even though both are heavily invested in building AI-powered tools.</p><p>Mario explains why he built Pi, and gives his take on why it has become so popular. Armin walks us through how he uses AI tools, including building a game with Pi, and why he always puts human judgment firmly at the heart of his approach.</p><p>We cover the risks of over-automation, the limits of agentic workflows, and why strong engineers with informed judgment still matter. We also get into the challenges of working with code written by non-engineers, and whether open source can withstand a tidal wave of agent-generated code.</p><h3>My observations from the conversation with Mario and Armin</h3><p>Here are 9 of my most interesting takeaways from talking with Armin and Mario:</p><div id="youtube2-n5f51gtuGHE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;n5f51gtuGHE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/n5f51gtuGHE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p><strong>1. Pi was built because Claude Code became unpredictable. </strong>Mario was a big fan of Claude Code at first. But as the team behind it pushed velocity and added features, he found that bugs multiplied and the tool&#8217;s behavior started to change. Mario wanted an AI harness that behaves in a stable, consistent way. He observed that the addition of new features caused Claude Code to act unpredictably, so resolved to add as few features as possible to Pi.</p><p><strong>2. It should be MUCH easier to build specialized tools for specific tasks. </strong>Different projects need different harness types because, as Mario points out, the same hammer is not ideal for every single construction job. As such, Pi is built with the goal of allowing the creation of specialized harnesses. It can modify itself so that a user can create the bespoke harness needed for any task. Mario believes it&#8217;s a preview of how self-modifiable software might look in the future.</p><p><strong>3. Automation bias is one of the biggest risks of working with AI agents.</strong> Once devs confirm that an AI agent can produce acceptable code, they start to review its output less often, even though agents can &#8211; and do! &#8211; produce slop. Mario advises being far more sceptical with agents, and cautions that the quality of their output isn&#8217;t guaranteed, however well they performed previously.</p><p><strong>4. AI agents decrease code quality, but this is not on purpose. </strong>From talking with 30+ engineering teams, Armin found that code quality is down everywhere, and serious projects are shipping with &#8220;vibe slop.&#8221; A potential cause of this is that keeping agentic output clean and of high quality takes <em>deliberate</em> effort, but it&#8217;s not clear to many devs exactly <em>how </em>to do this. There&#8217;s also PR review fatigue and automation bias (the assumption that AI agents invariably generate good code).</p><p><strong>5. New trend: AI makes it harder for senior engineers to reject pointless complexity. </strong>Historically, senior engineers kept software complexity at bay simply by saying &#8220;no&#8221; a lot. But Armin observes that these days, more junior engineers and product managers deploy agent-scripted counterarguments when a senior colleague kicks an idea to the curb. This makes decision-making exhausting, and more bad ideas make it into production as a result.</p><p><strong>6. Junior engineers &gt; AI agents. </strong>Mario points out that, unlike humans, agents don&#8217;t retain lessons in the same way, nor feel the pain of bad code. Junior engineers do, and the pain of maintenance teaches them to simplify interfaces and avoid bad abstractions &#8211; which are both qualities of an effective senior engineer. In this way, a junior engineer is more valuable than an AI agent!</p><p><strong>7. Agents refactor less because they feel no &#8220;pain.&#8221; </strong>Humans rewrite bad interfaces because maintaining them <em>hurts</em>, whereas agents will obliviously churn out and extend a terrible structure, <em>ad infinitum</em>. This is a big reason why AI agents keep adding more tech debt.</p><p><strong>8. Frictionless shipping can actually be harmful. </strong>Armin notes that some friction is desirable; for example, multi-reviewer approvals on critical services, SLO gates (different gates based on the service level objective offered), and migration checklists. The good thing about friction is that it makes humans stop and think.</p><p><strong>9. Does not being in San Francisco help people stay grounded about AI? </strong>I asked Mario how he keeps level-headed about AI while building one of the most popular AI agent harnesses. In response, he credits living in Austria, being a father, and enjoying the great outdoors, as his antidotes to all the hype.</p><h3><strong>The Pragmatic Engineer deepdives relevant for this episode</strong></h3><p>&#8226; <a href="https://newsletter.pragmaticengineer.com/p/the-creator-of-clawd-i-ship-code">The creator of OpenClaw: &#8220;I ship code that I don&#8217;t read&#8221;</a></p><p>&#8226; <a href="https://newsletter.pragmaticengineer.com/p/building-great-sdks">Building great SDKs</a></p><p>&#8226; <a href="https://newsletter.pragmaticengineer.com/p/what-is-inference-engineering">What is inference engineering? Deepdive</a></p><p>&#8226; <a href="https://newsletter.pragmaticengineer.com/p/the-impact-of-ai-on-software-engineers-2026">The impact of AI on software engineers in 2026: key trends</a></p><p>&#8226; <a href="https://newsletter.pragmaticengineer.com/p/cycles-of-disruption-in-the-tech">Cycles of disruption in the tech industry</a></p><p>&#8226; <a href="https://newsletter.pragmaticengineer.com/p/the-ai-engineering-stack">The AI engineering stack</a></p><h3><strong>Timestamps</strong></h3><p>(<a href="https://www.youtube.com/watch?v=n5f51gtuGHE">00:00</a>) Intro</p><p>(<a href="https://www.youtube.com/watch?v=n5f51gtuGHE&amp;t=450s">07:30</a>) How Mario, Armin, and Peter Steinberger met</p><p>(<a href="https://www.youtube.com/watch?v=n5f51gtuGHE&amp;t=915s">15:15</a>) How 30 dev teams use AI agents: learnings</p><p>(<a href="https://www.youtube.com/watch?v=n5f51gtuGHE&amp;t=1310s">21:50</a>) The importance of judgment</p><p>(<a href="https://www.youtube.com/watch?v=n5f51gtuGHE&amp;t=1466s">24:26</a>) Challenges when non-engineers write code</p><p>(<a href="https://www.youtube.com/watch?v=n5f51gtuGHE&amp;t=1710s">28:30</a>) Downsides of over-automation</p><p>(<a href="https://www.youtube.com/watch?v=n5f51gtuGHE&amp;t=1938s">32:18</a>) Pi</p><p>(<a href="https://www.youtube.com/watch?v=n5f51gtuGHE&amp;t=2889s">48:09</a>) OpenClaw + Pi</p><p>(<a href="https://www.youtube.com/watch?v=n5f51gtuGHE&amp;t=3054s">50:54</a>) &#8220;Clankers&#8221;</p><p>(<a href="https://www.youtube.com/watch?v=n5f51gtuGHE&amp;t=3452s">57:32</a>) Open source and AI</p><p>(<a href="https://www.youtube.com/watch?v=n5f51gtuGHE&amp;t=3622s">1:00:22</a>) Complexity as the enemy</p><p>(<a href="https://www.youtube.com/watch?v=n5f51gtuGHE&amp;t=3770s">1:02:50</a>) Building an AI-native startup</p><p>(<a href="https://www.youtube.com/watch?v=n5f51gtuGHE&amp;t=4312s">1:11:52</a>) &#8220;Slow the F down&#8221;</p><p>(<a href="https://www.youtube.com/watch?v=n5f51gtuGHE&amp;t=4600s">1:16:40</a>) MCPs vs. CLI</p><p>(<a href="https://www.youtube.com/watch?v=n5f51gtuGHE&amp;t=5103s">1:25:03</a>) Predictions and staying up to date</p><h3><strong>References</strong></h3><p><strong>Where to find Mario Zechner:</strong></p><p>&#8226; X: <a href="https://x.com/badlogicgames">https://x.com/badlogicgames</a></p><p>&#8226; LinkedIn: <a href="https://www.linkedin.com/in/mariozechner">https://www.linkedin.com/in/mariozechner</a></p><p>&#8226; Website: <a href="https://mariozechner.at">https://mariozechner.at</a></p><p><strong>Where to find Armin Ronacher:</strong></p><p>&#8226; X: <a href="https://x.com/mitsuhiko">https://x.com/mitsuhiko</a></p><p>&#8226; LinkedIn: <a href="https://www.linkedin.com/in/arminronacher">https://www.linkedin.com/in/arminronacher</a></p><p>&#8226; Website: <a href="https://mitsuhiko.at">https://mitsuhiko.at</a></p><p>&#8226; Blog: <a href="https://lucumr.pocoo.org">https://lucumr.pocoo.org</a></p><p><strong>Mentions during the episode:</strong></p><p>&#8226; Python, Go, Rust, TypeScript and AI with Armin Ronacher: <a href="https://newsletter.pragmaticengineer.com/p/python-go-rust-typescript-and-ai">https://newsletter.pragmaticengineer.com/p/python-go-rust-typescript-and-ai</a></p><p>&#8226; Pi: <a href="https://pi.dev">https://pi.dev</a></p><p>&#8226; OpenClaw: <a href="https://openclaw.ai">https://openclaw.ai</a></p><p>&#8226; Flask: <a href="https://flask.palletsprojects.com/en/stable">https://flask.palletsprojects.com/en/stable</a></p><p>&#8226; The creator of Clawd: &#8220;I ship code that I don&#8217;t read&#8221;: <a href="https://newsletter.pragmaticengineer.com/p/the-creator-of-clawd-i-ship-code">https://newsletter.pragmaticengineer.com/p/the-creator-of-clawd-i-ship-code</a></p><p>&#8226; Amiga 500: <a href="https://en.wikipedia.org/wiki/Amiga_500">https://en.wikipedia.org/wiki/Amiga_500</a></p><p>&#8226; i486: <a href="https://timeline.intel.com/1989/meet-the-i486">https://timeline.intel.com/1989/meet-the-i486</a></p><p>&#8226; Peter Steinberger on X: <a href="https://x.com/steipete">https://x.com/steipete</a></p><p>&#8226; Sentry: <a href="https://sentry.io">https://sentry.io</a></p><p>&#8226; Nat Friedman on X: <a href="https://x.com/natfriedman">https://x.com/natfriedman</a></p><p>&#8226; Chroma: <a href="https://www.trychroma.com">https://www.trychroma.com</a></p><p>&#8226; Siemens: <a href="https://www.siemens.com">https://www.siemens.com</a></p><p>&#8226; Y Combinator: <a href="https://www.ycombinator.com">https://www.ycombinator.com</a></p><p>&#8226; The Final Bottleneck: <a href="https://lucumr.pocoo.org/2026/2/13/the-final-bottleneck">https://lucumr.pocoo.org/2026/2/13/the-final-bottleneck</a></p><p>&#8226; Children&#8217;s Learning With Tablet Technology is Often Too Passive: <a href="https://news.utexas.edu/2017/08/22/childrens-learning-with-tablet-technology-is-often-passive">https://news.utexas.edu/2017/08/22/childrens-learning-with-tablet-technology-is-often-passive</a></p><p>&#8226; Amp: <a href="https://ampcode.com">https://ampcode.com</a></p><p>&#8226; OpenCode: <a href="https://opencode.ai">https://opencode.ai</a></p><p>&#8226; Agent Design Is Still Hard: <a href="https://lucumr.pocoo.org/2025/11/21/agents-are-hard">https://lucumr.pocoo.org/2025/11/21/agents-are-hard</a></p><p>&#8226; How Linux is built with Greg Kroah-Hartman: <a href="https://newsletter.pragmaticengineer.com/p/how-linux-is-built-with-greg-kroah">https://newsletter.pragmaticengineer.com/p/how-linux-is-built-with-greg-kroah</a></p><p>&#8226; Mario&#8217;s post on X about complexity: </p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/badlogicgames/status/2031128616545747414&quot;,&quot;full_text&quot;:&quot;your biggest enemy is still complexity. it's also your agent's biggest enemy. but it has no holistic view of your code base, so it keeps adding complexity.\n\nand you think that's how it's supposed to be, because the clanker shat it out, and you don't know the stack.\n\nglhf!&quot;,&quot;username&quot;:&quot;badlogicgames&quot;,&quot;name&quot;:&quot;Mario Zechner&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1553485821767991296/87k3l720_normal.jpg&quot;,&quot;date&quot;:&quot;2026-03-09T22:02:53.000Z&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:25,&quot;retweet_count&quot;:35,&quot;like_count&quot;:406,&quot;impression_count&quot;:47354,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p>&#8226; VibeTunnel: <a href="https://vibetunnel.sh">https://vibetunnel.sh</a></p><p>&#8226; Thoughts on slowing the F down: <a href="https://mariozechner.at/posts/2026-03-25-thoughts-on-slowing-the-fuck-down">https://mariozechner.at/posts/2026-03-25-thoughts-on-slowing-the-fuck-down</a></p><p>&#8226; StackOverflow: <a href="https://stackoverflow.com">https://stackoverflow.com</a></p><p>&#8226; David Cramer on LinkedIn: <a href="https://www.linkedin.com/in/dmcramer">https://www.linkedin.com/in/dmcramer</a></p><p>&#8226; Stainless: <a href="https://www.stainless.com">https://www.stainless.com</a></p><p>&#8212;</p><p>Production and marketing by <a href="https://penname.co/">Pen Name</a>. </p><p></p>]]></content:encoded></item><item><title><![CDATA[How will AI change operating systems? Part 1: Ubuntu and Linux]]></title><description><![CDATA[A deepdive with the Canonical team into how AI is changing Ubuntu, why they&#8217;re betting on local-first LLMs, and a look into other Linux distributions]]></description><link>https://newsletter.pragmaticengineer.com/p/ubuntu-and-ai</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/ubuntu-and-ai</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Tue, 28 Apr 2026 14:25:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4X83!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93367d9-f13e-4630-952d-68caf3c34f4e_1075x612.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>AI is affecting how many of us software engineers build; we&#8217;re prompting more code and producing much more of it. The tools are also adapting, with command-line interfaces gradually becoming more popular than IDEs. But what about operating systems? To find out, I reached out to the leading Linux distribution &#8211; the team at Ubuntu &#8211; and the Windows team, about how AI is changing their operating systems.</p><p>Today&#8217;s article focuses on Linux and Ubuntu, and we&#8217;ll cover Windows in a follow-up issue.<em> Obviously, I reached out to Apple but heard nothing back, unsurprisingly. If you&#8217;re reading this and happen to work at Apple, it&#8217;d be great to learn more!</em></p><p><a href="https://jnsgr.uk/">Jon Seager</a> is VP of Engineering at Canonical &#8211; the company behind Ubuntu &#8211; and has provided new details about what the team there has built for AI support, and some new ideas that they&#8217;re brewing up. Today, we cover:</p><ol><li><p><strong>Hardware enablement: support for GPUs, NPUs and DPUs. </strong>When you turn on a machine with AI accelerators, Ubuntu aims for the hardware to perform at its full potential. This means having proper driver support for PCs and cloud data centers&#8217; computing units.</p></li><li><p><strong>Hardware partnerships. </strong>Working closely with NVIDIA, AMD, and Intel means Ubuntu can support those vendors&#8217; new hardware from release day.</p></li><li><p><strong>CPU architecture variants</strong>. New versions in a CPU family add to, or change, features. An operating system needs to support a new version of the CPU architecture variant in order to fully utilize it. Ubuntu does this for the x86&#8209;64 family, making it a <em>lot</em> more performant on newer CPUs &#8211; while still supporting older CPUs.</p></li><li><p><strong>Local-first bet &amp; plans for agentic workflows</strong>. There&#8217;s a big focus on running local models and using &#8220;inference snaps&#8221; which help choose the right model with the right quantization. There is the intention to support agentic workflows at the OS level, one day, which is currently at the early exploration stage.</p></li><li><p><strong>Developer ecosystem</strong>. There&#8217;s a plan to add more support for AI dev tools, a focus on sandboxing at the OS level, a push to support ARM64 laptops more, and we touch on the popularity of Windows Subsystem for Linux (WSL).</p></li><li><p><strong>Engineering culture. </strong>A skeptical attitude to AI at Canonical has given way to one where experimentation is encouraged and devs<strong> </strong>lean into AI tools, but there are no targets for token usage or amounts of AI-generated code.</p></li><li><p><strong>What other Linux distributions are doing. </strong>Arch Linux takes the &#8220;DIY your AI setup&#8221; approach, Omarchy makes it easy to install AI tools, while Red Hat Enterprise Linux ships with AI integrated into the command-line and support for AI accelerators &amp; popular AI tools.</p></li></ol><p><em>The bottom of this article could be cut off in some email clients. <a href="https://newsletter.pragmaticengineer.com/p/ubuntu-and-ai">Read the full article uninterrupted, online.</a></em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.pragmaticengineer.com/p/ubuntu-and-ai&quot;,&quot;text&quot;:&quot;Read the full article online&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.pragmaticengineer.com/p/ubuntu-and-ai"><span>Read the full article online</span></a></p><h2>1. Hardware enablement: support for GPUs, NPUs &amp; DPUs</h2><p>Jon mentioned he detects a &#8220;Dotcom Boom&#8221;-era vibe in the industry, like around when &#8220;web 1.0&#8221; was created, and indeed, lots of startups today aim to be the Google-style success story of this &#8220;AI era&#8221;. At Canonical, the team asked: what does that mean for Ubuntu as an operating system?</p><p>For instance, should Ubuntu join the competition and try to position itself closer to AI, or keep focusing on what they&#8217;ve done for decades: build an operating system? Jon said:</p><blockquote><p>&#8220;We need to make sure to remain a relatable and accessible system. I don&#8217;t think we should blur the line between application features and the OS itself. So, the most powerful thing we can do is hardware enablement.&#8221;</p></blockquote><p>Hardware enablement means that if a computer (typically, a laptop) has AI-related hardware, Ubuntu should allow it to make full use of it. This involves adding support for GPUs, NPUs, DPUs and other types of accelerator cards. Let&#8217;s briefly go through each.</p><h3>GPUs</h3><p>As is likely widely known by readers, &#8216;GPU&#8217; stands for Graphics Processing Unit. Originally built for graphics rendering, its #1 use case is no longer in video games but for AI training and inference. GPUs come in two forms:</p><ul><li><p>Integrated GPUs: located on the same <a href="https://en.wikipedia.org/wiki/Die_(integrated_circuit)">die</a> (integrated circuit) as the CPU, like GPUs on Apple&#8217;s M-series processors</p></li><li><p>Discrete GPUs: separate chips on their own board; often for gaming, or in standalone GPU rigs for AI and ML workloads</p></li></ul><p>NVIDIA leads the market in discrete GPUs for rigs with its <a href="https://www.nvidia.com/en-us/data-center/technologies/blackwell-architecture/">Blackwell family</a>, and in standalone GPU cards with the <a href="https://www.nvidia.com/en-us/geforce/rtx/">NVIDIA RTX</a> series. Other vendors like AMD offer GPUs for data centers (like the <a href="https://www.amd.com/en/products/accelerators/instinct/mi300.html">Instinct MI300 Series</a>) and for PCs with the <a href="https://www.amd.com/en/products/graphics/desktops/radeon.html">AMD Radeon</a> series.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!unR1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7757d200-11b3-4ad0-ac48-3cebcdcf78aa_1440x970.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!unR1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7757d200-11b3-4ad0-ac48-3cebcdcf78aa_1440x970.png 424w, https://substackcdn.com/image/fetch/$s_!unR1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7757d200-11b3-4ad0-ac48-3cebcdcf78aa_1440x970.png 848w, https://substackcdn.com/image/fetch/$s_!unR1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7757d200-11b3-4ad0-ac48-3cebcdcf78aa_1440x970.png 1272w, https://substackcdn.com/image/fetch/$s_!unR1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7757d200-11b3-4ad0-ac48-3cebcdcf78aa_1440x970.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!unR1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7757d200-11b3-4ad0-ac48-3cebcdcf78aa_1440x970.png" width="1440" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7757d200-11b3-4ad0-ac48-3cebcdcf78aa_1440x970.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1440,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!unR1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7757d200-11b3-4ad0-ac48-3cebcdcf78aa_1440x970.png 424w, https://substackcdn.com/image/fetch/$s_!unR1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7757d200-11b3-4ad0-ac48-3cebcdcf78aa_1440x970.png 848w, https://substackcdn.com/image/fetch/$s_!unR1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7757d200-11b3-4ad0-ac48-3cebcdcf78aa_1440x970.png 1272w, https://substackcdn.com/image/fetch/$s_!unR1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7757d200-11b3-4ad0-ac48-3cebcdcf78aa_1440x970.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Hands full: NVIDIA CEO Jensen Huang with the Blackwell GPU (left) and GB200 superchip. Source: <a href="https://fortune.com/2024/03/19/nvidia-new-blackwell-chip-ai-carbon-footprint-problem/">Forbes</a></em></figcaption></figure></div><h3>NPUs</h3><p>Neural Processing Units (NPUs) are also called &#8220;AI accelerators.&#8221; This is a dedicated block on the System-on-a-chip (SoC), on modern processors especially designed for running <a href="https://newsletter.pragmaticengineer.com/p/what-is-inference-engineering">AI inference</a> efficiently on&#8209;device. Since 2022, many modern processors have had a dedicated NPU block, including all Apple&#8217;s M-series chips (from M1 and up), Intel&#8217;s Core Ultra and Core Ultra &#8220;Series 2&#8221;, AMD&#8217;s Ryzen AI 300 series, and also Qualcomm&#8217;s Snapdragon X Elite and Snapdragon X Plus.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4X83!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93367d9-f13e-4630-952d-68caf3c34f4e_1075x612.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4X83!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93367d9-f13e-4630-952d-68caf3c34f4e_1075x612.png 424w, https://substackcdn.com/image/fetch/$s_!4X83!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93367d9-f13e-4630-952d-68caf3c34f4e_1075x612.png 848w, https://substackcdn.com/image/fetch/$s_!4X83!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93367d9-f13e-4630-952d-68caf3c34f4e_1075x612.png 1272w, https://substackcdn.com/image/fetch/$s_!4X83!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93367d9-f13e-4630-952d-68caf3c34f4e_1075x612.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4X83!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93367d9-f13e-4630-952d-68caf3c34f4e_1075x612.png" width="1075" height="612" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a93367d9-f13e-4630-952d-68caf3c34f4e_1075x612.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:612,&quot;width&quot;:1075,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4X83!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93367d9-f13e-4630-952d-68caf3c34f4e_1075x612.png 424w, https://substackcdn.com/image/fetch/$s_!4X83!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93367d9-f13e-4630-952d-68caf3c34f4e_1075x612.png 848w, https://substackcdn.com/image/fetch/$s_!4X83!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93367d9-f13e-4630-952d-68caf3c34f4e_1075x612.png 1272w, https://substackcdn.com/image/fetch/$s_!4X83!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa93367d9-f13e-4630-952d-68caf3c34f4e_1075x612.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>AMD&#8217;s Ryzen AI Pro Series 3000 processors have dedicated NPUs, like most modern laptop processors</em></figcaption></figure></div><p>A number shared for each NPU is TOPS. TOPS means Tera (trillions) of Operations Per Second, and the said operation is a &#8220;multiply-accumulate&#8221; (MAC) one, which <a href="https://www.qualcomm.com/news/onq/2024/04/a-guide-to-ai-tops-and-npu-performance-metrics">Qualcomm describes as:</a></p><blockquote><p>&#8220;A multiply-accumulate (MAC) operation executes the mathematical formulas at the core of AI workloads. A matrix multiply consists of a series of two fundamental operations: multiplication and addition to an accumulator. A MAC unit can, for example, run one of each per clock cycle, meaning it executes two operations per clock cycle. A given NPU has a set number of MAC units that can operate at varying levels of precision, depending on the NPU&#8217;s architecture.&#8221;</p></blockquote><p>How TOPS is calculated: TOPS = 2 &#215; MAC unit count &#215; Frequency / 1 trillion.</p><p>&#8220;Frequency&#8221; refers to the clock speed (cycles per second) at which an NPU and its MAC units (as well as a CPU or GPU) operate, which directly influences overall performance. Processors at higher frequencies allow for more operations, but higher frequencies also mean more energy consumed, heat generated, and battery life decreased. The TOPS number that&#8217;s quoted for processors is generally the peak operating frequency.</p><p>NPUs are often ideal for low-power, local inference, and for running smaller, local models. They can be useful for things like Local speech&#8209;to&#8209;text (dictation, captions, meeting transcription), video background blur/replacement or auto&#8209;framing, small local language summarization, etc. NPUs are more typical of laptop and PC processors, although some phone processors ship with them like the iPhone (A-series chips) and Google&#8217;s Tensor processor in Pixel phones. Basically, NPUs promise to bring efficiently-running local models on laptops one step closer.</p><h3>DPUs</h3><p>Data Processing Units (DPUs) are typically found in data centers, moving massive amounts of data fast. NVIDIA&#8217;s explanation:</p><blockquote><p>&#8220;The CPU is for general-purpose computing, the GPU is for accelerated computing, and the DPU, which moves data around the data center, does data processing.</p><p>A DPU is a new class of programmable processor that combines three key elements. A DPU is a system on a chip, or SoC, that combines:</p><ul><li><p>An industry-standard, high-performance, software-programmable, multi-core CPU, typically based on the widely used Arm architecture, tightly coupled to the other SoC components.</p></li><li><p>A high-performance network interface capable of parsing, processing and efficiently transferring data at line rate, or the speed of the rest of the network, to GPUs and CPUs.</p></li><li><p>A rich set of flexible and programmable acceleration engines that offload and improve applications&#8217; performance for AI and machine learning, zero-trust security, telecommunications, and storage, among others.&#8221;</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DX7g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36c2607-8ed3-4da3-8fa9-c93d6dbf890d_1500x1020.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DX7g!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36c2607-8ed3-4da3-8fa9-c93d6dbf890d_1500x1020.png 424w, https://substackcdn.com/image/fetch/$s_!DX7g!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36c2607-8ed3-4da3-8fa9-c93d6dbf890d_1500x1020.png 848w, https://substackcdn.com/image/fetch/$s_!DX7g!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36c2607-8ed3-4da3-8fa9-c93d6dbf890d_1500x1020.png 1272w, https://substackcdn.com/image/fetch/$s_!DX7g!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36c2607-8ed3-4da3-8fa9-c93d6dbf890d_1500x1020.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DX7g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36c2607-8ed3-4da3-8fa9-c93d6dbf890d_1500x1020.png" width="1456" height="990" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b36c2607-8ed3-4da3-8fa9-c93d6dbf890d_1500x1020.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:990,&quot;width&quot;:1456,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DX7g!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36c2607-8ed3-4da3-8fa9-c93d6dbf890d_1500x1020.png 424w, https://substackcdn.com/image/fetch/$s_!DX7g!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36c2607-8ed3-4da3-8fa9-c93d6dbf890d_1500x1020.png 848w, https://substackcdn.com/image/fetch/$s_!DX7g!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36c2607-8ed3-4da3-8fa9-c93d6dbf890d_1500x1020.png 1272w, https://substackcdn.com/image/fetch/$s_!DX7g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb36c2607-8ed3-4da3-8fa9-c93d6dbf890d_1500x1020.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>NVIDIA BlueField-3 DPU</em></figcaption></figure></div><p>Several major chipmakers manufacture DPUs, of which NVIDIA&#8217;s BlueField family is the most widespread. Others include AMD Pensando DPUs (Elba, Giglio), and Intel IPU / DPU cards (E2100, E2200 series).</p><p>DPUs are most commonly deployed inside Hyperscale cloud providers (AWS, Azure, GCP, OCI), or in AI and high-performance computing (HPC) data centers, or larger private clouds. DPUs make sense when GPU traffic is huge, or when the network telemetry overhead is so great that it could overwhelm the CPUs processing the data transfer.</p><h2>2. Hardware partnerships</h2><p>It&#8217;s easiest to add support to hardware by working with leading chip manufacturers, so Ubuntu has relationships with hardware vendors for that reason. As a result, the OS sometimes offers day-one support for cutting-edge AI supercomputers.</p><h3>Partnership with NVIDIA</h3><p>In September 2025, Canonical announced it would package and distribute the full NVIDIA CUDA toolkit directly within Ubuntu&#8217;s repositories. This deal collapsed into a single standard <a href="https://linuxize.com/post/how-to-use-apt-command/">apt</a> install, something that had previously been a multi-step manual installation process of downloading from NVIDIA&#8217;s site, importing GPG keys, pinning a separate APT repo &#8211; and praying nothing broke.</p><p>Packaging and distributing the CUDA toolkit makes developing with CUDA easier. From Jon:</p><blockquote><p>&#8220;One of the trickiest things for developers who have to use this tech is the dance of matching the right version of Python, with the right version of CUDA, with the right driver. Projects end up with different versions of CUDA, and then machines end up breaking because the driver configuration gets inadvertently broken along the way.</p><p>The number one thing we can do as an operating system is to make this setup as easy as possible.&#8221;</p></blockquote><p>Ubuntu&#8217;s strategy of working directly with chipmakers seems to be working. NVIDIA recently discontinued its custom NVIDIA DGX OS &#8212; a modified Ubuntu it maintained for years &#8212; and now ships plain Ubuntu. Jon:</p><blockquote><p>&#8220;Previously, NVIDIA shipped NVIDIA DGX OS for which NVIDIA had an agreement with Canonical where they could take Ubuntu, modify it with the kernel modules and software they needed, do some product-specific optimization, and ship that as NVIDIA DGX OS.</p><p>This more recent development sees NVIDIA just shipping Ubuntu as it comes.</p><p>When NVIDIA released the DGX Spark, a $4,000 AI workstation with an ARM64 chipset, it shipped running vanilla Ubuntu as the only supported operating system.&#8221;</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4om0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87eb9b54-c572-4157-8593-a5e8798bd0cc_2048x1298.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4om0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87eb9b54-c572-4157-8593-a5e8798bd0cc_2048x1298.png 424w, https://substackcdn.com/image/fetch/$s_!4om0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87eb9b54-c572-4157-8593-a5e8798bd0cc_2048x1298.png 848w, https://substackcdn.com/image/fetch/$s_!4om0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87eb9b54-c572-4157-8593-a5e8798bd0cc_2048x1298.png 1272w, https://substackcdn.com/image/fetch/$s_!4om0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87eb9b54-c572-4157-8593-a5e8798bd0cc_2048x1298.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4om0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87eb9b54-c572-4157-8593-a5e8798bd0cc_2048x1298.png" width="1456" height="923" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/87eb9b54-c572-4157-8593-a5e8798bd0cc_2048x1298.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:923,&quot;width&quot;:1456,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4om0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87eb9b54-c572-4157-8593-a5e8798bd0cc_2048x1298.png 424w, https://substackcdn.com/image/fetch/$s_!4om0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87eb9b54-c572-4157-8593-a5e8798bd0cc_2048x1298.png 848w, https://substackcdn.com/image/fetch/$s_!4om0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87eb9b54-c572-4157-8593-a5e8798bd0cc_2048x1298.png 1272w, https://substackcdn.com/image/fetch/$s_!4om0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87eb9b54-c572-4157-8593-a5e8798bd0cc_2048x1298.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>NVIDIA DGX Spark AI supercomputer: one of several NVIDIA DGX servers powered by NVIDIA&#8217;s DGX OS</em></figcaption></figure></div><p>At CES 2026 in January, Canonical <a href="https://canonical.com/blog/nvidia-vera-rubin-ubuntu-support">announced</a> Ubuntu support for the NVIDIA Vera Rubin NVL72 rack-scale architecture, with day-one platform readiness in Ubuntu, version <a href="https://documentation.ubuntu.com/release-notes/26.04/">26.04 LTS</a> (Long-Term Support: at least 15 years for enterprise customers).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ORn3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74d5121a-c63e-48eb-8d00-83acb326d458_1200x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ORn3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74d5121a-c63e-48eb-8d00-83acb326d458_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!ORn3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74d5121a-c63e-48eb-8d00-83acb326d458_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!ORn3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74d5121a-c63e-48eb-8d00-83acb326d458_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!ORn3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74d5121a-c63e-48eb-8d00-83acb326d458_1200x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ORn3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74d5121a-c63e-48eb-8d00-83acb326d458_1200x675.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/74d5121a-c63e-48eb-8d00-83acb326d458_1200x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&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;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ORn3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74d5121a-c63e-48eb-8d00-83acb326d458_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!ORn3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74d5121a-c63e-48eb-8d00-83acb326d458_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!ORn3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74d5121a-c63e-48eb-8d00-83acb326d458_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!ORn3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74d5121a-c63e-48eb-8d00-83acb326d458_1200x675.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>The NVIDIA Vera Rubin NVL72 rack</em></figcaption></figure></div><h3>AMD and Intel</h3><p>It&#8217;s clear Ubuntu and NVIDIA enjoy a strong partnership, but Canonical aims to remain neutral, Jon says:</p><blockquote><p>&#8220;We have an amazing partnership with NVIDIA, but we do the same with Intel, the same with AMD, the same with Qualcomm, and the same with MediaTek because in reality there is hardware being released every day, and if we don&#8217;t maintain those partnerships, the ecosystem becomes even more fragmented than it already naturally is.&#8221;</p></blockquote><p>Last December, Ubuntu announced native support for AMD ROCm, and also ships with Intel&#8217;s OpenVINO toolkit. Ubuntu 26.04 LTS will be the first major distribution to natively package all three GPU compute stacks &#8212; NVIDIA, AMD, and Intel &#8212; with long-term enterprise support. Under Ubuntu Pro, ROCm LTS releases receive up to 15 years of security maintenance.</p><p><em>Security maintenance means that if vulnerabilities or critical incompatibilities are discovered in an LTS version, Canonical will patch them even if the upstream vendor no longer supports those versions and no longer backports security patches.</em></p><p>AMD Instinct accelerators are gaining traction in HPCs and sovereign AI deployments, as enterprises look for alternatives to CUDA-locked hardware. AMD&#8217;s SVP and Chief Software Officer, Andrej Zdravkovic, said the partnership would make it &#8220;easier for developers and enterprises to deploy AMD solutions on supported systems.&#8221;</p><p><strong>Chip vendors want to collaborate because it means less work for them to add operating system-level support.</strong> Jon:</p><blockquote><p>&#8220;It&#8217;s a win-win on both ends. Silicon companies are in the business of building the best chips they can, and partnering with Canonical means they have to concentrate on fewer things which are not their core focus. My hope is that partnering with Canonical helps them to focus on what they&#8217;re best at, while enabling us to help with what we&#8217;re best at: integrating, shipping and maintaining a Linux distribution.&#8221;</p></blockquote><h2>3. Architecture variants</h2><p>Modern x86 processors support multiple instruction set generations: x86_64 v1, v2, v3, v4, and v5. ARM has a similar hierarchy. Each generation adds capabilities, such as AVX-512 instructions that accelerate machine learning workloads.</p><p>Let&#8217;s take the x86_64 instruction set. The instruction set is versioned. These are the versions:</p><ul><li><p>For x86_64: v1, v2, v3, v4, v5&#8230;</p></li><li><p>For ARM: ARM v8.2, v8.3, v9&#8230;</p></li></ul><p><strong>Until recently, Ubuntu ran slower on newer CPUs in order to keep supporting older ones. </strong>So, when installing Ubuntu compiled for AMD64, the OS supported architecture variants for AMD64 v1.</p><p>Supporting v1 has the advantage that the oldest of AMD64 processors can run this Ubuntu version. But if Ubuntu decided to support v2 instructions, then v1 processors could not run the OS! The OS did not use the new instructions; for example, a modern processor with hardware accelerators like AVX-512, didn&#8217;t use them.</p><p><strong>Canonical has reworked its build infrastructure to produce binaries with </strong><em><strong>specific</strong></em><strong> architecture variant support.</strong> So, in the case of running an x86_64 v3 compatible processor, you can download an Ubuntu OS variant that&#8217;s compiled specifically for x86_64 v3.</p><p>One tradeoff the Ubuntu team had to make was building binaries several times, which takes up more processing time and storage at their end. Then again, the Ubuntu team doing this once means that users don&#8217;t need to do recompilation, which made it an easy tradeoff, Jon told me.</p><p>Now, Ubuntu supports x86_64 v3 as an architecture variant and plans to do more. Jon says:</p><blockquote><p>&#8220;Today, we&#8217;ve released x86_64 v3 as a variant, but the capability in our build and delivery pipelines unlocks the ability to add variants for the next RISC-V RVA versions, for ARMv9, ARMv10, ARMv11 and so on.</p><p>We will start now onboarding variants to make sure that when you go and buy your latest Snapdragon laptop, your operating system and all of the parts of it are using the silicon to its fullest.&#8221;</p></blockquote><p><strong>Adding support for architecture variants was a significant undertaking. </strong>Jon explains:</p><blockquote><p>&#8220;This work was especially complex because combined with having the hardware physically available in the build farm, Canonical also needed to make the build scheduler aware, and thread the capability through the build systems of Debian packages, Snaps, OCI images, virtual machine images, etc. As it stands, the capability exists for Debian packages, and support for further package types will land shortly.</p><p>In addition to the build infrastructure, work needed to be done on downstream package managers (apt, snap, &#8230;) and schedulers to ensure they pull the right version of packages, and consideration needs to be given to what happens if a VM containing x86_64 v3 code ends up trying to boot on v1 hardware, and so on.&#8221;</p></blockquote><h2>4. Betting on local-first &amp; plans for agentic workflows</h2><p>If you&#8217;ve tried to run an LLM locally on your machine, you&#8217;ll know it comes with friction. Jon:</p>
      <p>
          <a href="https://newsletter.pragmaticengineer.com/p/ubuntu-and-ai">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Pulse: AI token spending out of control – what’s next?]]></title><description><![CDATA[Details from 15 tech companies on the rapid growth of token spend, and their responses to it. Also: AI vendors can&#8217;t keep up with demand, plummeting morale at Meta, and more.]]></description><link>https://newsletter.pragmaticengineer.com/p/the-pulse-ai-token-spending-out-of</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/the-pulse-ai-token-spending-out-of</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Thu, 23 Apr 2026 16:51:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RLFW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a69a14-0903-4f04-a1d4-13222f40c4ee_1834x1074.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hello from Florida &#8211; today and tomorrow, I&#8217;m at React Miami. I&#8217;ve always wanted to attend this conference, and finally made it happen. If you&#8217;re around, say hi!</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_!kpwS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb122385b-0692-46ab-9650-dd7901513149_1488x1344.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kpwS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb122385b-0692-46ab-9650-dd7901513149_1488x1344.png 424w, https://substackcdn.com/image/fetch/$s_!kpwS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb122385b-0692-46ab-9650-dd7901513149_1488x1344.png 848w, https://substackcdn.com/image/fetch/$s_!kpwS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb122385b-0692-46ab-9650-dd7901513149_1488x1344.png 1272w, https://substackcdn.com/image/fetch/$s_!kpwS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb122385b-0692-46ab-9650-dd7901513149_1488x1344.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kpwS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb122385b-0692-46ab-9650-dd7901513149_1488x1344.png" width="1456" height="1315" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b122385b-0692-46ab-9650-dd7901513149_1488x1344.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1315,&quot;width&quot;:1456,&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_!kpwS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb122385b-0692-46ab-9650-dd7901513149_1488x1344.png 424w, https://substackcdn.com/image/fetch/$s_!kpwS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb122385b-0692-46ab-9650-dd7901513149_1488x1344.png 848w, https://substackcdn.com/image/fetch/$s_!kpwS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb122385b-0692-46ab-9650-dd7901513149_1488x1344.png 1272w, https://substackcdn.com/image/fetch/$s_!kpwS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb122385b-0692-46ab-9650-dd7901513149_1488x1344.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">(L-R): Myself, NeetCode founder, Navdeep Singh, &amp; YouTuber &amp; Twitch streamer, ThePrimeagen at React Miami</figcaption></figure></div><p>Let&#8217;s get to today&#8217;s topics:</p><ol><li><p><strong>New trend: token spend breaks budgets &#8211; what next? </strong>In the past 2-3 months, spending on AI agents has exploded at many tech companies, and the ramifications of this are starting to dawn on engineering leaders. We&#8217;ve sourced details from 15 companies, including the different ways they are coping with this realization.</p></li><li><p><strong>New trend: more AI vendors can&#8217;t keep up with demand. </strong>Related to massively increased spending, GitHub Copilot and Anthropic are starting to limit less-profitable individual users, so they can serve business users whose spend has easily 10x&#8217;d in the last few months. The exception is OpenAI and Codex.</p></li><li><p><strong>Morale at Meta hits all-time low? </strong>Business is booming but devs at Meta are furious and worried due to looming layoffs, and an invasive tracking program rolled out to all US employees.</p></li></ol><h2>1. New trend: token spend breaks budgets &#8211; what next?</h2>
      <p>
          <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-ai-token-spending-out-of">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Designing Data-intensive Applications with Martin Kleppmann]]></title><description><![CDATA[Martin Kleppmann on scaling, his updated Designing Data-Intensive Applications, and what&#8217;s next for AI-era systems.]]></description><link>https://newsletter.pragmaticengineer.com/p/designing-data-intensive-applications</link><guid isPermaLink="false">https://newsletter.pragmaticengineer.com/p/designing-data-intensive-applications</guid><dc:creator><![CDATA[Gergely Orosz]]></dc:creator><pubDate>Wed, 22 Apr 2026 16:19:26 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/194990093/b984a6b1c943fb163612882a754d2ac8.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<h3>Stream the latest episode</h3><p><strong>Listen and watch now on <a href="https://youtu.be/SVOrURyOu_U">YouTube</a>, <a href="https://open.spotify.com/episode/0iJ8NpuQvAeO9Yhp41givL">Spotify</a>, and <a href="https://podcasts.apple.com/us/podcast/designing-data-intensive-applications-with-martin/id1769051199?i=1000763097607">Apple</a>.</strong> See the episode transcript at the top of this page, and timestamps for the episode at the bottom.</p><h3><strong>Brought to You by</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Gh57!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gh57!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png 424w, https://substackcdn.com/image/fetch/$s_!Gh57!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png 848w, https://substackcdn.com/image/fetch/$s_!Gh57!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png 1272w, https://substackcdn.com/image/fetch/$s_!Gh57!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gh57!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png" width="800" height="70" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:70,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:17133,&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://newsletter.pragmaticengineer.com/i/185094534?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.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_!Gh57!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png 424w, https://substackcdn.com/image/fetch/$s_!Gh57!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png 848w, https://substackcdn.com/image/fetch/$s_!Gh57!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png 1272w, https://substackcdn.com/image/fetch/$s_!Gh57!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9835d46-a4d0-40e1-a16b-dba8068fd6ad_800x70.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>&#8226; <strong><a href="http://statsig.com/pragmatic">Statsig</a></strong> &#8211; &#8288; The unified platform for flags, analytics, experiments, and more. Stop switching between different tools, and have them all in one place.</p><p>&#8226; <strong><a href="https://www.sonarsource.com/pragmatic/?utm_medium=paid&amp;utm_source=pragmaticengineer&amp;utm_campaign=ss-ai&amp;utm_content=podcast-sonar-ai-lp&amp;utm_term=ww-all-x&amp;s_category=Paid&amp;s_source=Paid%20Other&amp;s_origin=pragmaticengineer">Sonar</a></strong> &#8211; The makers of SonarQube, the industry standard for code verification and automated code review. Sonar helps teams close the &#8220;architecture gap&#8221; by preventing code complexity and structural decay. <a href="https://www.sonarsource.com/solutions/architecture/?utm_medium=paid&amp;utm_source=pragmaticengineer&amp;utm_campaign=ss-sonar-architecture26&amp;utm_content=podcast-sonar-architecture&amp;utm_term=ww-all-x&amp;s_category=Paid&amp;s_source=Paid%20Other&amp;s_origin=pragmaticengineer">Learn how Sonar</a> is empowering the Agent Centric Development Cycle with new architecture management capabilities that ensure both humans and AI agents respect your system&#8217;s blueprint.</p><p>&#8226; <strong><a href="https://workos.com/">WorkOS</a></strong> &#8211; Designing large systems is about tradeoffs. But one thing isn&#8217;t a tradeoff: enterprise features. WorkOS gives you APIs to ship enterprise features &#8211; SSO, directory sync, RBAC, audit logs &#8211; in days, not months. Visit <a href="http://workos.com">WorkOS.com</a> to learn more.</p><h3><strong>In this episode</strong></h3><p><a href="https://martin.kleppmann.com">Martin Kleppmann</a> is a researcher and the author of <a href="https://learning.oreilly.com/library/view/designing-data-intensive-applications/9781098119058/">Designing Data-Intensive Applications</a>, one of the most influential books on modern distributed systems. As of this month, the second, heavily <a href="https://learning.oreilly.com/library/view/designing-data-intensive-applications/9781098119058/">updated edition of the book is out</a>.</p><p>In this episode of Pragmatic Engineer, we discuss Martin&#8217;s career in tech building startups, how he ended up writing this iconic book, and what he&#8217;s focused on, these days, after moving from industry, into academia.</p><p>We talk about the tradeoffs behind modern infrastructure, how the cloud has changed what it means to scale, and the thinking behind Designing Data-Intensive Applications, including what&#8217;s changing in the second edition.</p><p>Martin reflects on lessons from building startups like Rapportive, which he sold to LinkedIn, and shares how his experience in both academia and industry shaped his perspective.</p><p>We also explore what&#8217;s ahead: why formal verification may become more important in an AI-assisted world, the challenges of building local-first software, and his recent research into using cryptography to improve transparency in supply chains without exposing sensitive data.</p><h3><strong>Key observations from Martin</strong></h3><p>Here are 12 of my most interesting takeaways from talking with Martin:</p><p><strong>1. Seeing Kafka as it was built at LinkedIn heavily shaped the ideas behind the book.</strong> Kafka (a popular event streaming platform) was open-sourced while Martin was at LinkedIn. Seeing this large system up close helped Martin build a mental model of how various data systems fit together, what they have in common, and their fundamental principles.</p><p><strong>2. Martin wrote the book because he wished he had this resource when they were &#8220;drowning&#8221; in design decisions at his startup.</strong> At Rapportive, they hit database performance problems and were searching in the dark, with no idea what to do, because they lacked foundations. Martin wrote the book, so hopefully others won&#8217;t have to learn the fundamentals the hard way that his team did.</p><p><strong>3. Knowing system internals as a superpower for application developers.</strong> Martin maintains that Designing Data-Intensive Applications is not a book for people who build databases or even infrastructure, but it&#8217;s helpful for application developers to develop an intuition for making good design decisions and debugging performance issues they will encounter.</p><p><strong>4. Multi-region and multi-cloud are risk/cost trade-offs, not best practices. </strong>Martin does not believe that there is a &#8220;best practice&#8221; in deciding whether to go multi-region or multi-cloud. This decision is a tradeoff between risk and costs. It&#8217;s a business decision to be made. Designing Data-Intensive Applications gives engineers the vocabulary to articulate the tradeoffs, not to dictate answers.</p><p><strong>5. Scaling </strong><em><strong>down</strong></em><strong> can be as challenging as scaling up</strong>. When talking about scaling systems, most engineers associate this with scaling up. But building a system that can operate efficiently and scale down when there&#8217;s less traffic is an exciting (and challenging) problem as well! Solutions like Serverless are valuable building blocks for scaling down efficiently.</p><p><strong>6. Replication for fault tolerance is more relevant these days than sharding.</strong> Though the book has a full chapter on sharding, Martin said that the cloud has reduced the need for manual sharding for the majority of teams. This is also because machines are increasingly bigger, and more workloads fit on a single machine. Sharding across machines is increasingly a specialist concern; replication for fault tolerance, however, is still relevant at every scale.</p><p><strong>7. MapReduce might be &#8220;dead,&#8221; but it is still worth knowing about.</strong> The second edition of the book cut most MapReduce coverage because Martin observed that, these days, practically nobody uses it: technologies like Spark and Flink have replaced MapReduce. The second edition of the book has a reference to MapReduce purely as a learning tool, for understanding partitioned batch systems.</p><p><strong>8. Distributed systems theory makes deliberately paranoid assumptions: this is on purpose! </strong>The theory assumes that there&#8217;s no upper bound on how long it might take for a message to go over the network:  it might arrive in 100 microseconds or 10 years. Clocks, crashes, and network delays all get similarly worst-case treatment. Occasionally, reality will hit some of these extremes!</p><p><strong>9. An engineer&#8217;s job is increasingly about surfacing risks &#8212; including societal ones &#8212; to decision-makers. </strong>Martin believes that engineers need to articulate tradeoffs in a way that enables business leaders to make informed decisions. These tradeoffs include reputational and societal risks, not just technical ones.</p><p><strong>10. Formal verification was too expensive to use across the industry, and LLMs may change this. </strong>Martin said that he never used formal verification in his time in the industry because it was too time-consuming. Now he sees two things happening at once:</p><ul><li><p>LLMs are producing so much code that human review becomes the bottleneck</p></li><li><p>LLMs are getting good at writing formal proofs as well</p></li></ul><p>Put both together, and we might see more formal verification happening!</p><p><strong>11. Building local-first software has difficult engineering challenges.</strong> Decentralized access control sounds trivial, but it becomes pretty hard without a single server to arbitrate. For example, a revoked user can make a concurrent edit, and different devices will disagree about what happened. Martin is currently working in this problem space.</p><p>&#8203;<strong>12. Industry and academia dismiss each other, and this is not great for either field! </strong>The tech industry calls academia &#8220;theoretical&#8221; and misses useful research. Academia, in turn, often calls industry work just engineering and misses the interesting problems they solve. Martin has worked in both industry and academia, and would like to build better respect in both directions. The best PhD students he works with have a few years of real engineering experience.</p><h3><strong>The Pragmatic Engineer deepdives relevant for this episode</strong></h3><p>&#8226; <a href="https://newsletter.pragmaticengineer.com/p/bluesky">Building Bluesky: a distributed social network</a> (Martin is an advisor at Bluesky)</p><p>&#8226; <a href="https://newsletter.pragmaticengineer.com/p/uber-move-to-cloud">Inside Uber&#8217;s move to the cloud</a></p><p>&#8226; <a href="https://newsletter.pragmaticengineer.com/p/the-history-of-servers-the-cloud?">The history of servers, the cloud, and what&#8217;s next</a></p><p>&#8226; <a href="https://newsletter.pragmaticengineer.com/p/the-past-and-future-of-backend-practices">The past and future of modern backend practices</a></p><p>&#8226; <a href="https://newsletter.pragmaticengineer.com/p/how-kubernetes-is-built-with-kat">How Kubernetes is built</a></p><h3><strong>Timestamps</strong></h3><p>(<a href="https://www.youtube.com/watch?v=SVOrURyOu_U">00:00</a>) Early career</p><p>(<a href="https://www.youtube.com/watch?v=SVOrURyOu_U&amp;t=346s">05:46</a>) Building Rapportive</p><p>(<a href="https://www.youtube.com/watch?v=SVOrURyOu_U&amp;t=647s">10:47</a>) Working at LinkedIn</p><p>(<a href="https://www.youtube.com/watch?v=SVOrURyOu_U&amp;t=849s">14:09</a>) Writing Designing Data-Intensive Applications</p><p>(<a href="https://www.youtube.com/watch?v=SVOrURyOu_U&amp;t=1380s">23:00</a>) Reliability, scalability, and repeatability</p><p>(<a href="https://www.youtube.com/watch?v=SVOrURyOu_U&amp;t=1584s">26:24</a>) DDIA: the second edition</p><p>(<a href="https://www.youtube.com/watch?v=SVOrURyOu_U&amp;t=1850s">30:50</a>) Tradeoffs of using cloud services</p><p>(<a href="https://www.youtube.com/watch?v=SVOrURyOu_U&amp;t=2342s">39:02</a>) How the cloud changed scaling</p><p>(<a href="https://www.youtube.com/watch?v=SVOrURyOu_U&amp;t=2573s">42:53</a>) The trouble with distributed systems</p><p>(<a href="https://www.youtube.com/watch?v=SVOrURyOu_U&amp;t=2942s">49:02</a>) Ethics for software engineers</p><p>(<a href="https://www.youtube.com/watch?v=SVOrURyOu_U&amp;t=3165s">52:45</a>) Formal verification</p><p>(<a href="https://www.youtube.com/watch?v=SVOrURyOu_U&amp;t=3612s">1:00:12</a>) Academia vs. industry</p><p>(<a href="https://www.youtube.com/watch?v=SVOrURyOu_U&amp;t=3830s">1:03:50</a>) Local-first software</p><p>(<a href="https://www.youtube.com/watch?v=SVOrURyOu_U&amp;t=4190s">1:09:50</a>) Computer science education</p><p>(<a href="https://www.youtube.com/watch?v=SVOrURyOu_U&amp;t=4712s">1:18:32</a>) Martin&#8217;s current research and advice</p><h3><strong>References</strong></h3><p><strong>Where to find Martin: </strong></p><p>&#8226; LinkedIn: <a href="https://www.linkedin.com/in/martinkleppmann">https://www.linkedin.com/in/martinkleppmann</a></p><p>&#8226; Bluesky: <a href="https://bsky.app/profile/martin.kleppmann.com">https://bsky.app/profile/martin.kleppmann.com</a></p><p>&#8226; Website: <a href="https://martin.kleppmann.com">https://martin.kleppmann.com</a></p><p>&#8226; Distributed Systems lecture series: <a href="https://www.youtube.com/playlist?list=PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB">https://www.youtube.com/playlist?list=PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB</a></p><p>&#8226; Designing Data Intensive Applications, 2nd edition: <a href="https://learning.oreilly.com/library/view/designing-data-intensive-applications/9781098119058">https://learning.oreilly.com/library/view/designing-data-intensive-applications/9781098119058</a></p><p><strong>Mentions during the episode:</strong></p><p>&#8226; Selenium: <a href="https://www.selenium.dev">https://www.selenium.dev</a></p><p>&#8226; SauceLabs: <a href="https://saucelabs.com">https://saucelabs.com</a></p><p>&#8226; Rapportive on YC&#8217;s website: <a href="https://www.ycombinator.com/companies/rapportive">https://www.ycombinator.com/companies/rapportive</a></p><p>&#8226; Kafka: <a href="https://engineering.linkedin.com/teams/data/data-infrastructure/streams/kafka">https://engineering.linkedin.com/teams/data/data-infrastructure/streams/kafka</a></p><p>&#8226; The Log: What every software engineer should know about real-time data&#8217;s unifying abstraction: <a href="https://engineering.linkedin.com/teams/data/data-infrastructure/streams/kafka">https://engineering.linkedin.com/teams/data/data-infrastructure/streams/kafka</a></p><p>&#8226; Materialized View: </p><div class="embedded-publication-wrap" data-attrs="{&quot;id&quot;:2070040,&quot;name&quot;:&quot;Materialized View&quot;,&quot;logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!U8M8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a9aa647-ffea-4b83-8a65-2f854d4e5de3_720x720.png&quot;,&quot;base_url&quot;:&quot;https://materializedview.io&quot;,&quot;hero_text&quot;:&quot;Software infrastructure hot takes, projects, papers, developer interviews, and deep dives. Brought to you by Chris Riccomini.&quot;,&quot;author_name&quot;:&quot;Chris&quot;,&quot;show_subscribe&quot;:true,&quot;logo_bg_color&quot;:&quot;#ffffff&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPublicationToDOMWithSubscribe"><div class="embedded-publication show-subscribe"><a class="embedded-publication-link-part" native="true" href="https://materializedview.io?utm_source=substack&amp;utm_campaign=publication_embed&amp;utm_medium=web"><img class="embedded-publication-logo" src="https://substackcdn.com/image/fetch/$s_!U8M8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a9aa647-ffea-4b83-8a65-2f854d4e5de3_720x720.png" width="56" height="56" style="background-color: rgb(255, 255, 255);"><span class="embedded-publication-name">Materialized View</span><div class="embedded-publication-hero-text">Software infrastructure hot takes, projects, papers, developer interviews, and deep dives. Brought to you by Chris Riccomini.</div><div class="embedded-publication-author-name">By Chris</div></a><form class="embedded-publication-subscribe" method="GET" action="https://materializedview.io/subscribe?"><input type="hidden" name="source" value="publication-embed"><input type="hidden" name="autoSubmit" value="true"><input type="email" class="email-input" name="email" placeholder="Type your email..."><input type="submit" class="button primary" value="Subscribe"></form></div></div><p>&#8226; The Missing README: A Guide for the New Software Engineer: <a href="https://www.amazon.com/Missing-README-Guide-Software-Engineer/dp/1718501838">https://www.amazon.com/Missing-README-Guide-Software-Engineer/dp/1718501838</a></p><p>&#8226; How AWS S3 is built: <a href="https://newsletter.pragmaticengineer.com/p/how-aws-s3-is-built">https://newsletter.pragmaticengineer.com/p/how-aws-s3-is-built</a></p><p>&#8226; MapReduce: <a href="https://en.wikipedia.org/wiki/MapReduce">https://en.wikipedia.org/wiki/MapReduce</a></p><p>&#8226; Prediction: AI will make formal verification go mainstream: <a href="https://martin.kleppmann.com/2025/12/08/ai-formal-verification.html">https://martin.kleppmann.com/2025/12/08/ai-formal-verification.html</a></p><p>&#8226; Isabelle proof assistant: <a href="https://isabelle.in.tum.de">https://isabelle.in.tum.de</a></p><p>&#8226; Rocq: <a href="https://rocq-prover.org">https://rocq-prover.org</a></p><p>&#8226; Lean: <a href="https://lean-lang.org">https://lean-lang.org</a></p><p>&#8226; TLA+: <a href="https://github.com/tlaplus">https://github.com/tlaplus</a></p><p>&#8226; FizzBee: <a href="https://fizzbee.io">https://fizzbee.io</a></p><p>&#8226; Local-First Software: You Own Your Data, in spite of the Cloud: <a href="https://martin.kleppmann.com/papers/local-first.pdf">https://martin.kleppmann.com/papers/local-first.pdf</a></p><p>&#8226; How AI assistance impacts the formation of coding skills: <a href="https://www.anthropic.com/research/AI-assistance-coding-skills">https://www.anthropic.com/research/AI-assistance-coding-skills</a></p><p>&#8226; Cryptography: <a href="https://en.wikipedia.org/wiki/Cryptography">https://en.wikipedia.org/wiki/Cryptography</a></p><p>&#8212;</p><p>Production and marketing by <a href="https://penname.co/">Pen Name</a>. </p><p></p>]]></content:encoded></item></channel></rss>