<?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[Long Game / Pawel Dolega]]></title><description><![CDATA[Technology & Business]]></description><link>https://www.pdole.ga</link><image><url>https://substackcdn.com/image/fetch/$s_!Vkab!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68dbdbc-5219-466d-a3e1-f6fff18c8c4b_1024x1024.png</url><title>Long Game / Pawel Dolega</title><link>https://www.pdole.ga</link></image><generator>Substack</generator><lastBuildDate>Wed, 05 Aug 2026 20:08:02 GMT</lastBuildDate><atom:link href="https://www.pdole.ga/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Pawel Dolega 👊🏾]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[pdolega@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[pdolega@substack.com]]></itunes:email><itunes:name><![CDATA[Pawel Dolega 👊🏾]]></itunes:name></itunes:owner><itunes:author><![CDATA[Pawel Dolega 👊🏾]]></itunes:author><googleplay:owner><![CDATA[pdolega@substack.com]]></googleplay:owner><googleplay:email><![CDATA[pdolega@substack.com]]></googleplay:email><googleplay:author><![CDATA[Pawel Dolega 👊🏾]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Parallel Agentic Development, Mid-2026]]></title><description><![CDATA[The tab-renaming era is over]]></description><link>https://www.pdole.ga/p/parallel-agentic-development-mid</link><guid isPermaLink="false">https://www.pdole.ga/p/parallel-agentic-development-mid</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Tue, 04 Aug 2026 08:19:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-8Ed!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f14f28a-2e90-4773-b649-5887753d1ecc_1060x754.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-8Ed!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f14f28a-2e90-4773-b649-5887753d1ecc_1060x754.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-8Ed!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f14f28a-2e90-4773-b649-5887753d1ecc_1060x754.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-8Ed!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f14f28a-2e90-4773-b649-5887753d1ecc_1060x754.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-8Ed!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f14f28a-2e90-4773-b649-5887753d1ecc_1060x754.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-8Ed!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f14f28a-2e90-4773-b649-5887753d1ecc_1060x754.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-8Ed!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f14f28a-2e90-4773-b649-5887753d1ecc_1060x754.jpeg" width="1060" height="754" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f14f28a-2e90-4773-b649-5887753d1ecc_1060x754.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:754,&quot;width&quot;:1060,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:223461,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/209661085?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f14f28a-2e90-4773-b649-5887753d1ecc_1060x754.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-8Ed!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f14f28a-2e90-4773-b649-5887753d1ecc_1060x754.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-8Ed!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f14f28a-2e90-4773-b649-5887753d1ecc_1060x754.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-8Ed!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f14f28a-2e90-4773-b649-5887753d1ecc_1060x754.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-8Ed!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f14f28a-2e90-4773-b649-5887753d1ecc_1060x754.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Detroit Industry Murals, North Wall by Diego Rivera &#8212; placed in Detroit Institute of Arts, commissioned by Edsel Ford (Henry&#8217;s son). The original parallel agentic environment</figcaption></figure></div><p><span>Mid-2026, and we seem to be in an interesting situation. On one hand we have people claiming to run hundreds of agents single-handedly and produce millions of lines of code in a short span of time. On the other hand, we have people using their terminals with tabs named 1-2-3 to keep track of their AI agents, scratching their heads about how you would run 10+ agents in parallel and maintain your sanity at the same time. Naturally, most of the former claims come from LinkedIn influencers who haven&#8217;t built shit and are selling courses or paid services. It is important not to dismiss that side of the story entirely though &#8212; there are also genuine builders in that camp shipping production-grade stuff, and some of them have discovered genuinely useful tools and practices along the way.</span></p><p><span>Speaking about the tools and practices &#8212; there is a class of tools that has been popping up wherever you look since 2025. For the lack of a better term I&#8217;d call them a Parallel Agentic Environment (or Parallel Agentic Coding tool). They are not the remedy for all the pains of agentic development &#8212; but I do believe they could easily raise the limit from managing a handful of agents to tens of them, and still being in control.</span></p><h1><span>What&#8217;s a parallel agentic environment</span></h1><p><span>Before we start, let&#8217;s cover the definition. What is a Parallel Agentic Environment? This is a tricky question, because as is usually the case with emerging categories it depends who you ask &#8212; especially with a hefty dose of current AI hype and money flowing in, it is sometimes difficult to separate marketing from reality. Additionally, it is a moving target &#8212; it evolves as the market matures, and naturally the tools will likely capture a wider feature surface over time.</span></p><p><span>For the sake of this article I&#8217;ll define it as: a Parallel Agentic Environment is a tool that lets one developer run multiple AI coding agents at the same time, even on the same codebase, without them tripping over each other (or over you), usually through some sort of app / IDE run locally. This is necessarily a broad definition, but we&#8217;ll get into what it means on a more tangible level.</span></p><p><span>It is a surprisingly rich category. The most popular products and the most clear-cut for this category are:</span></p><ul><li><p><a href="http://superset.sh"><span>Superset</span></a></p></li><li><p><a href="https://onorca.dev"><span>Orca</span></a></p></li><li><p><a href="https://conductor.build"><span>Conductor</span></a></p></li><li><p><a href="http://devswarm.ai"><span>DevSwarm</span></a></p></li></ul><p><span>In fact there are many more that are somewhat similar but have a unique angle to it. Let&#8217;s just name a few that definitely feel different, and yet have some undeniable overlap:</span></p><ul><li><p><a href="https://nimbalyst.com/"><span>Nimbalyst</span></a><span> (previously Crystal) &#8212; an interesting take on the visual integration (charts and flows)</span></p></li><li><p><a href="https://cmux.com/"><span>cmux</span></a><span> &#8212; technically multiplexing terminal, but coincidentally could be used as a basic multi-coding agent tool. Side note: multiplexing terminals are an interesting beast on their own &#8212; recently </span><a href="https://mitchellh.com/writing/superlogical"><span>we&#8217;ve heard about Mitchel Hashimoto himself founding a new company in that space</span></a></p></li><li><p><a href="https://www.superconductor.com/"><span>Superconductor</span></a><span> &#8212; a step toward team development, and way closer to Software Factory category (which I&#8217;ll mention later)</span></p></li><li><p><a href="https://cursor.com/"><span>Cursor</span></a><span> &#8212; even Cursor over time started to adopt many of the features outlined in this group (not to mention, that you can use Cursor Agent within Parallel Agentic Environments).</span></p></li></ul><p><span>I&#8217;ve likely missed some &#8212; I focused predominantly on the ones I had some hands-on experience with. Tens of different tools in that space already exist, both open source and commercial (which, by the way, is a very clear signal of how crowded the category is).</span></p><p><span>Surprisingly the typical Parallel Agentic Environment all landed independently on the very similar set of primitives. In practice these are four broad groups of capabilities:</span></p><ul><li><p><strong><span>Parallelism</span></strong><span>: each agent works in its own isolated copy of the repo &#8212; a git worktree seems to be the standard &#8212; so their changes never collide on disk.</span></p></li><li><p><strong><span>Grouping</span></strong><span>: there&#8217;s a single surface where you can see what all of them are doing, review their diffs, and steer them with clearly segregated agents, terminal windows, logs and be notified with notifications when agents finish work or require user feedback.</span></p></li><li><p><strong><span>Integration</span></strong><span>: the environment handles the boring plumbing that makes parallelism work effectively and provides context for running agents: setup and teardown scripts which allow to run multiple workspaces in a conflict-free way, and the connection between an agent&#8217;s work and a ticket, a PR, or a CI run.</span></p></li><li><p><strong><span>Programmability</span></strong><span>: where the environment exposes some sort of programmatic surface (e.g. MCP) so you can drive the whole thing from code, as opposed to human UI interaction exclusively. In fact to be more precise: it is more about your agent to be able to drive the thing. I&#8217;ll come back to why that matters.</span></p></li></ul><p><span>Note I didn&#8217;t include here more complex combines that approach it from organization/team perspective and usually cover the entire SDLC process in a more orchestrated way. These kinds of tools feel like different beasts, an emerging category that I would colloquially call &#8220;</span><em><span>software factories</span></em><span>&#8221;. The typical examples in this category are: </span><a href="http://factory.ai"><span>Factory.ai</span></a><span> (the one that pretty much defined the term), </span><a href="http://8090.ai"><span>8090.ai</span></a><span>, </span><a href="http://overcut.ai"><span>overcut.ai</span></a><span> or </span><a href="https://visdom.virtuslab.com/"><span>visdom</span></a><span> (full disclosure: this one is being built by my colleagues at VirtusLab). This category in my mind is a distinct area &#8212; even though there is an overlap, which I expect will only grow as mentioned tools will try to capture a large portion of the market &#8212; and as such I won&#8217;t be describing them here (perhaps worth another write-up).</span></p><h2><span>What these environments actually do</span></h2><p><span>Strip away the marketing and every one of these tools does roughly the same eight things. Some do more of them, some do them better, but here they are:</span></p><p><strong><span>Worktree isolation</span></strong><span>. The market converged on worktrees as the means of work isolation. Each agent gets its own checkout, so their edits don&#8217;t collide. Every serious tool in this space uses it now &#8212; Superset, Conductor, Orca, DevSwarm all do it (and so does Cursor since 2.0+).</span></p><p><span>This capability allows you to almost instantaneously create a separate worktree (clone of your repo on a separate branch) so you can work on it without interrupting your other work on the same project.</span></p><p><span>Superset has </span><a href="https://docs.superset.sh/workspaces"><span>a neat 1:50 video</span></a><span> that describes this concept.</span></p><p><span>Side note: It is almost funny that the AI wave dug out an obscure and almost forgotten git feature from a decade ago &#8212; git worktrees were originally introduced around 2015. &#8220;Almost,&#8221; because if you think about it, this is a recurring pattern in technology: for instance cgroups and LXC existed for years with very limited usage and only became ultra-popular after Docker combined them into one convenient package.</span></p><p><strong><span>Agent grouping and console management</span></strong><span>. Since you&#8217;d be switching contexts you need to have some sort of segregation. Workspaces allow you to work on several aspects of a single project (or repo) at the same time. You can also have several projects/repos, each of them having multiple worktrees.</span></p><p><span>But it is not only that &#8212; you typically want to see some terminal, maybe have several agents (e.g. design with Fable, implement with Opus and review with Codex) on the same project. So you want to have all these grouped together, and neatly segregated across your projects and workspaces. Once you&#8217;re running five or ten workspaces, you need somewhere to see them all. A single pane of glass, or at minimum a shell multiplexer that is tmux with better fonts, and gives you reasonable grouping.</span></p><p><span>Here is a pretty good </span><a href="https://www.onorca.dev/docs/first-session"><span>5 min overview</span></a><span> with Orca from their docs.</span></p><p><span>And interestingly enough &#8212; continuing the re-discovery of old primitives &#8212; tmux itself was a pretty niche tool until the last few years, when we suddenly needed a way to multiplex parallel coding agents. Additionally, we typically get a visual distinction / sound notification when any of the agents finished its work or requires your interaction.</span></p><p><strong><span>Programmatic steering</span></strong><span>. CLI, MCP, whatever &#8212; in other words: means to drive the thing by the agent (or you via code &#8212; although that&#8217;s a secondary effect). Things like: spawn a worktree from a script. Send a prompt into a session. Read the diff back out. Once you have that, you can build things on top: hooks, scheduled automations, or your own mini-orchestrator that spawns ten worktrees with scoped agents. Some tools expose more of this than others.</span></p><p><strong><span>Setup / run / teardown hooks</span></strong><span>. If every worktree wants to run the app locally, you are likely to have some problems &#8212; the first one being: they all want port 3000 when you start up your app locally (or whatever your app framework uses). So the tool needs to give each worktree its own port range and handle the boring stuff: bring up the DB, run migrations, seed, start the app, kill it all when the agent finishes. Without this you&#8217;re not really running in parallel, you&#8217;re just running sequentially with extra tabs.<br><br>This is more powerful than it seems (even though it&#8217;s a trivial concept at its core). With a simple combo of setup.sh / run.sh / teardown.sh scripts and some predefined environment variables you can do a lot of useful stuff. Some are:</span></p><ul><li><p><span>Automatically copy your dotenv files from your main workspace</span></p></li><li><p><span>Tackle port collisions</span></p></li><li><p><span>Or even automatically reusing database across different workspaces of the same repo (or leveraging a single Postgres container; with on-the-fly creation of test databases with pre-seeded data on different workspaces)</span></p></li></ul><p><strong><span>Ticketing/PR integration</span></strong><span>. GitHub, Linear, Jira. An agent that opens PRs now could have a pretty good context of what it&#8217;s working on. An environment that reads a Linear ticket, assigns it to a worktree, spawns the agent with the right context, and closes the ticket on merge starts to be a neat productivity tool. For a certain class of tickets, you can pretty much have one click from a Linear ticket to your favorite agent solving it and opening a PR back to GitHub.</span></p><p><strong><span>Code review and diff experience</span></strong><span>. Parallel agents produce parallel diffs, and someone may still want to read them (e.g. me, even if sometimes cursorily). The tools differ meaningfully here: Conductor makes each workspace into a proto-PR you can review before it hits GitHub; Superset lets you scrub diffs inline in the terminal and stage hunks per-agent; Orca leans on GitHub&#8217;s native review UI plus its Chromium Design Mode for UI-level diffing.</span></p><p><strong><span>Remote environments</span></strong><span>. Run the fleet somewhere outside of your laptop &#8212; a beefy VPS, a shared dev cluster &#8212; and steer from a laptop, or a phone (e.g. Orca has this in preview as of mid 2026). Transparent server nodes seamlessly integrated into your local environment are quite useful &#8212; you can finally close your laptop, and the work still continues. These days, you can even easily open remote dev environments in your Cursor / VScode setup &#8212; so this is not limited to your Parallel Agentic Environment. (Side note: I think with the current trajectory, it is likely we are on the verge of rediscovering remote development environments on a larger scale).</span></p><p><strong><span>Automations. </span></strong><span>Hooks and scheduled workflows. In practice today, most &#8220;automations&#8221; in these tools mean scheduled work &#8212; flows you set on a cron-like schedule (&#8221;</span><em><span>every morning at 8am, spawn an agent that syncs the tracking issues and drafts the standup</span></em><span>&#8220;). Superset explicitly ships scheduled automations, and both Conductor and DevSwarm expose their equivalents. You can also build more interesting stuff &#8212; e.g scan GitHub issues on a regular basis, find issues with &#8220;low-hanging-fruit&#8221; label, create a workspace (perhaps on your remote machine), implement the changes and push them back to the repo as a PR for you to review when you wake up.</span></p><p><span>Event-driven hooks exist but are still shallow: mostly &#8220;agent finished, notify me,&#8221; occasionally &#8220;agent finished, run tests.&#8221; The richer reactive loops you&#8217;d want (&#8221;PR review comments received &#8594; hand them back to the agent with the diff&#8221;; &#8220;CI failed on main &#8594; spawn a debugging agent&#8221;) are more aspiration than shipped feature in mid-2026.</span></p><p><span>But this is where the environments stop being cockpits and start becoming workflow engines. It&#8217;s also where the flat, hierarchical, and software-factory bets visibly diverge: the flat cockpit tools give you scheduled hooks and let you wire your own reactions on top; DevSwarm bakes the wiring into HiveControl patterns; the software-factory tools treat the workflow itself as the product.</span></p><p><span>There are also features that exist in one or two tools but haven&#8217;t converged into a baseline yet. Orca has a mobile view &#8212; you can approve diffs and steer agents from a phone while walking somewhere (ties neatly with remote workspaces too). DevSwarm and Superset both expose enough hooks that you could build lightweight workflow triggers on top &#8212; things like &#8220;when this agent finishes, spawn a follow-up on the merged branch&#8221; &#8212; though almost nobody ships this as a first-class UI-level trigger yet. A handful of tools are experimenting with voice steering and push notifications on agent completion. None of these are yet at the point where a buyer would pick a tool on their strength, but they hint at what the next capability tier looks like.</span></p><h2><span>Divergence, up close</span></h2><p><span>Superset is the one I use the most. Desktop app, agent-agnostic (you can run whatever you want: Claude Code, Codex, Cursor Agent, OpenCode, Copilot, and so on). </span><a href="https://superset.sh/blog/roadmap-to-100-agents"><span>Their own honest admission tells you where they actually are</span></a><span>: Superset itself claims five to seven reliably today (well, the article is from February), with a roadmap to one hundred by the end of 2026. My own experience runs closer to low 10s.</span></p><p><span>Their roadmap post is refreshingly explicit about what breaks between here and there: &#8220;</span><em><span>Scale the agents all you want &#8212; it&#8217;s the humans that don&#8217;t scale.</span></em><span>&#8220; Even at low 10s we&#8217;re already well beyond the 2&#8211;3 you get by renaming tabs in the terminal. The gap between the marketing &#8220;100+&#8221; and the engineering &#8220;low tens&#8221; is the story worth watching, and I&#8217;m curious to see how they&#8217;ll attempt to pull it off. </span><a href="https://www.youtube.com/watch?v=BNVVD7e_hi4"><span>Their roadmap talk is worth watching for how they envision tackling this.</span></a></p><p><span>The mental model is flat. N agents, one human coordinator &#8212; you. Superset builds the cockpit and &#8212; at least for now &#8212; doesn&#8217;t pretend the agents can coordinate themselves.</span></p><p><span>Orca is the maximalist. Its makers refuse to call it an IDE at all; they&#8217;ve coined ADE &#8212; Agent Development Environment &#8212; on the theory that IDEs were built for you, and an ADE is built for you and your agents. It picked up somewhere north of 15,000 GitHub stars in months. It has an embedded Chromium browser with a &#8220;Design Mode&#8221; &#8212; click any UI element and it ships the HTML, CSS, and a screenshot straight into your agent&#8217;s prompt. It has remote worktrees over SSH, so you can run the fleet on your VPS box and steer from a laptop.</span></p><p><span>DevSwarm takes the bet the others don&#8217;t. It&#8217;s a full VS Code IDE. A little too heavy for me, but they have a genuinely different </span><a href="https://devswarm.ai/blog/hivecontrol-orchestrate-the-swarm/"><span>headline feature &#8212; HiveControl</span></a><span>: a lead agent in one workspace can plan a piece of work, spin up sub-workspaces, delegate scoped tasks to them, exchange messages, and stitch the results back together &#8212; all branch-isolated, all reviewable. Their own tagline is refreshingly on-point: &#8220;</span><em><span>Running parallel agents is solved. Coordinating them is the next challenge.</span></em><span>&#8220;</span></p><p><span>The unusual bit is that HiveControl is built around a handful of patterns that keep showing up in practice. Their team names some of them: the Plan-Do Pattern (one workspace understands the problem and creates an execution plan; others handle implementation) and the Review Stack Pattern (large changes get broken into smaller, focused PRs that stack into a review chain). (There is also a third one: Release Stack Pattern).</span></p><p><span>Instead of making you the coordinator, DevSwarm tries to make an agent the coordinator &#8212; with a shared orchestration tree, real GitHub and Jira integration, port networking per worktree, and now multi-repo workspaces for polyrepo shops. So we have: human-directed, agent-coordinated, and workspace-native. This is the hierarchical bet &#8212; a manager agent with reports.</span></p><p><span>The coordination bandwidth problem</span></p><p><span>The scarce resource in parallel agentic development is not agents, and is not compute. It&#8217;s coordination bandwidth &#8212; the ability of one human to keep N streams of machine-generated work coherent enough to merge, ship, and not regret it a week later. That&#8217;s a fixed, human quantity. It doesn&#8217;t scale with your GPU or token budget.</span></p><p><span>None of the tools from this category managed to effectively break that ceiling. They have a pretty similar approach to the problem (mostly flat structure with project/workspace layout, with human coordination). The notable exception is perhaps DevSwarm which is trying and says: raise the ceiling by promoting an agent to coordinator. The software-factory tools take a different route entirely &#8212; they template the common shapes at the org level, so most of the coordination happens without a human in the loop at all, with humans reserved for judgement calls at defined checkpoints.</span></p><p><span>If you build software for a living, and are not using any of these (or something similar, there are many others) &#8212; picking one is great bang for the buck (especially so, as some of them are free, within limits). The pricing model is a simple one anyway &#8212; which is reasonable, as you plug in your existing subscription-based (or API-based) AI models into it.</span></p><p><span>You are the coordinator now. I&#8217;m not yet convinced a lead agent can be trusted to merge its reports&#8217; work entirely without a human reading at least some pieces of the code, but that&#8217;s a bet worth watching. There are certainly people who have found some success in the opposite approach (i.e. skipping human review entirely), so I wouldn&#8217;t discard this approach.</span></p><p><span>Either way, the tab-renaming era is over. What comes next is not a single winner but a real market: plenty of rather serious tools, two coordination models on the laptop and a third at the org level, and &#8212; at least so far &#8212; one obvious bottleneck. Worth paying attention to which one bends first.</span></p>]]></content:encoded></item><item><title><![CDATA[The Road or the Hairball]]></title><description><![CDATA[The walls came down. Pave the road, or live in the sprawl]]></description><link>https://www.pdole.ga/p/the-road-or-the-hairball</link><guid isPermaLink="false">https://www.pdole.ga/p/the-road-or-the-hairball</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Wed, 22 Jul 2026 07:33:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!UFKf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a181dd-5112-4d99-87f9-40c08d05b13e_1240x824.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UFKf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a181dd-5112-4d99-87f9-40c08d05b13e_1240x824.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UFKf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a181dd-5112-4d99-87f9-40c08d05b13e_1240x824.jpeg 424w, https://substackcdn.com/image/fetch/$s_!UFKf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a181dd-5112-4d99-87f9-40c08d05b13e_1240x824.jpeg 848w, https://substackcdn.com/image/fetch/$s_!UFKf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a181dd-5112-4d99-87f9-40c08d05b13e_1240x824.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!UFKf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a181dd-5112-4d99-87f9-40c08d05b13e_1240x824.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UFKf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a181dd-5112-4d99-87f9-40c08d05b13e_1240x824.jpeg" width="1240" height="824" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/31a181dd-5112-4d99-87f9-40c08d05b13e_1240x824.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:824,&quot;width&quot;:1240,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:932836,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/207918877?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a181dd-5112-4d99-87f9-40c08d05b13e_1240x824.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UFKf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a181dd-5112-4d99-87f9-40c08d05b13e_1240x824.jpeg 424w, https://substackcdn.com/image/fetch/$s_!UFKf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a181dd-5112-4d99-87f9-40c08d05b13e_1240x824.jpeg 848w, https://substackcdn.com/image/fetch/$s_!UFKf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a181dd-5112-4d99-87f9-40c08d05b13e_1240x824.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!UFKf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31a181dd-5112-4d99-87f9-40c08d05b13e_1240x824.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Highway and Byways by Paul Klee</figcaption></figure></div><p><span>I stumbled on </span><a href="https://www.mckinsey.com/capabilities/tech-and-ai/our-insights/tech-forward/low-code-no-code-a-way-to-transform-shadow-it-into-a-next-gen-technology-asset"><span>a McKinsey piece</span></a><span> from a few years ago the other day &#8212; a 2022 report on low-code and no-code, the last time we told non-technical people they could build software. Buried in it was this term: </span><strong><span>phantom couplings</span></strong><span>. A shadow app quietly consumes an IT system&#8217;s data, the IT team changes something reasonable, and the shadow app breaks in a way nobody traces back for weeks. Read it in 2026 and it doesn&#8217;t feel like history. If anything, it feels more relevant than ever.</span></p><p><span>Consider these two examples. One is about </span><a href="https://www.beri.net/article/jadepuffer-pocketos-ai-agent-production-rogue-enterprise-safety-crisis-2026"><span>the nine seconds it took an AI agent to delete a production database</span></a><span> this month. Operator-level access, one irreversible command, no human in the loop. Some called it a &#8220;backup verification gap.&#8221; That&#8217;s one way to put it. And it isn&#8217;t only startups. The </span><a href="https://www.theguardian.com/technology/2026/feb/20/amazon-cloud-outages-ai-tools-amazon-web-services-aws"><span>Financial Times reported</span></a><span> that AWS let its own coding agent, Kiro, fix a bug in production last December; the agent reportedly decided the cleanest fix was to delete and recreate the environment, taking AWS Cost Explorer down for thirteen hours. </span><a href="https://www.aboutamazon.com/news/aws/aws-service-outage-ai-bot-kiro"><span>Amazon disputes the framing</span></a><span> &#8212; it was, they said, &#8220;user error &#8212; specifically misconfigured access controls &#8212; not AI.&#8221; Hold onto that phrase. It turns out to be essential for what&#8217;s to come.</span></p><p><span>I wrote a piece a few weeks ago called </span><a href="https://www.pdole.ga/p/everyone-is-a-builder-now"><span>Everyone Is a Builder Now</span></a><span>. Non-technical people are shipping automations that hit Jira, post to Slack, write to prod APIs. That&#8217;s the fun and optimistic version. The other side of the same coin is: those automations are a live, messy dependency graph &#8212; and you can&#8217;t see it, let alone govern it. And it&#8217;s going to grow exponentially.</span></p><p><span>This is the part that&#8217;s genuinely new. For decades, software inside a company came from one place: engineering. That&#8217;s over. Increasingly the apps aren&#8217;t built by engineers at all &#8212; they&#8217;re spun up and adapted by finance, ops, marketing, the teams closest to the problem. Engineering is no longer the sole source of software, and the org has to cope with that whether it planned to or not.</span></p><h1>Two dangers, one cut leash</h1><p><span>Different dangers hide in here, and they&#8217;re worth pulling apart &#8212; because they&#8217;re related but not the same. One is </span><strong><span>invisibility</span></strong><span>: you don&#8217;t know the code exists, so you can&#8217;t trace it, can&#8217;t govern it, and it breaks something in a way nobody connects back for weeks. That&#8217;s the phantom-coupling problem. The other is </span><strong><span>blast radius</span></strong><span>: you may know exactly what the thing is, but it&#8217;s been handed the keys to do real, irreversible damage. It&#8217;s also where the security and compliance nightmares live. That&#8217;s the nine-seconds problem. One is that you can&#8217;t see it; the other is that what you can&#8217;t see can do anything.</span></p><p><span>The old world had both dangers too, but leashed. Low-code apps were active &#8212; a zap fired on a trigger, wrote to Salesforce, moved money without anyone opening a file. But they were bounded and deterministic: they ran only through the platform&#8217;s connectors, on surfaces the platform could see, and they did exactly what you wired, nothing more. Even the dumbest failures stayed inside their box &#8212; </span><a href="https://www.bbc.com/news/technology-54423988"><span>Public Health England quietly dropped sixteen thousand COVID cases</span></a><span> when an automated export hit an .xls row cap in 2020. Bad, but bounded: one broken step in one predictable pipeline, doing exactly the wrong thing it was wired to do. The AI version is unbounded and autonomous. It reaches any API, and it decides what to do on its own. Same two dangers &#8212; invisibility and blast radius &#8212; just with the leash cut.</span></p><h1>Pave it (or pretend)</h1><p><span>So what do we do about it?</span></p><p><span>The reflex is to lock it down. Approval workflow, security review, mandatory catalog. Every place I&#8217;ve watched try this has produced some version of the same result &#8212; the vibe collapses. And the vibe is the whole point. Non-technical teams build their own tools to scratch an itch that central IT would take weeks or months to reach, because in the grand scheme of priorities it never rises to the top. But let&#8217;s be honest &#8212; part of it is also just fun. The fun of building something shaped exactly for you and the handful of people you work with. Tell those people to route around a security screening, file a verification request, and wait for approval, and you don&#8217;t get safer software. You get no software.</span></p><p><span>And that would be a real loss. Modern organizations run on software, so people building the tools they need isn&#8217;t a hobby &#8212; it&#8217;s a spark worth protecting, not a thousand small liabilities to stamp out. The tension between untamed creativity and ungoverned mess is real. I feel it too.</span></p><p><span>Back to McKinsey. Their prescription back then was sensible &#8212; don&#8217;t ban the citizen builders, give them a path with guardrails. Give them a platform, a catalog, and &#8212; above all &#8212; a promotion path. Here&#8217;s what&#8217;s changed, and it&#8217;s the point of the story. Low-code had a platform. It was a walled garden &#8212; a bounded surface where every app was at least visible to the people who ran it. Vibe coding tore the walls down. The automations now run anywhere, call any API, touch live systems, and appear in no catalog at all. AI didn&#8217;t kill low-code. It killed the one thing that made low-code governable. The phantom couplings McKinsey worried about were manageable when you could at least see the apps. Multiply them by a thousand invisible ones and you have what most large organizations are struggling with right now.</span></p><p><span>So the right frame is the one platform engineering figured out a decade ago. A paved road. You publish the opinionated, supported path, you make it fast, and you accept that people can go off-road when they need to &#8212; off-road just means they carry the full weight themselves. And above all: not everything should be promoted. A private filter someone built for their own dashboard should stay a private filter forever. A workflow three teams now depend on has to graduate &#8212; get reviewed, get an owner, get real error handling &#8212; before the whole company is quietly standing on it. And the thing that decides which tier you&#8217;re in was never how the app was built. It&#8217;s blast radius: what it can touch, and who bleeds when it breaks.</span></p><p><span>So the old question &#8220;who&#8217;s allowed to build?&#8221; is no longer relevant. In 2026 the answer has to be everyone, whether you allow it or not. The question that matters now is: who&#8217;s on the hook when it breaks?</span></p><p><span>The sales rep&#8217;s Zapier can lie to them. Fine. The billing automation your finance team vibe-coded can lie to a customer. Not fine. The agent your engineering team gave production credentials to can delete a database in nine seconds. Definitely not fine. Same tools, three different tiers &#8212; and the thing that sorted them was blast radius. Which, you&#8217;ll remember, is what Amazon called &#8220;</span><em><span>misconfigured access controls.</span></em><span>&#8221;</span></p><p>We already built the hairball. That&#8217;s not the problem. The problem is telling ourselves we can put off paving the road &#8212; right up until something deletes the database in nine seconds.</p>]]></content:encoded></item><item><title><![CDATA[Good Riddance to the Grind]]></title><description><![CDATA[We're mourning the wrong part of the job]]></description><link>https://www.pdole.ga/p/good-riddance-to-the-grind</link><guid isPermaLink="false">https://www.pdole.ga/p/good-riddance-to-the-grind</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Thu, 09 Jul 2026 10:35:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NRbG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F155b2197-4ca4-4b71-bad8-1c06a3e34a03_1280x899.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NRbG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F155b2197-4ca4-4b71-bad8-1c06a3e34a03_1280x899.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NRbG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F155b2197-4ca4-4b71-bad8-1c06a3e34a03_1280x899.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NRbG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F155b2197-4ca4-4b71-bad8-1c06a3e34a03_1280x899.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NRbG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F155b2197-4ca4-4b71-bad8-1c06a3e34a03_1280x899.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NRbG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F155b2197-4ca4-4b71-bad8-1c06a3e34a03_1280x899.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NRbG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F155b2197-4ca4-4b71-bad8-1c06a3e34a03_1280x899.jpeg" width="1280" height="899" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/155b2197-4ca4-4b71-bad8-1c06a3e34a03_1280x899.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:899,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:284651,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/206211819?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F155b2197-4ca4-4b71-bad8-1c06a3e34a03_1280x899.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NRbG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F155b2197-4ca4-4b71-bad8-1c06a3e34a03_1280x899.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NRbG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F155b2197-4ca4-4b71-bad8-1c06a3e34a03_1280x899.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NRbG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F155b2197-4ca4-4b71-bad8-1c06a3e34a03_1280x899.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NRbG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F155b2197-4ca4-4b71-bad8-1c06a3e34a03_1280x899.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The Floor Scrapers by Gustave Caillebotte. Skilled, honest, back-breaking, and mostly gone.</figcaption></figure></div><p><span>Once upon a time, in a remote kingdom &#8212; you remember it, or you&#8217;ve heard the stories &#8212; a developer could show up at three consecutive daily standups and say, with a straight face, </span><em><span>&#8220;still moving the button.&#8221;</span></em><span> Or </span><em><span>&#8220;still debuggin&#8217;.&#8221;</span></em><span> Or </span><em><span>&#8220;still setting up the environment.&#8221;</span></em></p><p><span>Not designing anything. Not deciding anything. Moving the button. Or figuring out why the library that worked yesterday now throws on line 40. Reading a Stack Overflow thread from 2014 where the accepted answer is wrong and the third comment is right. Fighting the build. Guessing at an undocumented flag. Three days of this, and nobody blinked, because that was just&#8230; the job.</span></p><p><span>We&#8217;ve decided to be sad about losing that.</span></p><p><span>My take is &#8212; fuck that shit.</span></p><p><span>Sure, part of it was that the industry had normalized it. Around 2021, some software engineers lived a little like nobility &#8212; two or three hours of actual work wedged between table-football matches, Xbox sessions, and fruit Thursdays. </span></p><p><span>But that was only part of it.</span></p><p><span>So today, one camp is convinced AI is coming for software engineering &#8212; the jobs, the salaries, the whole profession. Gone. The other camp is busy insisting AI can&#8217;t actually code: </span><em><span>Look at this hallucinated function! Look at this security hole! It&#8217;ll never really do the work!</span></em><span> Well &#8212; AI does generate a lot of code. It also generates a lot of garbage in some cases. Both are true. But it&#8217;s the wrong argument.</span></p><p><span>We&#8217;ve quietly convinced ourselves that the interesting part of software engineering was typing. That the craft lived in the keystrokes. This prolonged grind of </span><em><span>vertically centering the div</span></em><span> or figuring out why the library misbehaves this time.</span></p><p><span>The interesting part was never writing the code.</span></p><p><span>It was deciding what to build and why.</span></p><p><span>It was the whiteboard sessions where the team fought two irreconcilable requirements into a truce.</span></p><p><span>It was the architecture &#8212; where the seams go, what talks to what, which decision you&#8217;ll regret in eighteen months.</span></p><p><span>It was pinning down requirements from a stakeholder who doesn&#8217;t know what they want until they see what they don&#8217;t want.</span></p><p><span>It was tying it all together: this system, that constraint, this team, that deadline, the thing that has to still be true when traffic is 10x.</span></p><p><span>That&#8217;s the work. That was always the work.</span></p><p><span>The three days lost to a misbehaving dependency? That was never the work. That was friction &#8212; an artifact of a tooling ecosystem we tolerated because we had no choice, dressed up over time as craftsmanship. We got so good at surviving the friction that we started mistaking the friction for the profession. For some, debugging the button became a personality.</span></p><p><span>Good times make for strange romances. When headcount is cheap and deadlines are soft, </span><em><span>&#8220;I spent three days on a library quirk&#8221;</span></em><span> is a perfectly acceptable sentence. Then the money got expensive, and it stopped being acceptable. And that&#8217;s roughly where we are.</span></p><p><span>So let the typing go. Genuinely &#8212; good riddance! If a machine can grind through the boilerplate, wire up the CRUD, chase the dependency hell, and hand me something that compiles, that is not the death of my job. That is the removal of the part of my job I never should have been romanticizing in the first place. Because everything that made software actually hard is still hard. Harder, if anything. When generating code is nearly free, the scarce skill isn&#8217;t producing it &#8212; it&#8217;s knowing what&#8217;s worth producing, how it should fit together, and whether it&#8217;ll survive contact with reality. The volume goes up; the need for judgment goes up faster. Someone still has to hold the whole system in their head and decide. That someone is an engineer. That was always what an engineer was &#8212; we just let the tooling convince us otherwise.</span></p><p><span>The doomers are mourning a profession that isn&#8217;t dying. The deniers are defending a task that deserves to. But software engineering isn&#8217;t going anywhere. At least, not for this reason, and not for now. What&#8217;s going away is the pretending &#8212; the three-day button-push, the friction-as-identity, the quiet fiction that typing was ever the point.</span></p><p><span>I&#8217;ll miss it about as much as I miss dialing a modem. The craft is still here. It just finally has to be about the craft.</span></p>]]></content:encoded></item><item><title><![CDATA[The AI hype is only part of the EU energy story]]></title><description><![CDATA[AI is the accelerant, but the fire was already burning]]></description><link>https://www.pdole.ga/p/the-ai-hype-is-only-part-of-the-eu</link><guid isPermaLink="false">https://www.pdole.ga/p/the-ai-hype-is-only-part-of-the-eu</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Wed, 01 Jul 2026 07:40:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_O1l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6231b5cb-5b8b-46da-857d-6e6a836a43fc_1024x851.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_O1l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6231b5cb-5b8b-46da-857d-6e6a836a43fc_1024x851.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_O1l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6231b5cb-5b8b-46da-857d-6e6a836a43fc_1024x851.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_O1l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6231b5cb-5b8b-46da-857d-6e6a836a43fc_1024x851.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_O1l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6231b5cb-5b8b-46da-857d-6e6a836a43fc_1024x851.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_O1l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6231b5cb-5b8b-46da-857d-6e6a836a43fc_1024x851.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_O1l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6231b5cb-5b8b-46da-857d-6e6a836a43fc_1024x851.jpeg" width="1024" height="851" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6231b5cb-5b8b-46da-857d-6e6a836a43fc_1024x851.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:851,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:340873,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/204259395?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6231b5cb-5b8b-46da-857d-6e6a836a43fc_1024x851.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_O1l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6231b5cb-5b8b-46da-857d-6e6a836a43fc_1024x851.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_O1l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6231b5cb-5b8b-46da-857d-6e6a836a43fc_1024x851.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_O1l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6231b5cb-5b8b-46da-857d-6e6a836a43fc_1024x851.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_O1l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6231b5cb-5b8b-46da-857d-6e6a836a43fc_1024x851.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Boulevard Montmartre, Twilight by Camille Pissarro; another one of fourteen views of the Boulevard, all painted from a single hotel room</figcaption></figure></div><p><span>Last week </span><a href="https://www.pdole.ga/p/sovereignty-has-a-power-bill"><span>I wrote about</span></a><span> the enormous bill &#8212; the European Commission puts grid investment alone at </span><a href="https://energy.ec.europa.eu/topics/infrastructure/european-grids_en"><span>around &#8364;584 billion this decade</span></a><span> &#8212; that EU energy supply and the grid in general has to bear if we are to dream of long-term AI sovereignty.</span></p><p><span>On the one hand the investments needed are mind-blowing, on the other there is a whole industry already rubbing its hands at the business this inevitably brings. Yin-yang.</span></p><p><span>Naturally, there are sceptical voices, and they typically take one of two forms. The first says AI &#8212; in its current incarnation i.e. LLMs &#8212; is a bubble, and a bubble sooner or later pops; when it does, all these investments come to naught, and the problem pops along with it. The second says efficiency will outrun demand: the current architecture &#8212; transformers and the hardware under them &#8212; will be optimized so aggressively that the mountain of surplus compute we&#8217;re racing to build simply won&#8217;t be needed.</span></p><p><span>Personally, I have issues with both lines of argument. On the first: the fact that a bubble pops doesn&#8217;t mean the demand shrinks &#8212; the dot-com crash bankrupted companies, but demand for the internet grew many times over in the years that followed. On the second: </span><a href="https://www.pdole.ga/i/195257431/the-curve-ahead"><span>Jevons</span></a><span>. We have seen it recently with token costs &#8212; they have fallen at least fourfold over the last two years (you could easily make an argument they fell between 10-100x if you take into account fixed capability), and yet we typically pay more than we used to, not less. </span><a href="https://www.pdole.ga/p/ai-subscriptions-are-on-borrowed"><span>I wrote about that here</span></a><span>. </span></p><p><span>But let&#8217;s put this aside. I am willing to admit that I can&#8217;t predict the future with high precision. Time will tell.</span></p><p><span>And yet, there is another factor that makes both of these lines of thinking likely inaccurate. And the reason has almost nothing to do with AI. More than that &#8212; AI is only part of the reason demand is growing at all. Electrifying transport, swapping gas boilers for heat pumps, and reindustrializing the continent each add new load on a scale comparable to data centers. AI just happens to be the fastest-climbing line on the chart.</span></p><p><span>Let&#8217;s get to a different angle. The current explosion in energy demand is just an overcurrent - and the European grid infrastructure, as it is, requires a decade-long investment either way. Even if AI demand gets slashed by half tomorrow.</span></p><p><span>Let&#8217;s walk through five forces reshaping the European grid right now. Only one of them is about AI. The other four would be tearing at the system even if every frontier lab folded tomorrow.</span></p><p><span>But first, let&#8217;s look at the frame that makes the whole thing click.</span></p><p><span>In general there are two different things we sloppily lump together as &#8220;</span><em><span>the grid problem</span></em><span>.&#8221; One is </span><strong><span>rebuilding</span></strong><span> &#8212; changing what kind of power spins, when energy arrives, and how we store it.</span></p><p><span>The other is </span><strong><span>growing</span></strong><span> &#8212; adding raw load. These are not the same engineering project, they don&#8217;t run on the same timeline, and crucially, they don&#8217;t have the same cause.</span></p><p><span>The rebuild is forced by the energy transition itself. The growth is forced by electrification &#8212; electric cars, heat pumps, reindustrialization, and yes, data centers. AI lives almost entirely in that second bucket. It is a volume driver, and it barely touches the first.</span></p><p><span>Which is the whole point. If you pop the AI bubble, you remove a chunk of the </span><em><span>growth</span></em><span>. You don't remove a single gram of the </span><em><span>rebuild</span></em><span>. And the rebuild is hard, slow, and expensive. Hold that distinction &#8212; we'll come back to it.</span></p><p><span>OK, let&#8217;s now get into the five forces I&#8217;ve mentioned earlier.</span></p><h2><span>1. The grid forgot how to stay up</span></h2><p><span>Start with the most uncomfortable fact, the one we tend to avoid because it lives in a part of engineering we could have conveniently ignored for years.</span></p><p><span>On April 28, 2025, at 12:33 in the afternoon, the Iberian grid lost roughly 15 GW of generation in about five seconds &#8212; close to 60% of everything that was online at that moment. Voltage surged out of control, and within seconds Spain and Portugal separated from the rest of continental Europe and the lights went out for tens of millions of people. The bill was real: roughly 500 flights cancelled, factories like </span><a href="https://www.reuters.com/world/europe/spains-power-generation-nearly-back-normal-after-monday-blackout-says-grid-2025-04-29/"><span>Volkswagen&#8217;s Navarra plant idled</span></a><span>, and economic-loss estimates </span><a href="https://eprinc.org/wp-content/uploads/2025/06/EPRINC-Chart2025-22-IberianPowerFailure.pdf"><span>as high as &#8364;4.5 billion</span></a><span> (more likely though between &#8364;1-2 billion).</span></p><p><span>Here&#8217;s the key part. At the moment it failed, the Iberian system was running on </span><a href="https://www.agora-energiewende.org/fileadmin/Projekte/2023/2023-32_EU_System_stability/A-EW_The_Iberian_Blackout_recommendations_Annex_1.pdf"><span>over 70% solar and wind</span></a><span> through inverters. Even though the eventual root cause was voltage control, not the renewables share, the inverter question still matters &#8212; and here is why: inverters don't spin.</span></p><p><span>A gas, coal, nuclear, or hydro plant runs on an enormous lump of metal rotating at grid frequency &#8212; spinning in lockstep at the grid&#8217;s 50 hertz, synchronized across the whole European network. That spinning mass is not only a side effect &#8212; it&#8217;s also a shock absorber. When supply suddenly drops, all that rotational inertia keeps turning and buys the operators a few seconds of physics before frequency collapses. Those seconds are the safety margin: they are the window for fast frequency response from batteries (which can react in well under two seconds) and for governors on the remaining spinning plants to ramp up. Run out of that window and the grid&#8217;s last-ditch defense kicks in &#8212; automatic under-frequency load shedding, which simply disconnects whole blocks of customers to save the rest of the system. </span></p><p><span>Solar panels and wind turbines give you none of that for free. (And yes, a wind turbine does have a spinning rotor &#8212; but it is connected through power electronics that electrically decouple it from grid frequency, so the system can&#8217;t lean on that mass the way it leans on a directly-coupled generator.) </span><a href="https://docs.nlr.gov/docs/fy24osti/90256.pdf"><span>Grid-forming inverters</span></a><span> &#8212; the newer kind, programmed to actively imitate a spinning machine and inject power the instant frequency dips &#8212; can synthesize a version of it, but they are a rounding error in today&#8217;s deployment.</span></p><p><span>So you end up with a grid that is cleaner, cheaper to run on a sunny afternoon &#8212; and structurally twitchier than the one it replaced. Lower inertia means less margin for error. That fragility is not the whole story of the April blackout &#8212; </span><a href="https://eepublicdownloads.blob.core.windows.net/public-cdn-container/clean-documents/Publications/2025/iberian-blackout/Final%20Report%20on%20the%20Grid%20Incident%20in%20Spain%20and%20Portugal%20on%2028%20April%202025.pdf"><span>the official inquiries trace the collapse to a cascade of overvoltage and failed voltage control</span></a><span>, with low inertia and weak interconnection as aggravating conditions rather than the single trigger. But it is the structural backdrop against which any such cascade now plays out. (Side note: the report quoted here is a genuinely fascinating read &#8212; worth at least a cursory look.)</span></p><p><span>This has nothing to do with AI. It is a property of the energy transition itself. We are swapping spinning mass for silicon faster than we are building the things that compensate for it.</span></p><h2><span>2. We are paying people to take the electricity away</span></h2><p><span>The second force shows up in the price.</span></p><p><span>In 2025, Poland recorded over 300 hours of negative day-ahead electricity prices &#8212; more than double Great Britain&#8217;s 149, and on a clear upward march year over year. And remember: Poland is a renewables laggard by EU standards &#8212; about </span><a href="https://notesfrompoland.com/2025/01/02/poland-produced-record-29-of-power-from-renewables-in-2024/"><span>29% of its power came from renewables in 2024</span></a><span>, against </span><a href="https://ec.europa.eu/eurostat/web/products-eurostat-news/w/ddn-20250319-1"><span>an EU average near 47%</span></a><span>. If a country this far behind the curve is already paying people to take its midday solar, that tells you the imbalance is structural. April alone saw a record run, with roughly 27% of the country&#8217;s solar output exposed to prices at or below zero &#8212; </span><a href="https://pexapark.com/blog/prmc-polish-solar-capture-factors-hit-new-low-as-negative-prices-and-curtailment-surge/"><span>up from 5% a year earlier</span></a><span>.</span></p><p><span>A negative price means exactly what it sounds like. There is so much power on the grid at midday that producers pay buyers to absorb it. In Poland the tax authorities have actually had to rule on </span><a href="https://managementpapers.polsl.pl/wp-content/uploads/2025/11/232-Naru%C4%87.pdf"><span>how to charge VAT on the transaction</span></a><span> &#8212; because someone is rendering a service by taking your electricity off your hands.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cExy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F074e43fe-1f35-4466-935c-5b55871c99e0_586x502.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cExy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F074e43fe-1f35-4466-935c-5b55871c99e0_586x502.png 424w, https://substackcdn.com/image/fetch/$s_!cExy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F074e43fe-1f35-4466-935c-5b55871c99e0_586x502.png 848w, https://substackcdn.com/image/fetch/$s_!cExy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F074e43fe-1f35-4466-935c-5b55871c99e0_586x502.png 1272w, https://substackcdn.com/image/fetch/$s_!cExy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F074e43fe-1f35-4466-935c-5b55871c99e0_586x502.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cExy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F074e43fe-1f35-4466-935c-5b55871c99e0_586x502.png" width="586" height="502" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/074e43fe-1f35-4466-935c-5b55871c99e0_586x502.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:502,&quot;width&quot;:586,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:50978,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/204259395?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F074e43fe-1f35-4466-935c-5b55871c99e0_586x502.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_!cExy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F074e43fe-1f35-4466-935c-5b55871c99e0_586x502.png 424w, https://substackcdn.com/image/fetch/$s_!cExy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F074e43fe-1f35-4466-935c-5b55871c99e0_586x502.png 848w, https://substackcdn.com/image/fetch/$s_!cExy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F074e43fe-1f35-4466-935c-5b55871c99e0_586x502.png 1272w, https://substackcdn.com/image/fetch/$s_!cExy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F074e43fe-1f35-4466-935c-5b55871c99e0_586x502.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The Duck Curve &#8212; a plot of total load minus solar/wind; from Wikipedia</figcaption></figure></div><p><span>This is the duck curve &#8212; plot net demand (total load minus solar and wind) across a sunny day and the line sags into a deep belly at midday, when solar floods in, then rears up into a steep neck in the early evening as the sun drops and everyone gets home. And it is not a victory lap for solar, mind you. We have built enormous quantities of generation that all arrives at the same hour, in a system that still can&#8217;t move energy across time. So the Polish operator curtails &#8212; in one week before Easter 2025, PSE is reported to have cut around 77.5 GWh of wind and solar &#8212; on the order of what the country curtailed in all of 2023. The April picture is starker still: </span><a href="https://pexapark.com/blog/prmc-polish-solar-capture-factors-hit-new-low-as-negative-prices-and-curtailment-surge/"><span>Pexapark puts non-market curtailment at roughly 400 GWh</span></a><span> in the first four months of 2025.</span></p><p><span>Negative prices and curtailment are the grid telling you, in the bluntest language it has, that the system is unbalanced. No AI required so far.</span></p><h2><span>3. Europe is spending billions on batteries</span></h2><p><span>Which is why the third force is the most telling &#8212; just follow the money.</span></p><p><span>In 2025 the EU deployed a record </span><a href="https://reglobal.org/eu-deployed-27-1-gwh-of-battery-storage-capacity-in-2025/"><span>27.1 GWh of battery storage, up 45% on the year,</span></a><span> taking the installed fleet to nearly 80 GWh. Developers are bolting BESS onto existing solar portfolios as fast as they can finance it. And the queue behind that is staggering: by mid-2026, roughly 455 GW of battery projects and 375 GW of generation were stuck in distribution-grid connection queues across eight European markets &#8212; around </span><a href="https://beyondfossilfuels.org/2026/06/02/e100-billion-distribution-grid-backlog-weakens-europes-clean-economic-competitiveness/"><span>&#8364;100 billion of clean assets sitting in a line</span></a><span>.</span></p><p><span>Nobody is putting up tens of billions of euros in storage to power a chatbot. They are doing it because the problem in forces one and two is structural &#8212; too much variable generation, not enough inertia, not enough ways to shift energy from the sunny hour to the dark one. Storage is the market&#8217;s answer to a physics problem, and the size of the bet tells you how real the operators think that problem is.</span></p><h2><span>4. The geopolitics were here before the GPUs</span></h2><p><span>The fourth force is the one Europe has spent the decade learning the hard way.</span></p><p><span>Gas dependency. Uranium and fuel sourcing. The critical minerals inside every battery and every transformer. </span><a href="https://www.entsoe.eu/news/2025/02/09/entso-e-confirms-successful-synchronization-of-the-continental-european-electricity-system-with-the-systems-of-the-baltic-countries/"><span>The Baltic states only finished cutting themselves off from the Russian-controlled BRELL</span></a><span> network in February 2025, and that single act reshaped storage economics across the region overnight.</span></p><p><span>So energy security is not a 2026 invention. It is the thing that has been driving European policy since at least February 2022, through a winter of Liquefied Natural Gas (LNG) terminals and price caps and uncomfortable conversations about who controls the molecules. And AI didn&#8217;t create that exposure &#8211; it just gave us a fashionable new reason to talk about it.</span></p><p><span>And yet, the dependency didn&#8217;t disappear so much as move: the US supplied about 58% of the EU&#8217;s LNG imports in 2025 and is on track toward two-thirds in 2026, and Europe has its AI chips, its cloud, and increasingly its molecules sourced from the same single ally &#8212; which is its own kind of exposure. Especially in the shifting geopolitical climate.</span></p><h2><span>5. AI is the accelerant, not the fire</span></h2><p><span>So where does AI actually fit?</span></p><p><span>On top. It lands on a system that was already strained by the first four forces and presses on the timeline. The honest framing is that AI is one input among several, and not even the largest. In other words &#8212; it&#8217;s the accelerant, not the cause.</span></p><p><span>Look at the actual numbers and the panic deflates a little (well, AI-induced panic; as some sense of urgency is still truly warranted). Data centers are about 3% of EU electricity today, </span><a href="https://ember-energy.org/app/uploads/2025/06/Report-Grids-for-data-centres-in-Europe-PDF.pdf"><span>heading for roughly 4.5% by 2030</span></a><span>. AI is only a slice of that &#8212; </span><a href="https://www.europarl.europa.eu/RegData/etudes/BRIE/2025/775859/EPRS_BRI(2025)775859_EN.pdf"><span>the IEA put AI at around 15% of data-center demand in 2024</span></a><span>. So in absolute terms, AI is a low-single-digit percentage of total European load.</span></p><p><span>The dynamics are more interesting, though. Estimates of how much of the EU&#8217;s new electricity demand to 2030 belongs to data centers vary enormously &#8212; </span><a href="https://www.iea.org/commentaries/overcoming-energy-constraints-is-key-to-delivering-on-europe-s-data-centre-goals"><span>from around 10% in the IEA&#8217;s</span></a><span> stated-policy scenario to </span><a href="https://www.eurelectric.org/publications/ai-the-era-of-electric-intelligence/"><span>20&#8211;28% in industry projections</span></a><span>. That&#8217;s a big share of the growth &#8212; but it isn&#8217;t even alone there. The electrified industry adds about 80 TWh of demand growth by 2030, electric vehicles around 67 TWh, and data centers around 72 TWh. AI is the fastest-climbing slice of the growth, not the entirety of it.</span></p><p><span>And for anyone who still thinks EVs are a fad worth discounting: in 2024 pure battery-electric cars alone outsold diesel in the EU &#8212; </span><a href="https://www.acea.auto/files/Press_release_car_registrations_December_2024.pdf"><span>13.6% of new registrations against diesel&#8217;s 11.9%</span></a><span> &#8212; and in December 2025 they outsold petrol cars in a single month for the first time ever. The fleet is electrifying, whether one likes it or not.</span></p><p></p><p><span>Let&#8217;s now bring back the rebuild-versus-grow frame. AI is a growth force. It is responsible for </span><em><span>expanding</span></em><span> the grid &#8212; and it shares even that job with cars, heat pumps, and factories. It is responsible for almost none of the </span><em><span>rebuilding</span></em><span> &#8212; the inertia, the duck curve, the storage scramble. Those came from the energy transition, and they are the slow, expensive, decade-long part.</span></p><p><span>That distinction is exactly what survives the bubble. If AI demand evaporates, you remove a chunk of the growth pressure &#8212; and you don&#8217;t get your stable, boring 2019 grid back, because the entire rebuild is untouched. You&#8217;d still be low on inertia, still drowning in midday solar, still short of storage, still geopolitically exposed. Same structural crisis, minus one accelerant, with the deadlines nudged out by a few years.</span></p><h2><span>So what does this all mean?</span></h2><p><span>Back to software. None of this is AI&#8217;s fault &#8212; but all of it is AI&#8217;s problem.</span></p><p><span>Software people carry an instinct that compute scales like software. Need more capacity, spin up more instances, raise another round. But sovereign AI in Europe is no longer gated only by how many GPUs you can buy. It is gated by interconnection queues, inertia limits, and curtailment &#8212; a decade-long physical rebuild you cannot accelerate with a term sheet or </span><em><span>VC your way through</span></em><span>.</span></p><p><span>That reframes where the hard problems live. If midday solar is free-to-negative and energy storage is scarce, then when and where you run a workload stops being an infrastructure footnote and becomes an optimization problem. Training and inference want to chase the curtailed megawatt-hour &#8212; the energy nobody else can absorb &#8212; and that is a scheduling problem, a siting problem. In short &#8212; a software problem.</span></p><p><span>OK. So compute doesn&#8217;t get to escape the grid. It has to become grid-aware. My take is that we&#8217;ll also see some companies specializing in carbon- and price-aware scheduling &#8212; deciding which data center wakes up when the wind blows in the right country. By the way this isn&#8217;t hypothetical: </span><a href="https://blog.google/innovation-and-ai/infrastructure-and-cloud/global-network/data-centers-work-harder-sun-shines-wind-blows/"><span>Google has been running exactly this kind of carbon-intelligent scheduler since 2020</span></a><span>.</span></p><p><span>Full circle, then &#8212; to the real connection to sovereignty. The power bill itself was part of the problem. The grid that issues the bill is being rebuilt for reasons that predate the first transformer block &#8212; and anyone who wants to build sovereign AI on top of it inherits that rebuild whether they like it or not.</span></p><p><span>Last but not least &#8212; even if every AI lab folded tomorrow, Europe&#8217;s energy story would still be the dominant infrastructure story of the decade. Sovereignty isn&#8217;t optional.</span></p><p><span>It just gets a hell of a lot more headlines when we frame it as an AI problem.</span></p>]]></content:encoded></item><item><title><![CDATA[Sovereignty Has a Power Bill]]></title><description><![CDATA[The part where Europe gets the invoice]]></description><link>https://www.pdole.ga/p/sovereignty-has-a-power-bill</link><guid isPermaLink="false">https://www.pdole.ga/p/sovereignty-has-a-power-bill</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Thu, 25 Jun 2026 10:32:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Clnz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cece684-10e5-4001-a0de-084ccf4ed081_1140x944.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Clnz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cece684-10e5-4001-a0de-084ccf4ed081_1140x944.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Clnz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cece684-10e5-4001-a0de-084ccf4ed081_1140x944.webp 424w, https://substackcdn.com/image/fetch/$s_!Clnz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cece684-10e5-4001-a0de-084ccf4ed081_1140x944.webp 848w, https://substackcdn.com/image/fetch/$s_!Clnz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cece684-10e5-4001-a0de-084ccf4ed081_1140x944.webp 1272w, https://substackcdn.com/image/fetch/$s_!Clnz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cece684-10e5-4001-a0de-084ccf4ed081_1140x944.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Clnz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cece684-10e5-4001-a0de-084ccf4ed081_1140x944.webp" width="1140" height="944" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2cece684-10e5-4001-a0de-084ccf4ed081_1140x944.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:944,&quot;width&quot;:1140,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:262548,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/203323223?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cece684-10e5-4001-a0de-084ccf4ed081_1140x944.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Clnz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cece684-10e5-4001-a0de-084ccf4ed081_1140x944.webp 424w, https://substackcdn.com/image/fetch/$s_!Clnz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cece684-10e5-4001-a0de-084ccf4ed081_1140x944.webp 848w, https://substackcdn.com/image/fetch/$s_!Clnz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cece684-10e5-4001-a0de-084ccf4ed081_1140x944.webp 1272w, https://substackcdn.com/image/fetch/$s_!Clnz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cece684-10e5-4001-a0de-084ccf4ed081_1140x944.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The Boulevard Montmartre at Night by Camille Pissarro &#8212; the painter's fascination with the new artificial light of the age</figcaption></figure></div><p><span>In April 2025, the European Commission </span><a href="https://commission.europa.eu/topics/competitiveness/ai-continent_en"><span>announced it would mobilise &#8364;200 billion</span></a><span> to make Europe an &#8220;AI continent&#8221; &#8212; &#8364;20 billion of it earmarked for up to five AI gigafactories, each a cathedral of a hundred thousand processors.</span></p><p><span>The phrase &#8220;AI continent&#8221; might make our American friends smile &#8212; the indulgent smile you give your grandpa when he announces he&#8217;s finally getting on Facebook. It&#8217;s a big aspiration from a place that doesn&#8217;t yet own a single layer of the stack. But the money is real, the ambition is serious, and you wouldn&#8217;t be wrong to read it as Europe finally getting its shit together. Or at least trying to.</span></p><p><span>As always, there&#8217;s another angle to it.</span></p><p><span>That same Europe needs </span><a href="https://energy.ec.europa.eu/topics/infrastructure/european-grids_en"><span>&#8364;584 billion of grid investment by 2030</span></a><span> just to keep the lights on as electricity demand climbs &#8212; a bill it has not figured out how to pay. We are writing cheques in Brussels for the compute, and quietly hoping the wires magically show up on their own.</span></p><p><span>They will not. Well, not magically at least.</span></p><h3><span>The queue outlasts the model</span></h3><p><a href="https://www.pdole.ga/p/the-kill-switch"><span>In the last article</span></a><span> I argued that sovereignty isn&#8217;t blocked by software, or even by chips. It&#8217;s blocked by electrons. Let me show you exactly where the block lives.</span></p><p><span>As I&#8217;ve mentioned &#8212; a single modern AI cluster draws as much electricity as a quarter-million homes. Anthropic expects that developing a single frontier model will need a 5-gigawatt data center by 2028 (equivalent to the output of roughly five nuclear reactors). In 2026, that&#8217;s roughly 6% of Poland&#8217;s entire installed generating capacity (75 gigawatts), ~4% of the UK&#8217;s (about 115), and ~3% of France&#8217;s (roughly 156).</span></p><p><span>A hyperscale data center can be built in eighteen to twenty-four months. Getting it connected to the grid in one of Europe&#8217;s five big data-center hubs &#8212; Frankfurt, London, Amsterdam, Paris, Dublin &#8212; </span><a href="https://ember-energy.org/app/uploads/2025/06/Grids-for-data-centres-in-Europe.pdf"><span>takes seven to ten years. In some cases thirteen.</span></a><span> At the same time a frontier model is superseded in twelve to eighteen months (Opus 3.x released in Mar 4, 2024, and Opus 4.x first released in May 22, 2025).</span></p><p><span>As of January 2025, </span><a href="https://ppc.land/dutch-grid-crisis-exposes-europes-ai-energy-infrastructure-gap/"><span>more than 11,900 businesses were queued for a grid connection in the Netherlands</span></a><span> alone, and operators have started openly rationing power. West London has connection quotes stretching into the 2030s, with </span><a href="https://www.london.gov.uk/sites/default/files/2025-12/Planning%20Regeneration%20Committee%20-%20Energy%20Infrastructure%20Report%20FINAL.pdf"><span>the transmission upgrades that would relieve it not due until 2037</span></a><span>.</span></p><p><span>And this isn&#8217;t for lack of a plan. The &#8364;584 billion figure comes from the EU&#8217;s 2023 Action Plan for Grids &#8212; a document that correctly diagnosed every problem above. Two and a half years on, the verdict is in: the ambition went up, but the wires didn&#8217;t. Roughly </span><a href="https://www.e3g.org/news/outdated-grid-planning-and-weak-governance-stalling-europe-s-transition-away-from-fossil-fuels/"><span>1,700 gigawatts of renewable and hybrid projects now sit in connection queues</span></a><span> across 16 countries &#8212; more than triple what&#8217;s needed for 2030, and about double the EU&#8217;s entire installed renewable fleet. In 2024 alone, </span><a href="https://beyondfossilfuels.org/wp-content/uploads/2025/05/REPORT_FINAL.pdf"><span>&#8364;7.2 billion of clean power was thrown away</span></a><span> across just seven countries because the grid couldn&#8217;t carry it. The plan&#8217;s voluntary tools were so clearly not enough that in December 2025 Brussels had to come back with </span><a href="https://www.catf.us/2025/12/europes-grids-package-marks-positive-shift-coordinated-eu-wide-infrastructure-planning-permitting/"><span>a binding Grids Package</span></a><span> &#8212; and a price tag that had ballooned to &#8364;1.2 trillion by 2040.</span></p><p><span>The chip was a chokepoint US controlled. The wire is a chokepoint Europe built for itself.</span></p><h3><span>Ireland&#8217;s example</span></h3><p><span>If you want to see where this ends, look at Ireland. Ireland did everything right by the old playbook. It courted every hyperscaler on Earth, built the Silicon Docks, became the data-center capital of Europe.</span></p><p><span>It had consequences, though.</span></p><p><span>In 2024, </span><a href="https://www.irishtimes.com/environment/2025/06/10/data-centres-accounted-for-more-than-fifth-of-irelands-electricity-usage-last-year/"><span>Irish data centers consumed 22% of the country&#8217;s entire electricity</span></a><span> &#8212; up from 5% a decade earlier, and more than every urban home in the country combined. The IEA says no other country carries a heavier load, and </span><a href="https://www.iiea.com/blog/data-centres-in-ireland-the-state-of-play"><span>forecasts put it near a third within a few years</span></a><span>.</span></p><p><span>So Ireland froze new connections. And when it finally lifted the freeze at the end of 2025, it replaced it with a sharp solution: </span><a href="https://avanzaenergy.substack.com/p/the-176-billion-detour-how-europes"><span>large new data centers now have to bring their own dispatchable power</span></a><span> &#8212; onsite generation or storage matching what they draw. In short &#8212; build your own electrons, or don&#8217;t build at all.</span></p><p><span>I don&#8217;t think that&#8217;s an Irish quirk. It&#8217;s more of a preview.</span></p><h3><span>But renewables!</span></h3><p><span>Yeah, yeah, yeah. Europe is crushing it on clean power. I know. And it&#8217;s true &#8212; in 2024, </span><a href="https://ec.europa.eu/eurostat/web/products-eurostat-news/w/ddn-20260114-1"><span>renewables hit 47.5% of EU gross electricity consumption</span></a><span>, up from 15.9% in 2004. By 2025, </span><a href="https://ember-energy.org/latest-insights/european-electricity-review-2026/"><span>solar and wind were outgenerating fossil fuels altogether</span></a><span>, with over 70% of EU electricity coming from low-carbon sources. Genuinely a triumph.</span></p><p><span>Hold the applause for one paragraph.</span></p><p><span>The headline hides the gap. Take my own country. Poland crossed 50% renewables by </span><em><span>installed capacity</span></em><span> in 2025 &#8212; a great press release. By </span><em><span>electricity actually generated</span></em><span> in 2024, </span><a href="https://notesfrompoland.com/2025/01/02/poland-produced-record-29-of-power-from-renewables-in-2024/"><span>renewables were about 29%, and coal still supplied 57%</span></a><span>, the highest share in the EU (which won&#8217;t surprise anyone who knows the country&#8217;s history, where coal was less a fuel than a national institution, the same industrial heartlands that, alongside the Gda&#324;sk shipyards, gave us Solidarno&#347;&#263;). The distance between what you&#8217;ve installed and what you can dispatch at 3 a.m. is the whole problem in one statistic.</span></p><p><span>A renewable grid is optimised for the </span><em><span>average</span></em><span> megawatt. An AI cluster needs the </span><em><span>instantaneous</span></em><span> gigawatt &#8212; at three in the morning, in February, with the wind down and the panels dark. And the two failure modes are different. A long training run that loses power doesn&#8217;t dim the lights; it loses everything since the last checkpoint. Serving the model to users is the opposite problem: it has to be on essentially always &#8212; what data centers are built around. Alas, this is neither how the wind nor the sun works.</span></p><p><span>Which is why the most striking line in European energy policy last year came not from a utility but from Ursula von der Leyen, who told the </span><a href="https://enlargement.ec.europa.eu/news/2025-state-union-address-president-von-der-leyen-2025-09-10_en"><span>2025 State of the Union</span></a><span> that Europe needs &#8220;more homegrown renewables &#8212; </span><strong><span>with nuclear as a baseload</span></strong><span>.&#8220;</span></p><p><span>And batteries don&#8217;t close the gap. Europe&#8217;s fleet is growing fast &#8212; </span><a href="https://www.businesswire.com/news/home/20260603383934/en/Stabilizing-Grids-and-Cutting-Costs-in-Half-Europe-Is-Banking-on-Grid-Relevant-Storage-Systems"><span>40 GW by the end of 2025</span></a><span> &#8212; but </span><a href="https://ember-energy.org/latest-insights/eu-battery-storage-is-ready-for-its-moment-in-the-sun/"><span>today&#8217;s batteries average just 1.5 to 2 hours of duration</span></a><span>. They&#8217;re brilliant at shifting cheap midday solar into the evening peak, and no help on the third still, grey day of a February high-pressure system. Storage makes a renewable grid smarter; it doesn&#8217;t make it always-on. For that you still need firm capacity underneath &#8212; long-duration storage, and the dreaded N-word, nuclear.</span></p><p><span>Read von der Leyen&#8217;s line, then, as the Commission quietly conceding that &#8220;just build more wind&#8221; is not, on its own, an AI energy strategy. You also need the boring, dispatchable, always-on megawatts &#8212; and that&#8217;s exactly where Europe&#8217;s clock runs slowest.</span></p><p><span>France&#8217;s first new </span><a href="https://www.neimagazine.com/news/france-delays-epr2-reactors-to-2038/"><span>EPR2 reactor won&#8217;t switch on until 2038</span></a><span>. Britain&#8217;s </span><a href="https://www.gov.uk/government/collections/sizewell-c"><span>Sizewell C took its final investment decision in 2025</span></a><span> and faces nine-to-twelve years of construction. </span><a href="https://world-nuclear.org/information-library/country-profiles/countries-o-s/poland"><span>Poland&#8217;s first reactor</span></a><span>: somewhere between 2036 and 2040.</span></p><p><span>For comparison, the United States is </span><a href="https://www.reuters.com/sustainability/climate-energy/shut-three-mile-island-nuclear-plant-may-restart-2027-owner-says-2025-06-25/"><span>bringing the mothballed Three Mile Island reactor back online by 2028 under a Microsoft power deal</span></a><span> &#8212; about four years from announcement to switch-on. America is restarting old reactors faster than Europe can build new ones.</span></p><h3><span>The race</span></h3><p><span>Let&#8217;s get a little uncomfortable by seeing where we are in comparison.</span></p><p><span>In 2024, </span><a href="https://climateenergyfinance.org/wp-content/uploads/2025/02/MONTHLY-CHINA-ENERGY-UPDATE-Feb-2025.pdf"><span>China added 429 gigawatts of new generating capacity in a single year</span></a><span> &#8212; a 21% jump, the most any country has ever added. Of that, 356 GW was wind and solar: roughly four and a half times the EU&#8217;s additions, and close to the entire installed wind-and-solar base of the United States. It also waved through 54 GW of new fossil capacity, because when you&#8217;re building baseload you take it where you can get it.</span></p><p><span>On the other side of the race, the American private sector. OpenAI&#8217;s </span><a href="https://openai.com/index/five-new-stargate-sites/"><span>Stargate project planned nearly 7 GW of AI capacity across new sites in nine months</span></a><span>, more than $400 billion committed, ahead of schedule. To put that 7 GW in European terms: it&#8217;s larger than the entire peak electricity demand of Ireland, which </span><a href="https://www.eirgrid.ie/news/ireland-records-new-record-peaks-electricity-demand-due-cold-weather"><span>peaks at roughly 5&#8211;6 GW</span></a><span>. One company, one project, secured more power for AI than a mid-sized European country uses for everything.</span></p><p><span>Europe&#8217;s answer, the </span><a href="https://commission.europa.eu/topics/competitiveness/competitiveness-coordination-tool-projects/ai-gigafactories_en"><span>gigafactory programme, won&#8217;t break ground until 2027</span></a><span>.</span></p><p><span>The &#8364;200 billion compute cheque and the &#8364;584 billion grid gap aren&#8217;t two separate stories. They&#8217;re the same story. The first is what Europe wants. The second is what Europe is standing on. If you ask me, right now the foot is going through the floor.</span></p><h3><span>The bypass?</span></h3><p><span>Now, the industry is not waiting around for the wire. It never does. The good thing about capitalism is that wherever there&#8217;s money to be made, someone will find a way.</span></p><p><span>If the public grid quotes you a decade, you build your own. Across Europe, data-center operators are putting up gas turbines, co-locating with dedicated wind and solar, turning their backup batteries into grid assets &#8212; anything to skip the queue. One estimate puts the </span><a href="https://avanzaenergy.substack.com/p/the-176-billion-detour-how-europes"><span>AI-dedicated data-center buildout in Europe at around &#8364;176 billion</span></a><span> through 2031, much of it now routed around the public grid. In the US, a single </span><a href="https://www.utilitydive.com/news/ge-vernova-bullish-on-electrical-infrastructure-as-turbine-backlog-grows/803631/"><span>turbine-maker&#8217;s order book has hit 100 GW</span></a><span>, sold out past 2028.</span></p><p><span>Clever. And for any individual operator, completely rational.</span></p><p><span>But notice what just happened. We started </span><a href="https://www.pdole.ga/p/the-kill-switch"><span>the last article</span></a><span> worried that a foreign government could flip a switch on our models. The escape route depends entirely on who owns the turbine. A European operator powering a European data center with European gas? That&#8217;s real sovereignty &#8212; exactly the point. But increasingly the builder and the owner are the </span><a href="https://www.itpro.com/cloud/cloud-computing/us-companies-dominate-the-european-cloud-market-regional-players-are-left-fighting-for-scraps"><span>same American hyperscaler</span></a><span>. In that case the private plant doesn&#8217;t shorten anyone else&#8217;s queue, doesn&#8217;t relieve the national grid, and answers to no European energy plan. It&#8217;s dimensioned for one data center and switchable by one owner &#8212; and that owner isn&#8217;t European. You haven&#8217;t escaped the foreign switch. You&#8217;ve poured concrete around it.</span></p><h3><span>The one chokepoint you can actually build</span></h3><p><span>So here&#8217;s where I land, and it&#8217;s less bleak than it may sound.</span></p><p><span>Of all the layers in the AI stack, the grid is the </span><em><span>only one Europe can fully own.</span></em><span> The lithography machines are Dutch but singular (and US controlled). The best open weights are American. The chips are American and Taiwanese. But a transmission line through Lower Silesia, a battery park in Iberia, a reactor on the Baltic coast &#8212; those can be ours, end to end, no foreign letter required to keep them running.</span></p><p><em>Can be</em> &#8212; with one asterisk. A grid wired with Chinese transformers and battery cells just swaps dependence on Nvidia for dependence on someone else. The rule is the same one we keep relearning: own the layer and its supply chain. The difference is that here, unusually, Europe isn&#8217;t starting from behind &#8212; in transformers, HVDC links and cabling it has real champions (Siemens Energy, Nexans, Prysmian). It has no such thing for frontier chips or models.</p><p><span>That&#8217;s the inversion worth sitting with. The thing everyone treats as the boring, capital-intensive afterthought &#8212; the wires, the firm megawatts, the storage &#8212; is the one rung of the ladder no one can switch off from abroad. Europe spent a decade chasing model sovereignty and chip sovereignty, the two things it can least control. The sovereignty it </span><em><span>can</span></em><span> build was sitting in the substation the whole time.</span></p><p><span>It is unglamorous. It is a permitting fight, a financing fight, a fight with everyone who&#8217;d rather not have a pylon in their sightline. &#8364;584 billion of fight. But it&#8217;s a fight with a known answer &#8212; pour the concrete, string the wire, sign the nuclear offtake, stop treating the grid as plumbing and start treating it as the strategic asset it has quietly become.</span></p><p><span>So it&#8217;s not so much that sovereignty is blocked by electrons. It&#8217;s not blocked. It&#8217;s just unbuilt.</span></p><p><span>And unbuilt is the one problem on this list that money and a decade of nerve can actually solve. The question isn&#8217;t whether Europe </span><em><span>can</span></em><span> build the grid. It&#8217;s whether it starts pouring concrete now &#8212; or finishes paying the power bill in someone else&#8217;s currency.</span></p>]]></content:encoded></item><item><title><![CDATA[The Kill Switch]]></title><description><![CDATA[What a letter to Anthropic taught Europe about its own AI]]></description><link>https://www.pdole.ga/p/the-kill-switch</link><guid isPermaLink="false">https://www.pdole.ga/p/the-kill-switch</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Wed, 17 Jun 2026 08:49:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!2ld5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4b00d8-544d-4feb-ab3a-a5955009d091_1600x1277.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2ld5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4b00d8-544d-4feb-ab3a-a5955009d091_1600x1277.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2ld5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4b00d8-544d-4feb-ab3a-a5955009d091_1600x1277.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2ld5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4b00d8-544d-4feb-ab3a-a5955009d091_1600x1277.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2ld5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4b00d8-544d-4feb-ab3a-a5955009d091_1600x1277.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2ld5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4b00d8-544d-4feb-ab3a-a5955009d091_1600x1277.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2ld5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4b00d8-544d-4feb-ab3a-a5955009d091_1600x1277.jpeg" width="1456" height="1162" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f4b00d8-544d-4feb-ab3a-a5955009d091_1600x1277.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1162,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:469819,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/202195060?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4b00d8-544d-4feb-ab3a-a5955009d091_1600x1277.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2ld5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4b00d8-544d-4feb-ab3a-a5955009d091_1600x1277.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2ld5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4b00d8-544d-4feb-ab3a-a5955009d091_1600x1277.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2ld5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4b00d8-544d-4feb-ab3a-a5955009d091_1600x1277.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2ld5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f4b00d8-544d-4feb-ab3a-a5955009d091_1600x1277.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Mahoning by Franz Kline, from the Whitney collection in NY (worth visiting while walking on the High Line)</figcaption></figure></div><p>As you&#8217;ve probably heard already, last week on Friday evening, June 12th, at 5:21 PM Eastern,<a href="https://www.anthropic.com/news/fable-mythos-access"> a letter</a> arrived at Anthropic from the US Commerce Department. By the early hours, two of the most capable (allegedly!) models on the planet &#8212; Claude Fable 5 and Mythos 5, released barely days earlier &#8212; were dark. Neither throttled nor rate-limited &#8212; just cleanly disabled. For everyone, everywhere.</p><p>The reason, on paper, was national security. The actual mechanism is worth sitting with for a second, because it&#8217;s the kind of detail that sounds made up. We&#8217;ll get into that later &#8212; though it&#8217;s not the part of the story that matters most to me.</p><p>Here is the thing: the order didn&#8217;t ban the models in a country. It banned them for <em>foreign nationals</em> &#8212; a nationality test, not a geography test. The geography test as it is, is already a difficult thing to enforce (VPNs and all). A nationality test is roughly impossible to enforce with a scalpel. You can&#8217;t reliably serve one model to an American in Seattle and withhold it from a French engineer sitting at the next desk, or from Anthropic&#8217;s own foreign-born staff.</p><p>And so Anthropic did the only thing the order left it room to do. It pulled the plug globally. I guess you wouldn&#8217;t be wrong to read this as a story about Anthropic getting unlucky. I mean one could argue they&#8217;ve <a href="https://techcrunch.com/2026/06/12/anthropics-safety-warnings-may-have-just-backfired-the-government-has-pulled-the-plug-on-its-most-powerful-ai/">brought it upon themselves</a> &#8212; for months Anthropic talked up Mythos as so dangerous it couldn&#8217;t be released publicly, and that drumbeat is precisely what drew the government&#8217;s eye.</p><p>That&#8217;s the obvious frame, and it&#8217;s not entirely false. There&#8217;s another angle to it, though.</p><h2><strong>The jailbreak or a regular feature</strong></h2><p>Here is what the government was apparently worried about, in Anthropic&#8217;s own telling. The dangerous &#8220;<em>jailbreak</em>&#8221; at the heart of the order &#8220;<em>essentially consists of asking the model to read a specific codebase and fix any software flaws.</em>&#8221;</p><p>Read that again. The catastrophic national-security capability is: <em>the model finds bugs in code.</em></p><p><em>&#8230;</em></p><p>Well, one cannot help but think there is something else to that story (a quid pro quo, maybe?). The <a href="https://www.latimes.com/business/story/2026-06-16/trumps-feud-with-ai-company-anthropic-keeps-heating-up">feud between Dario Amodei and the administration</a> has been simmering for months &#8212; the Pentagon even branded Anthropic a supply-chain risk. Anthropic, understandably, pushed back hard. They noted the same capability is <em>&#8220;widely available from other models (including OpenAI&#8217;s GPT-5.5), and is used every day by the defenders who keep systems safe&#8221;</em>. They noted the government acted on &#8220;<em>only verbal evidence of a potential narrow, non-universal jailbreak</em>.&#8221; And they pointed out &#8212; this is the part that should make any frontier lab&#8217;s blood run cold &#8212; that if this standard were applied consistently, &#8220;<em>it would essentially halt all new model deployments for all frontier model providers.</em>&#8221;</p><p>A government reached in and switched off two commercial frontier models &#8212; globally, for everyone &#8212; on the strength of a verbal claim about a capability that amounts to reading source code. These two happened to be days old. The next one it reaches for might be the model your bank, your hospital, or your government already runs on.</p><p>The point isn&#8217;t whether this particular order was wise or even survivable &#8212; Anthropic is challenging it, dozens of cybersecurity veterans have signed an <a href="https://techcrunch.com/2026/06/15/cybersecurity-vets-protest-dangerous-us-government-ban-on-anthropics-most-powerful-models/">open letter against it</a>, and these two models will likely be back. The point is that we just watched the switch get flipped. We now know it exists, where it sits, and whose hand is on it.</p><h2><strong>We&#8217;ve run this experiment before</strong></h2><p>Here&#8217;s the part where the tech industry&#8217;s famously short memory kicks in, so let me get ahead of it.</p><p>For years, the way a government controlled access to advanced computing was through <em>chips</em>. We built an extraordinarily long, extraordinarily fragile chokepoint stack and then acted surprised that someone might use it.</p><p>Start at the bottom: the machines that make the chips. Extreme ultraviolet lithography is a global monopoly held by a single Dutch company, ASML &#8212; effectively one building in Veldhoven, with no alternative supplier on Earth. One rung up: the chips themselves. Since 2022, successive US export controls &#8212; <a href="https://www.bis.gov/press-release/department-commerce-announces-rescission-biden-era-artificial-intelligence-diffusion-rule-strengthens">the BIS rules, then the &#8220;AI Diffusion&#8221; framework</a> that sorted the entire world into tiers of chip access &#8212; turned Nvidia silicon into an instrument of foreign policy. The H20 saga, the country tiers, and the whole apparatus. (The Diffusion Rule itself was later rescinded before it ever took effect &#8212; a reminder that these levers get pulled and reversed at will).</p><p>Fabs, then chips. And now, with Anthropic, the third rung: the trained model itself.</p><p>So, it is not a novelty. It&#8217;s more of a pattern reaching its logical conclusion. Political scientists Henry Farrell and Abraham Newman gave it a name &#8212;<a href="https://direct.mit.edu/isec/article/44/1/42/12237/Weaponized-Interdependence-How-Global-Economic"> </a><em><a href="https://direct.mit.edu/isec/article/44/1/42/12237/Weaponized-Interdependence-How-Global-Economic">weaponized interdependence</a></em> &#8212; the idea that whoever sits on a chokepoint in a shared network can quietly switch the rest of us off. The US already controlled who gets the machines and who gets the chips &#8212; and the way it does that is itself a small lesson in how this game is played. ASML is Dutch, not American, yet Washington still dictates who it can sell to. The lever is the Foreign Direct Product Rule: because roughly a tenth of an EUV machine&#8217;s value is US-origin technology (down to the laser unit, made by Cymer, a US subsidiary ASML bought in 2013), the US claims jurisdiction over the entire machine &#8212; wherever it is built and whoever buys it. A ten percent stake, a hundred percent veto. The Dutch have spent years quietly trying to claw that control back.</p><p>Controlling who gets the model was always the next move. We just hadn&#8217;t seen it happen to a <em>live</em> one before.</p><h2><strong>&#8220;It&#8217;s just 1999 again&#8221;</strong></h2><p>Now, the steel-man, because we deserve one.</p><p>The contrarian case is that none of this is new and everyone needs to calm down &#8212; this is overreaction, export bans happen, the models will be cleared faster than most, the tech industry just has short memories.</p><p>And the history is real. In the summer of 1999, the United States classified the PowerMac G4 as a munition &#8212; a weapon &#8212; for crossing the one-gigaflop threshold, and banned its export to some fifty countries. Apple turned the absurdity into an ad: &#8220;<em>For the first time in history a personal computer has been classified as a weapon by the US government.</em>&#8221;</p><div id="youtube2-lb7EhYy-2RE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;lb7EhYy-2RE&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/lb7EhYy-2RE?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>Go back a little further and<a href="https://www.vice.com/en/article/encryption-debate-the-end-of-end-to-end/"> strong crypto was literally classed as a weapon under US export law too</a> &#8212; Netscape&#8217;s &#8220;International&#8221; build shipped a deliberately crippled 40-bit cipher that researchers cracked in days. Export controls on computing power are not new. They land, they make headlines, and they usually pass.</p><p>And on the narrow question &#8212; will these two models come back? &#8212; the contrarians are probably right. They likely will.</p><p>But the analogy quietly smuggles in an assumption. In 1999, a US export control landed on a continent that trusted the United States. It was an ally&#8217;s bureaucratic hiccup &#8212; annoying, temporary, fodder for a clever ad. The <em>context</em> made it small.</p><p>Sadly &#8212; and I am saying this as a European &#8212; that context is gone.</p><h2><strong>The number that matters more than the ban</strong></h2><p>Two days before the Anthropic block, the European Council on Foreign Relations<a href="https://www.cbsnews.com/news/europe-us-ally-european-council-on-foreign-relations-poll/"> published a poll</a> across fifteen countries. Only 11% of Europeans now describe the United States as an &#8220;ally&#8221; &#8212; down from 22% in late 2024. In every country surveyed, majorities doubt the US would actually defend them if attacked.</p><p>If you have to ask why, you&#8217;ve spent the last year or so under a rock. It&#8217;s the backdrop of an 18-month rupture.<a href="https://www.pwc.ie/services/tax/insights/us-tariffs-02042025.html"> &#8220;Liberation Day&#8221; tariffs</a> that pushed the headline US rate on European goods to 20% &#8212;<a href="https://www.allianz.com/content/dam/onemarketing/azcom/Allianz_com/economic-research/publications/specials/en/2025/april/2025_04_04_what_to_watch.pdf"> part of a salvo</a> that lifted America&#8217;s average tariff to its highest level in over a century. A fragile 15% truce the European Parliament could only ratify by bolting on a sunset clause &#8212; because it didn&#8217;t trust Washington to honor the deal. Over $7 billion in EU fines on US Big Tech, answered by US visa bans on the European officials who wrote the digital rules. An $800 billion European rearmament plan. US troops coming home from Germany. Ursula von der Leyen, a year ago, calling it &#8220;a very strong wake-up call&#8221;; by Davos, <a href="https://www.euronews.com/my-europe/2026/01/20/in-davos-von-der-leyen-pitches-european-independence-versus-trumps-worldview">calling for &#8220;a new form of European independence.&#8221;</a></p><p>A perfect storm.</p><p>So no, this is not 1999. In 1999 the switch belonged to a friend. The mechanism is identical; the meaning is quite different. <strong>The novelty was not the ban.</strong> It&#8217;s that the hand on the switch is no longer one Europe is sure it can trust.</p><p>The contrarians are right that export bans aren&#8217;t new. They&#8217;re wrong that this one is just another. The context has changed &#8212; the US is no longer an ally Europe can count on.</p><h2><strong>The sovereignty hair-trigger reflex</strong></h2><p>Europe&#8217;s response was immediate and predictable: build our own. The day the switch flipped, the Polish open-weight model Bielik &#8212; an Apache-licensed project built by volunteers at the SpeakLeash foundation and the Cyfronet supercomputing center in Krak&#243;w &#8212; <a href="https://x.com/bielikllm/status/2065737626313740462">quote-tweeted</a> Anthropic&#8217;s own shutdown announcement with a single line: &#8220;Do you need a clearer argument for developing sovereign AI models?&#8221;</p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/bielikllm/status/2065737626313740462&quot;,&quot;full_text&quot;:&quot;https://t.co/oDc3DNWdBa\nCzy trzeba czytelniejszego argumentu za rozwijaniem suwerennych modeli AI?&quot;,&quot;username&quot;:&quot;bielikllm&quot;,&quot;name&quot;:&quot;Bielik AI&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1975341859116351488/ueFmPvT0_normal.jpg&quot;,&quot;date&quot;:&quot;2026-06-13T10:06:44.000Z&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{&quot;full_text&quot;:&quot;The US government, citing national security authorities, has issued an export control directive to suspend all access to Fable 5 and Mythos 5 by any foreign national, whether inside or outside the United States, including foreign national Anthropic employees.\n\nThe net effect of&quot;,&quot;username&quot;:&quot;AnthropicAI&quot;,&quot;name&quot;:&quot;Anthropic&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1798110641414443008/XP8gyBaY_normal.jpg&quot;},&quot;reply_count&quot;:11,&quot;retweet_count&quot;:9,&quot;like_count&quot;:68,&quot;impression_count&quot;:2566,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;video_preview_media_key&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p>It is a good line.</p><p>And I believe the sovereignty reflex is the right instinct. But here&#8217;s where I want to slow down, because the reflex hides a trap that the cloud era didn&#8217;t have.</p><p>Think back to ten years ago, when the worry was cloud lock-in. If you got nervous about AWS or Azure owning your destiny, you had a real escape hatch: on-premise. Bring it back in-house. Buy your own servers, run your own racks. The migration was miserable, expensive, slow &#8212; but it was <em>possible</em>, and at the end of it you genuinely owned the alternative. Sovereignty was a purchase order away.</p><p>What&#8217;s the equivalent for a frontier model today?</p><p>The good news is better than you&#8217;d expect. Open-weight models &#8212; Llama, Mistral, DeepSeek, Qwen (and Bielik) &#8212; are now genuinely competitive: Qwen-family systems post <a href="https://leaderboard.steel.dev/leaderboards/swe-bench-verified/">SWE-bench Verified scores</a> in the high seventies on real GitHub issue resolution. Closed Anthropic systems still top many public trackers &#8212; so the case for open models isn&#8217;t that they clearly lead, but that they&#8217;re becoming good enough for a growing share of enterprise work.</p><p>And increasingly, the thing that matters isn&#8217;t the raw weights at all &#8212; it&#8217;s the harness wrapped around them: the agent loop, the tool calls, the scaffolding that turns a model into something that actually does work. Claude Code is the obvious commercial example of the pattern; open-source harnesses are increasingly replicating it &#8212; replicable, and improving fast, which quietly tilts the math even further toward the open alternative. You can rent European GPUs, deploy the weights, and run the whole thing yourself. Open-source agent harnesses increasingly speak the same APIs as the commercial tools, so in principle you can run the entire loop locally &#8212; your code never leaving the building.</p><p>So we&#8217;re fine, right? We just self-host.</p><p>Not quite. Look at what you&#8217;re actually standing on. The open weights you&#8217;d fall back to are American (Llama) or Chinese (DeepSeek, Qwen). And whichever you pick, it runs on Nvidia GPUs &#8212; the very silicon that sits behind the chip export controls we just walked through. The fallback to escape US AI dependence is built on US AI hardware. No European AI accelerator exists on any credible timeline before 2030; the one new advanced fab on the continent, TSMC in Dresden, makes chips for cars, not for training runs.</p><p>With cloud, you could buy your way to <em>sovereignty</em>. With AI, you can only buy your way to <em>less dependence</em>.</p><h2><strong>The wall</strong></h2><p>Fine, says the optimist. Less dependent is still better. Build the European stack anyway &#8212; the models, the data centers, the whole sovereign rig. Throw money at it.</p><p>And this is where the story stops being about software, or even about chips, and becomes about something far more stubborn.</p><p>Because a sovereign AI is not only about software. It&#8217;s a physical thing that has to sit somewhere &#8212; in a building, drawing power, on a grid. The weights are portable. The machine that runs them is emphatically not. And the moment Europe tries to actually own that machine at scale, it runs headfirst into a constraint that no amount of capital or political will can conjure away on the relevant timeline.</p><p>Sovereignty, it turns out, isn&#8217;t blocked by software. It isn&#8217;t even, ultimately, blocked by chips.</p><p>It&#8217;s blocked by electrons.</p><p>Here&#8217;s what that means in practice. A data center can be built in twelve to eighteen months. Getting it connected to the electrical grid &#8212; the cables, substations, and permits that actually deliver the power &#8212; now takes seven to ten years across Europe&#8217;s major hubs. That gap is the real wall. You can pour concrete and rack GPUs at the speed of capital; you cannot conjure a high-voltage connection on the same timeline, no matter how much money or political will you throw at it.</p><p>And the load is not small. A single modern AI cluster draws as much electricity as a quarter-million homes. Anthropic expects one frontier training run to need five gigawatts by 2028 &#8212; the output of roughly five nuclear reactors, for a single model. To put that in perspective: <a href="https://notesfrompoland.com/2026/02/19/renewables-pass-50-of-polands-installed-power-capacity-for-first-time/">Poland&#8217;s entire installed generating capacity</a> is around 75 gigawatts, <a href="https://www.enerdata.net/publications/daily-energy-news/uk-reached-525-share-renewables-its-power-mix-2025.html">the UK&#8217;s</a> about 115, <a href="https://analysesetdonnees.rte-france.com/en/annual-review-2024/keyfindings">France&#8217;s</a> roughly 156. One training run is already a few percent of a mid-sized European country&#8217;s entire power system &#8212; and a serious sovereign-AI buildout means many of them running at once. In Ireland, data centers already eat <a href="https://www.irishtimes.com/environment/2025/06/10/data-centres-accounted-for-more-than-fifth-of-irelands-electricity-usage-last-year/">more than a fifth</a> of the entire country&#8217;s electricity, heading for nearly a third; official plans put <a href="https://www.irishtimes.com/politics/2026/06/09/data-centre-electricity-demand-could-exceed-power-usage-of-entire-country/">future data-center demand at roughly the nation&#8217;s all-time peak</a>. In the Netherlands, the grid is so congested that some new connections are being quoted waits into the mid-2030s. The grid is full, and the line is years long.</p><p>So the real race for AI independence in Europe is, underneath everything, a fight over power. The electrical kind.</p><p>And that&#8217;s a whole different story. A story that deserves another write up.</p>]]></content:encoded></item><item><title><![CDATA[Everyone Is a Builder Now]]></title><description><![CDATA[The shadow IT deluge]]></description><link>https://www.pdole.ga/p/everyone-is-a-builder-now</link><guid isPermaLink="false">https://www.pdole.ga/p/everyone-is-a-builder-now</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Thu, 11 Jun 2026 07:46:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SH61!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74dfd899-baa6-4b46-8d32-cb5eca89cfdc_1027x689.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SH61!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74dfd899-baa6-4b46-8d32-cb5eca89cfdc_1027x689.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SH61!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74dfd899-baa6-4b46-8d32-cb5eca89cfdc_1027x689.jpeg 424w, https://substackcdn.com/image/fetch/$s_!SH61!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74dfd899-baa6-4b46-8d32-cb5eca89cfdc_1027x689.jpeg 848w, https://substackcdn.com/image/fetch/$s_!SH61!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74dfd899-baa6-4b46-8d32-cb5eca89cfdc_1027x689.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!SH61!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74dfd899-baa6-4b46-8d32-cb5eca89cfdc_1027x689.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SH61!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74dfd899-baa6-4b46-8d32-cb5eca89cfdc_1027x689.jpeg" width="1027" height="689" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/74dfd899-baa6-4b46-8d32-cb5eca89cfdc_1027x689.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:689,&quot;width&quot;:1027,&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_!SH61!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74dfd899-baa6-4b46-8d32-cb5eca89cfdc_1027x689.jpeg 424w, https://substackcdn.com/image/fetch/$s_!SH61!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74dfd899-baa6-4b46-8d32-cb5eca89cfdc_1027x689.jpeg 848w, https://substackcdn.com/image/fetch/$s_!SH61!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74dfd899-baa6-4b46-8d32-cb5eca89cfdc_1027x689.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!SH61!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74dfd899-baa6-4b46-8d32-cb5eca89cfdc_1027x689.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Improvisation Deluge by Wassily Kandinsky</figcaption></figure></div><p>Last year (!) Brian Armstrong told the world that <a href="https://x.com/brian_armstrong/status/1963315806248604035">~40% of daily code at Coinbase is AI-generated</a> &#8212; and that he wanted it past 50%. I bet many people read it as a layoff memo with a future tense. Truth be told, the story seemed to write itself: AI gets good at code, engineers get cheap, then optional, then gone.</p><p>And <a href="https://www.reddit.com/r/jobs/comments/1t7bk2j/coinbase_layoffs_ceo_sacks_700_employees_in_7am/">you wouldn&#8217;t be wrong &#8212; the layoffs happened</a>, just a few months later.</p><p>There&#8217;s another angle to it. Look at what Armstrong actually does on weekends. He builds little web apps. <a href="https://finance.yahoo.com/news/brian-armstrong-wants-half-coinbase-105348015.html">By his own account</a>, &#8220;it&#8217;s not really coding &#8212; I just observe, communicate, execute, and copy-paste, and it usually works.&#8221;</p><p>It&#8217;s interesting because he is by no means alone. <a href="https://www.reddit.com/r/ClaudeAI/comments/1s7jdof/garry_tan_opensourced_gstack_his_personal_skill/">Garry Tan runs Y Combinator and still ships ten to twenty thousand lines of code a day on the side</a> &#8212; cheered by some as proof of what&#8217;s possible, dismissed by others as throwaway slop. At least it&#8217;s entertaining.</p><p>I have personally had many conversations mirroring this sentiment.</p><p>The point is &#8212; people further from the codebase keep climbing back into it. Not to replace the engineers, but rather because &#8212; among other things &#8212; it turned out to be fun. Hell, it is!</p><p>That&#8217;s the part where I start to question the ongoing replace-or-augment debate.</p><p>Essentially, we were sold two futures. In one, AI makes engineers faster (which it does), and demand for them explodes. In the other, it makes them unnecessary. In other words, one assumes that the demand will expand (due to cost going down) and the other assumes that it is fixed (or at least growing way slower than supply).</p><p>What if the pile was bottomless, though? Or what if it&#8217;s at least way deeper than we think? So deep in fact, that due to the entry barrier falling through the floor, the cohort of engineers, even if it grows, will be dwarfed by an even larger cohort of non-engineers building software?</p><p>Brian Armstrong even said as much in <a href="https://x.com/brian_armstrong/status/2051616759145185723">his layoff Twitter/X post</a>:</p><blockquote><p><em>&#8220;Second, AI is changing how we work. Over the past year, I&#8217;ve watched engineers use AI to ship in days what used to take a team weeks. Non-technical teams are now shipping production code and many of our workflows are being automated. The pace of what&#8217;s possible with a small, focused team has changed dramatically, and it&#8217;s accelerating every day.&#8221;</em></p></blockquote><p>I just happen to work with an institutional investment office &#8212; analysts and portfolio people. Most not being software engineers by training. In the old days they were supposed to be the consumers of software the tech team builds for them.</p><p>Instead they became the catalyst. They build their own workbenches now. They manipulate data, stand up small applications that crunch a dataset and render a dashboard, ship things that are genuinely useful. People who hadn&#8217;t written a line in fifteen years, or ever, are suddenly in the code. And you can see it on their faces &#8212; they are enjoying it!</p><p>If you think about that, we&#8217;ve run this experiment before, every time the entry barriers to programming dropped. Assembly to Fortran and C let scientists write their own simulations instead of begging the systems team (not mentioning what the introduction of Python did!).</p><p>The spreadsheet turned millions of accountants and analysts into programmers who would never accept the title.</p><p>No-code/low-code did it again (albeit never at the scale we were promised).</p><p>Each wave, the prediction was the same &#8212; this abstraction will reduce the need for programmers &#8212; and each time the population of people who build software went up, not down, because the barrier to entry fell and a new cohort walked in.</p><p>LLMs are just the steepest drop yet. The barrier used to be syntax, setup, and the years it takes to stop being dangerous. The barrier is now a clearly stated intent. So of course the CEO is back. So is the analyst, the PM, the designer, the ops lead who spent a decade routing around IT with increasingly cursed spreadsheets.</p><p>Yeah, yeah, yeah. Jevons Paradox. We heard it before.</p><p>But hear me out: the cheaper code gets, the more of it the organization wants, and the more of your non-engineers quietly become part-time builders.</p><p>That&#8217;s not a threat to your engineering function! It&#8217;s a vastly larger surface area of software, created by people who don&#8217;t report to it, don&#8217;t follow its conventions, and don&#8217;t know what they don&#8217;t know. Give it a second thought, because this has significant implications for tech organizations (or rather &#8212; any kind of organization).</p><p>Which is exactly what happened the last time. The spreadsheet didn&#8217;t just make accountants into programmers &#8212; it made them into programmers nobody supervised, and the unsupervised work turned out to run real things. A <a href="https://elischolar.library.yale.edu/cgi/viewcontent.cgi?article=1502&amp;context=ypfs-documents">copy-paste slip in a risk spreadsheet</a> helped JPMorgan misjudge the exposure behind a multi-billion-dollar loss. An <a href="https://en.wikipedia.org/wiki/Growth_in_a_Time_of_Debt">Excel error in a single Reinhart-Rogoff paper</a> propped up austerity policy across actual governments. Audits have long found that <a href="https://www.i-nth.com/guidelines/why-good-practice-matters/95-of-spreadsheets-have-errors">the overwhelming majority of consequential spreadsheets contain errors</a>. So within a decade an entire industry existed to govern the result: version it, audit it, lock down what data it could touch, and stop a fat-fingered cell from quietly restating earnings.</p><p>And a vibe-coded app is the spreadsheet&#8217;s far more dangerous descendant. A spreadsheet sits in a file; an app reaches into the production database, calls live APIs, moves money, holds the PII. And yes, I have seen the blasphemous contraptions people already build in Excel. Still, a spreadsheet error pretty much stays in its cells; an app error is a breach, a leak, or a 3 a.m. page.</p><p>In essence though &#8212; the builders came first. The rails came after &#8212; retroactively &#8212; because the rails turned out to be where the real problem, and the real market, lived.</p><p>So here&#8217;s the thought.</p><p>Everyone is busy building the tools that help amateurs produce the first working version. Others are building AI SDLC pipelines for engineers.</p><p>Almost no one is building the part that makes the thousandth version last &#8212; the pipelines, the guardrails, the paved road that lets a portfolio analyst&#8217;s Saturday app run on Monday without an engineer babysitting it.</p><p>And any technology leader with visibility into budgeting knows &#8212; <a href="https://dev.to/oneentry/80-of-the-it-budget-goes-to-maintenance-not-growth-how-to-break-out-of-this-trap-46a2">the majority of costs of software development are spent on maintenance</a>.</p><p>The market for helping non-engineers build things (not prototypes!) that last is under-explored. The on-ramp is crowded (prototype). The highway is crowded (SDLC pipelines). Nobody is paving the regular road.</p><p>If the prototype is now free, the durable thing around it is the scarce one. That&#8217;s not the small market. It might even be the bigger one, as more and more people become builders.</p><p>We&#8217;ll see what happens. One thing is certain &#8212; the bugs caused by incorrectly filled Excel spreadsheets will be overshadowed by the problems that will come from the new wave of apps being built. </p><p>Fasten your seatbelts, because it&#8217;s going to be a hell of a ride.</p>]]></content:encoded></item><item><title><![CDATA[On the Inversion of Practices]]></title><description><![CDATA[How Software Industry Inverts Every Good Idea]]></description><link>https://www.pdole.ga/p/on-the-inversion-of-practices</link><guid isPermaLink="false">https://www.pdole.ga/p/on-the-inversion-of-practices</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Wed, 27 May 2026 08:55:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HDC3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b157a03-36d3-4af3-89c9-307b7844eff4_2496x1664.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HDC3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b157a03-36d3-4af3-89c9-307b7844eff4_2496x1664.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HDC3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b157a03-36d3-4af3-89c9-307b7844eff4_2496x1664.png 424w, https://substackcdn.com/image/fetch/$s_!HDC3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b157a03-36d3-4af3-89c9-307b7844eff4_2496x1664.png 848w, https://substackcdn.com/image/fetch/$s_!HDC3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b157a03-36d3-4af3-89c9-307b7844eff4_2496x1664.png 1272w, https://substackcdn.com/image/fetch/$s_!HDC3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b157a03-36d3-4af3-89c9-307b7844eff4_2496x1664.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HDC3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b157a03-36d3-4af3-89c9-307b7844eff4_2496x1664.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b157a03-36d3-4af3-89c9-307b7844eff4_2496x1664.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2502977,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/199052301?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b157a03-36d3-4af3-89c9-307b7844eff4_2496x1664.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_!HDC3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b157a03-36d3-4af3-89c9-307b7844eff4_2496x1664.png 424w, https://substackcdn.com/image/fetch/$s_!HDC3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b157a03-36d3-4af3-89c9-307b7844eff4_2496x1664.png 848w, https://substackcdn.com/image/fetch/$s_!HDC3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b157a03-36d3-4af3-89c9-307b7844eff4_2496x1664.png 1272w, https://substackcdn.com/image/fetch/$s_!HDC3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b157a03-36d3-4af3-89c9-307b7844eff4_2496x1664.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Matisse&#8217;s Le Bateau</figcaption></figure></div><p>Next week I&#8217;m heading to New York for <a href="https://www.tech-week.com/">Tech Week</a>. I always look forward to the trip &#8212; partly for the events, partly because New York is just a great city to land in. If you&#8217;ve never been, MoMA is one of those places worth carving out half a day for. Starry Night, the Rothkos, the Picassos, and so on.</p><p>MoMA is also home to a funny story.</p><p>In October 1961, the museum opened a new exhibition: <em>The Last Works of Matisse: Large Cut Gouaches</em>. Among the pieces was Matisse&#8217;s <a href="https://en.wikipedia.org/wiki/The_Boat_(Matisse)">Le Bateau</a> &#8212; a sailboat and its reflection. It hung in the gallery for 47 days before a visitor, <a href="https://news.artnet.com/art-world/moma-hangs-matisse-upside-down-683900">a stockbroker named Genevieve Habert, pointed out that it was upside down</a>. The reflection was on top. The boat was on the bottom. Tens of thousands of people had walked past it, and no one else noticed. </p><p>The software industry runs on a similar trick. </p><p>There&#8217;s a pattern in tech that&#8217;s so reliable you could almost set a watch by it. Someone has a good idea. The idea spreads and turns into practice. Within one cycle, the industry has implemented something that is, on close inspection, pretty much the opposite of what the practice was supposed to be. And yet, we keep the original name.</p><p>Agile is the obvious one. <a href="https://agilemanifesto.org/">The original manifesto</a> is 25 years old. It&#8217;s eight bullet points long, and almost militantly anti-process. &#8220;<em>Individuals and interactions over processes and tools.</em>&#8221; &#8220;<em>Responding to change over following a plan.</em>&#8221; What we built on top of it is two-week deadline cycles dressed up as sprints, and Jira workflows with more states than the periodic table. The retrospective &#8212; the one ritual whose entire job was to <em>change something</em> &#8212; became the meeting everyone skips (or has lost hope that it can meaningfully improve anything). We took a document arguing against process and turned it into a process-heavy way to ship software. Hell, we've even built <a href="https://scaledagile.com/certification/">an entire certification industry</a> on top of it &#8212; over a million SAFe-certified professionals, another 1.5 million through Scrum Alliance!</p><p>DevOps had a simpler fate. The whole point was to <em>tear down the wall</em> between development and operations. Shared ownership. No handoffs. Engineering teams responsible for what they shipped. So we built a new wall, painted &#8220;DevOps&#8221; on it, and hired a team to stand behind it. The job posting reads: &#8220;<em>DevOps Engineer &#8212; own the CI pipeline so the developers don&#8217;t have to.</em>&#8221; The wall is taller now, and it has a Jira queue.</p><p>Microservices were supposed to give teams independent deployability. Small services, clear contracts, deploy on your own schedule. What most companies actually built is a distributed monolith &#8212; every service depending on every other service, except now the dependencies travel over a network with retries and timeouts and a 40-page runbook. We didn&#8217;t decouple the system. We decoupled the <em>deployments</em> and coupled everything else harder. The reward for splitting your monolith is that now your monolith has latency.</p><p>And &#8212; the part that got me thinking about all this from my <a href="https://www.pdole.ga/p/the-triad-coordination-tax">previous article</a> &#8212; the Product Trio. Cagan&#8217;s point was that PM, design, and engineering should sit so close together that the seams disappear. One team, three skills, one outcome. What we built instead is three sub-organizations with separate VPs, separate roadmaps, and a shared Confluence space. The trio became a triad became a tax.</p><p></p><p>So why does this keep happening? My working theory is dull.</p><p>Good ideas in our industry arrive as <em>practices</em>, and orgs metabolize practices the only way they know how &#8212; by assigning them a manager, a budget line, and a team name. The practice dies on contact with the org chart. The main aspect that survives is the name. </p><p>With the AI revolution, we are about to have new ideas. Ideas that will improve how we build software at scale. The next big idea may be about how product disciplines collapse into each other, with AI as the connective tissue. </p><p>And yet &#8212; give it a cycle. I suspect it will have a separate vertical in the org chart and a VP before the cycle ends.</p>]]></content:encoded></item><item><title><![CDATA[The Triad Coordination Tax]]></title><description><![CDATA[Engineering is collapsing into product. So is design, so is middle management. The coordination tax between them is shrinking.]]></description><link>https://www.pdole.ga/p/the-triad-coordination-tax</link><guid isPermaLink="false">https://www.pdole.ga/p/the-triad-coordination-tax</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Fri, 22 May 2026 09:28:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dCfR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d17ebdd-ee35-4998-8266-6597b7f40c39_1248x832.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dCfR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d17ebdd-ee35-4998-8266-6597b7f40c39_1248x832.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dCfR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d17ebdd-ee35-4998-8266-6597b7f40c39_1248x832.png 424w, https://substackcdn.com/image/fetch/$s_!dCfR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d17ebdd-ee35-4998-8266-6597b7f40c39_1248x832.png 848w, https://substackcdn.com/image/fetch/$s_!dCfR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d17ebdd-ee35-4998-8266-6597b7f40c39_1248x832.png 1272w, https://substackcdn.com/image/fetch/$s_!dCfR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d17ebdd-ee35-4998-8266-6597b7f40c39_1248x832.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dCfR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d17ebdd-ee35-4998-8266-6597b7f40c39_1248x832.png" width="1248" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7d17ebdd-ee35-4998-8266-6597b7f40c39_1248x832.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1248,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1194780,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/198629578?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d17ebdd-ee35-4998-8266-6597b7f40c39_1248x832.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_!dCfR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d17ebdd-ee35-4998-8266-6597b7f40c39_1248x832.png 424w, https://substackcdn.com/image/fetch/$s_!dCfR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d17ebdd-ee35-4998-8266-6597b7f40c39_1248x832.png 848w, https://substackcdn.com/image/fetch/$s_!dCfR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d17ebdd-ee35-4998-8266-6597b7f40c39_1248x832.png 1272w, https://substackcdn.com/image/fetch/$s_!dCfR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d17ebdd-ee35-4998-8266-6597b7f40c39_1248x832.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In a recent client engagement, I&#8217;ve been working with investment analysts. A small tech team works alongside the business. The analysts themselves are building their own POCs &#8212; not through a PM, not through a backlog, not through a request-for-proposal that turns into a Jira epic six weeks later. They prototype directly. And they do it with Claude Code. The small tech team (us) picks up where the business&#8217;s prototype runs out of road, expands it, and productizes what survives.</p><p>Five years ago, this engagement would have been a delivery team of six+ on the vendor side &#8212; PM, designer, frontend, backend, devops, you name it &#8212; handing off to a passive business sponsor on the client side. </p><p>So, what happened?</p><p>The seats that have disappeared are the seats that existed to translate between the business and the engineering.</p><p>That is the article in one anecdote. What used to flow through a chain of specialists &#8212; each translating the work for the next &#8212; now flows directly. The seats that survive on both sides are smaller, more senior, and more shaped.</p><p>In <a href="https://www.pdole.ga/p/play-it-again-sam">the previous essay</a>, I described what I think is happening to the composition of the software engineering workforce. This is the companion question:</p><p>What shape does the surviving organization actually take?</p><p>I believe there are three threads to this.</p><h2>The Triad was a coordination structure</h2><p>For about fifteen years, the canonical tech org had three sub-organizations. Engineering. Product. Design. The &#8220;EPD triad&#8221; &#8212; popularised by Marty Cagan / SVPG (<a href="https://www.goodreads.com/book/show/35249663-inspired?ref=nav_sb_ss_2_8">Inspired, 2008</a>):</p><blockquote><p><em>In modern teams, we tackle these risks prior to deciding to build anything. These risks include value risk (whether customers will buy it) [Product], usability risk (whether users can figure out how to use it) [Design], feasibility risk (whether our engineers can build what we need with the time, skills, and technology we have) [Engineering], and business viability risk (whether this solution also works for the various aspects of our business&#8212;sales, marketing, finance, legal, etc.) [Product].</em></p><p></p><p>Inspired: How to Create Tech Products Customers Love (Chapter 7)<br>by Marty Cagan / SVPG (annotations mine)</p></blockquote><p>It roughly maps to a &#8220;three risks&#8221; frame:</p><ul><li><p>Product = value/viability</p></li><li><p>Design = usability</p></li><li><p>Engineering = feasibility</p></li></ul><p>The triad existed because specialists couldn&#8217;t easily understand each other&#8217;s work. PMs translated business intent into requirements engineers could execute. Designers translated user needs into visuals PMs could approve. Engineers translated requirements into a working system, and then translated the system&#8217;s constraints back into something PMs could communicate to the business.</p><p>Cagan&#8217;s work became part of the intellectual foundation for product people. By the mid-2010s, it was an industry-wide convention, and organizational structures grew to mimic the frame.</p><p>Instead of tight collaboration, we drew organizational boundaries along these dividing lines. (This might have been a distortion of Cagan&#8217;s thinking, by the way.)</p><p>Every translation now carried a tax &#8212; a meeting, a Jira ticket, a Figma handoff, a spec doc, a Slack thread, a manager whose entire job was to enforce the protocol. The tax was the price of having specialists who couldn&#8217;t do each other&#8217;s jobs.</p><p>The cracks start to appear in the facade of this tax, though.</p><p>Sahil Lavingia, Gumroad&#8217;s CEO, predicted it in <a href="https://www.youtube.com/watch?v=OFkVBi_9FPI">a walkthrough of his own workflow</a> back in January 2025. I highly recommend watching it &#8212; it has aged remarkably well, in times when material from last month is often already outdated. His estimate of the speed gain, in certain cases, is around 40x &#8212; a number that sounds absurd until you notice <strong>it is mostly the </strong><em><strong>translation</strong></em><strong> time between specialist teams that has been removed</strong>, not the time spent doing the underlying work.</p><p>A PM who prototypes in Cursor no longer needs an entire engineering team to validate feasibility &#8212; the prototype itself is the validation. Sure, it might need proper guardrails and scaffolds, and maybe someone to productionize the output. But that is very different from throwing a ticket over the wall.</p><p>Likewise, a designer who can ship their own React doesn&#8217;t wait in a queue for engineers (though they might need a code review).</p><p>Shopify now includes <a href="https://www.linkedin.com/posts/sarahhum_shopify-raised-the-bar-for-pm-interviews-share-7364026820310007810-aGR3/">vibe coding in PM interviews</a>. Think about that. Oh, and Shopify <a href="https://www.news.aakashg.com/p/vibe-coding-interview?hide_intro_popup=true">is not the only one</a>. Google, Netflix, and Stripe followed. There is an expectation that a PM can ship a working prototype in 2026.</p><p>Maryam Ashoori, leading WatsonX product at IBM, mentions that the traditional 1 PM to 8 engineers ratio is being replaced by <a href="https://www.produxlabs.com/product-thinking-blog/episode-241-ai-strategy">1 PM to 0.5 engineers</a>.</p><p>Heck, <a href="https://www.svpg.com/a-vision-for-product-teams/">Marty Cagan himself predicted</a> last year that within 3&#8211;10 years we should expect product teams to compress to 3 people.</p><p>Joel Lewenstein, the Chief Design Officer at Anthropic, calls it <a href="https://www.fastcompany.com/91519219/why-are-designers-engineers-and-product-managers-in-a-three-way-stand-off">a Venn diagram coming closer together</a> &#8212; heavy role collapse upstream in ideation and prototyping, with clearer swim lanes still re-emerging downstream at scale (this is productionization).</p><p>The triad is shrinking because the protocol between the three organizations was the expensive part. And a large chunk of that protocol got eaten by AI.</p><h2>Layers go with it</h2><p>Some management layers existed to manage the translation. When the translation goes away, these layers have nothing left to manage.</p><p>GitLab announced <a href="https://about.gitlab.com/blog/gitlab-act-2/">Act 2</a> on May 11. &#8220;<em>Eight layers is too deep for a company our size, and management layers are slowing us down.</em>&#8221; They are removing up to three layers in some functions and reorganizing R&amp;D into ~60 smaller teams with end-to-end ownership &#8212; nearly doubling the count of independent units. CEO Bill Staples explicitly framed it as &#8220;<em>rewiring internal processes with AI agents, automating reviews, approvals and handoffs.</em>&#8221;</p><p>Meta&#8217;s Applied AI engineering team is now running at a <a href="https://fortune.com/2026/03/14/metas-ai-team-50-flat-management-structure/">50:1 employee-to-manager ratio</a>. The industry &#8220;outer limit&#8221; for span of control is 25:1. The research-determined optimum, depending on whose textbook you use, sits around 7. Jensen Huang is notorious for running Nvidia with <a href="https://www.businessinsider.com/why-nvidia-ceo-jensen-huang-prefers-group-problem-solving-2026-3">60 direct reports</a> and no one-on-ones. But this sentiment is spreading across the industry. Andy Jassy mandated a 15% increase in the IC-to-manager ratio at Amazon at the end of 2024 and doubled down on it in his 2026 shareholder letter. Microsoft cut 7,000 middle managers in May 2025 &#8212; without even using the word &#8220;AI&#8221; in the announcement.</p><p>There is a fresh <a href="https://fortune.com/2026/05/07/airbnb-ceo-brian-chesky-two-people-wont-survive-ai-era-pure-people-managers-workers-resist-change/">quote from Brian Chesky</a> noticing the same thing: &#8220;<em>I don&#8217;t think people managers will have any value in the future. When I mean people managers, I mean people that only manage people. (&#8230;) You can&#8217;t just be these managers where you&#8217;re people&#8217;s therapists, doing meetings, doing one-on-ones.&#8221; The direction is the &#8220;manager IC</em>&#8221; &#8212; every manager has to manage through the work, not around it.</p><p>The pure-coordination role &#8212; the manager whose job was to be a load-balancer or translator between specialists &#8212; is being deleted at the same time the specialists themselves are being merged.</p><h2>The shaped generalist comes back</h2><p>If specialist teams merge and translator managers go, what shape is left? There&#8217;s a third thread. The people who survive look different from the people who got the company here.</p><p>The 2010&#8211;2022 era of hyper-specialisation &#8212; backend engineer, frontend engineer, infra engineer, ML engineer, data engineer, mobile engineer, QA engineer, SRE, DevEx, four flavours of designer, three flavours of PM &#8212; was a function of two things. Cheap capital, which let companies hire one of everything. And the limits of any one human&#8217;s ability to hold the whole stack in their head.</p><p>Both of those constraints have softened. Capital is no longer free. And the assistant you sit next to can hold whatever part of the stack you forgot.</p><p>What comes back is the T-shaped generalist. An engineer who can write the spec, ship the prototype, validate with users, instrument the metric, and own the operational tail. A product person who can prototype the thing they used to brief. A designer who ships their own UI to production. The early-stage founder profile, basically &#8212; but as the default shape of a senior contributor at scale, not just at seed.</p><p>YC&#8217;s <a href="https://www.ycombinator.com/rfs">Requests for Startups</a> for 2026 names this explicitly: &#8220;<em>For the first time a 2&#8211;3 person team can ship something a Fortune 10 can find useful before the ink is dry on their incorporation docs.</em>&#8221; Tobi L&#252;tke&#8217;s <a href="https://www.cnbc.com/2025/04/07/shopify-ceo-prove-ai-cant-do-jobs-before-asking-for-more-headcount.html">Shopify memo</a> made AI usage a basic expectation, and made managers prove AI couldn&#8217;t do the job before approving headcount.</p><p>Small teams of shaped generalists, with no coordination tax between them, can now do work that used to require the organizational triad plus three layers of management above it.</p><h2>Where this breaks</h2><p>It&#8217;s worth being honest about where the collapse stops.</p><p>Late-stage product work still has swim lanes. Lewenstein&#8217;s nuance is the right one &#8212; collapse upstream, clearer specialisation downstream as you scale and harden. So it works up to a point. Still, the feasible range is increasing.</p><p>Regulated and safety-critical domains &#8212; financial services, healthcare, defence, anything with an audit perimeter &#8212; still reward people who own a narrow column deeply.</p><p>And the span-of-control numbers at the extreme end are going to break some managers. <a href="https://www.linkedin.com/pulse/price-flat-what-leaders-miss-rush-eliminate-middle-krishnamoorthy-wsice">One Wall Street Journal-quoted manager</a> with 36 direct reports described a &#8220;<em>constant state of inadequacy</em>&#8221;. I can tell you I&#8217;ve already had multiple conversations like that. No one said the transition was going to be easy.</p><p>And yet, my take is that removing the layers without redefining how the role gets spread out will produce false efficiency. We&#8217;re going to find out soon enough.</p><p>The optimistic version of this article is that coordination between the organizational triad was a tax, and the tax is being repealed. The honest version adds: that doesn&#8217;t mean the underlying functions disappear. It means they get redistributed across fewer, more capable people &#8212; and the people who used to do them as full-time specialist roles need to become something else.</p><h2>What now?</h2><p><a href="https://www.pdole.ga/p/play-it-again-sam">Play It Again, Sam</a> described the substitution happening at the engineering level &#8212; routine work absorbed into a tooled layer, strategic work concentrated and repriced upward.</p><p>This is the same mechanism viewed from inside the org chart.</p><p>The Triad coordination was a tax.<br>The layer of managers above the triad was a tax.<br>The translation between roles was a tax.</p><p>What survives is smaller, flatter, and more shaped.</p><p><em>The function persists. The tools change. The people who change with the tools keep their seat.</em></p>]]></content:encoded></item><item><title><![CDATA[Play it again, Sam]]></title><description><![CDATA[Cloud didn&#8217;t kill the database administrator function. AI isn&#8217;t killing software engineering.]]></description><link>https://www.pdole.ga/p/play-it-again-sam</link><guid isPermaLink="false">https://www.pdole.ga/p/play-it-again-sam</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Thu, 14 May 2026 09:41:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!B2v0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d66ac5b-7765-44dd-a732-91c8eca5ca86_1248x832.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!B2v0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d66ac5b-7765-44dd-a732-91c8eca5ca86_1248x832.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!B2v0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d66ac5b-7765-44dd-a732-91c8eca5ca86_1248x832.png 424w, https://substackcdn.com/image/fetch/$s_!B2v0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d66ac5b-7765-44dd-a732-91c8eca5ca86_1248x832.png 848w, https://substackcdn.com/image/fetch/$s_!B2v0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d66ac5b-7765-44dd-a732-91c8eca5ca86_1248x832.png 1272w, https://substackcdn.com/image/fetch/$s_!B2v0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d66ac5b-7765-44dd-a732-91c8eca5ca86_1248x832.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!B2v0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d66ac5b-7765-44dd-a732-91c8eca5ca86_1248x832.png" width="1248" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d66ac5b-7765-44dd-a732-91c8eca5ca86_1248x832.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1248,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1674994,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/197417598?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d66ac5b-7765-44dd-a732-91c8eca5ca86_1248x832.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_!B2v0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d66ac5b-7765-44dd-a732-91c8eca5ca86_1248x832.png 424w, https://substackcdn.com/image/fetch/$s_!B2v0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d66ac5b-7765-44dd-a732-91c8eca5ca86_1248x832.png 848w, https://substackcdn.com/image/fetch/$s_!B2v0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d66ac5b-7765-44dd-a732-91c8eca5ca86_1248x832.png 1272w, https://substackcdn.com/image/fetch/$s_!B2v0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d66ac5b-7765-44dd-a732-91c8eca5ca86_1248x832.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I keep hearing two competing narratives &#8212; in real life, and in their extreme forms on social media.</p><p>One is: AI will eliminate software engineering (mostly hands-off CEOs, VCs, social media influencers). The other is: AI is a passing fad, and we are at the peak of the inflated expectations cycle (mostly skeptical hands-on engineers). </p><p>My bet: neither is right, and both miss the point of a technology transformation we have seen many times before.</p><h1>Backdrop: Economic climate</h1><p>Let&#8217;s zoom out a little. </p><p>It is sad to notice, but the 2026 tech layoff count is climbing, and we are dangerously close to being one of &#8212; if not the &#8212; worst years since the pandemic. Take that in for a moment.  </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!d9io!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe80f0307-df9d-420a-994d-14e2ec6a53c8_2104x1912.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!d9io!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe80f0307-df9d-420a-994d-14e2ec6a53c8_2104x1912.png 424w, https://substackcdn.com/image/fetch/$s_!d9io!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe80f0307-df9d-420a-994d-14e2ec6a53c8_2104x1912.png 848w, https://substackcdn.com/image/fetch/$s_!d9io!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe80f0307-df9d-420a-994d-14e2ec6a53c8_2104x1912.png 1272w, https://substackcdn.com/image/fetch/$s_!d9io!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe80f0307-df9d-420a-994d-14e2ec6a53c8_2104x1912.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!d9io!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe80f0307-df9d-420a-994d-14e2ec6a53c8_2104x1912.png" width="1456" height="1323" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e80f0307-df9d-420a-994d-14e2ec6a53c8_2104x1912.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1323,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:192992,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/197417598?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe80f0307-df9d-420a-994d-14e2ec6a53c8_2104x1912.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_!d9io!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe80f0307-df9d-420a-994d-14e2ec6a53c8_2104x1912.png 424w, https://substackcdn.com/image/fetch/$s_!d9io!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe80f0307-df9d-420a-994d-14e2ec6a53c8_2104x1912.png 848w, https://substackcdn.com/image/fetch/$s_!d9io!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe80f0307-df9d-420a-994d-14e2ec6a53c8_2104x1912.png 1272w, https://substackcdn.com/image/fetch/$s_!d9io!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe80f0307-df9d-420a-994d-14e2ec6a53c8_2104x1912.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">State for mid May 2026 (source: trueup.io)</figcaption></figure></div><p>By the first week of May, the TrueUp full-year projection sits near a staggering 361,000. Trackers disagree on the exact tally (<a href="https://layoffs.fyi/">Layoffs.fyi: ~103,000</a>; <a href="https://www.trueup.io/layoffs">Trueup: ~132,000</a>) because they count differently, but they agree on the shape: 2026 will pass 2025&#8217;s ~246,000 US tech layoffs, with months to spare. <a href="https://octagonai.co/markets/economics/layoffs/more-tech-layoffs-in-20-26-than-in-2025/">Kalshi and Polymarket prediction markets have it at 91&#8211;93% odds</a>. </p><p>(Disclaimer: if you look those numbers up, they are unlikely to be exactly the same &#8212; the data flows in continuously, and even while I was writing this essay they were, sadly, increasing) </p><p>The Q1 names are unambiguous. </p><ul><li><p>Oracle: <a href="https://www.cnbc.com/2026/03/31/oracle-layoffs-ai-spending.html">~20,000&#8211;30,000 cuts in March</a>, tied to a $2.1B restructuring charge, explicitly funding AI data centers.</p></li><li><p>Intel: <a href="https://www.kore1.com/intel-layoffs-2026/">25,000+ between 2025 and 2026</a>, headcount now under 100,000. </p></li><li><p>Amazon: <a href="https://www.businessinsider.com/amazon-continues-job-cuts-retail-ai-2026-5?IR=T">~30,000 (and counting)</a>. </p></li><li><p>Meta: 8,000 in Q1 (<a href="https://finance.yahoo.com/sectors/technology/articles/mark-zuckerberg-says-meta-cutting-110538755.html">Zuckerberg said the cuts were</a> structured as headcount reduction in service of AI infrastructure) on top of a quarter where revenue grew 33% and net income grew 61%. </p></li><li><p>Cloudflare <a href="https://www.bankinfosecurity.com/cloudflare-cuts-1100-arctic-wolf-axes-250-amid-ai-surge-a-31657">cut 20%</a> of its workforce while <a href="https://www.cnbc.com/quotes/NET">growing revenue 34%</a>.</p></li><li><p>Coinbase <a href="https://www.reuters.com/business/world-at-work/coinbase-cut-about-14-workforce-2026-05-05/">cut 14%</a> in a quarter where revenue fell 31%. </p></li><li><p>PayPal: <a href="https://finance.yahoo.com/markets/stocks/articles/paypal-layoffs-ceo-cuts-20-154944985.html">up to 20% of headcount</a> over two to three years under a new CEO.</p></li></ul><p>And yet, the coin has another side.</p><p><a href="https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE">FRED&#8217;s Indeed Hiring Lab index for US software development job postings</a> &#8212; IHLIDXUSTPSOFTDEVE for the curious &#8212; sits at 72.15 as of May 14, 2026. Pre-pandemic baseline is 100. So postings are still well below their 2022 peak. But they have been climbing since early 2025, and as of February <a href="https://www.reddit.com/r/cscareers/comments/1rcnena/us_software_job_postings_are_up_10_yoy_despite/">US software-development postings were up 10% year-over-year while total US job postings declined 5.8%</a>. The pattern I noted <a href="https://www.pdole.ga/p/dario-was-mostly-right">in March</a> &#8212; that openings had been growing since the bottom of the dip in early 2025 &#8212; has continued and accelerated.</p><p>This is the article in two numbers: layoffs accelerating to a record; openings climbing back at a 10% YoY pace. Both are true at the same time. </p><p>How can that be?</p><p>The same six companies cutting headcount in Q1 had thousands of open engineering positions on their own careers pages on the same days the layoffs were announced &#8212; and a few of them are revealing. Meta: heavy on AI Research Scientists and ML Engineers. PayPal: <em>Lead Product Manager, Agentic Commerce</em>. Coinbase: <em>Principal Machine Learning Engineer</em>. Same for Cloudflare and GitLab.</p><h2>Two CEOs</h2><p>Two CEO statements from the last sixty days frame the whole story.</p><p>GitLab&#8217;s <a href="https://timesofindia.indiatimes.com/technology/tech-news/gitlab-announces-layoffs-ceo-bill-staples-says-software-will-be-built-by-machines-directed-by-people/articleshow/131027186.cms">Bill Staples described his restructuring</a> &#8212; three management layers removed, R&amp;D reorganized into ~60 smaller teams &#8212; as <em>&#8220;not an AI optimization or cost cutting exercise.&#8221;</em> He said it in the same statement in which he also said <em>&#8220;software will be built by machines, directed by people&#8221;</em> and that agents will <em>&#8220;plan, code, review, deploy and repair software.&#8221;</em> </p><p>Wipro &#8212; yes, the Indian 200k+-employee behemoth &#8212; said the <a href="https://www.outlookbusiness.com/corporate/wipro-layoff-hundreds-mid-level-roles-terminated-amid-margin-focus">interesting bit out loud as early as 2024</a>! When the company began cutting hundreds of mid-level onsite roles, an internal source described the doctrine as <em>&#8220;Left-Shift&#8221;</em>: <em>&#8220;The work of a level 3 employee is shifted to a level 2 employee, who is given appropriate tools. A level 1 employee does the level 2 work, and the idea is that the work of a level 1 employee is automated.&#8221;</em> That is the substitution mechanism stated cleanly. Wipro has continued &#8212; recruiters describe TCS, Infosys, and Wipro as having quietly cut around 50,000 jobs across 2025 under the label &#8220;performance management&#8221; or &#8220;skill mismatch,&#8221; while Wipro itself simultaneously hired 7,500 freshers in FY26 and now lists no fewer than 10,000 open positions (which you can check <a href="https://careers.wipro.com/search?searchResultView=LIST">here</a>).</p><p>The Wipro doctrine is the article. <em>Push the work down the seniority ladder, give it tools, automate what is left at the bottom.</em> Every other company is doing some version of it. Not everyone will say so on the record. Wipro said so two years ago.</p><p>The market is now discounting the AI-restructuring story even when CEOs deliver it cleanly. Cloudflare fell 24% on its AI announcement. PayPal fell 8%. Marc Andreessen &#8212; who has every incentive to talk AI up &#8212; <a href="https://fortune.com/2026/03/31/marc-andreessen-ai-layoffs-silver-bullet-excuse-overhiring/">called it a &#8220;silver bullet excuse.&#8221;</a> </p><p>So what is happening?</p><h2>We&#8217;ve seen this movie before</h2><p>In 2008, every company of meaningful size had a Database Administrator. They patched, backed up, tuned, provisioned. By 2018, the title was rare. The popular reading: <em>cloud killed DBAs.</em></p><p>The Bureau of Labor Statistics tells a different story. <em><a href="https://www.bls.gov/ooh/computer-and-information-technology/database-administrators.htm">Database Administrators and Architects</a></em><a href="https://www.bls.gov/ooh/computer-and-information-technology/database-administrators.htm"> is projected to grow 4% from 2024 to 2034</a> (worth noting &#8212; the average growth rate across all professions is 3%), ~7,800 openings a year, median wage $104,620. Yet it would be dishonest to pretend nothing changed. You don&#8217;t meet DBAs at conferences anymore. </p><p>But that&#8217;s not even the whole story! True, AWS RDS and its peers absorbed the routine 70% of what a DBA used to do. The remaining 30% &#8212; schema design, query optimization, security posture, capacity, reliability &#8212; got more valuable, got renamed, and got absorbed into other roles. The vanilla Software Engineer got some of it on their plate, but new roles also emerged &#8212; <em>Database Reliability Engineer, Data Platform Engineer, Data Engineer.</em> New titles. Often paid better, by the way.</p><p>The function evolved and expanded. The vocabulary changed. But the people who refused to evolve got sorted out.</p><p>But let&#8217;s push the lens back. </p><p>The typical argument I keep hearing is: &#8220;But Pawel, cars really did kill horse-drawn carriages.&#8221;</p><p>But did they? </p><p>Yeah, it turns out they did. Between 1870 and 1900, in ten major US cities, <a href="https://thebreakthrough.org/articles/revolutionary-engines">the number of teamsters &#8212; carriage and wagon drivers &#8212; grew 328%, while the population grew only 105%</a>. The horse-drawn era was expanding employment in the transport function right up to the moment cars arrived. Motor cabs reached London in 1897, outnumbered horse cabs by 1910, and the last horse-drawn hackney license was <a href="https://en.wikipedia.org/wiki/Hackney_carriage#Motorisation">relinquished in 1947</a> &#8212; half a century of overlap. So yes &#8212; cars killed the carriages.</p><p>But&#8230;</p><p>The drivers didn&#8217;t disappear. The function &#8212; moving people and goods for a fare &#8212; exploded! Today&#8217;s combined population of taxi, rideshare, and delivery drivers dwarfs the teamster cohort of 1900. </p><p>The tool changed completely. The function persisted, and grew.</p><p>The narrative we remember is <em>cars replaced carriages.</em> The data says <em>the function survived a tool transition and got much bigger.</em> </p><p>If you ask me, those are two completely different stories.</p><h2>From inside the seat</h2><p>My personal experience is this. 60&#8211;70% of what an engineer used to spend their day on &#8212; boilerplate, scaffolding, glue code, test setup, first-pass documentation, routine refactors, the long tail of <em>&#8220;Stack Overflow for an hour&#8221;</em> tasks &#8212; is being absorbed by tooling. </p><p>Not eliminated. Absorbed. </p><p>It still gets done, in a tenth of the time, by a person plus a model. The remaining 30&#8211;40% &#8212; system design, ambiguous problem framing, integration across messy boundaries, judgment about what <em>not</em> to build &#8212; has become more valuable.</p><p>This is the Wipro Left-Shift in microcosm. Routine work absorbed into a managed layer. Strategic work concentrated and repriced upward. The engineers who lean into the new tooling are roughly two to three times more productive than they were in 2023. The engineers who don&#8217;t are visible from across the room. They are the people the layoff lists are quietly built around &#8212; at the same time the company is opening req after req for AI engineers, platform engineers, and AI product managers.</p><p>This is not replacement. This is sorting. The headcount may not change much. Which people fill those seats will.</p><h2>Act accordingly</h2><p>A workforce restructuring is in progress with multiple drivers &#8212; 2020&#8211;22 overhiring, the long-postponed cleanup of teams built in an era of free capital, the higher interest rate environment, and a genuine productivity shift from AI tooling. AI is the one clean future-facing word that wraps all of them into a single acceptable public sentence. But it is not the whole story.</p><p>The composition is what is actually shifting. Roles that were a large share of headcount in 2020 &#8212; high-volume support, low-leverage operations, manual QA, boilerplate-heavy backend, parts of middle management whose job was coordination overhead &#8212; are getting compressed. Roles that barely existed in 2020 &#8212; AI product managers, ML platform engineers, AI compliance, agent integration, AI-augmented sales engineering, prompt-driven analysts &#8212; are being hired at higher salary bands than what was cut. PayPal&#8217;s Agentic Commerce PM is not an anomaly. It is just the data point of the substitution.</p><p>So what does this all mean to you?</p><p><strong>If you build software:</strong> the people who will not learn the new tooling will be sorted out. Not because AI replaced their job &#8212; because the job changed underneath them and they did not move with it. The DBAs who learned cloud became platform engineers and got paid more. The DBAs who did not, you stopped meeting at conferences. There is a version of this article being written in 2034 about software engineers. You can choose which side you want to be quoted on.</p><p><strong>If you run a company:</strong> the <em>&#8220;AI made me do it&#8221;</em> framing has lost its credibility with the market, your employees, and increasingly the press. The honest framing &#8212; <em>we overhired, we are right-sizing, and we are shifting the composition of the workforce toward roles that work with AI</em> &#8212; is harder to deliver but holds up. Wipro stated the doctrine clearly in 2024 and is hiring 10,000 people while doing it. </p><p>The carriages went away. The drivers stayed, learned a new machine, and grew 10x over a century. The DBAs got renamed. The work got more valuable. The function persists. The tools change. </p><p>The people who change with the tools keep their seat.</p>]]></content:encoded></item><item><title><![CDATA[The Floor Is Falling]]></title><description><![CDATA[When the software industry enters Extremistan]]></description><link>https://www.pdole.ga/p/the-floor-is-falling</link><guid isPermaLink="false">https://www.pdole.ga/p/the-floor-is-falling</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Wed, 06 May 2026 11:28:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tp8Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc55f15e-8b50-4ded-949a-0fedd0716f8e_3104x1312.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tp8Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc55f15e-8b50-4ded-949a-0fedd0716f8e_3104x1312.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tp8Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc55f15e-8b50-4ded-949a-0fedd0716f8e_3104x1312.png 424w, https://substackcdn.com/image/fetch/$s_!tp8Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc55f15e-8b50-4ded-949a-0fedd0716f8e_3104x1312.png 848w, https://substackcdn.com/image/fetch/$s_!tp8Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc55f15e-8b50-4ded-949a-0fedd0716f8e_3104x1312.png 1272w, https://substackcdn.com/image/fetch/$s_!tp8Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc55f15e-8b50-4ded-949a-0fedd0716f8e_3104x1312.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tp8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc55f15e-8b50-4ded-949a-0fedd0716f8e_3104x1312.png" width="1456" height="615" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fc55f15e-8b50-4ded-949a-0fedd0716f8e_3104x1312.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:615,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4518125,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/196480831?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc55f15e-8b50-4ded-949a-0fedd0716f8e_3104x1312.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_!tp8Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc55f15e-8b50-4ded-949a-0fedd0716f8e_3104x1312.png 424w, https://substackcdn.com/image/fetch/$s_!tp8Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc55f15e-8b50-4ded-949a-0fedd0716f8e_3104x1312.png 848w, https://substackcdn.com/image/fetch/$s_!tp8Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc55f15e-8b50-4ded-949a-0fedd0716f8e_3104x1312.png 1272w, https://substackcdn.com/image/fetch/$s_!tp8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc55f15e-8b50-4ded-949a-0fedd0716f8e_3104x1312.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p style="text-align: justify;">AI coding tools make developers faster. Agents can take on chunks of implementation, testing, refactoring, and migration. Cloud platforms and APIs make infrastructure easier to assemble. Heck, every other software services company is trying to turn its SDLC into an AI-powered delivery platform.</p><p style="text-align: justify;">On the one hand, we are entering the age of personal software: small tools, workflows, and systems built for one person, one team, one company, or one weird local problem. </p><p style="text-align: justify;"><a href="https://x.com/tomik99/status/2051599522741076410">Tomasz Karwatka described reviving his contact database</a> by extracting context from notes, PDFs, Obsidian, LinkedIn exports, phonebook data, and Gmail, then building a simple local app around it. Tyler Jewell, CEO of Akka, <a href="https://www.linkedin.com/posts/tylerjewell_claude-activity-7448498470463643648-cC8P?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAABuX7MBKLpQ23-DqMsbfjqGk3H0a1MzMY4">spent a week mostly inside Claude</a> while rethinking how his company should operate in an AI-human workflow. </p><p style="text-align: justify;">CEOs are literally building. This is not just good ol&#8217; &#8220;everyone becomes a programmer&#8221;. It is something more interesting: more thinkers, tinkerers, and operators can turn their mental models into working tools. </p><p style="text-align: justify;">And it is truly amazing. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.pdole.ga/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">I write occasional essays on software, AI, and industry. Subscribe to get them in your inbox.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p style="text-align: justify;">There is another side to this story, though. On the surface, this sounds like it should make software success easier. More people can try. More startups can launch. More teams can digitize workflows previously trapped in spreadsheets and meetings.</p><p style="text-align: justify;">But a lower entry barrier does not reduce competition. It increases it.</p><p style="text-align: justify;">The market gets flooded with more products, more demos, more internal tools, more AI wrappers, more vertical apps, more weekend prototypes, more software houses claiming proprietary delivery platforms, and more SaaS companies repositioning themselves as agentic workflow platforms.</p><p style="text-align: justify;">Alas, not everyone becomes a successful software company.</p><p style="text-align: justify;">We&#8217;ve seen it before.</p><p style="text-align: justify;">Social media made everyone a creator. Well, not literally everyone, but close enough to change the market. You no longer needed a studio, a publisher, a TV network, or a record label to reach people. </p><p style="text-align: justify;">We called it democratization.</p><p style="text-align: justify;">And it was. More people could publish. More people could be seen. More people could build an audience without asking permission.</p><p style="text-align: justify;">But it did not make everyone influential.</p><p style="text-align: justify;"><a href="https://www.mosaicventures.com/blog/the-creator-economy-a-power-law">The creator economy became a power-law market</a>, with a high concentration of engagement among the top roughly 0.5% of creators. Millions created. A few earned. A tiny fraction dominated. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9d5e!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9fbdcfc-54aa-48e4-9c51-24c5b331df55_805x740.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9d5e!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9fbdcfc-54aa-48e4-9c51-24c5b331df55_805x740.png 424w, https://substackcdn.com/image/fetch/$s_!9d5e!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9fbdcfc-54aa-48e4-9c51-24c5b331df55_805x740.png 848w, https://substackcdn.com/image/fetch/$s_!9d5e!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9fbdcfc-54aa-48e4-9c51-24c5b331df55_805x740.png 1272w, https://substackcdn.com/image/fetch/$s_!9d5e!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9fbdcfc-54aa-48e4-9c51-24c5b331df55_805x740.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9d5e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9fbdcfc-54aa-48e4-9c51-24c5b331df55_805x740.png" width="805" height="740" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e9fbdcfc-54aa-48e4-9c51-24c5b331df55_805x740.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:740,&quot;width&quot;:805,&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_!9d5e!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9fbdcfc-54aa-48e4-9c51-24c5b331df55_805x740.png 424w, https://substackcdn.com/image/fetch/$s_!9d5e!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9fbdcfc-54aa-48e4-9c51-24c5b331df55_805x740.png 848w, https://substackcdn.com/image/fetch/$s_!9d5e!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9fbdcfc-54aa-48e4-9c51-24c5b331df55_805x740.png 1272w, https://substackcdn.com/image/fetch/$s_!9d5e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9fbdcfc-54aa-48e4-9c51-24c5b331df55_805x740.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Creator economy power law (Socialblade)</figcaption></figure></div><p>That is the lesson worth remembering.</p><p>When the barrier to entry falls, markets usually become more competitive. More participants enter. More substitutes appear. The market does not usually hand everyone higher profits. It attracts competitors until excess returns are competed away.</p><p>The gains move to whatever remains scarce.</p><p><a href="https://www.goodreads.com/book/show/242472.The_Black_Swan">In Taleb&#8217;s language</a>, this is a move toward Extremistan: the domain where one observation can dominate the aggregate, and where scalable work creates extreme outcomes. A creator does not need to be 1,000 times better to get 1,000 times the attention. Distribution, compounding, and visibility do the work.</p><p>Software is not suddenly easy. That would be the wrong claim.</p><p>Production systems, security, integrations, reliability, maintenance, design, and customer understanding still matter. Good software is still hard.</p><p>But the relative cost of getting <em>some</em> working software is falling.</p><p>The customer is no longer comparing you only to another vendor with a large engineering team. They are comparing you to an internal tool. To a software house with an AI platform. To a feature from an incumbent. To a generated prototype. To doing nothing. To a good-enough workflow assembled by someone inside the company.</p><p>For a long time, &#8220;we can build it&#8221; was a meaningful claim. It implied access to scarce talent, process, and execution capacity.</p><p>Outside of extreme or niche cases, my bet is that &#8220;we can build it&#8221; becomes table stakes.</p><p>The harder question is: <strong>Why would the customer choose you?</strong></p><p>I wrote before that <a href="https://www.pdole.ga/p/the-moat-you-sell-is-disappearing">the moat many software service companies sell is disappearing</a>. General technical execution is becoming less scarce. The old pitch, &#8220;we can build this for you,&#8221; is losing power as AI makes building more accessible.</p><p>Obviously, that does not mean all moats disappear. It means the moat moves.</p><p>If software is cheaper to produce, customers will not pay a premium because you can produce it. They will pay because you can operate in an environment others cannot. Because you understand a niche better than generic competitors. Because you are close enough to the business to know what should be built in the first place.</p><p>They choose you because you understand the workflow. The edge cases. The politics. The handoffs. The exceptions. The stupid details that never fit into the product requirements document.</p><p>They choose you because they trust you. Because if the system breaks, someone is accountable. Because security, compliance, uptime, and support are not afterthoughts.</p><p>That is the part cheap software does not solve.</p><p>AI lowers the cost of software creation. It does not lower the cost of being chosen. <strong>In fact, if the social media parallel is any good, it elevates the cost of being chosen!</strong></p><p>This is where many companies will get confused. They will ship more, demo more, prototype more, and generate more. They will mistake activity for advantage.</p><p>But the market does not reward software for existing. It rewards software for mattering.</p><p>The creator economy already ran this experiment. Making creation easier made attention, trust, taste, and distribution more valuable.</p><p>Software is next.</p><p>AI may make software cheaper to create. But software success was never just about creation. And it&#8217;s going to be even less so. </p>]]></content:encoded></item><item><title><![CDATA[AI subscriptions are on borrowed time]]></title><description><![CDATA[Token prices are falling but your AI bill won't]]></description><link>https://www.pdole.ga/p/ai-subscriptions-are-on-borrowed</link><guid isPermaLink="false">https://www.pdole.ga/p/ai-subscriptions-are-on-borrowed</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Sun, 26 Apr 2026 15:31:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!UcjD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4539be89-f77e-4cf4-9226-d278e63b2415_2105x1600.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UcjD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4539be89-f77e-4cf4-9226-d278e63b2415_2105x1600.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UcjD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4539be89-f77e-4cf4-9226-d278e63b2415_2105x1600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!UcjD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4539be89-f77e-4cf4-9226-d278e63b2415_2105x1600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!UcjD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4539be89-f77e-4cf4-9226-d278e63b2415_2105x1600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!UcjD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4539be89-f77e-4cf4-9226-d278e63b2415_2105x1600.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UcjD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4539be89-f77e-4cf4-9226-d278e63b2415_2105x1600.jpeg" width="1456" height="1107" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4539be89-f77e-4cf4-9226-d278e63b2415_2105x1600.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1107,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1610229,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/195257431?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4539be89-f77e-4cf4-9226-d278e63b2415_2105x1600.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UcjD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4539be89-f77e-4cf4-9226-d278e63b2415_2105x1600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!UcjD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4539be89-f77e-4cf4-9226-d278e63b2415_2105x1600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!UcjD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4539be89-f77e-4cf4-9226-d278e63b2415_2105x1600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!UcjD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4539be89-f77e-4cf4-9226-d278e63b2415_2105x1600.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>On April 21, Anthropic quietly pulled Claude Code from its $20 Pro plan. No prior announcement. They&#8217;ve just placed a red X on the pricing page and a rewritten support document &#8212; long story short, Claude Code temporarily ceased to be available on the Pro plan and became only available on the Max subscription. </p><p>When people noticed, <a href="https://x.com/TheAmolAvasare/status/2046724659039932830">Anthropic&#8217;s head of growth said it was a small test affecting about 2% of new signups</a>. Maybe. I&#8217;m not interested in conspiracy theories. Whether it stays or is reverted is irrelevant. This still looks to me like them testing the waters for a policy change already underway.</p><p>And it&#8217;s not just Anthropic. One day earlier, on April 20, <a href="https://github.blog/news-insights/company-news/changes-to-github-copilot-individual-plans/">GitHub announced</a> it was pausing new signups for Copilot Pro, Pro+, and Student plans, tightening usage limits, and removing Opus models from the Pro tier. Their stated rationale: &#8220;agentic workflows have fundamentally changed Copilot&#8217;s compute demands... it&#8217;s now common for a handful of requests to incur costs that exceed the plan price.&#8221; </p><p>The fact is, your $20 a month was never really $20. Ditto for the <a href="https://www.ksred.com/i-built-a-cost-tracker-for-claude-code-to-see-if-my-subscription-was-worth-it/#:~:text=What%20the%20numbers%20actually%20showed,per%20month%20at%20API%20rates.">$200 Max version</a>. For two years, AI labs have been selling flat-rate subscriptions at prices far below the actual compute they consume. As <a href="https://www.wheresyoured.at/news-anthropic-removes-pro-cc/">Ed Zitron</a> wrote: &#8220;<em>Anthropic&#8217;s subscription plans charge far less than the book value of tokens consumed, sometimes by a factor of ten or more.</em>&#8221; </p><p>That means: you paid $20, but you really burned through compute that cost them $50, $100, sometimes more. The difference was financed by venture capital. The bet is: grab the market now, figure out margins later.</p><p>You could argue it&#8217;s a typical Silicon Valley playbook. We&#8217;ve seen it before with Amazon, we&#8217;ve seen it with Uber, and plenty of other companies. All with Peter Thiel's acolytes chanting in the background: <em>Competition is for losers, monopoly is the goal.</em></p><p>And we have historical proof that it works.</p><p>Or does it?</p><h2>The curve ahead</h2><p>Even as labs subsidize subscriptions, the underlying cost of generating a token has been falling at an impressive rate.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mfaU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda1f6008-19c4-4e27-939f-c277dec3e77f_2400x1685.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mfaU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda1f6008-19c4-4e27-939f-c277dec3e77f_2400x1685.png 424w, https://substackcdn.com/image/fetch/$s_!mfaU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda1f6008-19c4-4e27-939f-c277dec3e77f_2400x1685.png 848w, https://substackcdn.com/image/fetch/$s_!mfaU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda1f6008-19c4-4e27-939f-c277dec3e77f_2400x1685.png 1272w, https://substackcdn.com/image/fetch/$s_!mfaU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda1f6008-19c4-4e27-939f-c277dec3e77f_2400x1685.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mfaU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda1f6008-19c4-4e27-939f-c277dec3e77f_2400x1685.png" width="1456" height="1022" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/da1f6008-19c4-4e27-939f-c277dec3e77f_2400x1685.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1022,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:356405,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/195257431?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda1f6008-19c4-4e27-939f-c277dec3e77f_2400x1685.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_!mfaU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda1f6008-19c4-4e27-939f-c277dec3e77f_2400x1685.png 424w, https://substackcdn.com/image/fetch/$s_!mfaU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda1f6008-19c4-4e27-939f-c277dec3e77f_2400x1685.png 848w, https://substackcdn.com/image/fetch/$s_!mfaU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda1f6008-19c4-4e27-939f-c277dec3e77f_2400x1685.png 1272w, https://substackcdn.com/image/fetch/$s_!mfaU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda1f6008-19c4-4e27-939f-c277dec3e77f_2400x1685.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">LLM inference prices (<a href="https://epoch.ai/data-insights/llm-inference-price-trends#:~:text=We%20set%20a%20threshold%20of,across%20performance%20levels%20and%20benchmarks.">Epoch AI</a>)</figcaption></figure></div><p>GPT-4 launched in March 2023 at $30 per million input tokens and $60 per million output tokens. Today, GPT-5.4 delivers vastly better performance at $2.50 and $15, respectively. That's roughly a 12x reduction in input costs and 4x in output costs in three years at the flagship tier &#8212; and far more if you compare on fixed capability. </p><p>Claude Opus 4.6, priced at $5/$25, costs a third of what Claude 3 Opus did two years ago ($15/$75).</p><p>Gemini 2.0 Flash hit $0.10/$0.40 in late 2024 &#8212; prices that would have sounded absurd even eighteen months earlier. The curve bends everywhere you look (for comparison: GPT 3.5 &#8212; $0.50/$1.50 &#8212; being inferior to Gemini 2 Flash overall, even in pure text use cases). </p><p>The reductions aren&#8217;t just coming from better hardware, though. Andrej Karpathy recently <a href="https://github.com/karpathy/nanochat">retrained a GPT-2 grade model for $73</a> &#8212; the same model that cost OpenAI around $43,000 to train in 2019. That&#8217;s a 600x reduction in seven years, <a href="https://x.com/karpathy/status/2017703360393318587">falling roughly 2.5x every single year</a>. Part of it is hardware (H100s beat TPU v3s). Part of it is software (FlashAttention, fp8 training, better optimizers). But a huge part is just algorithmic progress &#8212; we&#8217;ve figured out how to do the same thing with far less compute.</p><p>&#8220;<em>Past performance does not guarantee future results.&#8221; </em>Got it. </p><p>This is nonetheless reminiscent of other historical price curves. Take the lithium-ion battery cost chart. The inflation-adjusted drop in the costs of lithium-ion batteries over the last 3 decades is mindblowing &#8212; ~99% over that period of time. A drop - mind you! - that enabled reinvention and mass production of electric vehicles and the growth of what is <a href="https://www.grandviewresearch.com/industry-analysis/electric-vehicles-ev-market">estimated to be a $1.6 trillion industry</a>. (And I&#8217;ll completely ignore the far bigger impact it had on the consumer electronics industry at large.)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wclQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08d269d2-6677-422c-a7c3-5b991fe22b53_3400x3364.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wclQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08d269d2-6677-422c-a7c3-5b991fe22b53_3400x3364.png 424w, https://substackcdn.com/image/fetch/$s_!wclQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08d269d2-6677-422c-a7c3-5b991fe22b53_3400x3364.png 848w, https://substackcdn.com/image/fetch/$s_!wclQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08d269d2-6677-422c-a7c3-5b991fe22b53_3400x3364.png 1272w, https://substackcdn.com/image/fetch/$s_!wclQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08d269d2-6677-422c-a7c3-5b991fe22b53_3400x3364.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wclQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08d269d2-6677-422c-a7c3-5b991fe22b53_3400x3364.png" width="1456" height="1441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/08d269d2-6677-422c-a7c3-5b991fe22b53_3400x3364.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1441,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:866259,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/195257431?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08d269d2-6677-422c-a7c3-5b991fe22b53_3400x3364.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_!wclQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08d269d2-6677-422c-a7c3-5b991fe22b53_3400x3364.png 424w, https://substackcdn.com/image/fetch/$s_!wclQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08d269d2-6677-422c-a7c3-5b991fe22b53_3400x3364.png 848w, https://substackcdn.com/image/fetch/$s_!wclQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08d269d2-6677-422c-a7c3-5b991fe22b53_3400x3364.png 1272w, https://substackcdn.com/image/fetch/$s_!wclQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08d269d2-6677-422c-a7c3-5b991fe22b53_3400x3364.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Price of Lithium-Ion batteries (<a href="https://ourworldindata.org/grapher/price-of-lithium-ion-battery-cells">Our World in Data</a>)</figcaption></figure></div><p>If this is not a textbook example of <a href="https://en.wikipedia.org/wiki/Jevons_paradox">Jevons Paradox</a>, I don&#8217;t know what is. </p><h2>The unit economics</h2><p>The Silicon Valley playbook mentioned earlier is not a clean parallel, though. Amazon was unprofitable for nine years and didn&#8217;t generate meaningful profits for closer to twenty. But Amazon sold books at roughly cost plus margin. Its losses came from warehouses, logistics, infrastructure &#8212; fixed costs that paid off once they were built. When Amazon got more popular, its unit economics improved.</p><p>What are the unit economics here?</p><p>Every token you generate costs the lab money, today, in electricity and GPU time. When more people use Claude, Anthropic bleeds faster. The subsidy isn&#8217;t a one-time investment that pays dividends later. It&#8217;s a tap. Actually, more of a firehose. Turning it off is the only way to stop the bleeding.</p><p>And the labs are starting to turn it off. Here are some examples:</p><ul><li><p>In February, Anthropic introduced <a href="https://kingy.ai/ai/usage-based-billing-no-flat-rate-why-anthropics-2026-pricing-shift-changes-everything-for-claude-users/">Fast Mode</a> &#8212; 2.5x faster inference at 6x the standard rate. Same model, same capabilities, you&#8217;re paying a premium to skip the queue. </p></li><li><p>In March, they started <a href="https://gizmodo.com/anthropic-and-openai-just-gave-us-a-glimpse-into-the-future-of-model-pricing-2000739173">throttling peak-hour usage</a> across subscription tiers. </p></li><li><p>OpenAI runs its own version with &#8220;<a href="https://developers.openai.com/api/docs/guides/flex-processing">flex processing</a>&#8221; &#8212; cheaper if you&#8217;re willing to wait. </p><p></p></li></ul><p>These are pricing tweaks, not new features. Compute is scarce, and subsidies end. The price you pay will depend on when you use it, how fast you need it, and how much leverage the lab still has.</p><p>Here&#8217;s the twist. Even as the price of a token keeps collapsing, the bill is going up. How so? Well, ask yourself - with all these token prices falling so rapidly &#8212; are you paying less for AI subscriptions today than 2 years ago?</p><p><a href="https://a16z.com/leaders-gainers-and-unexpected-winners-in-the-enterprise-ai-arms-race/">Enterprise LLM spend doubled in six months</a> last year while per-token costs plummeted (did I mention Jevons Paradox already?). Agentic workflows burn 5 to 30 times more tokens per task than a simple chatbot (tool calls, multi-step reasoning, orchestrations, and so on). That&#8217;s why unit cost falls while at the same time the total cost explodes.</p><h2>What comes next</h2><p>Eventually, the underlying cost of a token will drop to a level where no subsidy is necessary. Depending on the source, the token costs fall at a rate between 2.5x (Karpathy example) and 10x (Epoch AI) per year. </p><p>Nvidia&#8217;s near-monopoly will also erode as AMD, Google&#8217;s TPUs, and Amazon&#8217;s Trainium chips take share at the infrastructure layer. The margins that Nvidia has today are just too outrageous to ignore. Competition at every layer will push prices toward the real cost of electricity and silicon, not the VC-subsidized numbers we&#8217;re seeing today.</p><p>This is, not coincidentally, <a href="https://x.com/vitrupo/status/1920883714927558872">what Sam Altman told the US Senate</a> in May 2025:<br><em>&#8221;Eventually the cost of intelligence, the cost of AI will converge to the cost of energy and it&#8217;ll be how much you can have. The abundance of it will be limited by the abundance of energy.&#8221;</em></p><p>But between now and then, there&#8217;s a bill to be paid. The labs spent hundreds of billions acquiring users at a loss. They have to make that back. And the people paying it &#8212; whether through removed features, peak surcharges, or tiered pricing &#8212; are you.</p><p>So what does this mean if you&#8217;re building on any of this?</p><p>The price you see today is not the real economic price. It is whatever the lab currently wants you to believe the product costs. It will change, probably not in your favor, probably sooner than you think. Per-token pricing, peak surcharges, and tiered inference are the future. Anyone betting on labs absorbing the difference between subscription prices and real compute costs might be heading toward a nasty wake-up call in the short-term future.</p><p>I am ultimately an optimist. And few things show such predictable and consistent price drops as technology entering the mass market. But first, it&#8217;s going to get worse before it gets better. </p><p>Brace yourself. </p>]]></content:encoded></item><item><title><![CDATA[It’s Just Semantics]]></title><description><![CDATA[Agreement on things nobody defined]]></description><link>https://www.pdole.ga/p/its-just-semantics</link><guid isPermaLink="false">https://www.pdole.ga/p/its-just-semantics</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Wed, 15 Apr 2026 11:02:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!L9Se!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c0a6f0b-7215-4bb6-aa91-ac24cf339945_1188x714.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>(This one comes with audio &#8212; hit play if you&#8217;d rather listen)</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_!L9Se!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c0a6f0b-7215-4bb6-aa91-ac24cf339945_1188x714.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L9Se!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c0a6f0b-7215-4bb6-aa91-ac24cf339945_1188x714.webp 424w, https://substackcdn.com/image/fetch/$s_!L9Se!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c0a6f0b-7215-4bb6-aa91-ac24cf339945_1188x714.webp 848w, https://substackcdn.com/image/fetch/$s_!L9Se!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c0a6f0b-7215-4bb6-aa91-ac24cf339945_1188x714.webp 1272w, https://substackcdn.com/image/fetch/$s_!L9Se!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c0a6f0b-7215-4bb6-aa91-ac24cf339945_1188x714.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L9Se!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c0a6f0b-7215-4bb6-aa91-ac24cf339945_1188x714.webp" width="1188" height="714" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6c0a6f0b-7215-4bb6-aa91-ac24cf339945_1188x714.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:714,&quot;width&quot;:1188,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:36668,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/194019600?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c0a6f0b-7215-4bb6-aa91-ac24cf339945_1188x714.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!L9Se!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c0a6f0b-7215-4bb6-aa91-ac24cf339945_1188x714.webp 424w, https://substackcdn.com/image/fetch/$s_!L9Se!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c0a6f0b-7215-4bb6-aa91-ac24cf339945_1188x714.webp 848w, https://substackcdn.com/image/fetch/$s_!L9Se!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c0a6f0b-7215-4bb6-aa91-ac24cf339945_1188x714.webp 1272w, https://substackcdn.com/image/fetch/$s_!L9Se!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c0a6f0b-7215-4bb6-aa91-ac24cf339945_1188x714.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;ve overheard it in a meeting. Two people disagreed on a strategic direction, you could feel the temperature creeping up, and one of them eventually responded to the disagreement with: <em>&#8220;It&#8217;s just semantics.&#8221; </em>As in &#8212; <em>&#8220;this is not worth arguing about, let&#8217;s move on.&#8221;</em></p><p>I&#8217;ve been thinking about that phrase ever since. Not the first time, though. I&#8217;ve realized I&#8217;ve heard it repeatedly over the years. &#8220;<em>It&#8217;s just semantics.</em>&#8221; </p><p>I cannot help but think: what is there in a conversation besides semantics? </p><p>A lot, actually &#8212; tone, body language, emotion, context. But in organizations, especially when we discuss strategic matters, it is critical that we are all on the same page &#8212; everyone involved understands <strong>exactly and in the same way</strong> what we are discussing and what we are about to do. </p><p>Locally &#8212; in any given room &#8212; there are a lot of factors that matter. Outside of the room, as the mission and vision spread through the organization, the thing that survives the journey is the words. The meaning they carry. Semantics is the part that scales.</p><p>In that sense, semantics isn&#8217;t a distraction from strategy, nor a tangent to it. It IS the strategy. Every strategic decision is ultimately a question of &#8220;what do we mean when we say X?&#8221; What does &#8220;<em>customer-first</em>&#8221; mean when you have to choose between two customers? What does &#8220;<em>quality</em>&#8221; mean when the deadline is tomorrow? What does &#8220;<em>aggressive</em>&#8221; mean when half the room thinks it means pricing and the other half thinks it means litigation?</p><p>When someone says &#8220;<em>we need to move fast,</em>&#8221; what do they mean? Ship in two weeks? Hire three people by Friday? Skip the compliance review? Everyone in the room nods. Nobody is agreeing on the same thing. <em>&#8220;Move fast.&#8221; &#8220;Be aggressive.&#8221; &#8220;Think long-term.&#8221; &#8220;Stay lean.</em>&#8221; These are words that feel like decisions or directions but aren&#8217;t &#8212; because nobody defined them. The meeting ends with alignment that doesn&#8217;t exist.</p><p>So here&#8217;s how I think about this today. When we wave away the definitional question with &#8220;<em>it&#8217;s just semantics,</em>&#8221; it&#8217;s not really avoiding a pointless argument. Two people walk out of the room thinking they agreed. They didn&#8217;t. They agreed on a word. They never agreed on what it means.</p><p>We&#8217;re locking in a misunderstanding and voluntarily giving it time to compound. And compound it will.</p><p>Some understood this. Jeff Bezos banned PowerPoint at Amazon and required six-page narrative memos instead. Slides let people hide behind vague language. A bullet point like &#8220;improve customer experience&#8221; survives a meeting unchallenged. You can hide a lot behind hand gestures and a confident delivery while giving a presentation, too.  </p><p>Try writing that as a full paragraph, and you're immediately forced to explain what you actually mean. And if you don't, whoever reads it will force you to. Bezos insisted on plain English because he understood how critical semantics is.</p><p>We can disagree on the meaning of the message. It&#8217;s OK to disagree. It&#8217;s OK to be confused. Nobody knows. But we can figure it out. As long, that is, as we all recognize we haven&#8217;t reached agreement &#8212; or at least understanding &#8212; yet. </p><p>Semantics is literally the study of meaning. Dismissing it is dismissing whether you mean what you say. And the meaning of what you say sounds like a damn important thing to me. </p>]]></content:encoded></item><item><title><![CDATA[The Moat You Sell Is Disappearing]]></title><description><![CDATA[Software services after software price collapse]]></description><link>https://www.pdole.ga/p/the-moat-you-sell-is-disappearing</link><guid isPermaLink="false">https://www.pdole.ga/p/the-moat-you-sell-is-disappearing</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Tue, 07 Apr 2026 08:47:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!luYc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620a26a0-2b03-41e6-9e4b-7c475ee22241_1360x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!luYc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620a26a0-2b03-41e6-9e4b-7c475ee22241_1360x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!luYc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620a26a0-2b03-41e6-9e4b-7c475ee22241_1360x768.png 424w, https://substackcdn.com/image/fetch/$s_!luYc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620a26a0-2b03-41e6-9e4b-7c475ee22241_1360x768.png 848w, https://substackcdn.com/image/fetch/$s_!luYc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620a26a0-2b03-41e6-9e4b-7c475ee22241_1360x768.png 1272w, https://substackcdn.com/image/fetch/$s_!luYc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620a26a0-2b03-41e6-9e4b-7c475ee22241_1360x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!luYc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620a26a0-2b03-41e6-9e4b-7c475ee22241_1360x768.png" width="1360" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/620a26a0-2b03-41e6-9e4b-7c475ee22241_1360x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1360,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1835546,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/192999643?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620a26a0-2b03-41e6-9e4b-7c475ee22241_1360x768.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_!luYc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620a26a0-2b03-41e6-9e4b-7c475ee22241_1360x768.png 424w, https://substackcdn.com/image/fetch/$s_!luYc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620a26a0-2b03-41e6-9e4b-7c475ee22241_1360x768.png 848w, https://substackcdn.com/image/fetch/$s_!luYc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620a26a0-2b03-41e6-9e4b-7c475ee22241_1360x768.png 1272w, https://substackcdn.com/image/fetch/$s_!luYc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F620a26a0-2b03-41e6-9e4b-7c475ee22241_1360x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p style="text-align: justify;">The best engineers might be today 40% more productive with AI coding tools. At least that&#8217;s what <a href="https://www.index.dev/blog/ai-coding-assistants-roi-productivity">this study says</a>. Given it was published in October 2025 &#8212; in today&#8217;s timeline, roughly a decade ago &#8212; it is already outdated. My assessment would be that it is more than that, at least for the best performers and a certain range of software products. (Now, how much of an individual productivity gain translates to the organization is an entirely different story!)</p><p style="text-align: justify;">This creates an interesting dynamic for software service companies &#8212; companies that build custom software for their clients. </p><p style="text-align: justify;">Right now, companies that adopt AI aggressively feel like they have an edge. And they do &#8212; today. But this is a transitory advantage. Whether it takes one, two, or five years, the market will eventually catch up. AI proficiency will become the new baseline, not a differentiator.</p><h2>An opportunity and a threat</h2><p>Software service companies are living through this transition in two very different ways.</p><p>Some see it as an existential threat &#8212; and not without reason. Customers can now create way more software themselves &#8212; software that they used to subcontract to vendors. The barrier to entry for building a functional application has collapsed. If your client&#8217;s PM with one engineering colleague can spin up a working prototype over a few days, they are starting to question whether they need an external partner at all. </p><p>Sure, doing a limited POC and a real, production project, with real load, security constraints, and ongoing maintenance, are two very, very different things. Many of these ad-hoc in-house products will eventually fail to deliver the promised value. </p><p>And yet, it would be dishonest not to notice that building relatively typical software has become way more accessible. And let&#8217;s be straight &#8212; not every custom-built product was a complex, multi-year endeavor. You can check it out, for instance, on <a href="https://clutch.co/developers">Clutch</a> by browsing the typical price ranges for past projects. There are plenty of companies living off $10-100k contracts.</p><p>Others see it as a tremendous opportunity. With outstanding productivity gains, they can harvest disproportionate margins &#8212; doing more with less, delivering faster, and capturing the spread between the old cost structure and the new one.</p><p>Here is the problem, though. <strong>Your client knows this.</strong> They don&#8217;t need to master AI or even use it effectively themselves. The mere existence of AI-augmented development gives them leverage to push for lower prices. A <a href="https://www.cio.com/article/4151988/ai-is-altering-the-economics-of-software-development-but-who-gets-a-cut.html">recent CIO analysis</a> found that enterprise customers are already demanding their share of AI productivity gains. The logic is straightforward: if developers complete tasks 40% faster, someone is capturing that surplus. The client wants to know why it isn&#8217;t them. And the traditional saying goes: the <em>customer is always right&#8230;</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.pdole.ga/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">I write one of these every now and then. Subscribe if you want the next in your inbox.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>A question of price</h2><p>Where does this put software service companies that typically operated in a time-and-materials manner? On the one hand, customers expect faster delivery (fewer man-days). On the other hand, the agency that truly masters AI-augmented software delivery cannot reap the efficiency benefits (as they charge per day).</p><p>The first instinct is to move to fixed pricing. You capture the efficiency, the client gets a predictable cost, everybody wins. Except the prices will fall down too - in the same way that expected man-days for a project would fall down (though arguably the price arbitrage will be there for a limited time, and companies that are ahead-of-the-curve should be able to capture part of it while it lasts). </p><p>The forward-looking companies are moving further along the spectrum &#8212; from time-and-materials through fixed price to value-based pricing. </p><p>What is value-based pricing? At its essence, you charge for what it&#8217;s worth to the buyer, not what it costs you to produce. It might be capturing a fraction of the savings that delivering specific software produces for the customer. Or it might be a price set based on new opportunities uncovered for the customer. There is also a closely related term of <em>outcome-based pricing</em>. Technically, outcome-based &#8800; value-based &#8212; an outcome doesn&#8217;t have to translate to value. In practice, the two are close enough to treat as the same thing.</p><p><a href="https://www.businessinsider.com/consulting-industry-outlook-management-consultants-ai-hiring-job-cuts-2026-3?IR=T&amp;IR=C">McKinsey already generates 25% of its global fees from outcomes-based arrangements</a>. You may be skeptical about McKinsey. I am not surprised. One thing is certain, though - they know how to make money, whether we like it or not. And when they overhaul how they charge, it is at least prudent to pay attention. </p><p>To quote Business Insider: &#8220;<em>The result is a renewed industry focus on implementation and value over mere activity.</em>&#8221; Part of me shouts: At long fucking last!</p><p>Unfortunately, value-based pricing is an entirely different and complicated game. And on top of that, moving to value-based pricing for a general software vendor is going to be even harder. Except for very specific, narrow technical cases (e.g., cloud cost optimization), a lot of value is entangled in the customer&#8217;s business. It is going to be very difficult to move towards that pricing for software service companies that operate exclusively at the technology layer. </p><p>Whichever way you go, the same pressure applies &#8212; building general-purpose software has become more accessible, and software service companies will face pressure. </p><h2>Where does the moat go?</h2><p><a href="https://www.forbes.com/sites/peterbendorsamuel/2026/01/14/the-coming-compression-tech-services-must-endure-short-term-pain-to-reach-ais-long-term-opportunity/">Forbes predicts</a> that within three to five years, a software development productivity boost will exceed 80%, meaning half the labor currently needed will suffice. Now, I am very much on the side of <a href="https://en.wikipedia.org/wiki/Jevons_paradox">Jevons Paradox</a>: a software Cambrian explosion will drive the cost down, which will in turn drive the demand up. </p><p>However, there is an intermediate problem. Most enterprise customers won&#8217;t be ready to absorb a radically higher volume of delivered software. They grew their processes in a reality where building software was the bottleneck. Now, the bottleneck has shifted, and many enterprises are just not ready for consuming software at a faster pace.</p><p>Whether the demand explodes or not (and when!), the immediate reality is the same. An industry built on billing for labor will feel every point of upcoming compression. The agencies that thrive won&#8217;t be the ones that just write the most code. </p><p>The work won&#8217;t disappear &#8212; but the margins for general software-service companies will. And who wants to end up on a commodity-price treadmill? </p><p>So what&#8217;s defensible? Three things, as far as I can tell.</p><p>First, go where the barriers are structural. Regulated industries &#8212; finance, healthcare, defence. Hardware integration. Environments where certification, compliance, and safety aren&#8217;t nice-to-haves but legal requirements. AI can write the code, but it can&#8217;t navigate a regulatory audit, own a liability, or sign off on a medical device. At least &#8212; not yet.  </p><p>Second, go deep into a niche. Not necessarily a regulated one &#8212; but one where accumulated expertise takes years to build. Narrow but deep technology expertise. Real-time trading systems. Logistics optimization. Developer&#8217;s efficiency. The agency that has spent a decade understanding how a specific domain actually works will beat the one with better engineers every time. This was always a good bet. AI makes it even more relevant because when the code price tag collapses, the only thing left to charge for is knowing what the code should do better than your customer.</p><p>Third &#8212; and this is where I think the real shift happens &#8212; close the gap between software and business. The &#8220;code monkey&#8221; role &#8212; take a spec, produce code &#8212; is the one most directly displaced by AI. Outside of highly specialized areas like critical infrastructure or security, the direction is convergence. Software engineering stops being a separate discipline and becomes part of how business operates. The agency of the future doesn&#8217;t just build what you spec. It helps you figure out what to build. At an extreme, that&#8217;s not a software agency anymore. It&#8217;s a industry specific consulting firm that happens to ship code. Coincidentally, value-based pricing is way more achievable for vendors being closer to the business (or even better &#8212; closer to an actual P&amp;L). </p><p>Tectonic industry shifts are uncomfortable by definition. But they also reshuffle the deck. The reshuffling threatens some, but it also creates disproportionate openings for others. One thing seems to be certain though - the days of straightforward selling of pure, general technical experience are gone.</p>]]></content:encoded></item><item><title><![CDATA[Dario was (mostly) right]]></title><description><![CDATA[...and wrong at the same time]]></description><link>https://www.pdole.ga/p/dario-was-mostly-right</link><guid isPermaLink="false">https://www.pdole.ga/p/dario-was-mostly-right</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Tue, 31 Mar 2026 07:19:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vwK0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd296bd4-dc2d-436a-91ba-6fe129fc928f_4284x5712.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A colleague came back from <a href="https://www.rustikon.dev/">Rustikon</a> &#8212; a Rust developer conference &#8212; and shared a photo of a whiteboard exercise. There was a line drawn. On the left: &#8220;Fully Manual / By Hand.&#8221; On the right: &#8220;Everything Is Generated.&#8221; </p><p>The room was asked to place a dot where they actually are in their day-to-day coding. The dots clustered around the 25% mark from the left. Actually, the 25% might be a charitable interpretation. Take a look at it yourself.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vwK0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd296bd4-dc2d-436a-91ba-6fe129fc928f_4284x5712.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vwK0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd296bd4-dc2d-436a-91ba-6fe129fc928f_4284x5712.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vwK0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd296bd4-dc2d-436a-91ba-6fe129fc928f_4284x5712.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vwK0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd296bd4-dc2d-436a-91ba-6fe129fc928f_4284x5712.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vwK0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd296bd4-dc2d-436a-91ba-6fe129fc928f_4284x5712.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vwK0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd296bd4-dc2d-436a-91ba-6fe129fc928f_4284x5712.jpeg" width="405" height="539.9072802197802" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fd296bd4-dc2d-436a-91ba-6fe129fc928f_4284x5712.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:405,&quot;bytes&quot;:927403,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/192403619?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd296bd4-dc2d-436a-91ba-6fe129fc928f_4284x5712.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vwK0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd296bd4-dc2d-436a-91ba-6fe129fc928f_4284x5712.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vwK0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd296bd4-dc2d-436a-91ba-6fe129fc928f_4284x5712.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vwK0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd296bd4-dc2d-436a-91ba-6fe129fc928f_4284x5712.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vwK0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd296bd4-dc2d-436a-91ba-6fe129fc928f_4284x5712.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">AI Continuum</figcaption></figure></div><p>This is a room full of software engineers. People who write code for a living. And when asked honestly where they stand on the AI continuum, the majority of answers were: still mostly doing it by hand. Truth be told, my suspicion is that the Rust community might be a little more biased toward <em>organic coding &#8212; </em>I&#8217;ll give you that.</p><p>Even so, that photo has been stuck in my head for days now, because it captures something the industry conversation keeps getting wrong.</p><p>In March 2025, <a href="https://www.businessinsider.com/anthropic-ceo-ai-90-percent-code-3-to-6-months-2025-3?IR=T">Dario Amodei told the Council on Foreign Relations</a> that AI would be writing 90% of code within three-to-six months. Essentially all of it within a year. Obviously, the internet did what the internet does &#8212; half the people called him delusional, the other half declared software engineering dead. And naturally, the further detached they are from software engineering, the louder they get. </p><p>So here we are, a year later. And the conclusion is&#8230; mixed.</p><p>On one hand, <a href="https://www.linkedin.com/feed/update/urn:li:activity:7438577180550443009">John Crickett ran his own informal survey</a> and found that maybe 5% of developers are heavy AI users. Around 20% use agents, mostly for tests. Many are still on autocomplete or nothing at all. That maps almost perfectly onto the Rustikon whiteboard.</p><p>On the other hand, Linear reports that <a href="https://linear.app/next">coding agents now operate in 75% of enterprise workspaces</a>, with 25% of issues handled by agents. Not a rounding error anymore &#8212; more of a structural adoption.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.pdole.ga/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe to receive new weekly posts.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Here is a funny thing, though &#8212; both of these are true at the same time, and that&#8217;s the part most commentary misses.</p><p>I can clearly see this firsthand. At <a href="https://virtuslab.com/">VirtusLab</a>, I work with some great, capable engineers who essentially don&#8217;t write any code by hand at all anymore. They direct AI, review its output, and focus on architecture and coordination. The same is true across many companies I talk with. At <a href="https://the5.live/">The-5</a> &#8212; a community of entrepreneurs founded by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Tomasz Karwatka&quot;,&quot;id&quot;:14870772,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/117dacc9-2d82-4c94-92e3-4be452c66a02_1168x1166.png&quot;,&quot;uuid&quot;:&quot;2ef1073e-e040-4456-a43c-88362e950e97&quot;}" data-component-name="MentionToDOM"></span> &#8212; we have a group exchanging AI practices. For many, the vibe is close to 100% automation. Move anywhere near Silicon Valley startups, and it's even more so.</p><p>And yet. None of these people has stopped doing software engineering. (Though it&#8217;s worth pointing out &#8212; some of the people making the boldest claims about its death never actually started in the first place.)</p><p>That&#8217;s the distinction most people miss when they quote Dario. <em>&#8220;AI will write all the code&#8221;</em> is not the same as <em>&#8220;AI will do all the software-engineering.&#8221;</em> These are completely different claims. The gap between them is enormous.</p><p>AI today is genuinely capable of typing the code. Give it a well-scoped task &#8212; a function, a test, a migration, or even a relatively well-defined feature &#8212; and it will produce working output faster than any human. That part of the prediction is largely correct, even if adoption is uneven.</p><p>However, leave it unsupervised, without any guardrails and engineering discipline, and over time, the castle in the sand starts to crumble. </p><p>This is already visible. The code that is being generated is already straining the system, and the quality is going down. Rob Zuber at CircleCI <a href="https://www.linkedin.com/posts/robzuber_the-review-queue-isnt-the-problem-its-share-7439857577393344512-iK8C">published data showing</a> that PR sizes increase by more than 150% when teams adopt AI coding tools. Across 28 million workflows, main branch success rates fell to 70.8% this year &#8212; <strong>the lowest in five years</strong>. The industry has become very good at producing change and strikingly bad at absorbing it.</p><p>The bottom line is: <strong>software engineering isn&#8217;t about code generation.</strong> It&#8217;s figuring out what to build. It&#8217;s understanding constraints that live in people&#8217;s heads, not in the codebase. It&#8217;s navigating organizational politics, legacy systems, and tradeoffs that don&#8217;t show up in any spec. It&#8217;s directing the architecture. This might be many years away. Or it might be tomorrow. No one knows. It is clearly not here today.</p><p>The best evidence that writing code and engineering software are different things is the current tech job market. <a href="https://fred.stlouisfed.org/graph/?g=1Uh1V">The number of software engineering openings in the US</a> has been growing since the bottom of the dip in early 2025. </p><p>And last but not least: Anthropic &#8212; the company behind arguably the most capable AI coding tool available &#8212; <a href="https://www.businessinsider.com/anthropic-hiring-jobs-ai-supposedly-destroying-2026-2">is hiring over 100 software engineers</a>. Boris Cherny, the creator of Claude Code, was asked why and that was his answer: </p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/bcherny/status/2022762422302576970&quot;,&quot;full_text&quot;:&quot;<span class=\&quot;tweet-fake-link\&quot;>@big_duca</span> Someone has to prompt the Claudes, talk to customers, coordinate with other teams, decide what to build next. Engineering is changing and great engineers are more important than ever.&quot;,&quot;username&quot;:&quot;bcherny&quot;,&quot;name&quot;:&quot;Boris Cherny&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1902044548936953856/J2jeik0t_normal.jpg&quot;,&quot;date&quot;:&quot;2026-02-14T19:58:37.000Z&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:248,&quot;retweet_count&quot;:661,&quot;like_count&quot;:8775,&quot;impression_count&quot;:1161613,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;video_preview_media_key&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p>The company closest to making software engineers obsolete is hiring them as fast as it can. <strong>Because even when AI writes every line, someone still has to engineer the software.</strong></p><p>Say what you want. Dario might have been wrong about AI writing all the code by now. But he was pretty much spot on about AI <strong>being able</strong> to write all the code. This does not change the fact that engineering is still needed. And it&#8217;s not going anywhere.</p><p>A friend recently recommended I re-read Neuromancer. I guess it&#8217;s fair then to close this with: </p><p><em>&#8220;The future is already here &#8211; it's just not evenly distributed.&#8221;</em></p><p></p>]]></content:encoded></item><item><title><![CDATA[AI Slop Is Eating Your Organization From the Inside]]></title><description><![CDATA[Three bullet points would have been fine]]></description><link>https://www.pdole.ga/p/ai-slop-is-eating-your-organization</link><guid isPermaLink="false">https://www.pdole.ga/p/ai-slop-is-eating-your-organization</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Tue, 24 Mar 2026 08:14:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!O0Vv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a9f050a-84b4-4d07-903a-1c2e8fd80706_1920x1305.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!O0Vv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a9f050a-84b4-4d07-903a-1c2e8fd80706_1920x1305.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!O0Vv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a9f050a-84b4-4d07-903a-1c2e8fd80706_1920x1305.jpeg 424w, https://substackcdn.com/image/fetch/$s_!O0Vv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a9f050a-84b4-4d07-903a-1c2e8fd80706_1920x1305.jpeg 848w, https://substackcdn.com/image/fetch/$s_!O0Vv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a9f050a-84b4-4d07-903a-1c2e8fd80706_1920x1305.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!O0Vv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a9f050a-84b4-4d07-903a-1c2e8fd80706_1920x1305.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!O0Vv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a9f050a-84b4-4d07-903a-1c2e8fd80706_1920x1305.jpeg" width="1920" height="1305" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a9f050a-84b4-4d07-903a-1c2e8fd80706_1920x1305.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1305,&quot;width&quot;:1920,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:716378,&quot;alt&quot;:&quot;Blaise Pascal&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Blaise Pascal" title="Blaise Pascal" srcset="https://substackcdn.com/image/fetch/$s_!O0Vv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a9f050a-84b4-4d07-903a-1c2e8fd80706_1920x1305.jpeg 424w, https://substackcdn.com/image/fetch/$s_!O0Vv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a9f050a-84b4-4d07-903a-1c2e8fd80706_1920x1305.jpeg 848w, https://substackcdn.com/image/fetch/$s_!O0Vv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a9f050a-84b4-4d07-903a-1c2e8fd80706_1920x1305.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!O0Vv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a9f050a-84b4-4d07-903a-1c2e8fd80706_1920x1305.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In 2024, Google ran an Olympics ad called &#8220;<a href="https://www.youtube.com/watch?v=NgtHJKn0Mck">Dear Sydney</a>&#8221;. A father uses Gemini to help his daughter write a fan letter to her favorite athlete.  </p><p>The internet was&#8230; <a href="https://www.reddit.com/r/popculturechat/comments/1eijlpb/google_pulls_controversial_dear_sydney_tv_spot_in/">not exactly impressed</a>.</p><p>Google pulled the ad. The backlash wasn&#8217;t about the quality of the letter &#8212; it was that a child&#8217;s genuine effort to express admiration had been outsourced to a machine. </p><p>The content might have been fine. The act was hollow.</p><p>Walk into any organization today, and you&#8217;ll find the same dynamic playing out on a smaller, quieter scale. Emails that are clearly AI-generated, sent to people who will clearly barely skim them. The lucky ones, that is. Most will have the title read and be instantly archived (and the rest will just die in the inbox).</p><p>And then we have Slack messages with that unmistakable ChatGPT cadence &#8212; slightly too polished, slightly too structured, slightly too long (and with way too many emojis). </p><p>Performance reviews that read like they were written by a thoughtful manager but feel like they were assembled by a machine. <em>Which they were.</em></p><p>AI-polished documents that &#8212; and here is the thing - no one asked to be polished. </p><p>There&#8217;s an asymmetry here that bothers me. AI has made it trivially cheap to produce content &#8212; 30 seconds, and you have a polished update. But it hasn&#8217;t made it any cheaper to consume content. Reading a two-page document still takes the reader 15 minutes. Before AI, the effort of writing acted as a natural filter. If something was hard to write, you thought twice about whether it was worth the effort (first <em>your</em> effort, and second recipient&#8217;s effort). That filter is gone.</p><p>Unless your recipient also uses AI to summarise your messages! In which case, you&#8217;d have to be insane not to wonder what&#8217;s the point of this whole ceremony.</p><p>Who is all of this for?</p><p>This is all truly bizarre. Person A spends 30 seconds generating a polished two-page update. Person B spends 30 seconds asking an AI to extract the key points. The actual human-to-human information transfer? Three bullet points. But instead of just sending these three fucking bullet points, we&#8217;ve routed the conversation through two AI passes and wasted everyone&#8217;s attention in between (not mentioning the tokens, which are the cheapest in all of this grotesque performance).</p><p><a href="https://x.com/jbernoff">Josh Bernoff</a> wrote his seminal book &#8220;<a href="https://www.goodreads.com/book/show/28448362-writing-without-bullshit">Writing Without Bullshit</a>&#8221; before Gen AI was all the rage. His main point was that most business writing wastes the reader&#8217;s time &#8212; that every sentence should be useful or deleted. AI hasn&#8217;t fixed this. It&#8217;s made it dramatically worse by reducing the cost of producing bullshit to zero.</p><p>Going full circle to where we started, there&#8217;s a deeper issue here. <a href="https://www.linkedin.com/in/hywelc/">Hywel Carver</a> put it well at CTO Craft London this year. Here is the thing: some communication isn&#8217;t just about transferring information.</p><p>When your manager writes your annual feedback, part of the value is that they sat down and thought about your growth. </p><p>When a colleague sends a thank-you note, the effort is the message. If I told you &#8220;I generated your performance review with AI&#8221; or &#8220;I generated my thank-you message with ChatGPT&#8221; &#8212; would you feel recognised? </p><p>There are moments in organizational life where the effort is the point &#8212; where the act of sitting down to think about someone is what carries the meaning, not the words that come out.</p><p>The irony is that inside an organization, we don&#8217;t need polish. Externally, sure &#8212; clients, investors, and candidates expect a certain standard. With external audiences, we don't have shared context, so polish fills the gap. I can even understand - though I wish it wasn&#8217;t the case - that we generate a certain amount of marketing slop to pump up the volume. </p><p>But internally? An organization should value raw clarity over manufactured professionalism. Three bullet points in a Slack message beat a four-paragraph AI-crafted email every time. A rough sketch of an idea beats a polished deck no one reads.</p><p> <em>&#8220;The present letter is a very long one, simply because I had no leisure to make it shorter</em>.&#8221; Blaise Pascal&#8217;s famous quote is today, after 400 years, more relevant than ever.</p><p>We&#8217;ve confused the appearance of thoughtfulness with actual thought. </p><p>And AI has made that confusion penny cheap.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.pdole.ga/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! If you&#8217;d like to read my weekly thoughts, subscribe below</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[The joy of reading the code]]></title><description><![CDATA[On simplicity, AI-generated code, and why the aesthetics of a language still matter]]></description><link>https://www.pdole.ga/p/the-joy-of-reading-the-code</link><guid isPermaLink="false">https://www.pdole.ga/p/the-joy-of-reading-the-code</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Tue, 17 Mar 2026 08:22:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!G9T-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb392465b-1767-42c9-b04b-6ef2a9c8f6b6_1488x719.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!G9T-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb392465b-1767-42c9-b04b-6ef2a9c8f6b6_1488x719.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!G9T-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb392465b-1767-42c9-b04b-6ef2a9c8f6b6_1488x719.jpeg 424w, https://substackcdn.com/image/fetch/$s_!G9T-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb392465b-1767-42c9-b04b-6ef2a9c8f6b6_1488x719.jpeg 848w, https://substackcdn.com/image/fetch/$s_!G9T-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb392465b-1767-42c9-b04b-6ef2a9c8f6b6_1488x719.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!G9T-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb392465b-1767-42c9-b04b-6ef2a9c8f6b6_1488x719.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!G9T-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb392465b-1767-42c9-b04b-6ef2a9c8f6b6_1488x719.jpeg" width="1456" height="704" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b392465b-1767-42c9-b04b-6ef2a9c8f6b6_1488x719.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:704,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:351998,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/190669545?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb392465b-1767-42c9-b04b-6ef2a9c8f6b6_1488x719.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!G9T-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb392465b-1767-42c9-b04b-6ef2a9c8f6b6_1488x719.jpeg 424w, https://substackcdn.com/image/fetch/$s_!G9T-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb392465b-1767-42c9-b04b-6ef2a9c8f6b6_1488x719.jpeg 848w, https://substackcdn.com/image/fetch/$s_!G9T-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb392465b-1767-42c9-b04b-6ef2a9c8f6b6_1488x719.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!G9T-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb392465b-1767-42c9-b04b-6ef2a9c8f6b6_1488x719.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Recently, I sat down to record a <a href="https://beyondthecommitpodcast.com/">Beyond the Commit</a> episode with <a href="https://x.com/josevalim">Jos&#233; Valim</a> - creator of the Elixir programming language. We ended up talking for over 2 hours &#8212; about types, about AI, about where programming languages are headed. </p><p>It got me thinking. I've been picking up Elixir on and off for years &#8212; for personal projects, for POCs &#8212; then drifting back to whatever <em>serious, enterprise</em> language the day job demands. But I kept returning. And the reason is simpler than I expected.</p><p>I realized I genuinely enjoy reading Elixir code.</p><p>I've spent years reading code in various languages, and for most of them, <em>"reading"</em> is something I endure, not something I look forward to. It&#8217;s a means to an end. </p><p>What makes Elixir different is its simplicity. Pipe operators, pattern matching, protocols &#8212; each construct is just powerful enough to be flexible and useful, yet simple enough that the code stays readable. </p><p>Now, many other languages have achieved simplicity (Golang). But none that I know of has achieved this level of balance of simplicity and harmonious aesthetics (at least for me). </p><p>There's a narrow design corridor that Elixir walks remarkably well.</p><p>Contrast this with Scala, which I used to know well. Well-written Scala code is a joy to read. Poorly written Scala code is the ninth circle of hell.  </p><p>Elixir gently constrains you toward clarity, and the result is that most Elixir code reads roughly the same way. Which is exactly what you want when your job is reviewing it.</p><p>This philosophy transcends the language itself and extends to its ecosystem. For my personal projects, I've been using Django for a few years now. I typically had to wire up hot reload, Stimulus, Tailwind, recurring jobs, and whatnot myself. It all ended up in a custom-made <a href="https://www.cookiecutter.io/">cookiecutter</a> template eventually. In Phoenix, all of that comes built in as a single coherent package &#8212; powerful enough to be flexible, simple enough to pick up and start building immediately. Neat, elegant package.</p><p>Here&#8217;s the part I find counterintuitive. We&#8217;re living through a moment where people are debating whether hand-writing code even matters anymore. AI writes the code, you review and guide it. I think that actually makes the aesthetics of a language matter more, not less. If your main interaction with code is reading it, then how pleasant that experience is becomes a first-class concern. At least while we're still expected to understand the code we ship&#8230;</p><p>The conventional wisdom right now is that statically typed languages are better suited for AI-assisted development. Types give the model more context, catch errors earlier, and constrain the solution space. It makes intuitive sense, and maybe it is so. It certainly is a convincing argument for enterprise-grade software.</p><p>Meanwhile, we also have some interesting experiments like this <a href="https://github.com/mame/ai-coding-lang-bench">one</a>, testing the cost of generating (correct) pet projects. <a href="https://x.com/mametter">Yusuke Endoh</a> tested Claude Code across 13 languages &#8212; Ruby came out on top. Fastest, cheapest, most reliable. Adding a type checker to Ruby made it 2-3x slower. Concise, expressive languages &#8212; the ones pleasant for humans to read &#8212; are also the ones where AI wastes the least tokens.</p><p>(There is also this <a href="https://dashbit.co/blog/type-systems-are-leaky-abstractions-map-take">interesting piece</a> from Jos&#233; himself about the tension related to the impossibility of typing some trivial expressions correctly without type unsoundness, but that&#8217;s a completely different story)</p><p>In the meantime, OpenAI just built <a href="https://www.reddit.com/r/machinelearningnews/comments/1rlo5ss/openai_releases_symphony_an_open_source_agentic/">Symphony</a> &#8212; their agent orchestration framework &#8212; in Elixir. A frontier AI lab reached for a language built on a 40-year-old virtual machine designed for telephone switches to orchestrate its agents.</p><p>There&#8217;s something poetic about that. In a world where AI handles more of the writing, what remains - at least for the time being - is taste, clarity, and the pleasure of working with something well-designed.</p><p>And Elixir has that in spades.</p>]]></content:encoded></item><item><title><![CDATA[GenAI in Development: Boardroom vs Trenches]]></title><description><![CDATA[On the great divide between internet hype and messy reality]]></description><link>https://www.pdole.ga/p/genai-in-development-boardroom-trenches</link><guid isPermaLink="false">https://www.pdole.ga/p/genai-in-development-boardroom-trenches</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Wed, 30 Jul 2025 07:02:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Hjgy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e72d3b-fc5d-4b62-903f-dbc0e2de3a50_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hjgy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e72d3b-fc5d-4b62-903f-dbc0e2de3a50_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hjgy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e72d3b-fc5d-4b62-903f-dbc0e2de3a50_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Hjgy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e72d3b-fc5d-4b62-903f-dbc0e2de3a50_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Hjgy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e72d3b-fc5d-4b62-903f-dbc0e2de3a50_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Hjgy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e72d3b-fc5d-4b62-903f-dbc0e2de3a50_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hjgy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e72d3b-fc5d-4b62-903f-dbc0e2de3a50_1536x1024.png" width="728" height="485.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47e72d3b-fc5d-4b62-903f-dbc0e2de3a50_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:2363221,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/169304266?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e72d3b-fc5d-4b62-903f-dbc0e2de3a50_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Hjgy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e72d3b-fc5d-4b62-903f-dbc0e2de3a50_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Hjgy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e72d3b-fc5d-4b62-903f-dbc0e2de3a50_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Hjgy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e72d3b-fc5d-4b62-903f-dbc0e2de3a50_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Hjgy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e72d3b-fc5d-4b62-903f-dbc0e2de3a50_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Anyone even casually following tech news (or ANY news, really) has heard how AI is making software development more efficient. Claims about 10x or 100x efficiency gains are not unheard of. </p><p>In fact, if you listen to AI Lab CEOs, they&#8217;re not just preaching improved developer efficiency - they&#8217;re talking about making software developers entirely obsolete, imminently. In short: AI will write all the software. <a href="https://www.businessinsider.com/anthropic-ceo-ai-90-percent-code-3-to-6-months-2025-3?IR=T">According to Dario Amodei</a>, AI might be able to write 90% of the software as soon as 3-6 months from now - which, given the prediction was made in March, puts it somewhere by the end of 2025. Sounds like your stereotypical Silicon Valley CEO&#8217;s or investor's wet dream - the former can&#8217;t wait to eliminate unreliable <em>wetware</em> from the equation; the latter realized that fortune to be made in selling shovels. So much so, in fact, that when I speak with senior engineering leaders, the challenge of dealing with CEO expecting 2x, 5x or 10x efficiency increase <strong>TODAY</strong>, becomes a recurring theme.</p><p>I remain sceptical about that. <a href="https://www.businessinsider.com/tesla-robo-taxis-elon-musk-pt-barnum-circus-2019-4">It&#8217;s one of those situations</a> where everybody agrees on the direction; we only argue about the timing. The timing, though, is important. Go all-in too early, and you may drown in a <a href="https://x.com/svpino/status/1949430065441427907">deluge of AI-generated detritus</a>. Do it too late, and you risk losing your competitive edge. And the truth is - no one really knows. </p><p>The realities of a typical software business are quite different from what internet influencers try to paint. Many leaders experience <a href="https://x.com/amasad/status/1950260314823397767">moderate efficiency gains</a> from AI usage in software development. Now, assessing efficiency gains in software development is a tall order already. Various approaches have been tested over decades - starting from <a href="https://link.springer.com/chapter/10.1007/978-1-4842-4221-6_2#Par37">counting LOCs</a> to <a href="https://dora.dev/guides/dora-metrics-four-keys/">DORA</a> / <a href="https://queue.acm.org/detail.cfm?id=3454124">SPACE</a> metrics today. I am confident that <a href="https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/yes-you-can-measure-software-developer-productivity">a lot of consulting money</a> was made on measuring development productivity along the way, too. The everyday practicalities of most software teams are that they just don&#8217;t measure productivity at all. If anything, they rely on loose, gut feeling as an indicator (&#8220;<em>we seem to work on these longer than usual</em>&#8220; or &#8220;<em>oh, we seem to introduce more bugs recently</em>&#8221;). </p><p>Even with the gut-feeling approach, though, it seems that for most organizations, the typical AI-efficiency gains are in single-digit percentage numbers. This is slowly being backed by more and more <a href="https://leaddev.com/velocity/ai-coding-assistants-arent-really-making-devs-feel-more-productive">research</a>. In fact - and this is quite astounding as for the CEO of the company selling AI tooling - Sundar Pichai even cited &#8220;<a href="https://www.businessinsider.com/ai-google-engineers-coding-productive-sundar-pichai-alphabet-2025-6?IR=T">AI making Google engineers 10% more productive</a>&#8221;. But it goes even further, recently the <a href="https://arxiv.org/abs/2507.09089">METR study</a> made headlines online, with results showing an actual <strong>decrease</strong> in productivity with AI tooling. </p><p>Now, I find it very hard to believe that AI tools actually decrease productivity <em>systematically</em>. I do believe it can be the case in some specific, narrow cases, though. It might also be a case of a transition period - using a new tool and/or approach often leads to a temporary efficiency drop before people become fluent with the new ways of working. And besides, even a single-digit (or low two-digit) efficiency increase is worth billions of dollars in the industry. And that&#8217;s a conservative estimate!</p><p>However, the order-of-magnitude rift between online claims and the realities of software teams is stark.  </p><p>Here are my thoughts on why I think that&#8217;s the case. </p><p>First of all, as with any gold rush, you can make shitloads of money by selling shovels. Most companies do that with exorbitant claims about the benefits they will bring. These claims, most of the time, either lack empirical substantiation or hold true only in narrowly defined contexts (e.g. synthetic benchmarks). We&#8217;ve seen this story before with public cloud, and especially with the alleged savings it was supposed to bring. </p><p>Second, at least as it is in mid-2025, most of these claims focus on the code-writing phase of the SDLC cycle. Typically, these are activities like code generation, debugging, code explanation, or brainstorming. The reality, however, is that for many organizations, writing code (or working with code in general) is only a part of the software engineering work. Depending on the source, it may be between <a href="https://www.sonarsource.com/blog/how-much-time-do-developers-spend-actually-writing-code/">33%</a> and <a href="https://blog.a.team/mission/meetings-are-killing-software-engineers-productivity">50%</a> of the entire engineering time. And perhaps naturally, as the organization and/or <a href="https://www.pdole.ga/p/the-software-engineers-career-beyond">seniority of the engineer grows</a>, the pure code-writing phase shrinks. So even if the code writing phase has been improved by 2x, the end result might be that overall net productivity growth might be much less impressive 1.2x. </p><p>Third, many online claims come from small companies and startups - unsurprisingly, as they are typically the first ones to venture into uncharted territories. After all, agility is their key strategic advantage over larger incumbents. And at least partially because these companies are more relaxed about security or legal risks (in some cases, more relaxed is a euphemism for not giving a single fuck about these matters). Meanwhile, some of their larger competitors haven&#8217;t even managed to get Copilot approved by their legal or security teams (the opposite side of the spectrum). </p><p>Finally, and building on the previous point, startup codebases are typically neither large nor burdened by years of obscure changes driven by a tangled web of evolving requirements. Perhaps even more importantly, they are not being used by long-standing customers who depend on layers of osbscure logic up over years (often tailored to specific, idiosyncratic use cases). Customers, mind you, who will be very unpleased when the vibe-coded app starts to break. </p><p>Garry Tan said some time ago that for their recent batch <a href="https://news.ycombinator.com/item?id=43423543">AI is writing 95% of the code</a>. It is quite jarring, but I tend to believe Garry. </p><p>Which leads us to the key difference I am seeing. Namely, AI tools are borderline absolutely fantastic for some specific cases. Some of these cases are:</p><ul><li><p>working on the greenfield projects, which are completely or nearly completely separated from the rest of the organization's codebase (at least up to a point when these projects become too complex) </p></li><li><p>building throwaway POCs (even if they are not thrown away afterwards, which is the case more often than not)</p></li><li><p>using technology (e.g. programming language, libraries, or services) that you are not intimately familiar with.</p></li></ul><p>They are good at other cases, too (e.g. brainstorming or being faster <em>Google</em>), but they excel at the above in the context of software engineering.</p><p>Guess what - most of the Y-Combinator batch are pre-product-market-fit companies - all they do from software engineering is write POC / MVP, and the last thing they (should) care about at that stage is long-lasting code quality/readability.</p><p>But here&#8217;s the thing &#8212; most tech leaders don&#8217;t work in greenfield settings or build throwaway POCs. As surprising as it may be, a lot of devs don&#8217;t work at a hot SV startup or big tech - but rather in some utility provider, midwestern logistics company, or maybe some financial institution. More often than not, they&#8217;re knee-deep in brownfield legacy systems.</p><p>As it is in mid-2025, AI tools are not overly good with such codebases. One thing is that these codebases often have aged code, with many custom abstraction layers (in other words, <em>out-of-distribution</em> data), separating it from any open source libraries they might use (codebase that is likely <em>in-distribution</em> for the given LLM model). The other thing is that these codebases tend to be sizable. It is not uncommon for these projects to be in the range of hundreds of thousands to millions of LOCs. And while <a href="https://towardsdatascience.com/towards-infinite-llm-context-windows-e099225abaaf/">context windows are steadily growing</a> &#8212; with models like <a href="https://deepmind.google/models/gemini/pro/">Gemini 2.5 Pro hitting 1M tokens</a> &#8212; that alone doesn&#8217;t solve the large codebase problem.</p><p>The unfortunate reality is that extending the context window (like in the case of analysing a big codebase) often leads to problems like reduced attention focus or even accidental context-poisoning. You may experience this while working in agentic-mode in Cursor, while trying to provide an increasing amount of information to LLM while debugging a nasty bug, and at some point, realizing that the model suggestions degrade over time. </p><p>If GenAI development follows S-curve - which is typical for many new inventions that become widespread - we may expect interesting things.</p><p>The classic example is smartphones, which experienced massive advancement and innovation in technology between 2010 and 2020. However, it is, hard to deny that the technology has stagnated recently, <a href="https://www.disconnect.blog/p/smartphone-innovation-is-dead-and-thats-fine">barely anyone is excited about new iPhone launches</a> these days, and the technological improvements have become mostly incremental. </p><p>It is not outside the realm of possibility that it will take way longer for AI to work effectively with brownfield codebase than most people anticipate. <a href="https://youtu.be/vagyIcmIGOQ?t=6369">@dhh had a great anecdote on his recent Lex podcast about that</a>. (The presentation he mentions is &#8220;<a href="https://youtu.be/nwhZ3KEqUlw?t=492">Web Design: The First Hundred Years with Maciej Ceglowski</a>&#8221; from 2014; great presentation by the way).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Vvi5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99e347a0-6313-4d18-aa53-e7b5698d6aa6_1979x1180.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Vvi5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99e347a0-6313-4d18-aa53-e7b5698d6aa6_1979x1180.png 424w, https://substackcdn.com/image/fetch/$s_!Vvi5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99e347a0-6313-4d18-aa53-e7b5698d6aa6_1979x1180.png 848w, https://substackcdn.com/image/fetch/$s_!Vvi5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99e347a0-6313-4d18-aa53-e7b5698d6aa6_1979x1180.png 1272w, https://substackcdn.com/image/fetch/$s_!Vvi5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99e347a0-6313-4d18-aa53-e7b5698d6aa6_1979x1180.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Vvi5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99e347a0-6313-4d18-aa53-e7b5698d6aa6_1979x1180.png" width="1456" height="868" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/99e347a0-6313-4d18-aa53-e7b5698d6aa6_1979x1180.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:868,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:46501,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.pdole.ga/i/169304266?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99e347a0-6313-4d18-aa53-e7b5698d6aa6_1979x1180.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_!Vvi5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99e347a0-6313-4d18-aa53-e7b5698d6aa6_1979x1180.png 424w, https://substackcdn.com/image/fetch/$s_!Vvi5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99e347a0-6313-4d18-aa53-e7b5698d6aa6_1979x1180.png 848w, https://substackcdn.com/image/fetch/$s_!Vvi5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99e347a0-6313-4d18-aa53-e7b5698d6aa6_1979x1180.png 1272w, https://substackcdn.com/image/fetch/$s_!Vvi5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99e347a0-6313-4d18-aa53-e7b5698d6aa6_1979x1180.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Exhibit A: S-curve of innovation over time</figcaption></figure></div><p>In other words, it is difficult to say at which point of the S-curve we are currently at (A or B, above). </p><p>When it comes to software engineering specifically, I&#8217;d say we are starting to see incremental improvements already. Recent releases are definitely less exciting than the ones from 2023-2024. Some feel like <a href="https://x.com/pdolega/status/1945767164922708457">almost backward steps</a> &#129335;. But it is worth being open-minded - for instance, <a href="https://www.axios.com/2025/07/24/openai-gpt-5-august-2025">GPT-5 is allegedly just around the corner</a>. </p><p>So, where does it put us?</p><p>Real-world productivity gains are, as it is now, overhyped in real production code bases. If you are struggling with marrying LLMs with your messy legacy system, you are not behind. The whole industry is struggling with it. </p><p>It is not too late to experiment - and experiment you should because even if the gains present a sobering contrast to the prevailing hype narrative, they remain very much real!</p><p>And there are definitely levels to this game - the ability to work effectively with LLMs, even (or especially) with legacy codebases, is a skill that can be levelled up to unlock additional gains. For example, proper code compartmentalization seems to help (alas, it often is an elusive goal in legacy codebases). Heavier investment in company-wide <a href="https://docs.cursor.com/en/context/rules">cursor rules</a> has also shown promising results, etc.</p><p>And as crazy predictions go: Who knows - maybe LLMs will suck with large legacy codebases for some more time, which will lead us to a situation where it is more practical to rebuild a system (with AI!), instead of refactoring/extending an existing codebase. In that case, everything will be greenfield until it isn&#8217;t, in which case it will cease to exist. </p><p>Until then, keep your shovel sharp.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.pdole.ga/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Last but not least, hit subscribe if you liked my take on the topic.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Software Engineer’s Career - Beyond Senior]]></title><description><![CDATA[The mythical post-senior stage of an engineering career and how to prepare for it]]></description><link>https://www.pdole.ga/p/the-software-engineers-career-beyond</link><guid isPermaLink="false">https://www.pdole.ga/p/the-software-engineers-career-beyond</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Thu, 14 Nov 2024 10:17:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KuTv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9686e37a-7eb0-471a-93f3-e34cb8dc7733_1322x793.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KuTv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9686e37a-7eb0-471a-93f3-e34cb8dc7733_1322x793.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KuTv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9686e37a-7eb0-471a-93f3-e34cb8dc7733_1322x793.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KuTv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9686e37a-7eb0-471a-93f3-e34cb8dc7733_1322x793.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KuTv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9686e37a-7eb0-471a-93f3-e34cb8dc7733_1322x793.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KuTv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9686e37a-7eb0-471a-93f3-e34cb8dc7733_1322x793.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KuTv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9686e37a-7eb0-471a-93f3-e34cb8dc7733_1322x793.jpeg" width="1322" height="793" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9686e37a-7eb0-471a-93f3-e34cb8dc7733_1322x793.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:793,&quot;width&quot;:1322,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:410087,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KuTv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9686e37a-7eb0-471a-93f3-e34cb8dc7733_1322x793.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KuTv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9686e37a-7eb0-471a-93f3-e34cb8dc7733_1322x793.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KuTv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9686e37a-7eb0-471a-93f3-e34cb8dc7733_1322x793.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KuTv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9686e37a-7eb0-471a-93f3-e34cb8dc7733_1322x793.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The software engineering career path is fairly straightforward at the beginning of the career trajectory, from intern or junior up to senior engineer. It also tends to be similar across different organizations. <strong>It is in the post-senior engineering career that things start to get fuzzier. </strong>For many years, the unfortunate state of the industry was that the most viable long-term option was a foray into management. While this is an interesting and rewarding route, it is not for everyone. More than that, pushing everyone in that direction is detrimental both for the individual and organization as whole. The push toward management can either be direct (the only viable path in the organization) or indirect (for example, by not emphasizing the importance of the engineering path or by having an unreasonable pay gap between the engineering and management paths). <strong>Let's explore what the post-senior engineering path looks like and how you can prepare for what&#8217;s to come.</strong></p><p>This article covers a few angles:</p><ul><li><p>Post-senior career trajectories</p></li><li><p>Skills needed for post-senior career advancement and how they differ from pre-senior roles expectations</p></li><li><p>A distinction between engineering and people management trajectories (with references to infamous tech skills vs soft skills debate that pops out every now and then).</p></li></ul><p>I&#8217;ve previously covered bits &amp; pieces of this topic, from an organizational perspective, in articles related to building an internal engineering career framework - <a href="https://www.pdole.ga/p/building-engineering-progression">part 1</a> and <a href="https://www.pdole.ga/p/building-engineering-progression-7ca">part 2</a>. Here, I will focus on this phenomenon predominantly from the individual&#8217;s perspective.</p><p>Before I do that though, let's dissect the engineering career path at pre-senior stages so we can more clearly appreciate just how different a post-senior path is from what went on before.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.pdole.ga/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Enjoyed this article so far? Subscribe to stay updated with more content like this!</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h1><strong>Path up to senior level</strong></h1><p>In most companies there are few levels that precede senior roles. Typically these are:&nbsp;</p><ul><li><p>Software Engineer Intern (aka Intern)</p></li><li><p>Junior Software Engineer (aka Junior)</p></li><li><p>Software Engineer (aka Mid)</p></li></ul><p>These roles are usually followed by Senior, Staff (typically level above Senior) and Principal (depending on the organization it might be one or several levels above Staff).</p><p>Intern, Junior and Mid might be named differently like L2-L4 or E2-E4, but these are really just codenames for the same thing (big tech apparently likes codenames more than the rest of the industry). The actual sophistication or experience expectation at a given level differ from company to company but main underlying themes remain similar:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RUEQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb72ee697-966d-4d25-ae0c-4985c85fe763_1600x859.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RUEQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb72ee697-966d-4d25-ae0c-4985c85fe763_1600x859.png 424w, https://substackcdn.com/image/fetch/$s_!RUEQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb72ee697-966d-4d25-ae0c-4985c85fe763_1600x859.png 848w, https://substackcdn.com/image/fetch/$s_!RUEQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb72ee697-966d-4d25-ae0c-4985c85fe763_1600x859.png 1272w, https://substackcdn.com/image/fetch/$s_!RUEQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb72ee697-966d-4d25-ae0c-4985c85fe763_1600x859.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RUEQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb72ee697-966d-4d25-ae0c-4985c85fe763_1600x859.png" width="1456" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b72ee697-966d-4d25-ae0c-4985c85fe763_1600x859.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&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_!RUEQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb72ee697-966d-4d25-ae0c-4985c85fe763_1600x859.png 424w, https://substackcdn.com/image/fetch/$s_!RUEQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb72ee697-966d-4d25-ae0c-4985c85fe763_1600x859.png 848w, https://substackcdn.com/image/fetch/$s_!RUEQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb72ee697-966d-4d25-ae0c-4985c85fe763_1600x859.png 1272w, https://substackcdn.com/image/fetch/$s_!RUEQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb72ee697-966d-4d25-ae0c-4985c85fe763_1600x859.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Exhibit A: Scope, supervision and focus changes across seniority levels</figcaption></figure></div><p>Scope, need for supervision and area of key focus undergoes an intuitive evolution as the seniority of engineer grows: scope and focus of daily activities expands and there is less supervision needed.&nbsp;</p><p>An interesting aspect however is not captured explicitly above. This aspect is a matter of <strong>uncertainty </strong>that engineers need to deal with. Growing uncertainty is indeed the factor that many engineers struggle and feel uncomfortable with before they become fluent and capable with it. We can visualize it as below:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZgId!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa76180f5-a63e-4046-93e4-8671e36e1fcc_2048x1100.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZgId!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa76180f5-a63e-4046-93e4-8671e36e1fcc_2048x1100.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZgId!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa76180f5-a63e-4046-93e4-8671e36e1fcc_2048x1100.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZgId!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa76180f5-a63e-4046-93e4-8671e36e1fcc_2048x1100.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZgId!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa76180f5-a63e-4046-93e4-8671e36e1fcc_2048x1100.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZgId!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa76180f5-a63e-4046-93e4-8671e36e1fcc_2048x1100.jpeg" width="1456" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a76180f5-a63e-4046-93e4-8671e36e1fcc_2048x1100.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:65376,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZgId!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa76180f5-a63e-4046-93e4-8671e36e1fcc_2048x1100.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZgId!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa76180f5-a63e-4046-93e4-8671e36e1fcc_2048x1100.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZgId!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa76180f5-a63e-4046-93e4-8671e36e1fcc_2048x1100.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZgId!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa76180f5-a63e-4046-93e4-8671e36e1fcc_2048x1100.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Exhibit B: Increase of uncertainty</figcaption></figure></div><p>You typically expect Juniors to be given in-depth descriptions of problems, often coupled with decent descriptions of the desired solution. For instance there is usually some form of more or less detailed business expectation described (if my experience is any indication - usually less).&nbsp;</p><p>If you work in the retail industry, the bug might contain the following description: "The generated invoice doesn't have the promoted line item with $0 value. Whenever we give a customer a gift due to promotion it should be the last item on the invoice with the price equal to $0". This actually forms a problem statement (missing line item) and a business solution (line item with $0 as the last position on the invoice). Usually what follows next is a conversation with a more senior engineer who might even tell the Junior which part of the system to look at and what is likely to be changed. This is part of the technical solution (where the change should be added). In short, the remaining work is the implementation, and even this is probably already roughly known by a more senior engineer.</p><p>The situation is a little more complex for mid-level engineers. They might get something similar to what&#8217;s above but, more frequently, the pointers to the actual implementation - where and how to modify code base - are less explicit or non-existent. After all, Mid-level engineers usually have the experience to use their own judgment and find the optimal implementation themselves. </p><p>Frequently, even a solution is not clearly given. What might happen is a problem statement such as: "This invoice doesn't seem right. Customer should have the promotion item highlighted somehow on it." Usually an engineer wouldn't have any idea what it should look like, but they'll extract some pointers to people who might know ("Talk with Mike from accounting, he might know"). In short, more communication outside of the direct engineering team area is needed and, to a significant extent, this communication is left in the hands of the engineer. This situation often becomes the &#8216;daily bread and butter&#8217; for a senior engineer.</p><p>Beyond Senior engineers, the situation can become even more complex. The problem statement may be less clear, and it might even be expected that Staff (and higher-level) engineers help direct the organization toward the right problems to solve. While it may not typically be a business problem, it could certainly involve technical or organizational challenges, especially when these issues impact the effectiveness of the engineering part of the organization. Over time, problems often become a blend of business, financial, technological, and organizational factors. In larger organizations, many big problems exceed the boundaries of being purely technical. </p><p>One common example, highlighting the intersection of technical and business considerations, is deciding that some error conditions are too costly to prevent upfront, making occasional manual intervention more economically viable (e.g., Support contacting a customer to reverse an order). A notable anecdote from years ago is Amazon&#8217;s decision that it was more cost-effective to send an extra item in cases when a customer removed the item from their shopping cart just before finalizing the purchase (due to technical issue, the item was very rarely not correctly removed from the cart, even though customer didn&#8217;t pay for it), then actually technically preventing it happening. </p><p>And the further up the engineering ladder you go, the greater the uncertainty. Anyone who works successfully at Staff and Principal level eventually learns to live with it. As they say: it comes with the territory. Still, it takes time for most engineers to get used to it.</p><h1><strong>Post senior world</strong></h1><p>The traditional view is that engineers need to move into management after a certain number of years in industry. The tech world moves fast and, after a while, they cannot catch up and lose their <em>edge</em>. Or so the story goes. If my experience is any indication, some of the best engineers I've met are in their late forties, fifties or even sixties.</p><p>Sure, the way their work is performed usually changes. As the crowd wisdom goes - when you are young you have time but don't have money, and when you are older you have money (hopefully), but you value your time more. Similarly here: 20-year-old loose cannons can survive on coke and pizza in a 24h release crunch - which is still a necessity in certain areas of our industry or even a badge of honor for some. On the other hand, engineers in their fifties make it up with knowledge and experience (which might have even made the aforementioned crunch unnecessary in the first place &#129335;).</p><p>Big tech got that right early on. In most of these companies, there are usually long career ladder branches for both management and technical disciplines. Here is part of the engineering career ladder from Google. It shows that engineering can be a lifetime career, spanning several decades. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_Gm8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b35bf4-ee26-4d12-9685-c5ac6aca9d96_1600x859.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_Gm8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b35bf4-ee26-4d12-9685-c5ac6aca9d96_1600x859.png 424w, https://substackcdn.com/image/fetch/$s_!_Gm8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b35bf4-ee26-4d12-9685-c5ac6aca9d96_1600x859.png 848w, https://substackcdn.com/image/fetch/$s_!_Gm8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b35bf4-ee26-4d12-9685-c5ac6aca9d96_1600x859.png 1272w, https://substackcdn.com/image/fetch/$s_!_Gm8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b35bf4-ee26-4d12-9685-c5ac6aca9d96_1600x859.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_Gm8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b35bf4-ee26-4d12-9685-c5ac6aca9d96_1600x859.png" width="1456" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/74b35bf4-ee26-4d12-9685-c5ac6aca9d96_1600x859.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&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_!_Gm8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b35bf4-ee26-4d12-9685-c5ac6aca9d96_1600x859.png 424w, https://substackcdn.com/image/fetch/$s_!_Gm8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b35bf4-ee26-4d12-9685-c5ac6aca9d96_1600x859.png 848w, https://substackcdn.com/image/fetch/$s_!_Gm8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b35bf4-ee26-4d12-9685-c5ac6aca9d96_1600x859.png 1272w, https://substackcdn.com/image/fetch/$s_!_Gm8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b35bf4-ee26-4d12-9685-c5ac6aca9d96_1600x859.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Exhibit C: Parallel Engineering &amp; Management paths</figcaption></figure></div><p>This state of affairs is not evenly distributed across the industry. In many organisations, the engineering branch is significantly shorter than the management one. However, the situation is improving - perhaps due to the increased importance of technology in most companies these days - and the rest is also catching up.</p><p>When it comes to the management career path, a simple version might look like 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_!Pnb3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb823f143-8fe7-4c85-98f1-2d4b1df22c87_1600x859.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Pnb3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb823f143-8fe7-4c85-98f1-2d4b1df22c87_1600x859.png 424w, https://substackcdn.com/image/fetch/$s_!Pnb3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb823f143-8fe7-4c85-98f1-2d4b1df22c87_1600x859.png 848w, https://substackcdn.com/image/fetch/$s_!Pnb3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb823f143-8fe7-4c85-98f1-2d4b1df22c87_1600x859.png 1272w, https://substackcdn.com/image/fetch/$s_!Pnb3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb823f143-8fe7-4c85-98f1-2d4b1df22c87_1600x859.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Pnb3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb823f143-8fe7-4c85-98f1-2d4b1df22c87_1600x859.png" width="1456" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b823f143-8fe7-4c85-98f1-2d4b1df22c87_1600x859.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&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_!Pnb3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb823f143-8fe7-4c85-98f1-2d4b1df22c87_1600x859.png 424w, https://substackcdn.com/image/fetch/$s_!Pnb3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb823f143-8fe7-4c85-98f1-2d4b1df22c87_1600x859.png 848w, https://substackcdn.com/image/fetch/$s_!Pnb3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb823f143-8fe7-4c85-98f1-2d4b1df22c87_1600x859.png 1272w, https://substackcdn.com/image/fetch/$s_!Pnb3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb823f143-8fe7-4c85-98f1-2d4b1df22c87_1600x859.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Exhibit D: Simplified management path</figcaption></figure></div><p>At times, there might be a few steps in-between (Senior Engineering Manager, for example) or CTO might not be treated as a managerial role (CTO is a bit odd, some organizations treat it as the most-senior individual role, where the management aspect is handled by the VP of Engineering). It&#8217;s still pretty straightforward though.</p><p>Things aren&#8217;t that simple for the engineering roles. While building the Engineering Progression framework at <a href="https://virtuslab.com/?utm_source=substack&amp;utm_medium=article&amp;utm_campaign=pd">VirtusLab</a>, we realized that the engineering path up to Senior is intuitively simple. After that things become complicated as a variety of career trajectories emerge.&nbsp;</p><p>Here are some of them:</p><ul><li><p><strong>Tech lead</strong> - an engineer responsible for a particular area of software from a technology perspective (no people management as such). This might be either a service (or bunch of micro-services if this name still means anything) or a component. In many organizations Tech Lead might be mixed with Team Lead. Whereas this is certainly possible, it doesn&#8217;t have to be that way (I personally like to think of Team Lead as a first step in the Management career, rather than one of the steps on the Engineering ladder).</p></li><li><p><strong>Subject matter expert</strong> - an engineer having deep expertise in one of the areas important for the organization. This might be a technical area (e.g. streaming) or a particular crossing of technology and business domain (e.g. the Insurtech ecosystem). Depending on the organization, these areas can be as narrow or wide as needed (e.g. Insurtech is a field wide enough to have individual experts focused on a particular area within the field).</p></li><li><p><strong>Architect</strong> - the days of white bearded architects sitting for eons in their ivory towers, only to finally come back to enlighten pariah engineers with voluminous tomes of UML diagrams, are pretty much over. These days, design and architecture is a team sport and requires a hands on approach. Still, there are engineers who are better at big picture thinking and architecture than others, and they might gravitate towards the architect&#8217;s trajectory.</p></li><li><p><strong>Process engineer</strong> - most tech organizations require processes spanning multiple teams or even entire organization. These processes might be engineering recruitment, development lifecycle standardization or improving software quality across the board and many others. The VP of Engineering is usually accountable for this domain (or CTO, if the organization lacks a VP of Engineering), and they often have Staff or a Principal engineer responsible for specific initiatives. Engineers that thrive while building such processes (which involves system thinking, tactical approach and generating organization buy-in) might be called process engineers (or organizational engineers).</p></li><li><p><strong>Presales engineer</strong> - these are engineers who excel in customer facing situations, such as helping sales with new customers or existing customers with their problems or cross-sell opportunities. Engineers on this trajectory need to have solid engineering skills, knowledge of the product (or tech domain) and outstanding communication and presentation skills.</p></li></ul><p>The list above is not exhaustive - there are certainly others. For instance, DevRel (or Dev Advocate) engineer is a role that&#8217;s emerged in the past decade. Ultimately, trajectories depend on the specifics and needs of each organization.</p><p>To wrap up, we have at least two typical career branches for post-senior engineers: Management and Engineering. Both present rich and rewarding career options. Whereas management is typically straightforward, the engineering path might expand into plenty of trajectories (I discuss some of them in one of <a href="https://www.pdole.ga/i/146207473/time-to-add-more-career-tracks">previous articles</a>, along with real world examples from other organizations).</p><h2>Is moving up a necessity?</h2><p>There is another option, the third one, which is rarely mentioned but is worth emphasizing. The third option is to stay at the senior level. This might come as a surprise, because the outside world often tries to convince us that we need to progress (or grow) at every stage of our professional career. I don&#8217;t think this is true and I specifically believe the option to pause is especially compelling at the Senior level.</p><p>Think of it. By the time engineers are senior, they usually make a decent salary. And, due to the time it typically takes to reach that level, many start having (or already have) families or other obligations. I think there is nothing wrong with choosing to put your career on the back burner while you focus on other things. Just go to the office (or just your desk at home), work for 8 hours, don&#8217;t think too much about it afterwards and maybe read a book or an article about new technology every now and then. In contrast, post-senior roles usually require more involvement than this. Often, it is difficult to squeeze them into a typical 8 hour day. Calls with other teams across the Atlantic during non-work hours, might be more frequent. Both responsibilities and stress rise and there is an expectation that you keep your edge. As a result, continuing to progress may actually make you less happy.</p><p>Additionally, the senior level in many organizations seems to be the last level where you spend a lot of time hands-on coding. Sure, you already have a lot of other responsibilities - you might need to coach juniors, participate in calls with people from other departments (like Sales or, speaking generically, <em>business people</em> &#128561;) or draft a design doc. Nonetheless, plenty of your work still has a focus on building software. This is the luxury that many post-senior engineers don&#8217;t have. In many organizations, between helping with organizational processes, preparing risk assessments for the board, reviewing docs, and participating in committees of various kinds, they don&#8217;t have much time left to do any actual coding. Oh, and you have to deal with the politics. If spending a bulk of time on coding is what you love to do, staying on the senior level might be a good option.</p><p>Staying at the same level might not have been an option earlier on. In many organizations, both intern and junior levels are considered an &#8220;investment&#8221;. This means, some organizations perceive engineers on this level costing more (in terms of salary but predominantly in the form of time spent by more senior engineers) than the value of work they deliver. As such these roles are often perceived to be &#8220;up-or-out&#8221;. Up-or-out is a term taken from typical partnership firms, such as legal, architecture (buildings, not software) or medical practices. Essentially, it means that there is a period of time during which an individual must progress to the next level, otherwise they will be pushed out of the organization. In many classic partnership firms these conditions are explicit, whereas in tech companies it tends to be implicit i.e. at some point there starts to be a problem on the performance review cycle if you stay on these roles for too long (imagine being Intern for 5 years).</p><p>Technically speaking, one can choose to stay on Mid level. It is certainly possible. However, Senior is usually a natural extension of Mid (as the job responsibilities and expectations follow a similar pattern) and it has a better pay grade. With that in mind, the senior engineering level seems to be a good balance - an inflection point before the type of work shifts away from predominantly hands-on coding. </p><p>Speaking of change, let's focus on pre-senior vs. post-senior in terms of expectations and factors that might help you cross the chasm and move forward.</p><p>In this section I want to focus on some of the key attributes or skills that will help you progress your career in the post-senior phase. Now, you may notice that I've left out technical skills completely. That doesn't mean they're no longer important - <strong>they very much are</strong>. The degree of importance and angle you need to take for further development of technical skills depends on the engineering trajectory you pick (that is to say that e.g. Process Engineer might need different skills than Presales Engineer). You surely cannot go wrong with levelling up competencies in area of software architecture (and generally designing software), understanding tech landscape or full software development lifecycle (SDLC) processes etc.</p><p>The thing however is that Engineers by the time they are Seniors, already got accustomed to expanding their technical skills. Yes, further development of technical skills is still important, but it alone won&#8217;t be enough anymore.&nbsp;</p><p>Let's look at the less obvious characteristics of the post-senior career path and the skills you&#8217;ll need to hone along the way.</p><h2>Necessary vs sufficient conditions</h2><p>Progressing from Junior to Mid is relatively straightforward. There are certain conditions (typically specified in the company&#8217;s engineering progression) that you must fulfill. As soon as you have fulfilled them, you may get promoted (well, technically you might need to wait for the next performance review cycle, etc.). At least that used to be the norm. In the newer, post-ZIRP world, many organisations are struggling with budgets (budgets that were overly-inflated in the ZIRP world) and this is having an impact on promotions. In this situation, it is often a question of salary increases rather than levelling up. This means that while your level may have increased, your salary may have lagged behind &#129335;&#8205;&#9794;&#65039;. This situation becomes more complex in the post-senior world where multiple angles must be taken into account.</p><p>First, an extreme example just to make a point: the promotion to CTO. Whereas it is straightforward to be promoted from Junior to Mid, the situation here is more complicated. Unless your organisation is growing rapidly and has roles for different CTOs (e.g. field CTOs or CTO of a region or technology or domain area), which is rare, it is highly unlikely that you will get the role if the CTO is already there in your organisation. The window of opportunity may open when the CTO leaves. Even then, there is likely to be only one vacancy and the next person in line will often have to wait several years before the window opens again.</p><p>The bottom line is this: on one end, promotions from junior to pre-senior positions depends on you meeting the expectations. On the other end, promotion to CTO additionally requires an open window of opportunity; a factor beyond your direct control. Everything in-between senior and CTO is shades of gray in this respect. Naturally there are more spots (even theoretically unlimited) for e.g. Staff Engineer than VP of Engineering, but constraints may exist. For instance, promotion process may involve more scrutiny, whereas the promotion from Junior to Mid might have been the sole decision of your manager. Or there may be a company-wide committee responsible for promotions to Principal (a sort of bar-raisers), or it could be vetoed by your manager's peers or their boss (more on this later).</p><h2>Enablers</h2><p>Roles below Senior are clearly individual contributor roles. Engineers participate in the <em>larger scheme of things</em> by contributing their efforts to the equation. We can visualize their work as a part of a sum (technically called a <em>summand</em>):</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;work_{eng1}+work_{eng2}+...+work_{eng3}=totalOutput&quot;,&quot;id&quot;:&quot;TSZATMCLQH&quot;}" data-component-name="LatexBlockToDOM"></div><p>(Naturally, that&#8217;s an oversimplified model yet I hope it will help drive the point).<br><br>Managers, even if they contribute significantly to the overall work (they have a <em>summand</em> element) also have a bigger effect on the work of the entire team. That is, assuming they do their work well, they are an &#8220;enabling&#8221; element. Unfortunately, this means that they also can become blocking (or obstructive) to the whole team. This is intuitive to anyone who has spent a few years in the industry. Good managers can get a mediocre team to achieve great results, bad managers can get a great team to achieve mediocre results (or worse, get all their great players to quit).</p><p>Here are some ways managers may improve or hamper the team&#8217;s effectiveness:</p><ul><li><p><strong>Good managers</strong> set clear goals and expectations for the team (e.g. by managing external stakeholders well). <strong>Bad managers</strong> allow priorities to change often without a single coherent vision.&nbsp;</p></li><li><p><strong>Good managers</strong> ensure that required resources are allocated for the team (e.g. compute cluster time is available when needed). <strong>Bad managers</strong> don&#8217;t have sufficient organizational influence and are never able to provide resources the team needs.&nbsp;</p></li><li><p><strong>Good managers</strong> foster a healthy team atmosphere where people can freely criticise ideas and problems in order to find better solutions. <strong>Bad managers</strong> emphasize individual achievements, where teamwork is always secondary and any root cause analysis turns quickly into a blame game.</p></li></ul><p>In a way, a significant part of the managers work is to be a &#8220;multiplier&#8221; (or <em>factor</em> in mathematical terms) in our simplified equation:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;work_{manager}*(work_{eng1}+work_{eng2}+...+work_{eng3})=totalOutput&quot;,&quot;id&quot;:&quot;FKQKSWLRJO&quot;}" data-component-name="LatexBlockToDOM"></div><p>In fact, this is true for all leadership roles - not only pure management. The more we go into leadership roles, the more impactful the &#8220;factor&#8221; element in the equation is (for better or worse, as mentioned earlier).&nbsp;</p><p>There is an interesting point one may argue about here, namely the fact that &#8220;Not every Manager is a Leader, and not every Leader is a Manager&#8221; (you can read more about it <a href="https://hbr.org/2004/01/managers-and-leaders-are-they-different">here</a>). I am not going to argue with the former part. Many organizations use the name Leadership as a synonym for Management (e.g. Leadership Career Path). We would most likely all agree that all Managers should at least aspire to be Leaders. I do believe that the second part - that &#8220;Not every Leader is a Manager&#8221; - is a crucial part in the context of this paragraph. Specifically I&#8217;d argue that Leadership becomes an increasingly important part of the role in the post-Senior stages of an engineering career. I made that point earlier <a href="https://www.pdole.ga/i/144163350/leadership-management-vs-engineering">in one of my previous articles</a>. In fact, one could argue that the Leadership component of post-senior engineering roles is in a way even more demanding, than in Management roles. This is due to the fact that Engineering path usually doesn&#8217;t involve traditional direct reporting lines. For example, Staff Engineers working to improve the security of an organisation's software supply chain, or to improve the effectiveness of the technical recruitment process, may need to influence many teams across the organisation and generate buy-in without a direct reporting structure. Not to mention, they are often responsible for mentoring more junior engineers or setting an example in the organisation. In short, much of the work of the post-senior is an empowerment style of working.&nbsp;</p><p><strong>The bottom line is that post-engineering roles require the development (and use) of leadership skills.</strong> These include competencies such as communication, decision-making, strategic thinking, accountability, mentoring, conflict resolution, influencing and emotional intelligence. Each and every one of these is a learnable skill (up to a point) and engineers aspiring to post-senior roles will do well investing in developing them.</p><h2>Communication</h2><p>I mentioned communication earlier but, based on how important it is for post-senior engineers, I believe it deserves a dedicated section. By the time engineers become Staff-level, they&#8217;ve already likely authored or co-authored many design docs and other types of engineering documents. This is both useful (in terms of the function these docs serve) and educational (in terms of honing communication skills).</p><p>However, I am talking about communication more broadly, including:</p><ul><li><p><strong>Written</strong> - design docs, guidelines, wiki pages, emails and Slack (or whatever communicator you are using)&nbsp;</p></li><li><p><strong>Spoken</strong> - direct 1-1 or speaking within a group of people&nbsp;</p></li><li><p><strong>Hybrid</strong> - usually presentations.&nbsp;</p></li></ul><p>Of these above, I believe that written communication is the most important. A few famous companies, amongst the many that rely heavily on outstanding written communication, are: <a href="https://slab.com/guides/how-success-is-written/shopify-writing-aligns-rapidly-expanding-companies/">Shopify</a>, <a href="https://works.hashicorp.com/articles/writing-practices-and-culture">Hashicorp</a>, <a href="https://basecamp.com/guides/how-we-communicate">37signals</a> or <a href="https://newsletter.pragmaticengineer.com/i/140970283/writing-culture">Stripe</a>. In general, it is fair to say the written form represents the majority of communication within most modern day tech companies. Especially so, if we consider emails and instant messaging tools (Slack, Teams etc). And consider them we must, since they are the main communication media. When it comes to working with senior managers, directors and executives, the difference between a sloppy and well-written email may cause the initiative you are advocating being pushed through, entirely blocked or (most-common) not considered important enough to be granted sufficient budget. <strong>It is that serious</strong>.</p><p>I won&#8217;t dive into how to write well in the business context. Josh Bernoff already did it extensively in his book: <a href="https://www.goodreads.com/book/show/28448362-writing-without-bullshit">Writing Without Bullshit</a>. It is roughly 300 pages long and, since it will be relevant for anyone moving beyond Senior, I just recommend reading it instead.</p><p>One of the key concept covered by Josh is his ROAM framework which stands for:</p><ul><li><p><strong>Readers</strong> - who is your audience (What is their understanding of the topic? What are their goals? How much time would they invest in reading your text? etc)</p></li><li><p><strong>Objective</strong> - what change in the reader do you expect your text to make? (Will they change their mind regarding the topic? Will they determine they got all the information regarding the decision to make?)</p></li><li><p><strong>Action</strong> - what action do you expect the reader to do after reading your text (What desired action should the reader do afterwards? What would you consider to be a success after the reader reads your text?)</p></li><li><p><strong>iMpression</strong> - what impression will your text instill in a reader? (in other words - how would they perceive you after reading the text? Would they think you are professional? Would they think you valued their time by presenting the information clearly and succinctly?)</p></li></ul><p>Here is an example:</p><ul><li><p>After reading this email, my VP of Engineering, who is involved in many performance reviews at this time of the year [reader], will understand the risks involved with keeping the legacy payment component in place [objective] and agree with my proposal of spending 2 weeks of engineering effort in replacing it with a new version [action]. They would also value my thorough, unbiased and professional analysis of pros&amp;cons, that helped them go through the proposal effectively [impression].&nbsp;</p></li></ul><p>You can read an extract about this sole idea <a href="https://www.goodreads.com/book/show/28448362-writing-without-bullshit">here</a>. That&#8217;s one of the concepts that I found extremely useful on a daily basis. There are many more in the book. Do yourself a favor, and read it.&nbsp;</p><h2>Team Work</h2><p>Nearly all technology organizations doing complex work rely on teams, instead of individuals. You might have great players, but in most growing companies, it is a team effort that counts. As work of engineers beyond seniors has a growing enabling component (which I covered earlier) its inevitable part is effective team work.&nbsp;</p><p>Key skills in this area include:&nbsp;</p><ul><li><p>communication - covered more extensively earlier,&nbsp;</p></li><li><p>adaptability / open-mindedness - ability of being flexible to changing circumstances,&nbsp;</p></li><li><p>empathy - ability to understand others&#8217; feelings,&nbsp;</p></li><li><p>conflict resolution - ability of resolving conflicts (or even difference of opinions) peacefully and effectively,&nbsp;</p></li><li><p>conscientiousness - doing your work with responsibility and diligence, being reliable</p></li><li><p>and agreeableness - ability of being compassionate, cooperative and friendly (which <strong>doesn&#8217;t</strong> mean you need to agree to everything).</p></li></ul><p>Sure, some of them - like high levels of empathy - are given, you are born with them or you developed them in your early years. Still, all of them can be significantly improved with deliberate practice or even just self awareness. Bottom line is - as Steve Jobs famously said - &#8220;Great things in business are never done by one person, they are done by a team of people&#8221;. Investing in skills to increase effective team work is a sure bet that will pay off.&nbsp;</p><h2>Ownership and limits of your sphere of control</h2><p>This phenomenon comes up in conversations so often, I thought it deserved its own section. As already discussed above, most larger initiatives require team effort. In the life of a post-senior engineer these teams might be informal, temporary and part-time (e.g. working groups assembled to improve tech recruitment process), but they are teams nonetheless.</p><p>Staff and Principal engineers might be put in charge of such teams. As such, their area of ownership (or as some call it - <strong>accountability)</strong> expands. An ownership is an important word here - because this ownership may expand beyond the areas you are directly responsible for. A particular area might be a responsibility of someone from the working group, but you are still <strong>accountable</strong> for it.</p><p>All this is pretty much daily bread and butter for engineers who have moved up the management career ladder. Yet, it seems to come as a surprise for many following the engineering career progression.</p><p>The first step is to accept and understand the phenomenon of ownership going beyond your direct work. The second step is to learn at least a little bit about management, and especially delegation. Yes, you are on an engineering career trajectory, but the management skills are still relevant, just to a lesser extent than on the management path. In this subject, you cannot go wrong with <a href="https://www.goodreads.com/book/show/324750.High_Output_Management">High Output Management</a> - the seminal work about management, by legendary Intel CEO - Andy Grove.&nbsp;</p><h2>Business understanding&nbsp;</h2><p>I&#8217;ve used the phrase &#8220;business understanding&#8221; to emphasize that it goes way beyond &#8220;business domain&#8221;. The phrase encompasses areas like:</p><ul><li><p>Business domain&nbsp;</p></li><li><p>Organization priorities&nbsp;</p></li><li><p>The key stakeholders and influencers, together with their priorities. These may range from slightly different from the organization&#8217;s priorities to completely misaligned (sorry to break it to you, but the latter might happen more than anyone involved would like to admit!)</p></li></ul><p>Creating business software is inextricably tied to achieving some business results. These results might range from increasing revenue, decreasing costs, increasing customer satisfaction, lowering the business risks and so on. The key is that there are some concrete business goals. Real world organizations are rarely as laser-focused as depicted in business books. Often the reality is that there&#8217;s more than one business priority that needs fulfilling. Five or more is not uncommon and the key stakeholders might not clearly articulate which are more important than others. It may sound sub-optimal, but its a situation you&#8217;ll need to deal with.</p><p>Understanding the goals and priorities of the software you are working on is paramount. In general, software architecture should be built around business needs and characteristics. It is difficult to build software or design organisational processes that support technology well without at least some understanding of it.</p><p>Likewise, understanding who is pulling the strings, what kind of influence particular stakeholders (individuals or organizations) have on the project, is also important. Being effective in any organization means generating buy-in from the right people or parties and it is very difficult to move the needle without understanding these matters.</p><p>This may sound like borderline being involved with organization politics, and that&#8217;s generally correct. However I do not suggest immersing yourself entirely in politics. People who do that to a large extent and (!) enjoy it, usually come with a package of additional questionable traits. What I do advise is to be aware of its existence and not ignoring it.</p><h2>Network</h2><p>Last but not least there is an interesting subject of building your work relationship and network.</p><p>First of all, as mentioned earlier, the post-senior promotion process is usually more involved than at the earlier levels. It may require acceptance from your manager or even an entire committee (usually your manager&#8217;s peers or more senior engineers - e.g. Staff or Principals). Sometimes, there is a strict budget or other limit for promotions in higher-level positions. As such a good rule of thumb is to build a good relationship, not only with your manager, but also their peers, their manager and most senior engineers in the organization. Generally, the higher up the chain the better. Usually, your reach has vertical limits and stretching it starts to seem dishonest (the work of the director 3 levels above your manager might be too detached from your area of work anyway). The rule of thumb above is a good tradeoff. If you want to improve your luck, try to ensure you have some exposure to these people. Sure, you might try to create a casual encounter in the kitchen and strike up a conversation about common interests &#8212;perhaps discovering that you both enjoy playing squash, pickleball, or whatever the next trendy activity might be. Some might see this as perfectly fine, while others could view it as bordering on "sucking up" - depending on the character and cultural environment. Also, social endeavors like this may just not be <em>your thing</em>. That&#8217;s actually fine as a far better and more reliable option is just to get involved in the practical, work initiatives with exposure to the right people. Perhaps there is an initiative looking for volunteers that you could apply for? This may be participating in an organization-wide initiative of unifying APIs, improving tech recruitment processes or helping to update engineering progression guidelines. Opportunities abound, if you look for them. Nothing helps people remember you (build your &#8220;internal brand&#8221;) better than showing professionally done work.</p><p>The second thing is building a network outside the organization. This comes from a simple fact of life: as you grow in your seniority, the number of people who could coach or mentor you quickly decreases. This could be intuitively visualized by juxtaposing junior engineer and CTO. Junior engineer, a role which is pretty much entry level, still has a lot to learn in their career and, more importantly, has many more senior engineers around them. At least, hopefully that&#8217;s the case. If they don&#8217;t then that&#8217;s a problem on its own. These senior engineers are not only capable, but also incentivized (again, hopefully!) to mentor more junior engineers.&nbsp;</p><p>Now, let&#8217;s take the other extreme: CTO. As the most senior person in the engineering organization, they might not have anyone nearby with experience in the scope of their role, or generally, a more senior engineering leader. Moreover, engineers typically work with other peer engineers (on the same level, or more or less senior) and a CTO&#8217;s typical group of peers is composed of a CFO, COO or CMO. At best, they might have a peer CIO (Chief Information Officer) or one of the more modern roles like CDO (Chief Data Officer), though such settings are rare. I&#8217;m not saying that a CTO cannot learn from someone in their engineering organization (either direct or indirect reports). Sure, the organization probably has people more skilled and experienced in specific areas, but there is likely no one who wore the boots of CTO before.&nbsp;&nbsp;</p><p>So, comparing a junior engineer (the most junior technical position) with a CTO (the most senior technical position) gives us an extreme example. The roles in between fall on a spectrum spanning these extremes. Staff engineers work less frequently and less directly with more experienced engineers than junior engineers.&nbsp;</p><p>Ultimately, the solution is to mix internal mentors and coaches with external ones. This might be a group of peers that you know from previous companies. Or it might be a network group that you built yourself over your career. An external group has a lot of benefits such as being emotionally detached, having an unbiased perspective and a different set of experiences.&nbsp;</p><p>If you don&#8217;t have such group, there are some paid options:</p><ul><li><p>Luca Rossi organizes a lightweight version via his <a href="https://refactoring.fm/p/community">Refactoring Community</a> (a companion to his <a href="https://refactoring.fm/">Refactoring newsletter</a>).&nbsp;</p></li><li><p><a href="https://ctocraft.com/">CTO Craft</a> organizes lightweight (Slack based) access to other industry tech leaders, as well as more structured (and priced higher) monthly round tables with a smaller, more intimate group. I&#8217;ve been part of it for 2 years, and I highly recommend it if you can afford it.</p></li><li><p>I&#8217;ve heard some good opinions about <a href="https://www.platohq.com/">Plato Community</a> - including it&#8217;s 1-1 - but never have tried it myself.</p></li></ul><p>Structured/facilitated options are in my opinion better for discussing concrete challenges. The problem is the price, which might easily go north of $1,000 a year, though some companies might reimburse the fee for more senior employees.&nbsp;</p><p>There are likely many other options available, including ones local to where you live (face-to-face beats Zoom calls when it comes to support groups).&nbsp;</p><h1><strong>Wrap up</strong></h1><p>We have covered a lot of ground in this article, depicting the characteristics of the engineering roles beyond senior level, potential career paths and the skills needed.</p><p>One additional thing that&#8217;s worth noting: choosing a path (e.g. Management) that eventually turns out not to be in line with your vocation, is not usually a grave mistake. Most organizations allow lateral movement between Engineering and Management paths (often with none or minimal negative effect on salary - depending on the depth of their engineering career track).&nbsp; </p><p>My personal experience is that such a temporary foray into management might be beneficial for a post-senior engineering career. <a href="https://x.com/mipsytipsy">Charity Majors</a> even wrote a whole article about the idea of switching back and forth between engineering and management - <a href="https://charity.wtf/2017/05/11/the-engineer-manager-pendulum/">The Engineer/Manager Pendulum</a>. There is nothing better than direct experience <em>on the other side</em> to cure some of the detachment that happens between Engineering &amp; Management in some organization. The grass is always greener on the other side.&nbsp;&nbsp;</p><p>As a closing note I am linking some great book resources that might help you in post-senior engineering roles:</p><ul><li><p><a href="https://www.goodreads.com/book/show/28448362-writing-without-bullshit">Writing Without Bullshit</a> by Josh Bernoff - hands down best book about effective business writing.</p></li><li><p><a href="https://www.goodreads.com/book/show/56481725-staff-engineer">Staff Engineer: Leadership Beyond The Management Track</a> by Will Larson - great book focusing on first beyond-senior role - Staff Engineer</p></li><li><p><a href="https://www.goodreads.com/book/show/201545491-the-software-engineer-s-guidebook">The Software Engineer&#8217;s Guidebook</a> by Gergely Orosz - covers the role and skills for senior engineers, the foray into team leadership and into post-senior roles</p></li><li><p><a href="https://www.goodreads.com/book/show/33369254-the-manager-s-path">The Manager&#8217;s Path</a> by Camille Fournier - isn&#8217;t related exactly to the career of post-senior engineer as it covers Engineering Management path - from Team Lead to CTO. However it might give you a good overview of how life on the management path looks like.</p></li><li><p><a href="https://www.goodreads.com/book/show/324750.High_Output_Management">High-Output Management</a> by Andy Grove - absolute classic when it comes to management books. As mentioned earlier, some management skills are needed anyway on the engineering path and this book provides the basics, bundled with an interesting story.</p></li></ul><p>As always, don&#8217;t hesitate to reach out to me if you are interested in any of the areas outlined in the article. You can find my contact details <a href="https://www.pdole.ga/about">here</a>.</p><p>Till next time &#128074;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.pdole.ga/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Last but not least, hit subscribe if you liked the article.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Building engineering progression - Part II: Core]]></title><description><![CDATA[Examples, tips & pitfalls while building an effective engineering progression framework for your organization.]]></description><link>https://www.pdole.ga/p/building-engineering-progression-7ca</link><guid isPermaLink="false">https://www.pdole.ga/p/building-engineering-progression-7ca</guid><dc:creator><![CDATA[Pawel Dolega 👊🏾]]></dc:creator><pubDate>Wed, 17 Jul 2024 05:14:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5116c420-ae18-4b95-ac37-51241c1e9c4e_2235x1341.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6yNo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5116c420-ae18-4b95-ac37-51241c1e9c4e_2235x1341.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6yNo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5116c420-ae18-4b95-ac37-51241c1e9c4e_2235x1341.jpeg 424w, https://substackcdn.com/image/fetch/$s_!6yNo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5116c420-ae18-4b95-ac37-51241c1e9c4e_2235x1341.jpeg 848w, https://substackcdn.com/image/fetch/$s_!6yNo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5116c420-ae18-4b95-ac37-51241c1e9c4e_2235x1341.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!6yNo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5116c420-ae18-4b95-ac37-51241c1e9c4e_2235x1341.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6yNo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5116c420-ae18-4b95-ac37-51241c1e9c4e_2235x1341.jpeg" width="1456" height="874" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5116c420-ae18-4b95-ac37-51241c1e9c4e_2235x1341.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:874,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:518694,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6yNo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5116c420-ae18-4b95-ac37-51241c1e9c4e_2235x1341.jpeg 424w, https://substackcdn.com/image/fetch/$s_!6yNo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5116c420-ae18-4b95-ac37-51241c1e9c4e_2235x1341.jpeg 848w, https://substackcdn.com/image/fetch/$s_!6yNo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5116c420-ae18-4b95-ac37-51241c1e9c4e_2235x1341.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!6yNo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5116c420-ae18-4b95-ac37-51241c1e9c4e_2235x1341.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is the second of three parts of articles describing the journey we made at <a href="https://virtuslab.com/?utm_source=substack&amp;utm_medium=article&amp;utm_campaign=pd">VirtusLab</a> while creating an updated version of the engineering framework. </p><p>This time, there are two major sections here:</p><ol><li><p>Analysis of most common structures of engineering progression framework in real-world organizations (starting from section <a href="https://www.pdole.ga/i/146207473/choose-a-structure-for-your-progression">Choose a structure for your progression</a>)</p></li><li><p>Tips &amp; Pitfalls to have in mind while building framework (starting from section <a href="https://www.pdole.ga/i/146207473/things-to-consider-when-detailing-your-engineering-progression">Things to consider when detailing your engineering progression</a>) </p></li></ol><p></p><p><a href="https://www.pdole.ga/p/building-engineering-progression">In the first installment</a>, I covered the case for building engineering progression and the groundwork. In this article, we switch to the nitty-gritty details of creating an engineering progression and its release.</p><p>Wait. You skipped the first article? Here&#8217;s a quick reminder of what I mean when referring to an engineering progression framework:</p><p>An engineering progression is a career ladder for engineering roles within a given organization. From a high-level perspective, it is <strong>a roadmap for an engineering career</strong> designed to help <strong>both engineers and their managers</strong> navigate their career paths over the years. From a low-level perspective, it covers a set of <strong>required skills and expectations</strong> to be met at a given level of seniority. In addition, it more or less directly indicates the engineer's salary<em>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.pdole.ga/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading so far! Subscribe for free to receive new posts like this one.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h1>Choose a structure for your progression</h1><p>Let's begin by picking a basic form for your engineering progression. But where to start? How about taking a look a <a href="https://progression.fyi">progression.fyi</a>, where you'll see many different progressions, each drawn from a real organization. If you are building an engineering progression for your organization, I strongly recommend you browse through the examples on that webpage.</p><p>Engineering progressions typically fall into a small handful of distinct forms. Different organizations, of course, emphasize different aspects of how engineers work or how their culture works (which I covered in the first part of this article series, in the section <a href="https://www.pdole.ga/i/144163350/things-to-be-clear-on-before-building-your-engineering-progression">Things to be clear on before building your engineering progression</a>). What's less obvious is that the most appropriate structure for you will be a function of several parameters related to your organization. Most likely, the key parameters will be:</p><ul><li><p>The size of your engineering organization&nbsp;</p></li><li><p>Role diversity of your engineering organization (number of various roles e.g. application engineer, data engineering, technical project manager, etc).</p></li></ul><p>What does this look like in practice? Let&#8217;s look at a few typical approaches.</p><h2>A simple approach</h2><p>In a small, relatively homogeneous engineering organization with mostly one type of role, perhaps the simplest approach is the one <a href="https://github.com/basecamp/handbook/blob/25bb3e5ad190744649841cf21d864d41f7593ddf/titles-for-programmers.md">Basecamp / 37signals</a> used in 2017.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_R_J!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042e24c2-d214-467e-843c-d75105a064ec_1600x771.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_R_J!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042e24c2-d214-467e-843c-d75105a064ec_1600x771.png 424w, https://substackcdn.com/image/fetch/$s_!_R_J!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042e24c2-d214-467e-843c-d75105a064ec_1600x771.png 848w, https://substackcdn.com/image/fetch/$s_!_R_J!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042e24c2-d214-467e-843c-d75105a064ec_1600x771.png 1272w, https://substackcdn.com/image/fetch/$s_!_R_J!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042e24c2-d214-467e-843c-d75105a064ec_1600x771.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_R_J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042e24c2-d214-467e-843c-d75105a064ec_1600x771.png" width="1456" height="702" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/042e24c2-d214-467e-843c-d75105a064ec_1600x771.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:702,&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_!_R_J!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042e24c2-d214-467e-843c-d75105a064ec_1600x771.png 424w, https://substackcdn.com/image/fetch/$s_!_R_J!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042e24c2-d214-467e-843c-d75105a064ec_1600x771.png 848w, https://substackcdn.com/image/fetch/$s_!_R_J!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042e24c2-d214-467e-843c-d75105a064ec_1600x771.png 1272w, https://substackcdn.com/image/fetch/$s_!_R_J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F042e24c2-d214-467e-843c-d75105a064ec_1600x771.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Exhibit A: Fragment of Basecamp / 37signals engineering progression </figcaption></figure></div><p>It focuses on just one type of role - programmer. Each seniority-level description consists of just a few bullet points. When the junior role is dissected, it contains these basic elements:</p><ul><li><p><strong>Scope of work</strong>: &#8220;<em>Works primarily on tightly scoped, routine problems.&#8221;</em></p></li><li><p><strong>Skills/capabilities:</strong> &#8220;<em>Basic language features are mastered, but some advanced structures may still be unfamiliar.&#8221;</em></p></li><li><p><strong>Length of experience:</strong> &#8220;<em>Usually less than 2 years of experience being a professional programmer in the specific domain.</em>&#8221;&nbsp;</p></li></ul><p>I've noticed that adding explicit years of experience is controversial for some people. Personally, I think it is a good idea, and will cover the pros and cons in the <a href="https://www.pdole.ga/i/146207473/years-of-experience-vs-speed-of-climb">Years of experience vs. speed of climb</a> section later in this article.</p><p>All in all, this structure is simple, and that is its greatest strength. In fact, I'd go so far as to say that, in my experience, this is the way to go for most companies that are:</p><ul><li><p>Relatively small (say up to even 50 people); especially if they have mostly similar roles</p></li><li><p>Building their first engineering progression framework (because it is likely to provide the best bang for the buck).</p></li></ul><p>It is also simple from the perspective of particular ladder <em>levels</em>. It is a straight path, with fairly obvious stages, without any branches.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GUFl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14b24be4-1bf8-4a8d-b8ce-b0d0c35af9ec_960x1248.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GUFl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14b24be4-1bf8-4a8d-b8ce-b0d0c35af9ec_960x1248.png 424w, https://substackcdn.com/image/fetch/$s_!GUFl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14b24be4-1bf8-4a8d-b8ce-b0d0c35af9ec_960x1248.png 848w, https://substackcdn.com/image/fetch/$s_!GUFl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14b24be4-1bf8-4a8d-b8ce-b0d0c35af9ec_960x1248.png 1272w, https://substackcdn.com/image/fetch/$s_!GUFl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14b24be4-1bf8-4a8d-b8ce-b0d0c35af9ec_960x1248.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GUFl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14b24be4-1bf8-4a8d-b8ce-b0d0c35af9ec_960x1248.png" width="410" height="533" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/14b24be4-1bf8-4a8d-b8ce-b0d0c35af9ec_960x1248.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1248,&quot;width&quot;:960,&quot;resizeWidth&quot;:410,&quot;bytes&quot;:41762,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GUFl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14b24be4-1bf8-4a8d-b8ce-b0d0c35af9ec_960x1248.png 424w, https://substackcdn.com/image/fetch/$s_!GUFl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14b24be4-1bf8-4a8d-b8ce-b0d0c35af9ec_960x1248.png 848w, https://substackcdn.com/image/fetch/$s_!GUFl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14b24be4-1bf8-4a8d-b8ce-b0d0c35af9ec_960x1248.png 1272w, https://substackcdn.com/image/fetch/$s_!GUFl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14b24be4-1bf8-4a8d-b8ce-b0d0c35af9ec_960x1248.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Exhibit B: Straightforward path of progression from original Basecamp / 37signals progression</figcaption></figure></div><p>It is no coincidence that I used this approach when I was building an engineering progression framework, circa 2012. This was for <a href="https://web.archive.org/web/20130603092308/http://nexelem.com/en/">a small consulting firm that I co-founded</a>. We had about 10-15 engineers back then, and we needed something simple. <a href="https://github.com/VirtusLab/company-handbook/blob/3bdbaa1b064a1255a57d4656e0ac0ca969f6d542/engineering-progression.md">We also used</a> something very similar at <a href="https://virtuslab.com/?utm_source=substack&amp;utm_medium=article&amp;utm_campaign=pd">VirtusLab</a> between 2015-2020. In retrospect, I see the framework we built had a ton of problems, but we&#8217;ll get to that in a moment.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wizg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d8c723c-485f-496f-8041-aa97600c0931_945x442.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wizg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d8c723c-485f-496f-8041-aa97600c0931_945x442.png 424w, https://substackcdn.com/image/fetch/$s_!Wizg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d8c723c-485f-496f-8041-aa97600c0931_945x442.png 848w, https://substackcdn.com/image/fetch/$s_!Wizg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d8c723c-485f-496f-8041-aa97600c0931_945x442.png 1272w, https://substackcdn.com/image/fetch/$s_!Wizg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d8c723c-485f-496f-8041-aa97600c0931_945x442.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wizg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d8c723c-485f-496f-8041-aa97600c0931_945x442.png" width="945" height="442" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6d8c723c-485f-496f-8041-aa97600c0931_945x442.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:442,&quot;width&quot;:945,&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_!Wizg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d8c723c-485f-496f-8041-aa97600c0931_945x442.png 424w, https://substackcdn.com/image/fetch/$s_!Wizg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d8c723c-485f-496f-8041-aa97600c0931_945x442.png 848w, https://substackcdn.com/image/fetch/$s_!Wizg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d8c723c-485f-496f-8041-aa97600c0931_945x442.png 1272w, https://substackcdn.com/image/fetch/$s_!Wizg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d8c723c-485f-496f-8041-aa97600c0931_945x442.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Exhibit C: Senior role from simple engineering progression framework from VirtusLab 2015-2020</figcaption></figure></div><p>There are also other notable, well-structured examples of this approach - for instance, Monzo&#8217;s <a href="https://monzo.com/documents/engineering-progression-framework-v3-0.pdf">Engineering Progression Framework v3</a>. This one has more <em>levels</em> - and now they aren&#8217;t universally as obvious as the previous example. This requires some additional Monzo context-specific information - which they do provide with the basic split into Impact, Technical Skills, and Behaviors categories.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!F4bi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb38319a3-4540-4abc-9e0f-06045bdff930_960x1920.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F4bi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb38319a3-4540-4abc-9e0f-06045bdff930_960x1920.png 424w, https://substackcdn.com/image/fetch/$s_!F4bi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb38319a3-4540-4abc-9e0f-06045bdff930_960x1920.png 848w, https://substackcdn.com/image/fetch/$s_!F4bi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb38319a3-4540-4abc-9e0f-06045bdff930_960x1920.png 1272w, https://substackcdn.com/image/fetch/$s_!F4bi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb38319a3-4540-4abc-9e0f-06045bdff930_960x1920.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!F4bi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb38319a3-4540-4abc-9e0f-06045bdff930_960x1920.png" width="434" height="868" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b38319a3-4540-4abc-9e0f-06045bdff930_960x1920.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1920,&quot;width&quot;:960,&quot;resizeWidth&quot;:434,&quot;bytes&quot;:81394,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!F4bi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb38319a3-4540-4abc-9e0f-06045bdff930_960x1920.png 424w, https://substackcdn.com/image/fetch/$s_!F4bi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb38319a3-4540-4abc-9e0f-06045bdff930_960x1920.png 848w, https://substackcdn.com/image/fetch/$s_!F4bi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb38319a3-4540-4abc-9e0f-06045bdff930_960x1920.png 1272w, https://substackcdn.com/image/fetch/$s_!F4bi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb38319a3-4540-4abc-9e0f-06045bdff930_960x1920.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Exhibit D: Engineering ladder from Monzo engineering progression framework</figcaption></figure></div><p>It is clearly more complicated than the simpler approaches used above, but it seems very well justified - at the time of this writing, Monzo had likely more than 200-300 engineers on board. This leads to a full-blown competency-based approach, which will be discussed next.&nbsp;</p><h2>Competency-based approach</h2><p>The competency-based approach is effective, although more complex. As long as you capture the characteristics and culture of your engineering organization accurately, it can work quite well.&nbsp;</p><p>As an organization grows, the limitations of the simple approach become apparent.&nbsp;</p><p>As an organization grows, it becomes more fragmented and siloed (unless leadership consciously and relentlessly counters this drift). This is a phenomenon that may be all too familiar to anyone working in a growing organization.&nbsp;</p><p>At <a href="https://virtuslab.com/?utm_source=substack&amp;utm_medium=article&amp;utm_campaign=pd">VirtusLab</a>, noticing the lack of consistency in how engineers were being evaluated, we created a quick experiment.</p><ol><li><p>I wrote a list of artificial engineer profiles. The role descriptions consisted of general characteristics, strong/weak points, some indication of recent accomplishments, and a general indication of previous work experience.&nbsp;</p></li><li><p>I showed this list to 10 managers and team leaders and asked them to match these synthetic profiles to the seniority levels seen in our existing engineering progression framework.</p></li><li><p>The results left much to be desired. We had good alignment for some profiles. We also found that for others - about half of them - we had discrepancies for the same profile ranging from Junior+ (advanced Junior) to Staff- (early Staff). The experiment&#8217;s results made us realize it was time to raise our game and modernize the engineering progression framework.</p></li></ol><p>At this point, we were clear we needed to bring in <strong>more fairness and consistency, and help managers and engineers with career guidance</strong>.</p><p>What we'd experienced is what often happens in organizations as they grow, briefly:</p><ol><li><p>More managers/leaders appear in the organization. Direct lines of communication become less effective and the need for more concrete guidelines arises.&nbsp;</p></li><li><p>The organization becomes more diverse in terms of its engineering roles.&nbsp;</p></li></ol><p>These are challenges that the simple engineering progression can be adapted to meet:</p><ol><li><p>Split the general expectations into separate, more quantifiable characteristics or competencies.</p></li><li><p>Add multiple parallel engineering progression ladders.</p></li></ol><p>This typically leads us to what I&#8217;d call a <strong>competency matrix</strong> (sometimes called a <em>rubric</em>). My favorite example is the <a href="https://docs.google.com/spreadsheets/d/131XZCEb8LoXqy79WWrhCX4sBnGhCM1nAIz4feFZJsEo/edit#gid=0">CircleCI progression</a>. It is very well thought through.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4Gyt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54b221c1-d121-43fb-9815-838a8c7084d3_1600x798.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4Gyt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54b221c1-d121-43fb-9815-838a8c7084d3_1600x798.png 424w, https://substackcdn.com/image/fetch/$s_!4Gyt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54b221c1-d121-43fb-9815-838a8c7084d3_1600x798.png 848w, https://substackcdn.com/image/fetch/$s_!4Gyt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54b221c1-d121-43fb-9815-838a8c7084d3_1600x798.png 1272w, https://substackcdn.com/image/fetch/$s_!4Gyt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54b221c1-d121-43fb-9815-838a8c7084d3_1600x798.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4Gyt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54b221c1-d121-43fb-9815-838a8c7084d3_1600x798.png" width="1456" height="726" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/54b221c1-d121-43fb-9815-838a8c7084d3_1600x798.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:726,&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_!4Gyt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54b221c1-d121-43fb-9815-838a8c7084d3_1600x798.png 424w, https://substackcdn.com/image/fetch/$s_!4Gyt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54b221c1-d121-43fb-9815-838a8c7084d3_1600x798.png 848w, https://substackcdn.com/image/fetch/$s_!4Gyt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54b221c1-d121-43fb-9815-838a8c7084d3_1600x798.png 1272w, https://substackcdn.com/image/fetch/$s_!4Gyt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54b221c1-d121-43fb-9815-838a8c7084d3_1600x798.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Exhibit E: Competency matrix from CircleCI</figcaption></figure></div><p>The basic elements in this progression are:</p><ul><li><p><strong>Seniority levels</strong> (e.g. &#8220;<em>E3 Senior Engineer&#8221;)</em></p></li><li><p><strong>Scope of work</strong> (called &#8220;<em>scaling of competencies&#8221; in the CircleCI progression</em>)</p></li><li><p><strong>Competencies</strong> (e.g. &#8220;D<em>ebugging&#8221;</em>).</p></li></ul><p>In this progression, the competencies and seniority levels work together intuitively. The scope of work scales from an individual task (for a junior or associate engineer), to teamwork (for senior engineers), to the entire organization (for principal engineers).</p><p>The competencies are also grouped into categories. For CircleCI these are:&nbsp;</p><ul><li><p>Technical skills</p></li><li><p>Delivery</p></li><li><p>Feedback/communication/collaboration</p></li><li><p>Leadership</p></li><li><p>Strategic impact.</p></li></ul><p>Five in total. While these categories are specific to CircleCI, when you look at a number of organizations, patterns emerge. For example, in our second approach to engineering progress at <a href="https://virtuslab.com/?utm_source=substack&amp;utm_medium=article&amp;utm_campaign=pd">VirtusLab</a>, we developed three categories: Engineering, Delivery, and Teamwork. Another example is <a href="https://dropbox.github.io/dbx-career-framework/ic1_software_engineer.html">Dropbox</a>, which uses: &#127942; Results (a variation of Delivery), &#127775; Direction, &#127752; Culture, &#127795; Talent (all closely related to Teamwork), and &#129417; Craft (a variation of Technical Skills).</p><p>The most surprising finding for some, however, is that<strong> hard technical skills typically represent only a small fraction of the total expected competencies</strong>. This is interesting in the context of recurring online debate about whether soft or hard skills are more important for software engineers. Here&#8217;s my take, based on my experience with hundreds of engineers I&#8217;ve managed over the course of my career:</p><ul><li><p>Hard skills are required and are key conditions for promotion in the first part of the engineering career.&nbsp;</p></li><li><p>Soft skills start to play an enabling role in the later stages, from senior engineer onward. They won't guarantee advancement on their own, but a lack of them will severely limit further development.</p></li></ul><p>Don't get me wrong. Not paying attention to soft skills (collaboration, communication, etc.) will be detrimental to an engineering career at any level. However, you want to pay a significant amount of attention to this for the more senior engineers. On the one hand, your seniors, staff, and principal engineers set the tone for the entire organization (by orders of magnitude more than juniors). On the other hand, most senior positions require strong leadership skills (which in turn require good soft skills), even if they appear to be individual contributor roles.&nbsp;</p><p>I covered this in the <a href="https://www.pdole.ga/i/144163350/leadership-management-vs-engineering"><s>Leadership </s>Management vs Engineering</a> section of the first article in the series. It is almost impossible to perform well in Staff and above engineering roles without well-developed soft skills.&nbsp;</p><p>Returning to the explicit split of competencies in the progression framework - even Basecamp (now 37signals) <a href="https://github.com/basecamp/handbook/blob/63eeb0da3da36891051e1251934b4e1bbc216fa1/titles-for-programmers.md">has begun to use separate competencies</a> in their engineering progression circa 2018.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5fWI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22657b1-2fa5-4c73-9b64-6f3fac4e89ff_1600x945.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5fWI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22657b1-2fa5-4c73-9b64-6f3fac4e89ff_1600x945.png 424w, https://substackcdn.com/image/fetch/$s_!5fWI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22657b1-2fa5-4c73-9b64-6f3fac4e89ff_1600x945.png 848w, https://substackcdn.com/image/fetch/$s_!5fWI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22657b1-2fa5-4c73-9b64-6f3fac4e89ff_1600x945.png 1272w, https://substackcdn.com/image/fetch/$s_!5fWI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22657b1-2fa5-4c73-9b64-6f3fac4e89ff_1600x945.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5fWI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22657b1-2fa5-4c73-9b64-6f3fac4e89ff_1600x945.png" width="1456" height="860" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d22657b1-2fa5-4c73-9b64-6f3fac4e89ff_1600x945.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:860,&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_!5fWI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22657b1-2fa5-4c73-9b64-6f3fac4e89ff_1600x945.png 424w, https://substackcdn.com/image/fetch/$s_!5fWI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22657b1-2fa5-4c73-9b64-6f3fac4e89ff_1600x945.png 848w, https://substackcdn.com/image/fetch/$s_!5fWI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22657b1-2fa5-4c73-9b64-6f3fac4e89ff_1600x945.png 1272w, https://substackcdn.com/image/fetch/$s_!5fWI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22657b1-2fa5-4c73-9b64-6f3fac4e89ff_1600x945.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Exhibit F: Explicit split of competencies in Basecamp / 37signals engineering progression</figcaption></figure></div><p>While it is definitely not the case that EVERY organization will eventually move in this direction, it is pretty typical for many growing organizations. I'd say when you have +100 engineers in your organization (and thus likely between 10 and 20 teams), the need for such a change will be apparent.&nbsp;</p><p>In addition, most growing organizations dealing with complex technology products quickly build more diverse roles. While they may initially have front-end and back-end engineers, they will eventually introduce designers, cloud engineers, data analysts, or ops. Whereas you can probably handle a fair share of traditional engineering (e.g. backend/frontend) with a single engineering path, it might not be feasible anymore to do that for all types of engineering roles (e.g. designers, ops).&nbsp;</p><p>Sure, you can create a very general progression, but I would argue that its usefulness quickly diminishes if it becomes too general. Since one of the purposes of an engineering progression is to establish consistency across the organization, it must, by definition, be tangible enough to be understood similarly by engineers and managers throughout the organization.</p><p>One thing to keep in mind is the increased effort required when moving from a simple progression to a more complex one, complete with explicit competencies and different career paths. The division into different specializations (career ladders) effectively multiplies the work you need to do to create and optimize the progression. In addition, explicit competencies require a deep understanding of the specifics of your organization and its evolutionary path.</p><p>While a simple engineering progression could be written almost overnight by a founder (well, the first draft, at least), a more complex version with a competency matrix and multiple career ladders will most likely require a working group active for many weeks. This is not easy work. There are several reasons why:</p><ul><li><p>You need to break the work down into discrete, concrete competencies/characteristics.</p></li><li><p>You need to provide concrete descriptions of the competencies at different ladder levels.</p></li><li><p>You need to cover multiple roles, some of which may be less familiar to you (most engineering leaders have experience with some parts of the engineering work; but how many have the work experience with all the roles in the organization?)</p></li><li><p>By the time you are ready to build a complex engineering progression, your engineering organization will likely have many practice areas with their respective leaders or role models. It will be critical during the rollout phase to have their buy-in. Getting them (or someone from their sphere of influence) involved early on will definitely help.</p></li></ul><p>Make sure you plan accordingly!</p><h2>Optionality and trajectories</h2><p>One of the problems that typically arises with competency matrices is that they assume that everyone within a given career ladder is the same. That is, there are specific requirements for each competency for an individual to be at that level. And it's worth noting that <a href="https://docs.google.com/spreadsheets/d/131XZCEb8LoXqy79WWrhCX4sBnGhCM1nAIz4feFZJsEo/edit#gid=0">CircleCI</a> relies on no less than 28 different competencies to define whether an individual is at a given level.</p><p>I have found this approach too prescriptive for larger, more diverse organizations. It's even unrealistic for smaller organizations, but not as obviously as in a larger organization. You are bound to end up with many engineers who not only meet certain requirements, but far exceed them while falling short in others.</p><p>A more liberating example is the progression used by Medium. They have done a great job of describing how it works in this <a href="https://medium.com/s/engineering-growth-framework/engineering-growth-framework-overview-4e02ab330524">series of articles</a>. Basically, they have four different areas (Build, Execute, Support, Strengthen), each of which contains multiple competencies. You can see them <a href="https://docs.google.com/spreadsheets/d/1EO-Dbsayn8Nz9Ii3MKcwRbt-EIJ2MjQdpoyhh0tBdZk/edit#gid=1098466721">here</a>. Achieving milestones in these competencies gives you a specific number of points, and there is a specific threshold of points you must achieve to be promoted. How the engineer earns these points (which track they choose) is entirely up to them!&nbsp;</p><p>This is an extreme example of codified choice, but it is far from unique. Another example is used by a company very close to me - and now part of <a href="https://virtuslab.com/?utm_source=substack&amp;utm_medium=article&amp;utm_campaign=pd">VirtusLab</a> - <a href="https://softwaremill.com/">SoftwareMill</a>. You can read more about their "badge-based engineering progression" <a href="https://softwaremill.com/softwaremills-badge-based-open-salary-system-explained/">here</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!guyZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c494eba-d7a6-4271-adfa-83647578c1bf_871x513.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!guyZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c494eba-d7a6-4271-adfa-83647578c1bf_871x513.png 424w, https://substackcdn.com/image/fetch/$s_!guyZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c494eba-d7a6-4271-adfa-83647578c1bf_871x513.png 848w, https://substackcdn.com/image/fetch/$s_!guyZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c494eba-d7a6-4271-adfa-83647578c1bf_871x513.png 1272w, https://substackcdn.com/image/fetch/$s_!guyZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c494eba-d7a6-4271-adfa-83647578c1bf_871x513.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!guyZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c494eba-d7a6-4271-adfa-83647578c1bf_871x513.png" width="871" height="513" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6c494eba-d7a6-4271-adfa-83647578c1bf_871x513.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:513,&quot;width&quot;:871,&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_!guyZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c494eba-d7a6-4271-adfa-83647578c1bf_871x513.png 424w, https://substackcdn.com/image/fetch/$s_!guyZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c494eba-d7a6-4271-adfa-83647578c1bf_871x513.png 848w, https://substackcdn.com/image/fetch/$s_!guyZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c494eba-d7a6-4271-adfa-83647578c1bf_871x513.png 1272w, https://substackcdn.com/image/fetch/$s_!guyZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c494eba-d7a6-4271-adfa-83647578c1bf_871x513.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Exhibit G: Badges and promotion requirements from SoftwareMill progression framework</figcaption></figure></div><p>Above, you can see an extract from SoftwareMill&#8217;s engineering progression. Here&#8217;s a note on how to decode it:</p><ul><li><p><strong>J1, J2, M1, S1, E1</strong> - these are engineering levels (Junior, Mid, Senior, Expert)</p></li><li><p><strong>7B, 9S, 2G</strong> - these represent specific badges. They fall into three types: Bronze (B), Silver (S), and Gold (G), each being more difficult to earn than the previous one.</p></li></ul><p>Badges are related to achievements in specific competencies. For instance, knowledge sharing, architecture, production maintenance, etc.</p><p>Competencies are segregated into three groups: Technical (hard skills), People and Development (soft skills), and Organizational.</p><p>As you can see, the progression framework allows for considerable flexibility, but it also imposes some constraints. For example, to advance from S1 to S2, you must earn 9 silver badges, 5 of which must be in the technical category.&nbsp;</p><p><strong>In my opinion, some flexibility in the progression framework is desirable. This is especially true at higher levels. Staff+ is where most people's careers start to diverge according to their different strengths.</strong> But be aware of the trade-off - this is another level of complexity you bring to the table.</p><p>I think you want to allow some flexibility, but at some point, you have to split into separate career paths. In the case of Flatiron, <a href="https://youtu.be/7K05XkkpevM?t=269">Cat Miller says</a> they eventually decided to split engineering after the E5-E6 level into two paths: the Principal Track and the Architect Track. I think this is a reasonable compromise.&nbsp;&nbsp;</p><p>All right, we have covered the most typical structures used for engineering progression frameworks. Now let's discuss the key aspects to consider, tips from experience, and typical gotchas.</p><h1>Things to consider when detailing your engineering progression</h1><p>Now, let's move away from the high-level structure and zoom in on the details and key considerations to keep in mind when building the framework.</p><h2>Picking competencies to add to your matrix</h2><p>Whatever type of engineering framework you're working on, you need to think about competencies and attitudes - whether you show them implicitly (as with a simple approach) or explicitly (a competency matrix). Either way, you need to be clear about what set of skills and attitudes is required for a given role and level.&nbsp;</p><p>For any non-trivial job like software engineering, we quickly conclude that there are many skills and attitudes to consider. I'd say it's worth spending some time identifying the most important ones. In my experience, <strong>it is difficult to narrow it down significantly below 10. On the other hand, more than 20 can be overwhelming.</strong> The CircleCI example used earlier contains 27 different competencies. In my opinion &#8211; even though it may work great for CircleCI &#8211; it might be too many.</p><p>Keep in mind that distilling them into the engineering progression framework is just step one - the easy part! Then you need to get all engineers and managers to understand them well and use them regularly for performance reviews and 1:1s. Depending on the nature of your organization, you&#8217;ll spend different amounts of time on these activities, but keep in mind that if it&#8217;s too complex or time-consuming, it&#8217;s likely that only a few people will do it well, and everyone else will just treat it as another company bullshit they need to get through.&nbsp;</p><p>The obvious trick is to group them into some logical buckets. This is <a href="https://www.sciencedirect.com/science/article/pii/S0010027724000817">backed by science</a> - grouping helps you remember more. In our context, it helps managers and engineers remember the competencies relevant to the organization and their careers.&nbsp;</p><p><strong>A balanced, manageable number</strong>, 10-20, will also help you be concrete when applying it to a variety of different roles. For example, at <a href="https://virtuslab.com/?utm_source=substack&amp;utm_medium=article&amp;utm_campaign=pd">VirtusLab</a> we've found that we can use the same skill set for backend application engineers and frontend engineers, even if they specialize in different technologies, from Scala to Java to Typescript. However, we concluded that Data Engineering would require a modified skills matrix. Designers would also get a different matrix.</p><p>Avoiding low-level concepts, such as knowledge of specific tools or frameworks, is the key to achieving <strong>broad applicability while still being tangible and useful</strong>. We concluded that, even if we wanted to separate frontend from backend paths, we wouldn&#8217;t focus on tools and frameworks because they change too often from project to project. Instead, we divided technology competencies into high-level skills: writing code, maintenance/production, technology landscape expertise, architecture, and DevOps. I&#8217;m sure the exact breakdown is pretty much specific to us, but it shows the level of granularity.&nbsp;</p><p>The key here is that it doesn&#8217;t make sense to get too specific (e.g. talking about the particular programming language, framework or methodology) because it changes over time and from team to team. Also, it sounds a bit too dogmatic and counterproductive to focus your engineering culture on particular tools. On the other hand, being too general doesn&#8217;t make too much sense either - remember that the main goal is to build consistency across the organization. Being too general won&#8217;t help. <strong>Pick the competencies that are relevant to your organization</strong>. If observability or security is relevant to most engineers in your organization, it should be part of the rubric. Not every organization emphasizes these aspects for every engineering team - especially with a siloed dev vs. ops culture. For example, we chose "maintenance and production readiness," which includes security, observability, diagnostics, etc.&nbsp;</p><p>We also found that for different engineering roles (Ops, data engineering, application development), even if we create separate career ladders and competency matrices, the competency matrix really only differs in terms of the hard skills. Delivery and teamwork remain largely the same. This is not unusual, as these categories are more tied to company culture and organization and, thus are likely to be more common across disciplines. One exception is purely management roles, but that&#8217;s a different story,  probably a separate career ladder and perhaps a topic for another article.</p><p>The bottom line is:</p><ul><li><p>Do your homework: verify the competencies that are relevant to your organization (as opposed to copying them from other hot companies)</p></li><li><p>Keep the number of competencies in check (&lt; 20)</p></li><li><p>Group competencies into logical buckets that help people keep track&nbsp;</p></li><li><p>Don&#8217;t be overly specific, especially with technologies, or too general either.</p></li></ul><h2>Track record vs. present capability</h2><p>We put statements like these in our first engineering progression:</p><blockquote><p><em>Is able to plan &amp; design the architecture on a project-wide level. Can discuss requirements with customers / stakeholders. Is able to set up processes. Can drive interactions / integrations between multiple, technologically diverse components or products.</em></p><p><em>Capable of leading regular projects, with several engineers involved or is starting to be widely recognized for his/her expertise in their field of choice. Share knowledge with others (mentoring, conference talks, blog posts, workshops, meetups).</em></p></blockquote><p>There are a number of problems with such statements. First of all, it is asking for trouble to use statements like: "is capable of...". What does that even mean? We've had many situations where engineers come to managers and say they can do X, but they don't have enough opportunities to prove it.&nbsp;It bit us many times, and countless hours were spent on such conversations during 1:1s.</p><p>The harsh truth is that no matter how you design your career ladder, there will be patches in the organization (a project or group of projects) where the local situation doesn't allow engineers to manifest or hone certain skills. For example, there may be a team that is effectively keeping the lights on for one of your legacy projects that will (hopefully!) be decommissioned next year, and they have limited potential to excel in architecture skills.</p><p>The same goes for the availability of leadership opportunities, such as taking the lead on initiatives that span multiple teams or stakeholders. While these opportunities may come up from time to time, there is still the issue of timing in the context of a given performance review cycle. There will be periods of time when some people may be technically ready for something, but they just haven't had the opportunity.&nbsp;</p><p>In my opinion, the better way is to have an actual track record. We should at least have some tangible - even if imperfect - proof that engineers are actually doing the work to a given standard. It may be a bit unfair (again, opportunities are not evenly distributed), but it saves a lot of headaches that can ripple throughout the organization.&nbsp;</p><p>The bottom line is to avoid phrases like "can do" or "is able to. It is much better to rely on "has a track record" or "has demonstrated the ability to do X more than once.</p><h2>Frequency and intensity</h2><p>There&#8217;s a similar kind of problem found in statements such as:</p><blockquote><p><em>Shares knowledge with others (mentoring, conference talks, blog posts, workshops, meetups).</em></p></blockquote><p>Is one internal workshop enough to qualify? How about one per year or one per quarter? I am against being too prescriptive, but there should at least be a guideline for what we expect. You definitely want to avoid the checkbox exercise where you're asking some people to do certain activities once to check the requirements for promotion.&nbsp;</p><p>Sometimes it might be enough to clarify that we are talking about the pattern of repeated behavior (such as: "<em>this person is known for sharing knowledge with others</em>") rather than concrete numbers ("<em>you must do some form of knowledge sharing 3 times</em>" for example).</p><h2>Years of experience vs. speed of climb</h2><p>I am not a big fan of role prerequisites based on years of experience. First of all, not everyone is the same - some people grow and learn faster than others. Second, not all years of experience are the same. As the saying goes: "<em>Some people have 10 years of experience. Others have 1 year of experience 10 times over.</em>&#8221; At the same time, experience that comes from practice is important. And practice takes time. Most experienced engineers would (and should) be suspicious of someone with 2 years of experience claiming to be senior.</p><p>I don't think we should be too dogmatic about this. I favor descriptively stating typical years of experience for a given level of seniority. It shouldn't be a showstopper for someone who doesn't meet those values, but it should at least make you suspicious and ask the right questions. Having some benchmarks might also make it a little harder for managers to give in in times of intense hiring pressure from the CEO or otherwise (and thus tendencies to lower standards).&nbsp;</p><p>The same goes for the time it takes to progress from one level to the next. If someone is progressing too fast, it shouldn't be a showstopper, but it's probably worth investigating. In the worst case, an exceptional individual comes to your attention thanks to such investigation. At best, you discover a situation where the manager gives in to pressure from a very salary-conscious engineer who, for example, threatens to leave if they don&#8217;t get a raise. At the end of the day, you want to be fair (promotions based on merit, impact, attitude), and allowing pushy engineers to be promoted faster does not do that. This is also related to the point made in <strong>Frequency &amp; Intensity</strong> above. If we are going to focus on a "pattern of repeated behavior", it is definitely going to take some time to establish that.</p><p>What are the right values here? It depends on the organization, but a good rule of thumb might be to wait at least one or even two years before promoting to higher levels. Again, that's a guideline, not a hard and fast rule.&nbsp;</p><h2>Is &#8220;up or out&#8221; effective?</h2><p>The "up or out" scheme comes from some partnership systems, especially law and consulting firms. It generally says that you have a certain amount of time to reach a certain rank. If you fail to do so, you must leave the organization.&nbsp;</p><p>I don't believe in the myth that everyone in IT needs to advance their career indefinitely. This may be fine for some people (achieving certain roles as a life goal), but I think it is beneficial also to be able to accommodate people who want to stabilize (or pause) their career advancement for a period of time (e.g. more family-focused time) or even indefinitely.&nbsp;</p><p>Generally speaking, <em>up or out</em> doesn't make sense. However, I think it might make sense for entry-level positions - namely interns and juniors. If you subscribe to this line of thinking, it is worth making this expectation clear upfront.</p><p>Juniors require the mentorship and attention of mids and seniors and, as such, represent an investment. This investment is expected to provide a return on investment at some point. If that is the case, then there should be some pressure on junior engineers to get through those early stages in a reasonable amount of time. So, I think it makes sense to set benchmarks for how long we expect engineers to stay at the intern and junior level. Exactly how long depends on the specifics of your organization. After all, junior doesn't mean the same thing in every company. It is common for juniors in one company to be considered mid-level in another. I think the reasonable starting point is to expect interns to be promoted to juniors within at most 1 year and juniors to be promoted to mid-level within another 1.5-3 years.&nbsp;</p><p>If you want to ensure this is adhered to, it is worth codifying it explicitly in engineering progression.&nbsp;</p><h2>Time to add more career tracks?</h2><p>At some point you inevitably face the dilemma - is one of the roles sufficiently distinct to build a separate track for it? A separate track might have two manifestations:&nbsp;</p><ul><li><p>It&#8217;s either a separate career ladder with distinct requirements and competencies (for instance, application developer vs UX designer paths).&nbsp;</p></li><li><p>Or it can be a branch from the existing career ladder (a typical example is software engineering branching into engineering management).</p></li></ul><p>These examples are high-contrast. After all, the role of a UX designer is quite different from that of a typical software engineer. One might even ask whether UX design is really engineering at all. I will leave those philosophical questions aside. The bottom line is that UX designers are typically part of the engineering organization in most companies, so they deserve a career ladder just as much as anyone else in the engineering part of the organization.</p><p>What about data engineers versus application developers? I'd say it depends on the nature of the work in your organization. It's a lot of work to build separate career ladders, but fitting square pegs into round holes doesn't really serve the overarching goals of engineering development. If it is to add value, it has to be used, and that requires sufficient buy-in.&nbsp;</p><p>My quick rule of thumb is to build a career ladder for any role that affects more than 20 people in the organization (and at least consider it for roles with more than 10). If you decide to use a typical breakdown of competencies (hard skills, communication/teamwork, and leadership/organizational) for most individual contributor roles, it is likely that most of the time only the hard skills will vary significantly. The rest will remain largely the same.</p><p>It is hard to miss the point at which a separate career ladder is potentially needed. If the role is truly distinct and doesn't fit well into the existing career ladder, it's almost certain that people in that role will come to you and complain about it (which is great!). They may even suggest that they create a separate ladder for themselves (which is even greater!). If you decide that a separate ladder is worth the effort at that point, it is good to have a basic framework and structure thought out so that they can do it themselves.</p><p>In both cases (separate ladders and branching), it is worth making sure that lateral movement is possible (people moving to other departments or between individual contributors and management positions). How to do this from an organizational perspective (training, salary, position, etc.) is beyond the scope of this article, but from an engineering progression perspective, they should at least "feel familiar" with the new technical ladder they will be using (structure, organizational/teamwork skills, etc.).&nbsp;</p><p>There is also a more subtle area related to career branching. In some roles, there are several possible paths of development. These are often referred to as archetypes or trajectories and become apparent at higher levels of an engineer's career. At <a href="https://virtuslab.com/?utm_source=substack&amp;utm_medium=article&amp;utm_campaign=pd">VirtusLab</a>, we have defined the following archetypes:</p><ul><li><p><strong>Team Leader: </strong>The first step in a leadership career that begins with managing a single team. This is typically still a very hands-on technical role.&nbsp;&nbsp;</p></li><li><p><strong>Rock:</strong> It describes a well-rounded engineer who can basically perform almost any task on a given project. They know the domain very well and are well versed in the business environment of the project. They usually spend long periods of time (many years) on a single project and tend to be the bedrock of the project, knowing it inside and out.</p></li><li><p><strong>Subject matter expert:</strong> This trajectory describes an engineer with exceptional depth and/or breadth of knowledge, skills, and experience in a specific area. The area may be more technical (e.g., cloud platform engineering or stream processing) or domain-oriented (technology in InsurTech or manufacturing). The impact of these engineers comes from sharing knowledge/training others internally, supporting <a href="https://virtuslab.com/?utm_source=substack&amp;utm_medium=article&amp;utm_campaign=pd">VirtusLab</a>'s outreach (articles, presentations, panel participation, community activity), helping with pre-sales efforts, and consulting with other teams.&nbsp;</p></li><li><p><strong>Architect:</strong> Architects are often involved in pre-sales activities or the initiation of new projects. They must be able to understand the business environment, constraints, and customer requirements. Since customers often don't really know all of their requirements, engineers in this role need to have solid experience in figuring out what the real requirements are. Typically, they spend a limited amount of time on the project (6 to 12 months) or work on it part-time - while being involved in other initiatives (either continuously or from time to time in a more consultative manner).&nbsp;</p></li><li><p><strong>Organization engineer:</strong> Organization Engineers thrive on building engineering organizations - they are often involved in key organizational tasks. They may play a leading role in areas such as engineering progression, building <a href="https://virtuslab.com/?utm_source=substack&amp;utm_medium=article&amp;utm_campaign=pd">VirtusLab</a>'s ways of working, redesigning the hiring process, building training for new team leaders, etc.&nbsp;</p></li></ul><p>At <a href="https://virtuslab.com/?utm_source=substack&amp;utm_medium=article&amp;utm_campaign=pd">VirtusLab</a> we distinguish these archetypes from the Staff+ level on. In our case, they don't require completely separate branches in the career ladder. They do, however, allow us to emphasize certain competencies and help guide engineering careers at a certain point. They are also specific to <a href="https://virtuslab.com/?utm_source=substack&amp;utm_medium=article&amp;utm_campaign=pd">VirtusLab</a>, based on our retrospective identification of notable senior engineers with different skill sets.&nbsp; I would be surprised if they could be applied "as is" to your organization. Here are examples from other organizations that may give you food for thought:</p><ul><li><p>Meta &#8211; as <a href="https://newsletter.pragmaticengineer.com/p/facebook-2?s=w">described by Gergely Orosz</a> &#8211; uses the following archetypes: Generalist, Specialist, Coding Machine, Tech Lead, Fixer, Systems Thinker, and Product Hybrid.&nbsp;</p></li><li><p>Flatiron Health &#8211; <a href="https://youtu.be/7K05XkkpevM?t=415">Cat Miller describes</a> their journey that involved separating the Principal Track from the Architect Track starting from E6 (E6 is roughly Staff Engineer).</p></li></ul><h2>When promotion requires more than just meeting requirements</h2><p>There is a tendency to treat meeting the requirements for a given engineering level as a sufficient condition to warrant promotion. "<em>I've done what was required, so I should be promoted soon after</em>" - right? While this is certainly true for some levels and perhaps even desirable for all, I don't think it's always and everywhere the case.</p><p>It definitely makes sense for the first part of the career: interns, juniors, mids, and seniors. As soon as the engineer meets the requirements, they are eligible for promotion. Things get more complex in the second part of an engineer's career and definitely in management roles.&nbsp;</p><p>Let's start with a simple example and assume that our management engineering career ladder looks like 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_!9gKO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceccec22-eb6c-4f64-81e8-dfbac47b1d75_960x1248.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9gKO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceccec22-eb6c-4f64-81e8-dfbac47b1d75_960x1248.png 424w, https://substackcdn.com/image/fetch/$s_!9gKO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceccec22-eb6c-4f64-81e8-dfbac47b1d75_960x1248.png 848w, https://substackcdn.com/image/fetch/$s_!9gKO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceccec22-eb6c-4f64-81e8-dfbac47b1d75_960x1248.png 1272w, https://substackcdn.com/image/fetch/$s_!9gKO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceccec22-eb6c-4f64-81e8-dfbac47b1d75_960x1248.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9gKO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceccec22-eb6c-4f64-81e8-dfbac47b1d75_960x1248.png" width="484" height="629.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ceccec22-eb6c-4f64-81e8-dfbac47b1d75_960x1248.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1248,&quot;width&quot;:960,&quot;resizeWidth&quot;:484,&quot;bytes&quot;:41641,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9gKO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceccec22-eb6c-4f64-81e8-dfbac47b1d75_960x1248.png 424w, https://substackcdn.com/image/fetch/$s_!9gKO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceccec22-eb6c-4f64-81e8-dfbac47b1d75_960x1248.png 848w, https://substackcdn.com/image/fetch/$s_!9gKO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceccec22-eb6c-4f64-81e8-dfbac47b1d75_960x1248.png 1272w, https://substackcdn.com/image/fetch/$s_!9gKO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fceccec22-eb6c-4f64-81e8-dfbac47b1d75_960x1248.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Exhibit H: Example of engineering management path</figcaption></figure></div><p>Almost all steps in this career are based on available opportunities. You can't really move from team lead to engineering manager if there isn't a vacancy. Granted, opportunities abound as organizations grow, but of course, constant growth is not a given. In fact, it is almost guaranteed that your organization will plateau at some point. If attrition isn't perfectly aligned with the growth rate of your people, there will come a time when even people who meet all the requirements can't be effectively promoted.</p><p>The extreme case of this example would be the CTO position. Unless the current CTO of your organization leaves (by their own choice or otherwise), you are unlikely to promote anyone else into that role.</p><p>Going back to the pure engineering (non-management) roles, I think this also applies to the Staff+ engineering levels, although it depends on your organization&#8217;s stage (hypergrowth, stagnation, contraction, etc.) and the attrition rate. Would your organization be even able to <em>utilize</em> a new Principal Engineer every time there's a new person, who meets the requirements? It's worth thinking about.&nbsp;</p><p>The thing that helps here is that Staff+ engineers are less common than less experienced engineers. And Principals are even rarer. So, it is unlikely that the supply of these very senior roles waiting in line for promotion would become a major problem. Still, I think it is worth clarifying that meeting the requirements is not sufficient for some roles. Addressing this issue openly and upfront may save you some headaches down the road.</p><h1>Next steps</h1><p>That's about it. I've tried to cover a lot of the ground needed to build a successful engineering progression. It is a lot of work. Or rather, doing it right is a lot of work.</p><p>The real fun, however, starts with the rollout, building in the change process, getting buy-in, and dealing with the various outliers in your organization. This will be the focus of the third and final part of this short series, which I plan to publish in the next few weeks. If you've found this information useful, I'd love for you to subscribe to this publication.&nbsp;</p><p>Until next time.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.pdole.ga/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Last but not least, hit subscribe if you feel like this might be interesting to you.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>