<?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[Crafting Platforms]]></title><description><![CDATA[Companion newsletter to the Crafting Platforms book. Notes on book progress, news and trends in Platform Engineering.]]></description><link>https://newsletter.craftingplatforms.com</link><image><url>https://substackcdn.com/image/fetch/$s_!hwPp!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9c62eab-b819-4141-ad4c-5e2122d4d3f7_1000x1000.png</url><title>Crafting Platforms</title><link>https://newsletter.craftingplatforms.com</link></image><generator>Substack</generator><lastBuildDate>Thu, 14 May 2026 10:13:54 GMT</lastBuildDate><atom:link href="https://newsletter.craftingplatforms.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Ezequiel Foncubierta]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[craftingplatforms@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[craftingplatforms@substack.com]]></itunes:email><itunes:name><![CDATA[Ezequiel Foncubierta]]></itunes:name></itunes:owner><itunes:author><![CDATA[Ezequiel Foncubierta]]></itunes:author><googleplay:owner><![CDATA[craftingplatforms@substack.com]]></googleplay:owner><googleplay:email><![CDATA[craftingplatforms@substack.com]]></googleplay:email><googleplay:author><![CDATA[Ezequiel Foncubierta]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Shipped 60 percent of the book]]></title><description><![CDATA[A quick update on the progress of the book and what's coming next]]></description><link>https://newsletter.craftingplatforms.com/p/shipped-60-percent-of-the-book</link><guid isPermaLink="false">https://newsletter.craftingplatforms.com/p/shipped-60-percent-of-the-book</guid><dc:creator><![CDATA[Ezequiel Foncubierta]]></dc:creator><pubDate>Mon, 13 Apr 2026 08:01:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!kdQw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea454942-f09b-4375-8591-a83bc7628417_2400x1599.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last weekend, I released a big update of the book, which included four new chapters:</p><ul><li><p>Chapter 3: Platform Notation</p></li><li><p>Chapter 4: Segmentation</p></li><li><p>Chapter 5: Identity and Access Management</p></li><li><p>Chapter 6: Infrastructure</p></li></ul><p>Let&#8217;s dig into the details of this update and what it means for the project.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kdQw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea454942-f09b-4375-8591-a83bc7628417_2400x1599.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kdQw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea454942-f09b-4375-8591-a83bc7628417_2400x1599.jpeg 424w, https://substackcdn.com/image/fetch/$s_!kdQw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea454942-f09b-4375-8591-a83bc7628417_2400x1599.jpeg 848w, https://substackcdn.com/image/fetch/$s_!kdQw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea454942-f09b-4375-8591-a83bc7628417_2400x1599.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!kdQw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea454942-f09b-4375-8591-a83bc7628417_2400x1599.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kdQw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea454942-f09b-4375-8591-a83bc7628417_2400x1599.jpeg" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ea454942-f09b-4375-8591-a83bc7628417_2400x1599.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:873581,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://newsletter.craftingplatforms.com/i/193989784?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea454942-f09b-4375-8591-a83bc7628417_2400x1599.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kdQw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea454942-f09b-4375-8591-a83bc7628417_2400x1599.jpeg 424w, https://substackcdn.com/image/fetch/$s_!kdQw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea454942-f09b-4375-8591-a83bc7628417_2400x1599.jpeg 848w, https://substackcdn.com/image/fetch/$s_!kdQw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea454942-f09b-4375-8591-a83bc7628417_2400x1599.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!kdQw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea454942-f09b-4375-8591-a83bc7628417_2400x1599.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Shipping like a boss. Photo by <a href="https://unsplash.com/@ventiviews?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Venti Views</a></figcaption></figure></div><h2>Platform Notation</h2><p>One of the biggest challenges I faced while writing this book was keeping it as agnostic from specific cloud providers as possible. Every provider&#8212;whether AWS, Azure, or GCP&#8212;has its own jargon and subtle behavioral differences (like Accounts vs. Subscriptions vs. Projects). To solve this, I decided to abstract the terminology we will use throughout the book by introducing a <strong>Platform Notation</strong>. </p><p>I explicitly didn&#8217;t want to use Terraform or other configuration languages because I want to abstract the reader from such complexities. You shouldn&#8217;t need to understand Terraform, Helm, or the like to read this book end-to-end. Instead, this notation is loosely based on the Golang type system, which I find simple and easy to read without all the boilerplate. Anyone familiar with a typed language will understand it quickly.</p><p>The notation is built on primitives like <strong>Types</strong> and <strong>Coordinates</strong>. For example, a type uses a functional syntax like <code>Name(Parameters)</code>:</p><ul><li><p><code>Group(Tenant = &#8220;payments&#8221;, Tier = &#8220;live&#8221;, Role = &#8220;admin&#8221;)</code></p></li><li><p>Using positional inference, this becomes even cleaner: <code>Group(&#8221;payments&#8221;, &#8220;live&#8221;, &#8220;admin&#8221;)</code></p></li></ul><p>The most important concept introduced in this chapter is the <strong>coordinate</strong>. A coordinate acts as an address for every resource in the platform, expressed as a tuple. Since every resource needs to land <em>somewhere</em>, this coordinate system will become extremely relevant in the next chapter (Segmentation) and will be used everywhere to define boundaries and placements. For example:</p><ul><li><p><code>(&#8221;ecommerce&#8221;, &#8220;live&#8221;, &#8220;eu01&#8221;, &#8220;payments&#8221;)</code> &#8212; A fully resolved address.</p></li><li><p><code>(&#8221;platform&#8221;, &#8220;live&#8221;, _, _)</code> &#8212; An address that ignores the regional and tenant dimensions.</p></li></ul><p>I&#8217;m still figuring out the <strong>Associations</strong> part of the notation (how we express relationships between resources). As I write the book and start relating more resources, I&#8217;ll see what symbols are easiest to read. For now, we are experimenting with simple operators like <code>in</code> for hierarchy or <code>&lt;</code>&#8594; for connectivity (e.g., <code>Spoke(...) &lt;-&gt; Hub(...)</code>).</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.craftingplatforms.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Crafting Platforms! Subscribe for free.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Segmentation</h2><p>Segmentation is actually the reason why I started writing this book. When you read about platform engineering, there isn&#8217;t much written about this topic&#8212;you usually have to figure it out yourself. In my opinion, it is one of those things you need to put on the table from day one, even if you don&#8217;t implement it fully right away. Migrating to a different segmentation model later on is extremely costly, and you want to avoid that pain. You don&#8217;t need to over-engineer it, but you absolutely need to design around it as soon as possible.</p><p>Segmentation solves critical problems in modern infrastructure: it drastically reduces the <strong>blast radius</strong> of failures, lowers <strong>cognitive load</strong> by giving developers a narrower environment to think about, ensures <strong>security and compliance</strong>, and allows you to apply different rules for different contexts.</p><p>In the book, we configure segmentation across four primary dimensions: <strong>Sector</strong>, <strong>Tier</strong>, <strong>Region</strong>, and <strong>Tenant</strong>. You can mix and match these, or expand them to better align with your organization, but I&#8217;ve found these four give enough flexibility for most companies. For example, you might have an internal <code>Sector(&#8221;platform&#8221;)</code> and a business <code>Sector(&#8221;ecommerce&#8221;)</code>, separated into <code>Tier(&#8221;sandbox&#8221;)</code> and <code>Tier(&#8221;live&#8221;)</code> environments. </p><p>The key takeaway is that by using these dimensions, we create clear boundaries (what the book calls Core Space and Tenant Space). Everything we build in the following chapters will rely on these boundaries, meaning our platform is segmented by design. We will discuss segmentation and the nuances of these dimensions in more detail in dedicated articles in the near future.</p><h2>Identity and Access Management</h2><p>This chapter is still a work in progress, but it already covers the essential building blocks for protecting platform resources. While I&#8217;ve left out general user management (which typically falls under the IT team&#8217;s responsibilities), I&#8217;ve focused on what&#8217;s critical for platform engineering: <strong>Groups, Roles, and Federated Identity</strong>.</p><p>To keep things simple and secure, I&#8217;ve standardized on four basic roles:</p><ul><li><p><code>Role(&#8221;reader&#8221;)</code>: The default standing access for everyone&#8212;enough for 90% of daily troubleshooting.</p></li><li><p><code>Role(&#8221;contributor&#8221;)</code>: Used for active troubleshooting or manual operations.</p></li><li><p><code>Role(&#8221;admin&#8221;)</code>: High-privilege access for emergency situations or initial setup.</p></li><li><p><code>Role(&#8221;operator&#8221;)</code>: Reserved exclusively for automation and CI/CD runners (no human members).</p></li></ul><p>A key highlight of this chapter is the <strong>Just-in-Time (JIT) access</strong> process. We&#8217;ve moved away from &#8220;standing privileges&#8221; where people have permanent write access. Instead, everyone is a &#8220;Reader&#8221; by default. When you need to escalate your privileges to a Contributor or Admin role, you do so for a limited time window with a mandatory justification. This ensures every elevated action is properly audited and significantly reduces the attack surface of the platform.</p><p>We also dive into <strong>Federated Identity</strong>, which allows our CI/CD runners and applications to authenticate without using long-lived, static API keys. By using short-lived, cryptographically-proven tokens, we eliminate the risk of leaked secrets sitting in your GitHub or GitLab variables for years.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.craftingplatforms.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Crafting Platforms! Subscribe for free.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Infrastructure</h2><p>Finally, the infrastructure chapter. This one is also still a work in progress, but it tackles how we actually land our workloads in the cloud. We focus on using cloud primitives&#8212;like Accounts, Subscriptions, and Projects&#8212;to create hard isolation boundaries that align perfectly with our Sector, Tier, and Tenant dimensions.</p><p>A big part of this chapter is dedicated to <strong>Networking</strong>. We dive into multi-region setups using the <strong>Hub and Spoke</strong> model. This architecture ensures that different networks remain isolated by default, while providing a centralized place to route traffic only when absolutely necessary&#8212;without having to manage a mess of sophisticated routing tables or brittle firewall rules.</p><p>When it comes to <strong>Compute</strong>, I make a strong case for using <strong>Kubernetes</strong> as the primary abstraction layer. It provides a well-defined, industry-standard interface that prevents you from &#8220;reinventing the wheel&#8221; while abstracting away the specifics of your cloud provider. That said, Kubernetes isn&#8217;t mandatory; if your organization prefers ECS, ACA, or even Virtual Machines, that&#8217;s fine too. The most important thing is that whatever compute model you choose, it must be properly <strong>standardized and abstracted</strong> so your development teams can focus on building products, not managing servers.</p><h2>What&#8217;s Next?</h2><p>With 60% of the book completed, the foundation is now solid. We have our notation, our segmentation strategy, our identity layer, and our core infrastructure. In the coming weeks, I&#8217;ll be finishing up these chapters and moving into:</p><ul><li><p> Chapter 7: CI/CD</p></li><li><p>Chapter 8: Observability</p></li><li><p>Chapter 9: Security and Compliance</p></li><li><p>Chapter 10: Developer Experience (DevEx)</p></li></ul><p>That&#8217;s all for now!</p><div><hr></div><p>If you have come this far, here is a gift: <a href="https://book.craftingplatforms.com">book.craftingplatforms.com</a>. You can still purchase the early access to get the ebook, but I am publishing an online version too for everyone to read. Early access buyers will get exclusive Crafting Platform content. This will be announced next week.</p>]]></content:encoded></item><item><title><![CDATA[New AI Direction for Crafting Platforms]]></title><description><![CDATA[Why I'm building a dual product: a book for humans and a codebase for AI agents]]></description><link>https://newsletter.craftingplatforms.com/p/new-ai-direction-for-crafting-platforms</link><guid isPermaLink="false">https://newsletter.craftingplatforms.com/p/new-ai-direction-for-crafting-platforms</guid><dc:creator><![CDATA[Ezequiel Foncubierta]]></dc:creator><pubDate>Sun, 05 Apr 2026 08:02:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!uiEi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F683176d2-1dfd-41de-935b-9b55357eeaf9_2740x1830.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If things have been quiet here lately, it wasn&#8217;t because I abandoned the project.</p><p>Over the last few months, I&#8217;ve been balancing my professional life with a degree in physics. It&#8217;s been intense, but I&#8217;ve kept working on <em>Crafting Platforms</em> at a slow and steady pace. The vision hasn&#8217;t changed, but the world around us certainly has.</p><p>I am back now, more active than ever, and I have decided to shift direction for how I write this book and who the code is 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_!uiEi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F683176d2-1dfd-41de-935b-9b55357eeaf9_2740x1830.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uiEi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F683176d2-1dfd-41de-935b-9b55357eeaf9_2740x1830.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uiEi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F683176d2-1dfd-41de-935b-9b55357eeaf9_2740x1830.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uiEi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F683176d2-1dfd-41de-935b-9b55357eeaf9_2740x1830.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uiEi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F683176d2-1dfd-41de-935b-9b55357eeaf9_2740x1830.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uiEi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F683176d2-1dfd-41de-935b-9b55357eeaf9_2740x1830.jpeg" width="1456" height="972" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/683176d2-1dfd-41de-935b-9b55357eeaf9_2740x1830.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:972,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1029323,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://newsletter.craftingplatforms.com/i/193186112?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F683176d2-1dfd-41de-935b-9b55357eeaf9_2740x1830.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uiEi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F683176d2-1dfd-41de-935b-9b55357eeaf9_2740x1830.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uiEi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F683176d2-1dfd-41de-935b-9b55357eeaf9_2740x1830.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uiEi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F683176d2-1dfd-41de-935b-9b55357eeaf9_2740x1830.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uiEi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F683176d2-1dfd-41de-935b-9b55357eeaf9_2740x1830.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@microsoftcopilot?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Microsoft Copilot</a> on <a href="https://unsplash.com/photos/person-working-at-desk-with-laptop-and-phone-oTDuuLUhH20?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure></div><p>I&#8217;ve decided to rely heavily on AI throughout the entire lifecycle of <em>Crafting Platforms:</em> research, writing, review, editing, translation, and publishing. This doesn&#8217;t mean the writing is unattended. The ideas, the hard-earned lessons, and the platform engineering experience are entirely my own. </p><p>I&#8217;ve spent time extracting my voice and writing extensive reference materials to ensure consistency. The AI is an accelerator, not an author. To be completely transparent, I will share the process and code I use for this AI-assisted workflow. If you are interested in how the sausage is made&#8212;and how I ensure the materials remain legit&#8212;I&#8217;ll be opening that up soon.</p><p>This shift extends to the source code itself. <em>Crafting Platforms</em> is no longer just a book. It is a product with two distinct audiences. </p><p>The book is for humans. The repository is for AI agents.</p><p>Instead of providing brittle, vendor-specific Terraform templates that would be outdated the moment they were published, I am building a set of skills, agents, and commands in our repository: <a href="https://github.com/craftingplatforms/ai">github.com/craftingplatforms/ai</a>. </p><p>These artifacts teach AI agents the underlying principles of platform craftsmanship, allowing them to build solutions tailored to your unique environment. People and machines consume information in different ways, and we are finally designing for both.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.craftingplatforms.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Join the growing community of platform engineers today.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>This is just the beginning. I have been working in the background to bring you more content faster, and next week, there are two big releases:</p><p>1.  <strong>The Online Edition:</strong> I will be launching the online version of the book, which will be updated regularly as new material is ready.</p><p>2.  <strong>New Chapters:</strong> I am releasing Chapter 3 (Segmentation) and Chapter 5 (Infrastructure). There will be a new Chapter 4 (Identity and Access Management), still in draft.</p><p>This brings us to a significant milestone: 5 chapters in total (excluding the preface) and more than 100 pages of content. Not bad, right? That&#8217;s about 50% of the book.</p><p>We are moving from writing boilerplate configuration to defining strategic guidance. The book teaches you&#8212;the human&#8212;the principles of platform craftsmanship. The accompanying AI artifacts teach your agents how to implement those patterns efficiently.</p><p>I believe this dual approach is the future of technical books. On one side, I&#8217;ll teach humans how to think about platforms. On the other hand, I&#8217;ll teach machines how to build them. It&#8217;s funny because it will be like having a virtual me as your platform consultant available 24/7.</p><p>That&#8217;s all for now.</p>]]></content:encoded></item><item><title><![CDATA[Chapter 2 Is Hot Off The Press]]></title><description><![CDATA[This chapter on Internal Developer Platform will set the foundations of what's to come in the following chapters]]></description><link>https://newsletter.craftingplatforms.com/p/chapter-2-is-ready</link><guid isPermaLink="false">https://newsletter.craftingplatforms.com/p/chapter-2-is-ready</guid><dc:creator><![CDATA[Ezequiel Foncubierta]]></dc:creator><pubDate>Sun, 21 Dec 2025 08:00:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Rvn3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de5d53e-41bb-44ec-a7b0-94b14d13ab28_6016x4016.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It&#8217;s been a few weeks working on the second chapter of the book. <a href="https://newsletter.craftingplatforms.com/p/internal-developer-platform">In my previous newsletter</a>, I discussed how this chapter was repurposed from Platform as a Product to an <em>Internal Developer Platform.</em> Now that it&#8217;s finished, I wanted to share some insights about the chapter and what you can expect from it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Rvn3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de5d53e-41bb-44ec-a7b0-94b14d13ab28_6016x4016.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Rvn3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de5d53e-41bb-44ec-a7b0-94b14d13ab28_6016x4016.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Rvn3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de5d53e-41bb-44ec-a7b0-94b14d13ab28_6016x4016.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Rvn3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de5d53e-41bb-44ec-a7b0-94b14d13ab28_6016x4016.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Rvn3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de5d53e-41bb-44ec-a7b0-94b14d13ab28_6016x4016.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Rvn3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de5d53e-41bb-44ec-a7b0-94b14d13ab28_6016x4016.jpeg" width="1456" height="972" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3de5d53e-41bb-44ec-a7b0-94b14d13ab28_6016x4016.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:972,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2215627,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://newsletter.craftingplatforms.com/i/182158556?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de5d53e-41bb-44ec-a7b0-94b14d13ab28_6016x4016.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Rvn3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de5d53e-41bb-44ec-a7b0-94b14d13ab28_6016x4016.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Rvn3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de5d53e-41bb-44ec-a7b0-94b14d13ab28_6016x4016.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Rvn3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de5d53e-41bb-44ec-a7b0-94b14d13ab28_6016x4016.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Rvn3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3de5d53e-41bb-44ec-a7b0-94b14d13ab28_6016x4016.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Chapter 2 is hot off the press. Photo by <a href="https://unsplash.com/@bank_phrom?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Bank Phrom</a> on <a href="https://unsplash.com/photos/printing-machine-Tzm3Oyu_6sk?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure></div><p>An Internal Developer Platform (IDP) is a curated set of tools, services, and processes that enable development teams to build, deploy, and manage applications efficiently. More precisely, it integrates an organization's technologies into <strong>golden paths</strong> that reduce cognitive load and enable self-service. This is not a concept I coined for this book. That&#8217;s what people in the industry have been calling it for a few years now. And I think the name captures well the essence of what we are trying to achieve.</p><p>You might wonder how an IDP differs from a Platform as a Service (PaaS) offering such as Heroku or Render. The distinction is customization and control. A commercial PaaS is a one-size-fits-all solution &#8212;you adapt to it. An IDP is tailored to your organization&#8217;s specific needs, technologies, and constraints. You build it, you own it, you evolve it based on feedback from your developers.</p><p>In this chapter, I outline my view of an IDP we will build throughout the book and explore the product mindset required to succeed in this journey. Building a platform is not just a technical challenge. It&#8217;s a cultural and organizational one. The mindset shift is crucial: the platform team doesn&#8217;t provide servers, it enables paths for development teams to do it themselves. The easy path has to be the right path.</p><p>I also outline some friction points I have encountered in my experience building platforms. If you don&#8217;t build the right thing at the right time, the platform will unavoidably fail. The developers won&#8217;t use it, and all your effort will be wasted.</p><p>I am pleased with the result of this chapter. It sets the foundation for everything that follows. The remaining chapters will dive into implementation: segmentation, infrastructure, CI/CD, observability, security, and developer experience. Each one builds on the product mindset established here.</p><p>That&#8217;s all for now.</p><div><hr></div><p>You can join the early access program to get access to this chapter and the rest of the book as they are published. Visit <a href="https://leanpub.com/crafting-platforms">leanpub.com/crafting-platforms</a> to purchase it and support my work.<br><br>If you want a taste before purchasing it, I am giving away the <strong>first two chapters FOR FREE</strong> to newsletter subscribers. To get your copy, subscribe, and you&#8217;ll receive a download link in the welcome email.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.craftingplatforms.com/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://newsletter.craftingplatforms.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Golden Paths and Guardrails]]></title><description><![CDATA[Finding the sweet spot between flexibility and restrictions]]></description><link>https://newsletter.craftingplatforms.com/p/golden-paths-and-guardrails</link><guid isPermaLink="false">https://newsletter.craftingplatforms.com/p/golden-paths-and-guardrails</guid><dc:creator><![CDATA[Ezequiel Foncubierta]]></dc:creator><pubDate>Sun, 14 Dec 2025 08:01:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!680m!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177445e8-a3b6-4f87-9f29-44d55c2bdbbf_1600x1201.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>One of the fundamentals of an <a href="https://newsletter.craftingplatforms.com/p/internal-developer-platform">Internal Developer Platform</a> is enabling self-service for development teams. There&#8217;s often a misconception, though, that self-service means giving developers unrestricted access to all the underlying infrastructure and tools. That approach usually leads to complexity, confusion, and&#8212;ultimately&#8212;low platform adoption. In fact, if access is completely unrestricted, what&#8217;s the point of having a platform at all?</p><p>I like to think of self-service as a buffet in a restaurant. You&#8217;re presented with a variety of already prepared dishes. You don&#8217;t need to know how to cook them. You pick what you want, and it&#8217;s ready to eat. The kitchen staff has done the hard work so you can enjoy the results without the hassle.</p><p>Now, maybe you&#8217;d like a variation of a particular dish. You can ask the cook whether it can be customized, but it might take longer or incur additional costs. Or maybe you want to cook the same dish at home. In that case, you can ask for the recipe and ingredients, but you&#8217;re responsible for cooking and handling any mistakes along the way.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!680m!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177445e8-a3b6-4f87-9f29-44d55c2bdbbf_1600x1201.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!680m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177445e8-a3b6-4f87-9f29-44d55c2bdbbf_1600x1201.png 424w, https://substackcdn.com/image/fetch/$s_!680m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177445e8-a3b6-4f87-9f29-44d55c2bdbbf_1600x1201.png 848w, https://substackcdn.com/image/fetch/$s_!680m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177445e8-a3b6-4f87-9f29-44d55c2bdbbf_1600x1201.png 1272w, https://substackcdn.com/image/fetch/$s_!680m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177445e8-a3b6-4f87-9f29-44d55c2bdbbf_1600x1201.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!680m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177445e8-a3b6-4f87-9f29-44d55c2bdbbf_1600x1201.png" width="1456" height="1093" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/177445e8-a3b6-4f87-9f29-44d55c2bdbbf_1600x1201.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1093,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A Blessing for the Yellow Brick Road Journey &#8211; Spiritflow&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A Blessing for the Yellow Brick Road Journey &#8211; Spiritflow" title="A Blessing for the Yellow Brick Road Journey &#8211; Spiritflow" srcset="https://substackcdn.com/image/fetch/$s_!680m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177445e8-a3b6-4f87-9f29-44d55c2bdbbf_1600x1201.png 424w, https://substackcdn.com/image/fetch/$s_!680m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177445e8-a3b6-4f87-9f29-44d55c2bdbbf_1600x1201.png 848w, https://substackcdn.com/image/fetch/$s_!680m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177445e8-a3b6-4f87-9f29-44d55c2bdbbf_1600x1201.png 1272w, https://substackcdn.com/image/fetch/$s_!680m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177445e8-a3b6-4f87-9f29-44d55c2bdbbf_1600x1201.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>In the context of an Internal Developer Platform, we call these dishes <strong><a href="https://www.vmware.com/topics/golden-paths">golden paths</a></strong>. Golden paths are well-defined, tested (and tasty!), and documented approaches to everyday tasks. They should cover the most frequent use cases and be easy to follow. They&#8217;re intentionally opinionated. They guide developers toward best practices and reduce the cognitive load of infrastructure and tooling decisions.</p><p>At the same time, flexibility matters. If a developer needs to deviate from the golden path, they should be able to, but with the understanding that they&#8217;re taking on more responsibility for the outcome.</p><p>Golden paths come in many forms, depending on an organization&#8217;s needs and context. Some common examples include:</p><ul><li><p><strong>Module libraries<br></strong>Predefined infrastructure-as-code modules (for example, Terraform modules or Helm charts) that allow developers to provision resources consistently and securely. A PostgreSQL module, for instance, might ask only for a name, size, and region, while handling backups, monitoring, and security by default&#8212;yet still allowing advanced customization when needed.</p></li><li><p><strong>CI/CD pipelines</strong><br>Preconfigured pipelines that automate build, test, and deployment workflows. For example, a pipeline that builds a Docker image for a .NET application, runs tests, and pushes it to a registry on every merge to main. Developers can use it as-is or extend it for more advanced scenarios.</p></li><li><p><strong>Service templates</strong><br>Standardized templates for deploying services. Think of a Kubernetes-based web application template with autoscaling and monitoring baked in. Developers provide the application code and choose a framework (Node.js, Python, Java, etc.), and the platform handles the rest.</p></li><li><p><strong>SDKs</strong><br>Well-designed SDKs that abstract infrastructure concerns behind simple interfaces. For example, an SDK for emitting structured logs or telemetry without forcing developers to understand the details of OpenTelemetry.</p></li></ul><p>As platform engineers, our mission is to offload complexity and decision-making from development teams and lower their cognitive load. But it&#8217;s essential to be clear that golden paths are not about restricting creativity or autonomy. If we&#8217;re too restrictive, the platform becomes a <strong>golden cage</strong>. Developers will feel constrained and eventually look for ways around it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.craftingplatforms.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe now and receive two chapters of the book for free.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>This is where <strong>guardrails</strong> come into play.</p><p>Guardrails define the boundaries of acceptable behavior on the platform. They prevent choices that could compromise security, reliability, or maintainability. A guardrail might block deployments to unapproved regions, prevent resource starvation in shared clusters, enforce backups on critical databases, or require security scans before releasing to production.</p><p>We don&#8217;t implement guardrails to limit developers. We do it to protect the company&#8217;s assets, reputation, and compliance posture. Like guardrails on a road, they don&#8217;t stop you from reaching your destination. They keep you from veering off the road and crashing.</p><p>Guardrails can be implemented at different layers. In general, the higher the layer (e.g., preventive policies enforced by the cloud provider, or admission controllers in Kubernetes), the harder it is to bypass and the more effective it tends to be. Lower-level guardrails (such as defaults in modules) are easier to work around and to evolve.</p><p>There is no perfect balance that works for everyone, and you will need to navigate and evaluate trade-offs as you develop and evolve the platform. In the first few iterations, you will be more permissive on what teams can do. But as you mature the platform, you won&#8217;t allow certain activities, or if you do, you want to have complete control over them.</p><p>That&#8217;s all for now.</p><p>P.S. Chapter two of <a href="https://craftingplatforms.com/">Crafting Platforms</a> will be published by the end of this week. Stay tuned!</p>]]></content:encoded></item><item><title><![CDATA[Reframing "Platform" as "Internal Developer Platform"]]></title><description><![CDATA[The foundations and framework that will guide the platform&#8217;s development]]></description><link>https://newsletter.craftingplatforms.com/p/internal-developer-platform</link><guid isPermaLink="false">https://newsletter.craftingplatforms.com/p/internal-developer-platform</guid><dc:creator><![CDATA[Ezequiel Foncubierta]]></dc:creator><pubDate>Sun, 30 Nov 2025 08:01:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!3RHn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f27e40-c827-4036-8c37-0cc297d0b87a_614x346.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The second chapter of the book was initially meant to focus on <em>Platform as a Product</em>, but while I was writing it, I realized that I needed to go deeper into the foundations first. Without that, key ideas would be missing or misplaced. So I decided to rename the chapter to <strong>Internal Developer Platform</strong>, keeping the &#8220;platform as a product&#8221; perspective as a section within it. After all, that&#8217;s what we&#8217;re building throughout the book, and dedicating a chapter to defining it sets the stage properly.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3RHn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f27e40-c827-4036-8c37-0cc297d0b87a_614x346.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3RHn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f27e40-c827-4036-8c37-0cc297d0b87a_614x346.png 424w, https://substackcdn.com/image/fetch/$s_!3RHn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f27e40-c827-4036-8c37-0cc297d0b87a_614x346.png 848w, https://substackcdn.com/image/fetch/$s_!3RHn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f27e40-c827-4036-8c37-0cc297d0b87a_614x346.png 1272w, https://substackcdn.com/image/fetch/$s_!3RHn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f27e40-c827-4036-8c37-0cc297d0b87a_614x346.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3RHn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f27e40-c827-4036-8c37-0cc297d0b87a_614x346.png" width="614" height="346" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/94f27e40-c827-4036-8c37-0cc297d0b87a_614x346.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:346,&quot;width&quot;:614,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:135915,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://newsletter.craftingplatforms.com/i/180265045?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f27e40-c827-4036-8c37-0cc297d0b87a_614x346.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_!3RHn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f27e40-c827-4036-8c37-0cc297d0b87a_614x346.png 424w, https://substackcdn.com/image/fetch/$s_!3RHn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f27e40-c827-4036-8c37-0cc297d0b87a_614x346.png 848w, https://substackcdn.com/image/fetch/$s_!3RHn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f27e40-c827-4036-8c37-0cc297d0b87a_614x346.png 1272w, https://substackcdn.com/image/fetch/$s_!3RHn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f27e40-c827-4036-8c37-0cc297d0b87a_614x346.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><blockquote><p>An <strong>Internal Developer Platform (IDP)</strong> is a curated set of tools, services, and processes that enable development teams to build, deploy, and operate applications efficiently.</p></blockquote><p>More precisely, it brings together the technologies an organization uses into <strong>golden paths</strong> that reduce cognitive load and enable self-service. I didn&#8217;t coin this term. That&#8217;s how <a href="https://www.atlassian.com/developer-experience/internal-developer-platform">the industry has referred to this concept</a> for years, and I think the name captures well the essence of what we&#8217;re trying to achieve.</p><p>You might wonder how an IDP differs from a <a href="https://en.wikipedia.org/wiki/Platform_as_a_service">Platform-as-a-Service</a> (PaaS) like <a href="https://www.heroku.com/">Heroku</a> or <a href="https://render.com/">Render</a>. The distinction lies in <strong>customization and control</strong>. A commercial PaaS is a one-size-fits-all solution &#8212;you adapt to it. An IDP, instead, is tailored to your organization&#8217;s specific needs, technologies, and constraints. You build it, you own it, and you evolve it based on your developers' feedback.</p><p>In this chapter, I explain my view of the IDP we&#8217;ll be building throughout the book and explore the <strong>product mindset</strong> necessary to succeed on that journey. Building a platform isn&#8217;t just a technical challenge &#8212;it&#8217;s a cultural and organizational one. The mindset shift is crucial. The platform team doesn&#8217;t <em>provide servers, but</em> <em>it enables development teams to do so</em> themselves. The easy path has to be the right path.</p><p>One key insight I discuss is the <strong><a href="https://newsletter.craftingplatforms.com/p/understanding-engineering-momentum">Engineering Momentum Problem</a></strong>. Even a well-designed platform can fail if you underestimate developer inertia. You can&#8217;t enforce adoption overnight. Instead, you apply steady, continuous pressure through documentation, support, golden paths, and quick wins, until the platform stops feeling like an imposition and becomes an obvious improvement.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.craftingplatforms.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe now and receive two chapters of the book for free.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I&#8217;m not a product management expert, but I&#8217;ve learned a few lessons the hard way. This chapter isn&#8217;t a masterclass about it. It&#8217;s a collection of practical insights and recommendations that helped me navigate the complexities of building platforms that developers actually want to use.</p><p>The chapter also introduces the <strong>fundamentals</strong> every platform needs: a clear vision, a strategy (including segmentation decisions that are hard to change later), measurable objectives tied to business outcomes, and a flexible roadmap.</p><p>I also briefly touch on <strong>capabilities</strong>, the building blocks of any IDP. We&#8217;ll explore them in depth later in dedicated chapters, but for now, think of them as layers or planes: Infrastructure &amp; Resources, Integration &amp; Delivery (CI/CD), Observability, Security &amp; Compliance, and Developer Experience. You don&#8217;t build them all on day one. You start with an MVP that addresses your developers&#8217; most pressing pain points and iterate from there.</p><p>Speaking of <strong>Developer Experience</strong>. A platform with excellent capabilities but poor DevEx will struggle to gain adoption. A platform with modest capabilities but great DevEx will thrive. If developers don&#8217;t <em>want</em> to use your platform, it doesn&#8217;t matter how technically impressive it is.</p><p>Finally, I cover <strong>metrics</strong>. The DORA metrics: deployment frequency, lead time, change failure rate, and mean time to recovery. They are a good starting point. </p><p>This chapter sets the foundation for everything that follows. The next chapters will dive into implementation: segmentation, infrastructure, CI/CD, observability, security, and developer portals. Each one builds on the product mindset established here.</p><p>As always, I&#8217;d love to hear your thoughts. What challenges have you faced when building internal platforms? What worked, and what didn&#8217;t? I read you in the comments.</p><p>The second chapter will be released as promised in December. I&#8217;ll keep you posted.</p><p>That&#8217;s all for now.</p><div><hr></div><p>Note: a reminder that you can still get the first two chapters <strong>for free</strong> if you subscribe to this newsletter today.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.craftingplatforms.com/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://newsletter.craftingplatforms.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Understanding Engineering Momentum]]></title><description><![CDATA[The physics behind why platform adoption is harder than it looks]]></description><link>https://newsletter.craftingplatforms.com/p/understanding-engineering-momentum</link><guid isPermaLink="false">https://newsletter.craftingplatforms.com/p/understanding-engineering-momentum</guid><dc:creator><![CDATA[Ezequiel Foncubierta]]></dc:creator><pubDate>Sun, 23 Nov 2025 09:03:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!S47f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2318d02-5cd3-4984-8731-88c7fc424abf_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>One of the mantras we repeat when building a platform is that we must treat it as a product. In practice, what we really mean is that we must <em>put developers at the center of everything</em>. But as you go deeper into the platform journey, you start realizing something important &#8212; a platform is not a normal product.</p><p>It doesn&#8217;t simply &#8220;fill a gap&#8221; the engineering team has, like a CI/CD system or an observability tool. A platform appears as a response to the <em>dysfunctions</em> of the engineering organization itself. A tiny startup with three engineers and zero process doesn&#8217;t need a platform. The need emerges later, when complexity starts multiplying and the company can&#8217;t move fast anymore.</p><p>Platform engineering looks great on paper. But in real life? It&#8217;s messy.</p><p>When you start in your platform journey, you will probably inherit systems, processes, cultural habits, expectations, deadlines, fires to put out. Everything is already in motion. And anything that tries to change that motion will face resistance.</p><p>I call this <strong>Engineering Momentum</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!S47f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2318d02-5cd3-4984-8731-88c7fc424abf_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!S47f!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2318d02-5cd3-4984-8731-88c7fc424abf_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!S47f!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2318d02-5cd3-4984-8731-88c7fc424abf_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!S47f!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2318d02-5cd3-4984-8731-88c7fc424abf_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!S47f!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2318d02-5cd3-4984-8731-88c7fc424abf_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!S47f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2318d02-5cd3-4984-8731-88c7fc424abf_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d2318d02-5cd3-4984-8731-88c7fc424abf_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:553478,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://newsletter.craftingplatforms.com/i/179706207?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2318d02-5cd3-4984-8731-88c7fc424abf_1536x1024.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_!S47f!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2318d02-5cd3-4984-8731-88c7fc424abf_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!S47f!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2318d02-5cd3-4984-8731-88c7fc424abf_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!S47f!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2318d02-5cd3-4984-8731-88c7fc424abf_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!S47f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2318d02-5cd3-4984-8731-88c7fc424abf_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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>Understanding Momentum</h1><p>In physics, momentum (&#8220;quantity of motion&#8221;) is the product of mass and velocity:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;p = mv&quot;,&quot;id&quot;:&quot;GHATZOJIWB&quot;}" data-component-name="LatexBlockToDOM"></div><p>A fully loaded cargo ship traveling at cruising speed has <em>enormous</em> momentum, because of its huge mass. You can&#8217;t simply turn the wheel and expect the vessel to pivot sharply. It will fight you. It wants to keep going straight. To change its direction, you need to apply a gentle, continuous force over a long arc &#8212;sometimes with the help of a tugboat&#8212; to slowly bend its trajectory. There is no such thing as a sudden 90-degree turn in a ship that size.</p><p>Engineering is exactly the same.</p><p>Teams have <strong>mass</strong>:</p><ul><li><p>people</p></li><li><p>habits</p></li><li><p>inherited processes</p></li><li><p>legacy tools</p></li><li><p>technology they&#8217;ve accumulated</p></li><li><p>interdependencies</p></li><li><p>historical decisions (that no one fully remembers)</p></li></ul><p>And they also have <strong>velocity</strong>:</p><ul><li><p>roadmaps</p></li><li><p>deadlines</p></li><li><p>commitments already made</p></li><li><p>business pressure</p></li><li><p>operational load</p></li></ul><p>The bigger the mass and the faster the velocity, the greater the momentum. And the harder it is to change direction.</p><p>This isn&#8217;t just a cute analogy. It&#8217;s physics!. It&#8217;s exactly what happens in any technological transformation. And somehow, nobody talks about it explicitly.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.craftingplatforms.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe now and receive two chapters of the book for free.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h1>Ignore Momentum and You Will Fail</h1><p>This is, in my opinion, where many platform teams &#8212; and many internal improvement initiatives &#8212; crash.</p><p>There&#8217;s this assumption that &#8220;if the platform is great, people will naturally adopt it.&#8221; But that ignores the thing that dominates everything: <strong>engineering momentum</strong>.</p><p>You don&#8217;t walk into an organization, disappear for a year to build &#8220;the perfect platform,&#8221; and then return saying: &#8220;You can migrate now.&#8221; Because what you&#8217;ll find when you arrive is:</p><ul><li><p>legacy systems</p></li><li><p>tangled processes</p></li><li><p>delivery pressure</p></li><li><p>competing priorities</p></li><li><p>habits cemented over years</p></li></ul><p>And ironically, <em>those</em> are the very reasons the platform needs to exist. You want to simplify, standardize, reduce friction. But you cannot design a platform while pretending the real-world mess doesn&#8217;t exist and believing it will magically vanish once everyone migrates.</p><p>A platform introduces friction &#8212; even when perfectly designed.</p><blockquote><p>No matter how good the platform is, if adopting it demands extra effort during a period of high load, teams will resist.</p></blockquote><p>Sometimes consciously. Sometimes culturally. Sometimes without even noticing.</p><p>That&#8217;s momentum.</p><h1>The Correcting Force</h1><p>I&#8217;ve faced this several times, and in retrospective, it&#8217;s one of the most fascinating aspects of platform engineering. Sometimes it&#8217;s even more rewarding than the technical challenge.</p><p>Because a platform changes how teams work. It introduces new workflows, new tools, new rules. And that affects team velocity, mental energy, and psychological safety. It&#8217;s no surprise that <em><a href="https://en.wikipedia.org/wiki/Change_fatigue">change fatigue</a></em> is such a common phenomenon.</p><p>This is why disappearing to build the &#8220;ideal platform&#8221; is a terrible idea. If a month goes by and you&#8217;re not helping solve real problems, someone will ask why the company is paying for a platform team. And they won&#8217;t be wrong.</p><p>A platform must be born <em>with</em> the organization, not <em>in spite of it</em>.</p><p>So before preaching &#8220;best practices&#8221; or pushing migrations, you need to start with something more humble:</p><blockquote><p><strong>Help with real problems. Even when they are not &#8220;platform problems.&#8221;</strong></p></blockquote><p>Earn credibility. Build trust. Reduce friction. Once teams see you solving issues that actually hurt them, they&#8217;ll be much more open to follow your lead.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!d9HS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F849aac3f-1072-4a0b-b31c-d3ef3944a07d_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!d9HS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F849aac3f-1072-4a0b-b31c-d3ef3944a07d_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!d9HS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F849aac3f-1072-4a0b-b31c-d3ef3944a07d_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!d9HS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F849aac3f-1072-4a0b-b31c-d3ef3944a07d_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!d9HS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F849aac3f-1072-4a0b-b31c-d3ef3944a07d_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!d9HS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F849aac3f-1072-4a0b-b31c-d3ef3944a07d_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/849aac3f-1072-4a0b-b31c-d3ef3944a07d_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:650635,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.craftingplatforms.com/i/179706207?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F849aac3f-1072-4a0b-b31c-d3ef3944a07d_1536x1024.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_!d9HS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F849aac3f-1072-4a0b-b31c-d3ef3944a07d_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!d9HS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F849aac3f-1072-4a0b-b31c-d3ef3944a07d_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!d9HS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F849aac3f-1072-4a0b-b31c-d3ef3944a07d_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!d9HS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F849aac3f-1072-4a0b-b31c-d3ef3944a07d_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And that&#8217;s when you can apply the &#8220;gentle, constant force&#8221; that slowly changes direction:</p><ul><li><p>guidance</p></li><li><p>empathy</p></li><li><p>clear documentation</p></li><li><p>examples</p></li><li><p>golden paths</p></li><li><p>human support</p></li><li><p>collaboration</p></li><li><p>small wins</p></li></ul><p>Little by little, momentum bends. The change stops feeling like an imposition and starts feeling like an obvious improvement. Because you&#8217;re no longer seen as &#8220;the team pushing a new thing,&#8221; but the team that <em>helps</em> to reduce the burden.</p><p>When that happens, adoption stops being a fight, and you can start introducing new technologies in the stack, new processes, and new culture for building software. Yes, that awesome Kubernetes and Argo CD to fully automate deployments that you want to put in place will come months later in the process.</p><h1>Conclusion</h1><p>Listen more than you impose.</p><p>Respect the team&#8217;s load before asking for effort.</p><p>Show value before asking for commitment.</p><blockquote><p>Platform teams are not engineering police. We are strategic partners.</p></blockquote><p>And when trust, consistency, and collaboration compound, something clicks. The engineering momentum stops pushing <em>against</em> you and starts pushing <em>with</em> you.</p><p>When that happens, everything flows.</p><p>Thanks for reading!</p>]]></content:encoded></item><item><title><![CDATA[Early Access KickOff]]></title><description><![CDATA[Write, Edit, Publish, Get Feedback, Repeat]]></description><link>https://newsletter.craftingplatforms.com/p/early-access-kickoff</link><guid isPermaLink="false">https://newsletter.craftingplatforms.com/p/early-access-kickoff</guid><dc:creator><![CDATA[Ezequiel Foncubierta]]></dc:creator><pubDate>Thu, 13 Nov 2025 09:00:48 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/dc998a67-232e-4fa9-a52f-0f9abfac3b76_764x764.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I thought about delaying the launch of the early access until I had more chapters written &#8212; at least the first two &#8212; to help settle the tone and structure of the book. However, why wait if the first chapter has been ready for three weeks already? Why not make it available as a teaser of what&#8217;s to come?</p><p>So I decided to share that chapter for free and launch the early access now.</p><p>Early access will allow me to gather feedback from readers as I write, validate that the content is relevant and useful, and find motivation to complete the book. I plan to dedicate a significant portion of the coming months to it, and your support will make that possible.</p><p>The first chapter walks through the historical context of software development and operations, and how the concept of a &#8220;platform&#8221; emerged as a response to the challenges organizations have faced over the past decade &#8212; especially since the rise of cloud computing and DevOps. Understanding where we&#8217;re coming from will make it easier to grasp the concepts and practices explored in the chapters that follow.</p><h1>Join the Early Access</h1><p>Visit <strong><a href="https://craftingplatforms.com">craftingplatforms.com</a></strong> &#8212; a simple landing page I created for the book &#8212; to learn more and access the Leanpub page where you can purchase early access.</p><p>Or, if you prefer, go directly to: <strong><a href="https://leanpub.com/crafting-platforms">leanpub.com/crafting-platforms</a></strong></p><p>Thank you for your support and encouragement &#8212; it truly means a lot.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!46Vm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c77f89-803c-424d-afc5-993e753a7eab_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!46Vm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c77f89-803c-424d-afc5-993e753a7eab_1280x720.png 424w, https://substackcdn.com/image/fetch/$s_!46Vm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c77f89-803c-424d-afc5-993e753a7eab_1280x720.png 848w, https://substackcdn.com/image/fetch/$s_!46Vm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c77f89-803c-424d-afc5-993e753a7eab_1280x720.png 1272w, https://substackcdn.com/image/fetch/$s_!46Vm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c77f89-803c-424d-afc5-993e753a7eab_1280x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!46Vm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c77f89-803c-424d-afc5-993e753a7eab_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/42c77f89-803c-424d-afc5-993e753a7eab_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:273979,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://newsletter.craftingplatforms.com/i/178715429?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c77f89-803c-424d-afc5-993e753a7eab_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!46Vm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c77f89-803c-424d-afc5-993e753a7eab_1280x720.png 424w, https://substackcdn.com/image/fetch/$s_!46Vm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c77f89-803c-424d-afc5-993e753a7eab_1280x720.png 848w, https://substackcdn.com/image/fetch/$s_!46Vm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c77f89-803c-424d-afc5-993e753a7eab_1280x720.png 1272w, https://substackcdn.com/image/fetch/$s_!46Vm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c77f89-803c-424d-afc5-993e753a7eab_1280x720.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>Get the First Chapter for Free</h1><p>If you&#8217;d rather have a taste before committing, you can download the first chapter for free on Leanpub: <strong><a href="https://leanpub.com/crafting-platforms/signup">https://leanpub.com/crafting-platforms/signup</a></strong>.</p><p>Just sign up with your email to get the Community Edition, which includes the first chapter in both PDF and ePub formats. You&#8217;ll also receive updates about the book and be subscribed to this newsletter (sorry, it&#8217;s just a small price to pay).</p><p>Oh! if you subscribed to this newsletter to get the first two chapters for free, I&#8217;ll forward a copy to you today of the first chapter, right after this email. Second chapter will be sent out soon.</p><div><hr></div><p>That&#8217;s it for now. I&#8217;ll keep you posted.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.craftingplatforms.com/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://newsletter.craftingplatforms.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Welcome to Crafting Platforms]]></title><description><![CDATA[Introducing the book, the craft, and the ideas shaping Platform Engineering]]></description><link>https://newsletter.craftingplatforms.com/p/welcome-to-crafting-platforms</link><guid isPermaLink="false">https://newsletter.craftingplatforms.com/p/welcome-to-crafting-platforms</guid><dc:creator><![CDATA[Ezequiel Foncubierta]]></dc:creator><pubDate>Thu, 06 Nov 2025 09:00:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YrCA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F068d850d-6662-4632-b111-ab132439bfb1_4032x3024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you&#8217;ve been following my Spanish newsletter <em><a href="https://newsletter.principiamachina.com/">Principia Machina</a></em>, you probably know that I&#8217;m working on a book about Platform Engineering called <em>Crafting Platforms</em>. The book is currently in development, and <a href="https://craftingplatforms.com/">I&#8217;ll be launching an early access program soon</a> &#8212; so stay tuned.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YrCA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F068d850d-6662-4632-b111-ab132439bfb1_4032x3024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YrCA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F068d850d-6662-4632-b111-ab132439bfb1_4032x3024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YrCA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F068d850d-6662-4632-b111-ab132439bfb1_4032x3024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YrCA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F068d850d-6662-4632-b111-ab132439bfb1_4032x3024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YrCA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F068d850d-6662-4632-b111-ab132439bfb1_4032x3024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YrCA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F068d850d-6662-4632-b111-ab132439bfb1_4032x3024.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/068d850d-6662-4632-b111-ab132439bfb1_4032x3024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4682018,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://newsletter.craftingplatforms.com/i/177910701?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F068d850d-6662-4632-b111-ab132439bfb1_4032x3024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YrCA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F068d850d-6662-4632-b111-ab132439bfb1_4032x3024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YrCA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F068d850d-6662-4632-b111-ab132439bfb1_4032x3024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YrCA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F068d850d-6662-4632-b111-ab132439bfb1_4032x3024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YrCA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F068d850d-6662-4632-b111-ab132439bfb1_4032x3024.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@mrsmaria?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Maria Lin Kim</a> on <a href="https://unsplash.com/photos/a-welcome-sign-with-a-smiley-face-drawn-on-it-07qb7TfM7EY?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure></div><p>Over the past few years, I&#8217;ve found myself solving the same problem again and again. With the rise of cloud computing and the shift of infrastructure closer to developers, engineering teams have reshaped the way they work and think about software delivery. We&#8217;ve moved from traditional IT and sysadmins managing servers, networks, and infrastructure, to a DevOps culture designed to bridge the gap between development and operations. It&#8217;s now clear that developers <em>can</em> &#8212; and often <em>should</em> &#8212; take more responsibility for the infrastructure powering their applications.</p><p>However, in many organizations, developers neither have the time nor the desire to master infrastructure management. They want to focus on building products that deliver business value. While most of us agree that DevOps is the right direction, many organizations still struggle to make it work in practice.</p><p>That, in my view, is what gave rise to Platform Engineering. It doesn&#8217;t replace DevOps &#8212; it enables it at scale. Platform Engineering formalizes the creation of internal platforms that abstract away the underlying complexity of cloud infrastructure, providing developers with paved roads and self-service capabilities that make them more productive and autonomous. Developers can then focus on writing software while the platform takes care of networking, compute, automation, security, compliance, and scalability &#8212; the essential scaffolding that keeps everything running smoothly.</p><p>I&#8217;ve had the opportunity to tackle this challenge in several organizations, and I&#8217;ve never solved it the same way twice. There is no &#8220;one-size-fits-all&#8221; platform. Every company has its own DNA &#8212; its own culture, processes, and constraints. That&#8217;s why I believe building platforms is an <em>artisanal craft</em>, not an industrial process. Yes, there are universal principles and foundational components &#8212; things like automation, observability, and security by default. However, how you combine them and the trade-offs you make will always depend on your specific context.</p><p>Cloud infrastructure, IaC, CI/CD, observability, vulnerability scanning, identity and access management, secrets management, developer portals, and more &#8212; these are the basic building blocks of modern platforms. Most of us would agree on that. But which clouds should you use? Which CI/CD stack? Do your engineering values align better with Azure, AWS, or GitLab? What are your compliance requirements? Do you need multi-region deployments, hybrid setups, or on-prem integrations? These are the questions that shape your platform &#8212; and there&#8217;s never a single right answer. You have to <em>craft it</em>.</p><p>And, honestly, the hardest part is not even crafting it, but selling it to the rest of the organization. Make it appealing for others to buy in and move their workloads, pipelines, and processes to it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.craftingplatforms.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe now, and you will get a copy of the first two chapters of the book <strong>for free</strong>.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>With this book, I aim to surface those questions and share the concepts, principles, and lessons I&#8217;ve learned along the way. It&#8217;s an opinionated take &#8212; and that&#8217;s intentional. Other engineers may have taken different paths, and that&#8217;s perfectly fine. <em>Crafting Platforms</em> isn&#8217;t meant to be the ultimate how-to guide. It&#8217;s a practical, experience-driven exploration of what I believe to be the timeless foundations of building internal platforms. It&#8217;s also a good opportunity for me to research some topics to reinforce my understanding or change my perspective. Platform Engineering is a new discipline, and there is a lot to learn from it.</p><p>Alongside the book, I&#8217;m preparing a public GitHub repository with all the source code used in the examples and chapters. My goal is to make it hands-on &#8212; less academic, more practical. Sometimes, the best way to explain an idea is to demonstrate it in code.</p><p>And finally, this newsletter will serve as a companion to the book &#8212; a place to share its progress, discuss platform engineering practices, and comment on industry trends. Sometimes I&#8217;ll share excerpts, other times short essays or reflections.</p><p>If that sounds interesting, be sure to subscribe and follow along. Please help me spread the word by sharing this newsletter.</p><p>That&#8217;s all for today &#8212; more soon about <em>Crafting Platforms</em> and the ideas behind it.</p>]]></content:encoded></item><item><title><![CDATA[Coming soon]]></title><description><![CDATA[We&#8217;ll kick things off on Thursday, November 6th.]]></description><link>https://newsletter.craftingplatforms.com/p/coming-soon</link><guid isPermaLink="false">https://newsletter.craftingplatforms.com/p/coming-soon</guid><dc:creator><![CDATA[Ezequiel Foncubierta]]></dc:creator><pubDate>Tue, 04 Nov 2025 07:01:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!LWOd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fffe32-c000-417c-a81f-8a07c83f11cd_6048x4024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We&#8217;ll kick things off on <strong>Thursday, November 6th</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LWOd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fffe32-c000-417c-a81f-8a07c83f11cd_6048x4024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LWOd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fffe32-c000-417c-a81f-8a07c83f11cd_6048x4024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LWOd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fffe32-c000-417c-a81f-8a07c83f11cd_6048x4024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LWOd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fffe32-c000-417c-a81f-8a07c83f11cd_6048x4024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LWOd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fffe32-c000-417c-a81f-8a07c83f11cd_6048x4024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LWOd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fffe32-c000-417c-a81f-8a07c83f11cd_6048x4024.jpeg" width="1456" height="969" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/49fffe32-c000-417c-a81f-8a07c83f11cd_6048x4024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:969,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2947002,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://newsletter.craftingplatforms.com/i/177961724?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fffe32-c000-417c-a81f-8a07c83f11cd_6048x4024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LWOd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fffe32-c000-417c-a81f-8a07c83f11cd_6048x4024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LWOd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fffe32-c000-417c-a81f-8a07c83f11cd_6048x4024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LWOd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fffe32-c000-417c-a81f-8a07c83f11cd_6048x4024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LWOd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49fffe32-c000-417c-a81f-8a07c83f11cd_6048x4024.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@mike_van_den_bos?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Mike van den Bos</a> on <a href="https://unsplash.com/photos/text-jf1EomjlQi0?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure></div><p>You can subscribe now and be part of <em>Crafting Platforms</em> from day one.</p><p>Everyone who subscribes during <strong>November</strong> will receive a <strong>free copy of the first two chapters</strong> of my upcoming book, <em>Crafting Platforms</em>.</p><p>Join early, follow the journey, and get a front-row seat</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.craftingplatforms.com/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://newsletter.craftingplatforms.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item></channel></rss>