<?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[Backend Platform]]></title><description><![CDATA[The playbook for leaders and engineers who build internal tools that compound.]]></description><link>https://www.backendplatform.dev</link><image><url>https://substackcdn.com/image/fetch/$s_!t2KP!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5833036f-3eac-4afe-a78e-bdaf5bec8834_1280x1280.png</url><title>Backend Platform</title><link>https://www.backendplatform.dev</link></image><generator>Substack</generator><lastBuildDate>Sun, 28 Jun 2026 12:14:57 GMT</lastBuildDate><atom:link href="https://www.backendplatform.dev/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Vincent Chow]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[backendplatform@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[backendplatform@substack.com]]></itunes:email><itunes:name><![CDATA[Vincent Chow]]></itunes:name></itunes:owner><itunes:author><![CDATA[Vincent Chow]]></itunes:author><googleplay:owner><![CDATA[backendplatform@substack.com]]></googleplay:owner><googleplay:email><![CDATA[backendplatform@substack.com]]></googleplay:email><googleplay:author><![CDATA[Vincent Chow]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The RSE Framework]]></title><description><![CDATA[The RSE Framework gives platform teams a sequenced operating model: Roadmap earns the right to build, System to compound, Ecosystem to become infrastructure.]]></description><link>https://www.backendplatform.dev/p/rse-framework</link><guid isPermaLink="false">https://www.backendplatform.dev/p/rse-framework</guid><dc:creator><![CDATA[Vincent Chow]]></dc:creator><pubDate>Mon, 08 Jun 2026 14:13:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pbpE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37f2a93f-54e0-46da-826d-53e02720458b_1440x660.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_!-pYA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ac9486-821b-47ce-8614-a36aaf8d879e_2386x982.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-pYA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ac9486-821b-47ce-8614-a36aaf8d879e_2386x982.png 424w, https://substackcdn.com/image/fetch/$s_!-pYA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ac9486-821b-47ce-8614-a36aaf8d879e_2386x982.png 848w, https://substackcdn.com/image/fetch/$s_!-pYA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ac9486-821b-47ce-8614-a36aaf8d879e_2386x982.png 1272w, https://substackcdn.com/image/fetch/$s_!-pYA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ac9486-821b-47ce-8614-a36aaf8d879e_2386x982.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-pYA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ac9486-821b-47ce-8614-a36aaf8d879e_2386x982.png" width="1456" height="599" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/34ac9486-821b-47ce-8614-a36aaf8d879e_2386x982.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:599,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:407984,&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.backendplatform.dev/i/200980640?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ac9486-821b-47ce-8614-a36aaf8d879e_2386x982.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_!-pYA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ac9486-821b-47ce-8614-a36aaf8d879e_2386x982.png 424w, https://substackcdn.com/image/fetch/$s_!-pYA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ac9486-821b-47ce-8614-a36aaf8d879e_2386x982.png 848w, https://substackcdn.com/image/fetch/$s_!-pYA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ac9486-821b-47ce-8614-a36aaf8d879e_2386x982.png 1272w, https://substackcdn.com/image/fetch/$s_!-pYA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ac9486-821b-47ce-8614-a36aaf8d879e_2386x982.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.backendplatform.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.backendplatform.dev/subscribe?"><span>Subscribe now</span></a></p><p>The team had been building for eight months. Four tools shipped, two more in review. The platform lead was proud, and rightly so. The work was good. The code was clean. The internal docs were better than most external ones I&#8217;ve seen.</p><p>Nobody was using any of it.</p><p>Not because the tools were bad. Because the team had built them in the wrong sequence. They&#8217;d gone straight to System without doing Roadmap. They&#8217;d solved the problems they assumed product engineers had, rather than the ones product engineers were actually bleeding on that quarter. When adoption flatlined, they interpreted it as a distribution problem and wrote more documentation. It wasn&#8217;t a distribution problem. It was a sequencing problem, and no amount of docs fixes that.</p><p>I&#8217;ve seen this pattern more times than I can count. Teams that ship consistently but compound nothing. Teams that build in circles because they never established what &#8220;done&#8221; looks like for a platform problem. Teams that arrive at ecosystem thinking without the trust to back it up. The tools are real. The adoption isn&#8217;t. The platform exists on paper but not in behavior.</p><p>The RSE Framework is my attempt to name what&#8217;s actually happening. To give platform teams a sequential operating model that prevents the most common failure modes before they have a chance to take root.</p><div><hr></div><p style="text-align: center;"><em>I've also put together a free slide deck covering the full framework. Useful if you want something to reference or share with your team.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drive.google.com/file/d/1AlU5ldoT0zniCG4AbZCAYUPMBd_iwG3x/view?usp=drive_link&quot;,&quot;text&quot;:&quot;Download it here&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://drive.google.com/file/d/1AlU5ldoT0zniCG4AbZCAYUPMBd_iwG3x/view?usp=drive_link"><span>Download it here</span></a></p><div><hr></div><h2>Platform teams don&#8217;t fail by building badly.</h2><p>They fail by building out of order. That&#8217;s a harder problem to diagnose, because the output looks like progress. Tools ship. PRs merge. Demos happen. The team is busy. And yet six months later, the platform&#8217;s adoption curve is flat, the roadmap feels like a guessing game, and the engineering leader who funded the team is quietly asking whether it&#8217;s working.</p><p>This isn&#8217;t a resource problem. The teams I&#8217;ve seen fail had engineers, often good ones. It wasn&#8217;t a technology problem either. The tooling choices were reasonable. It was an ordering problem. They&#8217;d skipped a stage they didn&#8217;t know they were supposed to do, or rushed through it, and the consequences arrived six months later looking like something else entirely.</p><p>The default mental model for a platform team is wrong. Most people think of it as &#8220;a team that builds internal tools.&#8221; That framing is accurate but incomplete. It describes the output without describing the operating model. Without an operating model, the team optimizes locally, solving whatever&#8217;s loudest this sprint, instead of compounding leverage across time.</p><p>What&#8217;s missing is a theory of sequencing. What do you do first, what does it unlock, and what happens when you skip it? That question doesn&#8217;t have an obvious answer when you&#8217;re standing at the beginning. Most teams discover the answer the hard way, in retrospect, after the adoption plateau or the reorg.</p><p>RSE is my answer to that question. It&#8217;s not a methodology with ceremonies. It&#8217;s a three-stage progression: Roadmap, System, Ecosystem. Each stage builds the foundation the next one depends on. Skipping a stage produces a predictable, nameable failure mode.</p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pbpE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37f2a93f-54e0-46da-826d-53e02720458b_1440x660.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pbpE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37f2a93f-54e0-46da-826d-53e02720458b_1440x660.png 424w, https://substackcdn.com/image/fetch/$s_!pbpE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37f2a93f-54e0-46da-826d-53e02720458b_1440x660.png 848w, https://substackcdn.com/image/fetch/$s_!pbpE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37f2a93f-54e0-46da-826d-53e02720458b_1440x660.png 1272w, https://substackcdn.com/image/fetch/$s_!pbpE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37f2a93f-54e0-46da-826d-53e02720458b_1440x660.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pbpE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37f2a93f-54e0-46da-826d-53e02720458b_1440x660.png" width="1440" height="660" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/37f2a93f-54e0-46da-826d-53e02720458b_1440x660.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:660,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:74520,&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.backendplatform.dev/i/200980640?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37f2a93f-54e0-46da-826d-53e02720458b_1440x660.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_!pbpE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37f2a93f-54e0-46da-826d-53e02720458b_1440x660.png 424w, https://substackcdn.com/image/fetch/$s_!pbpE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37f2a93f-54e0-46da-826d-53e02720458b_1440x660.png 848w, https://substackcdn.com/image/fetch/$s_!pbpE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37f2a93f-54e0-46da-826d-53e02720458b_1440x660.png 1272w, https://substackcdn.com/image/fetch/$s_!pbpE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37f2a93f-54e0-46da-826d-53e02720458b_1440x660.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>Before R, S, or E: The Two-Audience Discipline</h2><p>Before explaining any of the three stages, there&#8217;s a meta-principle that threads through all of them. It&#8217;s the lens that RSE gets read through, and ignoring it is one of the fastest ways to build a platform team that&#8217;s technically productive and organizationally invisible.</p><blockquote><p><strong>Engineers are the customer. Leaders are the investor.</strong></p></blockquote><p>Engineers use the tools daily. Their adoption is the only real measure of whether the platform exists. If they route around you, nothing else matters. Not the docs, not the roadmap, not the OKRs.</p><p>Engineering leaders fund the team, defend its scope in headcount conversations, and decide whether it survives the next reorg. They don&#8217;t use the tools. They need to see the return.</p><p>Build only for engineers and you lose your funding. Build only for leaders and you lose your users. Both have to hold simultaneously, at every stage.</p><p>This split isn&#8217;t a communications strategy. It&#8217;s an architectural constraint. In Roadmap, problems are sourced from engineers (they feel the pain) but ranked in language leaders understand: hours recovered, incidents avoided, headcount-equivalent leverage. In System, tools are built for engineer ergonomics, but every one tracks a metric legible to someone writing a budget defense. In Ecosystem, adoption rate proves the customer hypothesis while cost-of-replacement proves the investor thesis.</p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4lXJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed4c5c9-564f-4fde-90a1-06070fc48cab_1440x620.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4lXJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed4c5c9-564f-4fde-90a1-06070fc48cab_1440x620.png 424w, https://substackcdn.com/image/fetch/$s_!4lXJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed4c5c9-564f-4fde-90a1-06070fc48cab_1440x620.png 848w, https://substackcdn.com/image/fetch/$s_!4lXJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed4c5c9-564f-4fde-90a1-06070fc48cab_1440x620.png 1272w, https://substackcdn.com/image/fetch/$s_!4lXJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed4c5c9-564f-4fde-90a1-06070fc48cab_1440x620.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4lXJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed4c5c9-564f-4fde-90a1-06070fc48cab_1440x620.png" width="1440" height="620" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4ed4c5c9-564f-4fde-90a1-06070fc48cab_1440x620.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:620,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:81503,&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.backendplatform.dev/i/200980640?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed4c5c9-564f-4fde-90a1-06070fc48cab_1440x620.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_!4lXJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed4c5c9-564f-4fde-90a1-06070fc48cab_1440x620.png 424w, https://substackcdn.com/image/fetch/$s_!4lXJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed4c5c9-564f-4fde-90a1-06070fc48cab_1440x620.png 848w, https://substackcdn.com/image/fetch/$s_!4lXJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed4c5c9-564f-4fde-90a1-06070fc48cab_1440x620.png 1272w, https://substackcdn.com/image/fetch/$s_!4lXJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed4c5c9-564f-4fde-90a1-06070fc48cab_1440x620.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>What Skipping Stages Produces</h2><p>The naive approach to platform team strategy is to start building whatever&#8217;s loudest. A product engineer complains about service scaffolding, so you build a scaffold starter. Another team mentions inconsistent observability, so you write a shared logging library. Each decision feels reasonable in isolation. The team is responding to real pain. But the sequencing is emergent and reactive rather than deliberate and compounding.</p><p>When I talk about &#8220;skipping a stage,&#8221; I don&#8217;t mean ignoring it entirely. I mean doing it incompletely, implicitly, or in the wrong order. The result is always one of three recognizable failure modes. These aren&#8217;t hypotheticals. They&#8217;re patterns I&#8217;ve seen play out at real teams, and the failure mode names itself once you know what to look for.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SSK7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c01a3-753b-4417-b269-5e1e4c88bb9b_2252x830.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SSK7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c01a3-753b-4417-b269-5e1e4c88bb9b_2252x830.png 424w, https://substackcdn.com/image/fetch/$s_!SSK7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c01a3-753b-4417-b269-5e1e4c88bb9b_2252x830.png 848w, https://substackcdn.com/image/fetch/$s_!SSK7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c01a3-753b-4417-b269-5e1e4c88bb9b_2252x830.png 1272w, https://substackcdn.com/image/fetch/$s_!SSK7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c01a3-753b-4417-b269-5e1e4c88bb9b_2252x830.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SSK7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c01a3-753b-4417-b269-5e1e4c88bb9b_2252x830.png" width="1456" height="537" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d61c01a3-753b-4417-b269-5e1e4c88bb9b_2252x830.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:537,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:548468,&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.backendplatform.dev/i/200980640?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c01a3-753b-4417-b269-5e1e4c88bb9b_2252x830.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_!SSK7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c01a3-753b-4417-b269-5e1e4c88bb9b_2252x830.png 424w, https://substackcdn.com/image/fetch/$s_!SSK7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c01a3-753b-4417-b269-5e1e4c88bb9b_2252x830.png 848w, https://substackcdn.com/image/fetch/$s_!SSK7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c01a3-753b-4417-b269-5e1e4c88bb9b_2252x830.png 1272w, https://substackcdn.com/image/fetch/$s_!SSK7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c01a3-753b-4417-b269-5e1e4c88bb9b_2252x830.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The interesting thing about these failure modes is that they&#8217;re each invisible from inside the team experiencing them. Roadmap-less building looks like thoroughness. System-less shipping looks like productivity. Ecosystem-less platforming looks like vision. They only become legible as failure modes in retrospect, or from the outside.</p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!x3-S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c9524d-a332-4860-afd3-9db1f71d16e4_1440x640.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!x3-S!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c9524d-a332-4860-afd3-9db1f71d16e4_1440x640.png 424w, https://substackcdn.com/image/fetch/$s_!x3-S!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c9524d-a332-4860-afd3-9db1f71d16e4_1440x640.png 848w, https://substackcdn.com/image/fetch/$s_!x3-S!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c9524d-a332-4860-afd3-9db1f71d16e4_1440x640.png 1272w, https://substackcdn.com/image/fetch/$s_!x3-S!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c9524d-a332-4860-afd3-9db1f71d16e4_1440x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!x3-S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c9524d-a332-4860-afd3-9db1f71d16e4_1440x640.png" width="1440" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07c9524d-a332-4860-afd3-9db1f71d16e4_1440x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:105000,&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.backendplatform.dev/i/200980640?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c9524d-a332-4860-afd3-9db1f71d16e4_1440x640.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_!x3-S!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c9524d-a332-4860-afd3-9db1f71d16e4_1440x640.png 424w, https://substackcdn.com/image/fetch/$s_!x3-S!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c9524d-a332-4860-afd3-9db1f71d16e4_1440x640.png 848w, https://substackcdn.com/image/fetch/$s_!x3-S!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c9524d-a332-4860-afd3-9db1f71d16e4_1440x640.png 1272w, https://substackcdn.com/image/fetch/$s_!x3-S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07c9524d-a332-4860-afd3-9db1f71d16e4_1440x640.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>RSE: The Operating Model</h2><p>Each stage has a clear purpose and an extractable principle. The stages are sequential. Each one builds the foundation the next depends on. But they&#8217;re not linear in the sprint-by-sprint sense. You&#8217;ll revisit Roadmap when your team grows or your org reorgs. You&#8217;ll refine System as adoption data comes in. The sequence is about what earns what, not about time boxes.</p><div><hr></div><h2>R: Roadmap</h2><p><em>A ranked list of problems with explicit exit conditions. Not a list of tools.</em></p><p>That distinction sounds minor and is not. Most platform team &#8220;roadmaps&#8221; are actually lists of things someone wants to build. A proper Roadmap is a prioritized list of things that are wrong: problems, friction points, failure modes, each with a clear definition of what &#8220;solved&#8221; looks like. The tool that solves the problem comes later. The problem comes first.</p><blockquote><p>You can&#8217;t build a system for problems you haven&#8217;t named. The Roadmap stage is where you earn the right to start building.</p></blockquote><p><strong>R.01: Problem Discovery</strong></p><p>Pain surveys over whiteboards. The instinct, especially for strong engineers, is to synthesize the solution space, to think about what a well-run platform team should build and work backwards. That produces plausible-sounding roadmaps that nobody asked for.</p><p>The correct starting point is talking to product engineers about what cost them time last sprint. Not what they think a platform team should build, but what specifically made their work harder than it should have been. The questions the team isn&#8217;t asking are often the problems the platform should solve. What&#8217;s too painful to even put on a ticket? What do engineers work around rather than fix?</p><p><strong>R.02: Prioritization</strong></p><p>Once you have the problem list, you rank it:</p><div class="pullquote"><p><strong>frequency   x   severity   x   blast radius</strong></p></div><p>How often does this problem occur, how bad is each occurrence, and how many teams does it affect? Multiply those three scores. The top three problems are your P0s. Everything else is a distraction until those ship.</p><p>Prioritization is also where the Two-Audience discipline shows up most directly. Engineers feel the pain in ways that map naturally to frequency and severity. Blast radius is the investor framing: it&#8217;s what makes the problem legible at a headcount conversation. A problem that affects eight teams is a different budget conversation than a problem that affects one. The ranking must be defensible to both audiences.</p><p><strong>R.03: Scope Definition</strong></p><p>The charter. Five sections: mission, scope, non-scope, SRE boundary contract, KPIs. If you can&#8217;t write it in two pages, the team doesn&#8217;t exist yet. It&#8217;s a group of engineers with overlapping tickets and a shared Slack channel.</p><p>The non-scope section is as important as the scope section. Without an explicit boundary, platform teams accumulate operational burden. A charter with a clear non-scope makes &#8220;no&#8221; a policy decision rather than a personal one. That&#8217;s the only way to hold the boundary when leadership is watching.</p><p>The SRE boundary contract deserves specific attention. The line between backend platform engineering and infrastructure/SRE is genuinely blurry, and without a written agreement it becomes a source of chronic territorial friction. Which pager rotation does a given tool live in? Who owns the SLA? Who handles migrations? Write it down.</p><p><strong>R.04: Sequencing</strong></p><p>Which problems unlock the next ones. Solve scaffolding before observability, because observability rides on scaffolding. Solve config before feature flags, because flags depend on config. The dependency graph of your problems is as real as the dependency graph of your code. It determines what order operations have to happen in.</p><p><strong>R.05: Success Criteria</strong></p><p>Define what &#8220;solved&#8221; looks like before you start. If you don&#8217;t define done before you begin, done becomes &#8220;the tool shipped,&#8221; and that&#8217;s not the same thing.</p><p>Success criteria live at two levels: customer-facing (adoption rate per eligible service, steps removed, time-to-production for a new consumer) and investor-facing (developer hours recovered per quarter, incidents avoided, headcount-equivalent leverage). Both sets need to be defined upfront, tracked explicitly, and reported on. A tool ships against both or it doesn&#8217;t ship.</p><blockquote><p><em>A roadmap isn&#8217;t a list of tools. It&#8217;s a ranked list of problems with explicit exit conditions, defensible to the engineers bleeding on them and to the people writing the checks.</em></p></blockquote><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QdRC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf235bde-d784-4552-ba60-8645e95e47f4_1440x660.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QdRC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf235bde-d784-4552-ba60-8645e95e47f4_1440x660.png 424w, https://substackcdn.com/image/fetch/$s_!QdRC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf235bde-d784-4552-ba60-8645e95e47f4_1440x660.png 848w, https://substackcdn.com/image/fetch/$s_!QdRC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf235bde-d784-4552-ba60-8645e95e47f4_1440x660.png 1272w, https://substackcdn.com/image/fetch/$s_!QdRC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf235bde-d784-4552-ba60-8645e95e47f4_1440x660.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QdRC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf235bde-d784-4552-ba60-8645e95e47f4_1440x660.png" width="1440" height="660" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cf235bde-d784-4552-ba60-8645e95e47f4_1440x660.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:660,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:99524,&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.backendplatform.dev/i/200980640?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf235bde-d784-4552-ba60-8645e95e47f4_1440x660.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_!QdRC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf235bde-d784-4552-ba60-8645e95e47f4_1440x660.png 424w, https://substackcdn.com/image/fetch/$s_!QdRC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf235bde-d784-4552-ba60-8645e95e47f4_1440x660.png 848w, https://substackcdn.com/image/fetch/$s_!QdRC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf235bde-d784-4552-ba60-8645e95e47f4_1440x660.png 1272w, https://substackcdn.com/image/fetch/$s_!QdRC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf235bde-d784-4552-ba60-8645e95e47f4_1440x660.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>S: System</h2><p><em>The execution playbook that turns named problems into tools that compound rather than one-offs that decay.</em></p><p>Most teams fail here. Not by shipping badly, but by shipping without a system. Each tool is built from scratch in terms of quality bar, distribution strategy, documentation approach, and versioning discipline. The tenth tool has no more adoption momentum than the first. Nothing compounds because nothing was designed to compound.</p><p>The System stage is about building each tool so that the next one is easier to build, easier to adopt, and harder to replace.</p><blockquote><p>A tool that ships once is a feature. A tool that gets adopted, versioned, documented, and depended on is a platform asset. The System is what turns the first into the second.</p></blockquote><p><strong>S.01: Compile-Time First</strong></p><p>Bias toward libraries, starters, and annotations over runtime services. Every new internal runtime service is a new on-call rotation, a new SLA, a new blast radius. When that service has an incident at 2am, it&#8217;s your team&#8217;s pager. Compile-time dependencies fail gracefully. Runtime ones page you.</p><p>Runtime services are sometimes necessary. But they should be last resorts, not defaults. If the same problem can be solved at compile time, solve it there.</p><p><strong>S.02: The Wrapper Test</strong></p><p>Before any tool ships, it has to clear three questions. Does it lower implementation time, as in hours genuinely saved per service? Does it improve developer experience, meaning steps removed, errors prevented at compile time, defaults that actually work? Does it provide an operational benefit the engineer couldn&#8217;t get themselves, like observability wired in, retries handled, idempotency enforced by default?</p><p>A wrapper that does what the underlying library already does isn&#8217;t a platform asset. It&#8217;s tax with your team&#8217;s name on it.</p><p><strong>S.03: Documentation as First-Class</strong></p><p>A tool isn&#8217;t done when the code merges. It&#8217;s done when an engineer who&#8217;s never seen it can go from &#8220;I need this&#8221; to &#8220;it&#8217;s in production&#8221; without messaging the platform team.</p><p>That means a working quickstart that runs end-to-end in under ten minutes, a failure-mode reference that answers the three questions engineers ask most often, and versioned docs with visible deprecation timelines. Undocumented tools don&#8217;t get adopted. They get tolerated until something better appears.</p><p><strong>S.04: Paved Road, Not Mandate</strong></p><p>The default path has to be the easiest path. If using the platform tool is harder than rolling their own, product teams roll their own. Mandates fail against friction. Friction beats mandates every time. The goal is to make the right thing the path of least resistance, the thing a new engineer does without being told to.</p><p><strong>S.05: Distribution Mechanics</strong></p><p>Adoption isn&#8217;t a launch problem. The most effective strategy: embed with one product team per sprint. Solve their specific, named pain. Let them become advocates. When that engineer talks to another team about how they solved the problem, it carries infinitely more weight than anything the platform team announces internally. Internal announcement emails don&#8217;t move adoption. Respected product engineers do.</p><p><strong>S.06: Versioning and Migration Discipline</strong></p><p>Plan v2 before v1 launches. The deprecation path is part of the initial design, not an afterthought. Platform team credibility is built on how it handles upgrades, not how it handles launches. A migration that&#8217;s smooth and well-communicated earns more goodwill than a polished launch. A painful migration destroys the credibility that a dozen launches built up.</p><p><strong>S.07: Observability of the Platform Itself</strong></p><p>Your tools need their own metrics. Adoption rate per eligible service. Error rate per consumer. Developer time saved, measured and reported. You can&#8217;t compound what you can&#8217;t measure, and you can&#8217;t defend a platform budget on vibes.</p><p><strong>S.08: The Reactive/Planned Split</strong></p><p>Protect planned work from reactive support. A standard split worth defending: 60% planned tooling, 30% reactive support, 10% tech debt. Without this split, reactive work eats everything and the roadmap becomes fiction. This is a leadership-level decision, not a sprint negotiation. If it&#8217;s left to the team to self-enforce, reactive work wins by default.</p><blockquote><p><em>A tool that ships once is a feature. A tool that gets adopted, versioned, documented, and depended on is a platform asset. The System is what turns the first into the second.</em></p></blockquote><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fOLb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f8b3ed-34c3-47c3-902c-57b32a614b4e_1440x580.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fOLb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f8b3ed-34c3-47c3-902c-57b32a614b4e_1440x580.png 424w, https://substackcdn.com/image/fetch/$s_!fOLb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f8b3ed-34c3-47c3-902c-57b32a614b4e_1440x580.png 848w, https://substackcdn.com/image/fetch/$s_!fOLb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f8b3ed-34c3-47c3-902c-57b32a614b4e_1440x580.png 1272w, https://substackcdn.com/image/fetch/$s_!fOLb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f8b3ed-34c3-47c3-902c-57b32a614b4e_1440x580.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fOLb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f8b3ed-34c3-47c3-902c-57b32a614b4e_1440x580.png" width="1440" height="580" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85f8b3ed-34c3-47c3-902c-57b32a614b4e_1440x580.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:580,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:68257,&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.backendplatform.dev/i/200980640?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f8b3ed-34c3-47c3-902c-57b32a614b4e_1440x580.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_!fOLb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f8b3ed-34c3-47c3-902c-57b32a614b4e_1440x580.png 424w, https://substackcdn.com/image/fetch/$s_!fOLb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f8b3ed-34c3-47c3-902c-57b32a614b4e_1440x580.png 848w, https://substackcdn.com/image/fetch/$s_!fOLb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f8b3ed-34c3-47c3-902c-57b32a614b4e_1440x580.png 1272w, https://substackcdn.com/image/fetch/$s_!fOLb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f8b3ed-34c3-47c3-902c-57b32a614b4e_1440x580.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>E: Ecosystem</h2><p><em>Individual tools are replaceable. An ecosystem is not.</em></p><p>The Ecosystem stage is where a team that ships good tools becomes a team that is infrastructure. It&#8217;s the phase where the platform stops being a service product teams use and starts being the environment they work inside. That shift doesn&#8217;t happen by accident. It happens because the System stage was executed with compounding as a design goal.</p><blockquote><p>An ecosystem isn&#8217;t tools that coexist. It&#8217;s tools that make each other more valuable, to the point where leaving the ecosystem costs more than building inside it.</p></blockquote><p><strong>E.01: Interoperability by Default</strong></p><p>Every tool in the ecosystem speaks to every other one. The starter ships with logging, tracing, metrics, auth, and feature flags wired in. Pulling one piece means losing all of them, intentionally. Standalone tools don&#8217;t compound. Interoperable tools do.</p><p><strong>E.02: Shared Primitives</strong></p><p>One auth model. One config system. One error taxonomy. One observability schema. Product engineers learn it once and it applies everywhere. The primitives are what make the ecosystem feel like a single product instead of a collection of utilities with inconsistent interfaces, and what makes onboarding fast at scale.</p><p><strong>E.03: The Golden Path</strong></p><p>A single documented sequence from &#8220;I have an idea&#8221; to &#8220;I&#8217;m in production with audit logging, idempotency, and dashboards.&#8221; The default is mandatory. The escape hatch is opt-in but supported.</p><p>The golden path is a contract, not a cage. Every tool on the path ships with documented extension points: interfaces to implement, hooks to override, config to swap. No tool is allowed to be a black box. A team with a legitimate edge case can get off the path, but they do it explicitly and they lose the platform team&#8217;s SLA in doing so. Anything outside the golden path is a one-off the platform team doesn&#8217;t owe support to.</p><p><strong>E.04: Compounding Surface Area</strong></p><p>Every new tool that integrates with existing ones makes the existing ones more valuable. The third tool in an ecosystem is worth more than the first three standalone tools combined. Compounding is the design goal, not feature breadth, not tool count.</p><p>The metric that proves this to leadership: not &#8220;we shipped six tools this quarter&#8221; but &#8220;adding the sixth tool increased average daily active usage of the first five.&#8221; That&#8217;s compounding.</p><p><strong>E.05: Cultural Lock-In</strong></p><p>When senior engineers refuse to onboard at companies without an internal platform like yours, you&#8217;ve won. The ecosystem isn&#8217;t the tools. It&#8217;s the expectation engineers have about how their work should feel. That expectation is the most durable moat a platform team can build, and it can&#8217;t be copied by writing a single tool.</p><p>Cultural lock-in isn&#8217;t manipulative. It&#8217;s the natural result of building tools engineers genuinely prefer. The lock-in is just the cost-benefit math coming out in the platform&#8217;s favor consistently enough that it becomes the default assumption.</p><p><strong>E.06: External Boundary</strong></p><p>What the ecosystem deliberately does not cover. Product logic stays with product teams. The ecosystem owns the layer underneath, not the layer above. Without an enforced boundary, the platform becomes a dumping ground for everything nobody else wants, and it dies under the weight of work it never should have owned.</p><blockquote><p><em>An ecosystem isn&#8217;t tools that coexist. It&#8217;s tools that make each other more valuable, to the point where leaving the ecosystem costs more than building inside it.</em></p></blockquote><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V_mE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa018fb7c-acef-4052-80d9-6d2b4af1ef72_1440x740.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V_mE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa018fb7c-acef-4052-80d9-6d2b4af1ef72_1440x740.png 424w, https://substackcdn.com/image/fetch/$s_!V_mE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa018fb7c-acef-4052-80d9-6d2b4af1ef72_1440x740.png 848w, https://substackcdn.com/image/fetch/$s_!V_mE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa018fb7c-acef-4052-80d9-6d2b4af1ef72_1440x740.png 1272w, https://substackcdn.com/image/fetch/$s_!V_mE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa018fb7c-acef-4052-80d9-6d2b4af1ef72_1440x740.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V_mE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa018fb7c-acef-4052-80d9-6d2b4af1ef72_1440x740.png" width="1440" height="740" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a018fb7c-acef-4052-80d9-6d2b4af1ef72_1440x740.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:740,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:91484,&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.backendplatform.dev/i/200980640?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa018fb7c-acef-4052-80d9-6d2b4af1ef72_1440x740.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_!V_mE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa018fb7c-acef-4052-80d9-6d2b4af1ef72_1440x740.png 424w, https://substackcdn.com/image/fetch/$s_!V_mE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa018fb7c-acef-4052-80d9-6d2b4af1ef72_1440x740.png 848w, https://substackcdn.com/image/fetch/$s_!V_mE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa018fb7c-acef-4052-80d9-6d2b4af1ef72_1440x740.png 1272w, https://substackcdn.com/image/fetch/$s_!V_mE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa018fb7c-acef-4052-80d9-6d2b4af1ef72_1440x740.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>The Sequencing Is Not Optional</h2><p>I want to be explicit about what I&#8217;m arguing here, because RSE can be read as three helpful categories that you can mix and match. That reading is wrong.</p><p>The sequencing matters. You cannot do System well without Roadmap, because System executed without Roadmap is system-less shipping and you won&#8217;t know it until adoption flatlines. You cannot do Ecosystem well without System, because Ecosystem without System is architecture astronautics and the org will reorganize before you earn the trust to back it up.</p><blockquote><p>R before S before E is a constraint, not a preference.</p></blockquote><p>The legitimate objection is: &#8220;We&#8217;re already in S or E, does this framework help us at all?&#8221; It does, but differently.</p><p>If you&#8217;re in System without having done Roadmap properly, the immediate move is a discovery pass. Not to restart, but to validate that what you&#8217;re currently building maps to the problems product engineers are actually experiencing. Run the pain survey. Check the <em>frequency x severity x blast radius</em> ranking against your current tool priorities. If they&#8217;re misaligned, adjust.</p><p>If you&#8217;re in Ecosystem without System discipline, meaning you&#8217;re designing for interoperability and shared primitives but the tools themselves don&#8217;t pass the Wrapper Test, pull back. The ecosystem design is aspirationally correct but operationally premature. Earn System credibility first. Then the ecosystem becomes achievable rather than theoretical.</p><p><strong>Most backend platform teams aren&#8217;t building the wrong things. They&#8217;re building in the wrong order. Roadmap before System, System before Ecosystem. The sequencing is the strategy.</strong></p><div><hr></div><h2>The Maturity Arc as a Field Diagnosis</h2><p>Once you have the RSE model, you can use it to diagnose where any platform team is, including your own, and what&#8217;s blocking them from moving to the next stage.</p><p>Most fifty-engineer organizations are stuck in R. They know the problems exist. They can name them. They haven&#8217;t ranked them, chartered the team to own them, or defined what &#8220;solved&#8221; looks like. The team is busy, the roadmap exists, and nothing is compounding.</p><p>Most organizations between eighty and one hundred fifty engineers have an S but no E. They ship tools. The tools work. Adoption is partial: teams close to the platform team use the tools, teams furthest away roll their own. Each tool stands alone. Removing the platform would cost a week of refactoring, not a quarter. The investment is real but not yet irreversible.</p><p>The teams that reach E are the ones that became reference architectures. The ones where senior engineers talk about &#8220;how we do things here&#8221; with a specificity and coherence that reveals an underlying system. The ones where a new service scaffolds in ten minutes and ships with audit logging, idempotency, and dashboards wired in, because that&#8217;s just how things work here.</p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eY-j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11abd65-6d50-4375-a388-90487d7fde96_1440x660.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eY-j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11abd65-6d50-4375-a388-90487d7fde96_1440x660.png 424w, https://substackcdn.com/image/fetch/$s_!eY-j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11abd65-6d50-4375-a388-90487d7fde96_1440x660.png 848w, https://substackcdn.com/image/fetch/$s_!eY-j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11abd65-6d50-4375-a388-90487d7fde96_1440x660.png 1272w, https://substackcdn.com/image/fetch/$s_!eY-j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11abd65-6d50-4375-a388-90487d7fde96_1440x660.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eY-j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11abd65-6d50-4375-a388-90487d7fde96_1440x660.png" width="1440" height="660" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e11abd65-6d50-4375-a388-90487d7fde96_1440x660.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:660,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:94417,&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.backendplatform.dev/i/200980640?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11abd65-6d50-4375-a388-90487d7fde96_1440x660.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_!eY-j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11abd65-6d50-4375-a388-90487d7fde96_1440x660.png 424w, https://substackcdn.com/image/fetch/$s_!eY-j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11abd65-6d50-4375-a388-90487d7fde96_1440x660.png 848w, https://substackcdn.com/image/fetch/$s_!eY-j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11abd65-6d50-4375-a388-90487d7fde96_1440x660.png 1272w, https://substackcdn.com/image/fetch/$s_!eY-j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11abd65-6d50-4375-a388-90487d7fde96_1440x660.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>The Question Only Your Context Can Answer</h2><p>The extractable principle from RSE is simple enough to write on a whiteboard:</p><p><strong>Roadmap earns the right to build. System earns the right to compound. Ecosystem earns the right to become infrastructure.</strong></p><p>Skip a stage and you skip what that stage earns. The failure mode that follows isn&#8217;t punishment. It&#8217;s just physics. Systems that skip foundations don&#8217;t compound; they accumulate.</p><p>Look at your current platform work and ask honestly: which stage are you actually in, and which stage do you think you&#8217;re in? If those are the same answer, you&#8217;re ahead of most. If there&#8217;s a gap between them, that gap is the thing worth fixing before you build anything else.</p><p><em>What would change about your team&#8217;s next sprint if you took the RSE sequencing seriously, not as a framework to understand, but as a constraint to build inside?</em></p><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.backendplatform.dev/p/rse-framework?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Backend Platform! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.backendplatform.dev/p/rse-framework?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.backendplatform.dev/p/rse-framework?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Every Mid-Size Engineering Org Has a Hidden Backend Platform Team. It's Called "Senior Engineers Doing Repetitive Work."]]></title><description><![CDATA[You don't decide whether to have a platform team. You decide whether it's intentional.]]></description><link>https://www.backendplatform.dev/p/hidden-backend-platform-team</link><guid isPermaLink="false">https://www.backendplatform.dev/p/hidden-backend-platform-team</guid><dc:creator><![CDATA[Vincent Chow]]></dc:creator><pubDate>Tue, 19 May 2026 11:17:06 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c96ab90a-fb2a-4d0c-9bbe-dd2499083f92_2138x1120.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_!K3BM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88fd9889-bafb-4e30-af2f-388fc69a6f8b_2380x982.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!K3BM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88fd9889-bafb-4e30-af2f-388fc69a6f8b_2380x982.png 424w, https://substackcdn.com/image/fetch/$s_!K3BM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88fd9889-bafb-4e30-af2f-388fc69a6f8b_2380x982.png 848w, https://substackcdn.com/image/fetch/$s_!K3BM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88fd9889-bafb-4e30-af2f-388fc69a6f8b_2380x982.png 1272w, https://substackcdn.com/image/fetch/$s_!K3BM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88fd9889-bafb-4e30-af2f-388fc69a6f8b_2380x982.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!K3BM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88fd9889-bafb-4e30-af2f-388fc69a6f8b_2380x982.png" width="1456" height="601" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/88fd9889-bafb-4e30-af2f-388fc69a6f8b_2380x982.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:601,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:403310,&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.backendplatform.dev/i/197079457?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88fd9889-bafb-4e30-af2f-388fc69a6f8b_2380x982.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_!K3BM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88fd9889-bafb-4e30-af2f-388fc69a6f8b_2380x982.png 424w, https://substackcdn.com/image/fetch/$s_!K3BM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88fd9889-bafb-4e30-af2f-388fc69a6f8b_2380x982.png 848w, https://substackcdn.com/image/fetch/$s_!K3BM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88fd9889-bafb-4e30-af2f-388fc69a6f8b_2380x982.png 1272w, https://substackcdn.com/image/fetch/$s_!K3BM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88fd9889-bafb-4e30-af2f-388fc69a6f8b_2380x982.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>The decision already made</h1><p>The same hour, spent four times, in front of the same audience, looks like four hours of productivity.</p><p>Sprint review, Friday afternoon:</p><ol><li><p>Squad 1 demos a wrapper around the HTTP client to standardize timeouts. Clean work, well-named, ships next sprint. </p></li><li><p>Squad 2 demos a slightly different wrapper, same client library, same problem space, different defaults around retries. </p></li><li><p>Squad 4 demos an audit-logging helper that almost matches the format the platform-adjacent squad rolled out last quarter. </p></li><li><p>Squad 6 isn&#8217;t demoing platform work at all. They&#8217;re shipping a feature, on time, on the back of three engineers who built their own version of the same scaffolding two sprints ago.</p></li></ol><p>The work is real. The work ships. It just ships four times.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.backendplatform.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.backendplatform.dev/subscribe?"><span>Subscribe now</span></a></p><p>The EM running the review nods through all four demos. He&#8217;s been the EM for fourteen months. He has not yet noticed that three of the four demos are the same demo.</p><p>Neither has anyone in the room. The squad leads aren&#8217;t withholding it; they genuinely don&#8217;t know what the other squads built. There is no forum where they would have found out.</p><p>This is the hidden platform team. It&#8217;s called &#8220;senior engineers doing repetitive work.&#8221;</p><p>Nobody in that room would call this a platform investment. It is one.</p><p>The decision to not have a platform team has already been made. It was made invisibly, the moment the third senior engineer reached for a problem the first two had already solved. Nobody voted on it. Nobody costed it. It is already on the books. The only thing missing is the line item. And what I&#8217;ve seen, again and again, is that the line item never gets added until someone names what&#8217;s there.</p><div><hr></div><h1>Where the velocity went</h1><p>Your headcount has doubled. Your velocity hasn&#8217;t. You are hunting for the explanation in the wrong places.</p><p>There are several candidates for that gap, and the honest version of this issue acknowledges all of them up front. Sprint planning discipline. Feature-side technical debt. On-call fatigue. Communication overhead from team growth. Hiring quality. Most engineering orgs at this scale have several of these problems running simultaneously, and none of them are wrong. None of them are <em>the only answer</em> either. This issue is about one specific structural cost that almost always sits inside the velocity drop, often unnamed, and almost never on a budget line.</p><p>The cost has a shape. Above a certain size &#8212; roughly the band where you have four or more product squads &#8212; the unnamed cross-cutting work stops being amortized and starts being multiplied. Each squad solves the same coordination problem in isolation, with subtly different conventions, on subtly different timelines. The HTTP client. The retry policy. The audit log shape. The error response envelope. The structured-logging fields. The tracing headers. Six squads, six versions, all roughly correct, none identical.</p><p>You&#8217;re three years past your last platform conversation. Your headcount has doubled. Your velocity hasn&#8217;t. When someone proposes a platform team, the answer in the room is some version of &#8220;we&#8217;re not big enough yet, and we don&#8217;t want to add overhead.&#8221; Your senior engineers nod. They&#8217;re the ones absorbing the cost.</p><p>The redistributed model has a real defense. It deserves to be taken seriously before it gets dismantled.</p><div><hr></div><h1>The defense worth taking seriously</h1><p>Here is the position to beat. Distribute cross-cutting work across the product squads. Engineers closest to the problem solve it. Don&#8217;t form a platform team until the cooperation model is visibly broken. Anything else is premature optimization.</p><p>A smart engineer reaches for that position for four good reasons.</p><p>It is defensible by experience. Below a certain scale &#8212; somewhere in the 20-engineer band &#8212; cooperation works without formal coordination, and forming a platform team there creates a ticket queue and makes the rest of the org passive. The right answer at that scale is <em>not</em> to build a platform team. Anyone who has watched a too-early platform team form has seen this fail.</p><p>It is defensible economically. A dedicated platform team is real headcount. A redistributed model adds zero. From a CFO seat, &#8220;let the engineers self-organize&#8221; is the default that doesn&#8217;t require a budget conversation, and the default usually wins.</p><p>It is defensible ideologically. The position that platform teams fail when they become ticket-driven infrastructure providers is correct, and any engineer who has read this topic for two years has internalized it. The federated, distributed-ownership model has real virtues. Under a manageable number of services, informal coordination genuinely works.</p><p>It is defensible psychologically. &#8220;Everyone pitches in&#8221; is a culture statement most leaders are proud of. Naming the work as platform work feels like admitting the org isn&#8217;t lean anymore.</p><p>In the rooms where I&#8217;ve watched this argument made, it&#8217;s always made well. The defense is real. It is also wrong above the threshold, in a way the smart engineer reaching for it has not yet noticed.</p><p>The defense conflates internal coordination <em>within</em> a squad with coordination <em>across</em> squads. The federated model handles the first cleanly. It compounds cost on the second.</p><p>&#8220;Premature optimization&#8221; is the wrong frame past the threshold. Below the band, yes &#8212; building a platform team there is a textbook over-rotation. Past it, the redistributed work is no longer optimization. It is accumulated debt being repaid, in installments, by the most expensive engineers in the org.</p><p>The federated argument also assumes information symmetry the org no longer has. Once you cross the threshold, no senior engineer can hold the state of what every other squad has already built. Squad 4 doesn&#8217;t know Squad 2 wrote the audit-logging helper last quarter. They write it again. The cost is the second writing.</p><p>Which leaves the structural question the redistributed model can&#8217;t answer at this scale: <em>who is responsible for the second writing of the same code?</em> The squad? The senior engineer? The org? The model has no answer because the model has no owner &#8212; and the cost lands wherever the answer would have been.</p><div><hr></div><h1>Three approaches, and the pattern</h1><p>Three approaches are on the table for an org at this scale. Each has a real case. Only one has a pattern that holds up over time.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lN5l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb315fec-fc7a-4bb0-9c92-132800b9a569_2380x982.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lN5l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb315fec-fc7a-4bb0-9c92-132800b9a569_2380x982.png 424w, https://substackcdn.com/image/fetch/$s_!lN5l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb315fec-fc7a-4bb0-9c92-132800b9a569_2380x982.png 848w, https://substackcdn.com/image/fetch/$s_!lN5l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb315fec-fc7a-4bb0-9c92-132800b9a569_2380x982.png 1272w, https://substackcdn.com/image/fetch/$s_!lN5l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb315fec-fc7a-4bb0-9c92-132800b9a569_2380x982.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lN5l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb315fec-fc7a-4bb0-9c92-132800b9a569_2380x982.png" width="1456" height="601" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cb315fec-fc7a-4bb0-9c92-132800b9a569_2380x982.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:601,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:477648,&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.backendplatform.dev/i/197079457?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb315fec-fc7a-4bb0-9c92-132800b9a569_2380x982.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_!lN5l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb315fec-fc7a-4bb0-9c92-132800b9a569_2380x982.png 424w, https://substackcdn.com/image/fetch/$s_!lN5l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb315fec-fc7a-4bb0-9c92-132800b9a569_2380x982.png 848w, https://substackcdn.com/image/fetch/$s_!lN5l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb315fec-fc7a-4bb0-9c92-132800b9a569_2380x982.png 1272w, https://substackcdn.com/image/fetch/$s_!lN5l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb315fec-fc7a-4bb0-9c92-132800b9a569_2380x982.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Approach A: The redistributed model (status quo)</strong></h2><p>Cross-cutting work is distributed across product squads. There is no formal platform charter. The senior engineer who cares most absorbs the cost. The advantages are real: zero new headcount, no team-formation tax, no bottleneck risk by construction. The disadvantages are also real, and they are the ones leaders have most trouble seeing. Cross-cutting decisions get made N times &#8212; once per squad &#8212; and converge only by accident or by a single heroic refactor. Quality drift is structural. Onboarding compounds.</p><p>One caveat deserves to land cleanly. Some orgs do achieve high platform quality through a federated ownership model &#8212; open-source-style internal contribution, strong RFC culture, well-curated shared libraries. The federated path to high platform quality is real, and where it works it is beautiful. It also requires a level of internal-tooling cultural maturity most orgs at this scale do not have. The argument here is about the median org, not every possible org.</p><h2><strong>Approach B: The virtual platform team</strong></h2><p>A few senior engineers are designated to spend a fixed fraction of their time on shared infra. No dedicated team. No separate roadmap. No new headcount line. Preserves the &#8220;everyone pitches in&#8221; culture. Lower political friction.</p><p>This approach has one consistent failure mode and you can predict it from the structure alone. Priority collisions are guaranteed &#8212; and when feature deadlines slip, the platform allocation is the first thing dropped. There is no continuous improvement because there is no continuous owner. The allocation trends toward zero within two to three quarters under sustained feature pressure, because there is nobody whose performance review depends on defending the platform work. As a transitional state for one or two quarters while a real team is being scoped, the virtual model has a job. As a steady state, it does not.</p><h2><strong>Approach C: The funded MVP platform team</strong></h2><p>Two or three engineers, dedicated, with an explicit charter, a roadmap, and kill-criteria, treated as an internal product team. Explicit ownership. Continuous improvement. The cost is now a budget line you can manage.</p><p>The cost is real. So is the risk of doing this badly. A significant fraction of platform teams fail to deliver measurable productivity gains, and the failure mode is consistent: over-staffed, over-scoped, and trending toward becoming the ticket queue the model warns against.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.backendplatform.dev/p/hidden-backend-platform-team?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.backendplatform.dev/p/hidden-backend-platform-team?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p>Then there is the pattern.</p><p>I&#8217;ve watched the redistributed model run for two years in orgs at this scale. The cost is consistent. It is several times what a funded MVP team would have cost, and the gap widens with each quarter the work stays unnamed. The redistributed cost isn&#8217;t proportional to headcount in the way most leaders intuitively expect &#8212; it compounds, because the second writing of the same code is the first installment of a longer payment plan, and the third writing is the second installment, and the cost arrives in disguise as slowed onboarding, missed deadlines, and senior-engineer attrition that nobody connects back to the source.</p><p>The gap is also widening, not narrowing, in the orgs I&#8217;ve watched recently. AI tooling amplifies whatever organizational system it inhabits. Where the platform foundation is intentional, AI compounds the gains. Where the foundation is fragmented, AI compounds the dysfunction &#8212; fragmented patterns get fragmented faster, drift accelerates, cleanup cost compounds.</p><p>The redistributed model was expensive two years ago. It is structurally more expensive now. It will be worse next year.</p><div><hr></div><h1>What I&#8217;d fund</h1><p>So here is the position, no hedging.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RiuI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3f668d-23fb-48e3-bd8c-840b18269530_2380x982.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RiuI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3f668d-23fb-48e3-bd8c-840b18269530_2380x982.png 424w, https://substackcdn.com/image/fetch/$s_!RiuI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3f668d-23fb-48e3-bd8c-840b18269530_2380x982.png 848w, https://substackcdn.com/image/fetch/$s_!RiuI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3f668d-23fb-48e3-bd8c-840b18269530_2380x982.png 1272w, https://substackcdn.com/image/fetch/$s_!RiuI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3f668d-23fb-48e3-bd8c-840b18269530_2380x982.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RiuI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3f668d-23fb-48e3-bd8c-840b18269530_2380x982.png" width="1456" height="601" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7d3f668d-23fb-48e3-bd8c-840b18269530_2380x982.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:601,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:432418,&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.backendplatform.dev/i/197079457?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3f668d-23fb-48e3-bd8c-840b18269530_2380x982.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_!RiuI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3f668d-23fb-48e3-bd8c-840b18269530_2380x982.png 424w, https://substackcdn.com/image/fetch/$s_!RiuI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3f668d-23fb-48e3-bd8c-840b18269530_2380x982.png 848w, https://substackcdn.com/image/fetch/$s_!RiuI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3f668d-23fb-48e3-bd8c-840b18269530_2380x982.png 1272w, https://substackcdn.com/image/fetch/$s_!RiuI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d3f668d-23fb-48e3-bd8c-840b18269530_2380x982.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Past the threshold where you have four or more product squads and the cross-cutting work is visibly fragmenting, fund a two-to-three-person platform team within two quarters. Not eight. Not zero. Two to three engineers, named charter, two-quarter prove-value runway, explicit kill-criteria.</p><p>The kill-criteria are what make the bet reversible. If, after two quarters, no measurable adoption metric has moved &#8212; golden-path uptake, onboarding-time delta, deduplication of named cross-cutting work &#8212; dissolve the team and revert to the federated model.</p><p>The two-engineer floor is small enough to make this reversible. Most platform teams that fail are over-staffed and politically irreversible by the third quarter. A two-person MVP can&#8217;t lock you in. The constraint is the feature.</p><p>On the threshold: I&#8217;m committing to the four-or-more-squads frame because that is the point where the redistributed cost first becomes irreversible, not the point where the argument is unambiguous. The argument gets unambiguous later, somewhere around eighty engineers. Below the band, the federated model genuinely works. Inside the band, leaders who wait for unambiguous evidence have already paid a year of redistributed cost they cannot recover.</p><p>The argument doesn&#8217;t survive serious scrutiny in the other direction. The redistributed cost runs several times the MVP team cost within a quarter at this scale, compounding.</p><p>The failure-rate caveat &#8212; that most platform teams don&#8217;t deliver measurable productivity gains &#8212; is real, and the answer is <em>scope discipline</em>, not <em>don&#8217;t form the team</em>. Most platform teams that fail are over-scoped, over-staffed, and become the ticket queue the model warns against. A two-or-three-person MVP cannot become a ticket queue. There isn&#8217;t enough team to absorb the requests. The constraint forces product discipline.</p><p>The political cost I&#8217;d accept: forming the team will hurt. Two of your most senior engineers will resist &#8212; the cross-cutting decisions are what they&#8217;re proudest of, and naming the work as platform work feels like a demotion of their most interesting problems. Their squads will complain. There will be a quarter of trust deficit while the new team finds its footing. Existing implementations will need migration paths, not just new patterns. None of this is free. The argument survives all of it.</p><p>I&#8217;ve watched this play out in other orgs at this scale, and the variable is never whether the redistributed cost is real. It&#8217;s only whether anyone says it out loud.</p><div><hr></div><h1>The pattern beyond platform</h1><p>Zoom out from platform engineering. Every engineering org has work that does not fit on a sprint board. Cross-service consistency. Compliance review prep. Audit log standardization. Onboarding documentation. Retry semantics. Error response shape. The standard observability footprint. None of this work belongs to a single product squad. All of it gets done &#8212; by someone, at some cost &#8212; whether the work is named or not.</p><p>That is the principle this case reveals.</p><p>Unnamed work doesn&#8217;t disappear; it gets redistributed. And redistributed cost has a specific operational property: you can&#8217;t measure it, you can&#8217;t optimize it, and you can&#8217;t reduce it &#8212; because it isn&#8217;t on a budget line anyone is reading. The work shows up in slipped deadlines, in onboarding times that crept from a couple of weeks to several, in a senior engineer&#8217;s calendar that&#8217;s somehow always full of &#8220;infra cleanup&#8221; they didn&#8217;t plan for. Every one of those signals is the cost arriving in disguise. The signal is not &#8220;we need a platform team.&#8221; The signal is &#8220;nobody owns this, and the org has stopped noticing.&#8221;</p><p>This pattern repeats outside platform engineering. It is the structural shape of every &#8220;we don&#8217;t need a dedicated team for that, our engineers self-organize&#8221; answer past the threshold where it actually works. Security review past a certain scale. Data quality past a certain number of product domains. Internal documentation past a certain service count. Each one starts as a thing the smart engineers absorb out of professional pride. Each one stops being absorbable at a different threshold, and most leaders cross that threshold without noticing.</p><p>Every time I&#8217;ve watched an engineering leader try to read this signal, the misread is the same: accumulation gets misread as growth. The threshold is rarely respected because crossing it isn&#8217;t a discrete event &#8212; it is an accumulation. The leader who learns to read accumulation as cost, not as growth, is the one who saves their org six months of redistributed work.</p><div><hr></div><h1>The question worth carrying</h1><p>Redistributed cost is still cost. You&#8217;re paying it. You&#8217;re just not seeing it on a budget line you can manage.</p><p>Here is the question worth carrying. Look at your last sprint review. How many of the things your senior engineers showed off were things three other senior engineers also did this quarter &#8212; and what is the time cost of that duplication? Don&#8217;t estimate. Actually count one example. The number you arrive at will be lower than the real number, and it will still be too big to ignore.</p><p>The harder question isn&#8217;t whether to fund the team. It is what to call the work once you&#8217;ve named it. &#8220;Platform&#8221; means several different things today, and most leadership conversations stall there &#8212; on the language, not the money. </p><p>For the EM reader without budget authority, there is a smaller version of the same conversation you can have this week without asking for headcount. Ask one senior engineer how many hours of their last sprint went to work no product squad asked for. Don&#8217;t push for a number. Just listen to the pause before they answer.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.backendplatform.dev/p/hidden-backend-platform-team?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Backend Platform! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.backendplatform.dev/p/hidden-backend-platform-team?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.backendplatform.dev/p/hidden-backend-platform-team?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item></channel></rss>