<?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[Packt Deep Engineering: Newsletter Issues]]></title><description><![CDATA[Deep Engineering weekly newsletter issues for developers and software architects featuring expert-led insights, deep dives into modern systems, and clear thinking on real-world software design.]]></description><link>https://deepengineering.substack.com/s/newsletter-issues</link><image><url>https://substackcdn.com/image/fetch/$s_!H5BJ!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png</url><title>Packt Deep Engineering: Newsletter Issues</title><link>https://deepengineering.substack.com/s/newsletter-issues</link></image><generator>Substack</generator><lastBuildDate>Tue, 21 Apr 2026 13:24:54 GMT</lastBuildDate><atom:link href="https://deepengineering.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Packt]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[deepengineering@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[deepengineering@substack.com]]></itunes:email><itunes:name><![CDATA[Packt]]></itunes:name></itunes:owner><itunes:author><![CDATA[Packt]]></itunes:author><googleplay:owner><![CDATA[deepengineering@substack.com]]></googleplay:owner><googleplay:email><![CDATA[deepengineering@substack.com]]></googleplay:email><googleplay:author><![CDATA[Packt]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Deep Engineering #43: David Knickerbocker on Building AI That Sees the World as It Is, Not as It Was]]></title><description><![CDATA[Real-time knowledge graphs, awareness before truth, and why an empty dataset is better than a hallucination]]></description><link>https://deepengineering.substack.com/p/issue43-building-ai-that-sees-the-world-as-it-is-david-knickerbocker</link><guid isPermaLink="false">https://deepengineering.substack.com/p/issue43-building-ai-that-sees-the-world-as-it-is-david-knickerbocker</guid><dc:creator><![CDATA[Saqib Jan]]></dc:creator><pubDate>Thu, 16 Apr 2026 15:30:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/542c8988-3aa8-439a-94c1-20a10d857430_716x421.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3><a href="https://www.eventbrite.com/e/c-memory-management-masterclass-tickets-1983063567513?aff=deepeng">C++ Memory Management Masterclass (Live) &#8212; Back for the 3rd Run</a></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.co.uk/e/c-memory-management-masterclass-tickets-1983063567513?aff=deepeng" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1qKl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a7652-0edf-4737-a16a-6b90e7bb9a91_800x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1qKl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a7652-0edf-4737-a16a-6b90e7bb9a91_800x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1qKl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a7652-0edf-4737-a16a-6b90e7bb9a91_800x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1qKl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a7652-0edf-4737-a16a-6b90e7bb9a91_800x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1qKl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a7652-0edf-4737-a16a-6b90e7bb9a91_800x400.jpeg" width="800" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3f3a7652-0edf-4737-a16a-6b90e7bb9a91_800x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.eventbrite.co.uk/e/c-memory-management-masterclass-tickets-1983063567513?aff=deepeng&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!1qKl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a7652-0edf-4737-a16a-6b90e7bb9a91_800x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1qKl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a7652-0edf-4737-a16a-6b90e7bb9a91_800x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1qKl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a7652-0edf-4737-a16a-6b90e7bb9a91_800x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1qKl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a7652-0edf-4737-a16a-6b90e7bb9a91_800x400.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></figure></div><p>Learn ownership, RAII, smart pointers &amp; allocators to eliminate leaks/UB&#8212;live hands-on with <strong>Patrice Roy</strong>&#8212;#1 bestselling author of <em><strong>C++ Memory Management</strong></em> and ISO C++ Standards Committee (WG21) member. </p><p><strong>&#128197; Online: Apr 18 </strong>&amp;<strong> Apr 19.</strong> Limited seats.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/c-memory-management-masterclass-tickets-1983063567513?aff=deepeng&quot;,&quot;text&quot;:&quot;Register now&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.eventbrite.com/e/c-memory-management-masterclass-tickets-1983063567513?aff=deepeng"><span>Register now</span></a></p><div><hr></div><p><strong>&#9997;&#65039; From the editor&#8217;s desk,</strong></p><p>Welcome to the <strong>43rd</strong> issue of Deep Engineering!</p><p>On April 15, Neo4j ran <a href="https://neo4j.com/nodes-ai/">NODES AI 2026</a>, a full-day virtual conference dedicated to AI with knowledge graphs, with tracks covering GraphRAG, graph-based agent memory, and context engineering. Interestingly, the <a href="https://neo4j.com/videos/nodes-ai-2026-opening-keynote-exploring-context-graphs-from-data-to-decisions/">opening keynote</a> framed the central challenge directly around how most AI systems behave as if they have never seen the data that the organisations deploying them have spent years accumulating. The gap between what a system has access to and what it can actually use at query time is, in the view of the practitioners at NODES, the defining engineering problem of this moment.</p><p>And so, in today&#8217;s issue we want to address exactly that gap. <a href="https://www.linkedin.com/in/dkjapan">David Knickerbocker</a>, founder of <a href="https://www.verdantintel.com/">Verdant Intelligence</a> and author of <a href="https://www.packtpub.com/en-us/product/network-science-with-python-9781801073691">Network Science with Python</a> (Packt), has spent years building knowledge graph systems that stay current with a different design constraint than most teams start from: not how to make retrieval faster, but how to make the system aware of what changed a minute ago. His system (Verdant Eye) treats knowledge as a continuous stream of claims rather than a static store of facts, and that distinction has significant consequences for how you handle freshness, hallucination, temporal drift, and testing.</p><blockquote><p>This is the first of two features from our conversation with David, the second will cover what building AI on top of messy, adversarial, real-world data teaches you that clean-dataset engineers never have to confront. You can read the full interview and watch the conversation <a href="https://deepengineering.substack.com/p/knowledge-graphs-graphrag-and-real">here</a>.</p></blockquote><p>Let&#8217;s get started.</p><div><hr></div><h4 style="text-align: center;"><strong>30k+ DevOps Engineers Read <a href="https://links.uk.defend.egress.com/Warning?crId=69df8dab3269e6a874d09e8e&amp;Domain=packt.com&amp;Threat=eNpzrShJLcpLzAEADmkDRA%3D%3D&amp;Lang=en&amp;Base64Url=eNoNxVEKABAMANAb2b-SsygLxbZsyO15P6-aiXoAwqMON85rtVHJuFnU_SAOzqkHbYWWPLQTEkg%3D&amp;@OriginalLink=news.everythingdevops.dev">EverythingDevOps</a></strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://links.uk.defend.egress.com/Warning?crId=69df8dab3269e6a874d09e8e&amp;Domain=packt.com&amp;Threat=eNpzrShJLcpLzAEADmkDRA%3D%3D&amp;Lang=en&amp;Base64Url=eNoNxVEKABAMANAb2b-SsygLxbZsyO15P6-aiXoAwqMON85rtVHJuFnU_SAOzqkHbYWWPLQTEkg%3D&amp;@OriginalLink=news.everythingdevops.dev" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DeZN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48ace5-23b7-43ba-b2ce-8dc697323934_3971x2184.png 424w, https://substackcdn.com/image/fetch/$s_!DeZN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48ace5-23b7-43ba-b2ce-8dc697323934_3971x2184.png 848w, https://substackcdn.com/image/fetch/$s_!DeZN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48ace5-23b7-43ba-b2ce-8dc697323934_3971x2184.png 1272w, https://substackcdn.com/image/fetch/$s_!DeZN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48ace5-23b7-43ba-b2ce-8dc697323934_3971x2184.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DeZN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48ace5-23b7-43ba-b2ce-8dc697323934_3971x2184.png" width="604" height="332.282967032967" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3b48ace5-23b7-43ba-b2ce-8dc697323934_3971x2184.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:801,&quot;width&quot;:1456,&quot;resizeWidth&quot;:604,&quot;bytes&quot;:400435,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://links.uk.defend.egress.com/Warning?crId=69df8dab3269e6a874d09e8e&amp;Domain=packt.com&amp;Threat=eNpzrShJLcpLzAEADmkDRA%3D%3D&amp;Lang=en&amp;Base64Url=eNoNxVEKABAMANAb2b-SsygLxbZsyO15P6-aiXoAwqMON85rtVHJuFnU_SAOzqkHbYWWPLQTEkg%3D&amp;@OriginalLink=news.everythingdevops.dev&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/194401065?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48ace5-23b7-43ba-b2ce-8dc697323934_3971x2184.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_!DeZN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48ace5-23b7-43ba-b2ce-8dc697323934_3971x2184.png 424w, https://substackcdn.com/image/fetch/$s_!DeZN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48ace5-23b7-43ba-b2ce-8dc697323934_3971x2184.png 848w, https://substackcdn.com/image/fetch/$s_!DeZN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48ace5-23b7-43ba-b2ce-8dc697323934_3971x2184.png 1272w, https://substackcdn.com/image/fetch/$s_!DeZN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48ace5-23b7-43ba-b2ce-8dc697323934_3971x2184.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The cloud-native ecosystem moves on its own schedule. New tooling, shifting practices, team structures that look nothing like they did two years ago. Therefore, keeping up is not optional when your job is to build and run reliable systems.</p><p><a href="https://links.uk.defend.egress.com/Warning?crId=69df8dab3269e6a874d09e8e&amp;Domain=packt.com&amp;Threat=eNpzrShJLcpLzAEADmkDRA%3D%3D&amp;Lang=en&amp;Base64Url=eNoNxVEKABAMANAb2b-SsygLxbZsyO15P6-aiXoAwqMON85rtVHJuFnU_SAOzqkHbYWWPLQTEkg%3D&amp;@OriginalLink=news.everythingdevops.dev">EverythingDevOps</a>&#8216; weekly digest is built specifically for engineers who want the signal without the scroll.</p><ul><li><p>What&#8217;s changing in the ecosystem &#8212; and what it actually means for your work</p></li><li><p>Career thinking for engineers moving from senior to staff to leadership</p></li><li><p>Events, opportunities, and community conversations worth your Frida</p></li></ul><p><strong><a href="https://links.uk.defend.egress.com/Warning?crId=69df8dab3269e6a874d09e8e&amp;Domain=packt.com&amp;Threat=eNpzrShJLcpLzAEADmkDRA%3D%3D&amp;Lang=en&amp;Base64Url=eNoNxVEKABAMANAb2b-SsygLxbZsyO15P6-aiXoAwqMON85rtVHJuFnU_SAOzqkHbYWWPLQTEkg%3D&amp;@OriginalLink=news.everythingdevops.dev">Join 30,000+ engineers</a></strong></p><div><hr></div><h1>AI That Sees the World as It Is, Not as It Was</h1><p><em>by </em><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Saqib Jan&quot;,&quot;id&quot;:427210082,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/997a788a-cd78-4f84-9b3b-c72ab6dc0153_1008x1008.jpeg&quot;,&quot;uuid&quot;:&quot;f89aae65-246f-44b5-b849-dc27f0060228&quot;}" data-component-name="MentionToDOM"></span> <em>with </em><a href="https://www.linkedin.com/in/dkjapan/">David Knickerbocker</a></p><p>Most AI systems are answering questions about a world that no longer quite exists. They draw from training data frozen at a point in time, from retrieval systems that return whatever was most recently indexed, from pipelines that treat knowledge as a stable object rather than a moving one. For <strong>David Knickerbocker</strong>, founder of <strong>Verdant Intelligence</strong>, this is not a limitation to work around, but a design error to avoid from the start.</p><h3>The problem starts at problem definition</h3><p>Building a knowledge graph that stays fresh does not require a different database. It requires a different question. For Knickerbocker the starting point is always the same, &#8220;what is the system actually trying to know, and at what resolution of time?&#8221;</p><p>He explains, &#8220;If you want to build a world AI and be able to answer questions about things that happened a minute ago, then that is your problem statement. And then you think about how to get that data into the database so that it is there and it is fresh. But then you also have to get AI to be able to use that data. There are two sides to this coin.&#8221;</p><p>The engineering philosophy he applies is <strong>KISS</strong> (Keep it Super Simple), and <strong>YAGNI</strong> (You Aren't Gonna Need It"). Both push in the same direction, he reasons &#8220;build the minimum thing that works, validate that it works, and expand from there.&#8221; His system (Verdant Eye) maintains data fresh up to a minute old, not by doing something architecturally exotic, but by treating freshness as a first-class constraint from day one rather than an optimization to add later.</p><p>&#8220;The AI industry feels very shiny and very new, but there is a lot of old school discipline that is still extremely useful. You start with the idea, you go through the ideation, from ideation you create your spec, from the spec you do your project management, you assign tasks and do the work. It feels like vanilla old school engineering to me.&#8221;</p><h3><strong>Awareness before truth</strong></h3><p>The instinct when building a real-time knowledge system is to treat freshness and accuracy as a tension to manage: newer data is less verified, older data is more reliable, and the system needs some formula for weighing one against the other. But Knickerbocker rejects this frame entirely.</p><p>He explains from his engineering experience that why his systems are not trying to determine what is true. But instead trying to capture what is being claimed, and those are fundamentally different engineering problems.</p><p>&#8220;In the world of open source intelligence, it has less to do with right and wrong. It has less to do with facts. What I am looking for is really claims of what is going on in the world. I do not make that decision, and I do not allow my AI to make the decision about what is true or false either.&#8221;</p><p>In adversarial open source intelligence environments, two sources in direct conflict with each other are not a problem to resolve. But they are both signal. And what matters is that both claims are captured, clustered, and surfaced. Knickerbocker describes this structure using a frame he developed from years of NLP work: not clusters in the geometric sense, but ribbons, layered bands of related information that emerge from the data.</p><p>&#8220;You have a whole bunch of information and this top ribbon might be this bad thing happened. The next ribbon might be this event is happening at the library. The next ribbon might be a punk rock show is happening at this nightclub.&#8221;</p><p>The consequence of this design is that awareness comes before truth, and that is by intention. For the applications the Verdant Eye is built for, knowing what is being said and where is actionable before you know whether any of it is correct. Adjudicating truth is a downstream problem, one that can be handled by human judgment or purpose-built downstream systems, not by the ingestion layer.</p><h3><strong>Snapshot versus movie</strong></h3><p>What separates a real-time knowledge graph from an agent that runs searches is not a matter of degree. It is a structural difference in what kind of object the system is.</p><p>An agent with search tools takes a snapshot. It queries for something, gets back the most relevant indexed results, and presents them. The system only knows what it was asked to look for, and it only looks when prompted. A knowledge graph that continuously ingests from the open web is more like a movie: it is always recording, and when you query it, you are not taking a new photograph but pulling a frame from a film that has been running the whole time.</p><p>&#8220;If you use a tool to do a search to find out something, you are getting a snapshot of time. My systems capture the heartbeat of the Internet themselves, and they are always listening. It would be closer to a movie compared to a photograph.&#8221;</p><p>The practical difference shows up clearly in demos with clients who need urgent situational information. Running a calibration query against the Verdant Eye, asking what is the latest information, returns results anywhere from a few seconds old to a minute and a half old. That behaviour is not possible with a search-tool approach at any level of optimization.</p><p>An empty result matters too. If nothing has been reported in the last minute on a given topic, the system returns nothing. That discipline is load-bearing.</p><p>&#8220;An empty dataset,&#8221; Knickerbocker underscores, &#8220;is better than a hallucination.&#8221;</p><h3><strong>The rush to use a tool before understanding it</strong></h3><p>Knickerbocker spent years watching teams fail with graph databases in 2020 and 2021, and he sees the same pattern repeating now with agents and AI. Teams adopt the tool before building the understanding, and then cannot tell whether it is working.</p><p>&#8220;There is a rush to use agents before even understanding AI. And if the understanding is not there, then it is just wishful. If you do not know how it works, you cannot tell the difference between it ran and it ran correctly. Those are very different things.&#8221;</p><p>His own relationship with graphs predates the graph database trend by years. At Intel, from 2015 to 2019, he was using graph theory for data flow mapping, tracing inputs to outputs across thousands of scripts and hundreds of servers, using centralities to find important nodes and shortest paths to understand flow. He was never using graph databases. He was using the underlying science.</p><p>&#8220;I was never invited to the cool kid graph database parties. I was always just doing stuff with graphs and using it to map out data flows and fix production outages. Dead serious stuff.&#8221;</p><p>That gap between tool and understanding is what drove him to write <a href="https://www.packtpub.com/en-us/product/network-science-with-python-9781801073691">Network Science with Python</a>. Teams were populating graph databases and then stopping, treating the populated database as the deliverable. The value, in his view, starts the moment the graph is populated and you begin running network science on top of it.</p><p>&#8220;If you do not know about the basics of network science, then what are you gonna do with the graph database? You have put your data in the graph database. Whereas if you come to graph databases and you have learned about centralities, community detection, shortest paths, simulations, then it can really have an impact on your network thinking.&#8221;</p><h3><strong>Similarity is not the same as identical</strong></h3><p>The central limitation of vector-based retrieval is one that Knickerbocker has framed the same way since at least 2017. Semantic similarity is a probabilistic measure, not a logical one. Two pieces of text can be highly similar in embedding space while referring to entirely different things. A graph replaces probabilistic similarity with structural traversal.</p><p>&#8220;Similarity in language is not equal to same. I will say that one more time. Similarity is not equal to same. Similar sounding things can be very, very different from each other. A graph anchors things into a piece of context.&#8221;</p><p>In a GraphRAG system, the query does not ask what is most like this input. It traverses the graph: if you are asking about jazz events in Portland, Oregon, you are connected to the Oregon node, to the Portland node, to the jazz node. The hallucination space collapses because the answer space is bounded by structure rather than probability.</p><p>&#8220;In a GraphRAG system, if there is no match then the output is that there is no match. There is no hallucination opportunity. With a similarity-based system, there could be similarity even if it is only a single word in a paragraph.&#8221;</p><p>This intuition was clear to him during his data operations years at Intel. Log files across hundreds of servers written by dozens of engineers contain enormous amounts of natural language. Working with that language to understand what a production system was doing made it obvious that the structure, the graph, and the meaning, the language, were inseparable.</p><p>&#8220;Graphs show you where things go,&#8221; Knickerbocker adds. &#8220;But all of the context about what that node even is is often carried by language itself.&#8221;</p><h3><strong>Deliberate forgetting</strong></h3><p>Temporal drift is usually framed as a correctness problem: facts become outdated, relationships change, the graph silently goes wrong. The standard response is validation pipelines, contradiction detection, freshness scores. Knickerbocker builds around a different principle.</p><p>Sharing from his experience building the Verdant Eye, Knickerbocker explains that the Verdant Eye system is not called the Verdant Brain because the metaphor is not storage. It is perception.</p><p>&#8220;The Verdant Eye sees, and it does not contain eternal memory, because that is not what an eye does. An eye sees. When the scene changes, the scene changes. Your eyes do not need to be recalibrated. The thing has just changed.&#8221;</p><p>The design principle is biological: living systems do not maintain eternal memory, and a knowledge system that tracks a living world should not either. The practical implementation mirrors transactional database patterns he worked with throughout his career in data operations. Data that is no longer operationally relevant gets archived. The live layer runs on what is current, and the cost of maintaining it stays proportional to what the system actually needs to know.</p><p>&#8220;In a transactional database, you operate off of what you need, and data that is not needed eventually gets archived. I want to build AI that does not boil the ocean, that can be bootstrapped by individuals. Infinite memory is not just philosophically wrong for this kind of system. It is economically unworkable.&#8221;</p><h3><strong>The pass butter philosophy</strong></h3><p>Knickerbocker shares how he currently runs three production GraphRAG systems, each built for a distinct purpose with its own testing criteria. Verdant Intelligence operates at high altitude, tracking events across states and regions. Grooveseeker (which he created to put his AI system to a different and specific kind of use) operates at street level, finding events in specific cities on specific nights. A third system contains thirty years of AI research, useful for tracing the intellectual lineage of ideas when building new things.</p><p>The principle connecting all three comes from a scene in Rick and Morty. Rick builds a robot. The robot asks what its purpose is. Rick says: you pass butter.</p><p>&#8220;There is no testing framework anybody else can give me that is going to be fit for purpose for what I am trying to build, because I am not trying to build general intelligence. I am trying to build intelligence that serves a specific purpose.&#8221;</p><p>Each system is therefore tested against the specific failures that would make it useless for its purpose. For Grooveseeker, that means verifying the right city, not a city of the same name in a different state; the right date, not a historical recurrence of the same event; and a URL that actually leads somewhere you can buy a ticket.</p><p>The final test of the Grooveseeker system was to stop writing articles proving it worked and simply use it. The system returned events in Portland between March 10 and March 13. Knickerbocker even attended one of them, bought a ticket at the door, saw the band, and spoke to one of the musicians. </p><p>His AI did not send him to a venue that did not exist. &#8220;That is how I know it works,&#8221; Knickerbocker affirms.</p><div><hr></div><h2><strong>&#128269; In case you missed it&#8230;</strong></h2><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;5fd69076-1db8-4cdd-ba01-395d5b521b8f&quot;,&quot;caption&quot;:&quot;This conversation with David Knickerbocker keeps returning to a single conviction: the best engineering starts with intentional problem definition, and most AI failures happen when teams rush to use a tool before understanding what they are actually trying to build.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;md&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Knowledge Graphs, GraphRAG, and Real-Time AI in Production with David Knickerbocker&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:427210082,&quot;name&quot;:&quot;Saqib Jan&quot;,&quot;bio&quot;:&quot;/localhost&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/997a788a-cd78-4f84-9b3b-c72ab6dc0153_1008x1008.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-04-15T12:30:00.000Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/93b09a18-df5c-49af-93ca-6f4d45a26bdc_1920x1080.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/knowledge-graphs-graphrag-and-real&quot;,&quot;section_name&quot;:&quot;Interviews&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:194390901,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p><div><hr></div><h2><strong>&#128736;&#65039; Tool of the Week</strong></h2><p><strong><a href="https://github.com/getzep/graphiti">Graphiti</a></strong> &#8212; open-source temporal knowledge graph engine for AI agents</p><p><strong>Highlights:</strong></p><ul><li><p><strong>Temporal fact management:</strong> Facts carry explicit validity windows &#8212; invalidated when superseded, never deleted, queryable at any point in time.</p></li><li><p><strong>Incremental ingestion:</strong> New data integrates immediately without batch recomputation, keeping the graph current as the world changes.</p></li><li><p><strong>Hybrid retrieval:</strong> Combines semantic search, BM25, and graph traversal in a single query, typically under 100ms.</p></li><li><p><strong>MCP-native:</strong> Ships an MCP server for direct integration with Claude, Cursor, and other MCP clients.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://github.com/getzep/graphiti&quot;,&quot;text&quot;:&quot;Learn more about Graphiti&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://github.com/getzep/graphiti"><span>Learn more about Graphiti</span></a></p><div><hr></div><h1><strong>&#128206; Tech Briefs</strong></h1><ul><li><p><a href="https://neo4j.com/videos/nodes-ai-2026-closing-keynote-from-data-to-knowledge-to-action-the-graph-intelligence-platform/">Neo4j NODES AI 2026 closing keynote: From Data to Knowledge to Action</a> - Sudhir Hasbe makes the case that most enterprise AI behaves as if it has never seen the organisation's own data, and how graphs help close that gap.</p></li><li><p><a href="https://tianpan.co/blog/2026-04-10-graph-memory-llm-agents-relational-reasoning">Graph memory for LLM agents: the relational blind spots that flat vectors miss</a> - Zep's LongMemEval evaluation shows 18.5% accuracy gains over vector baselines, context tokens dropping from 115,000 to 1,600, and latency falling from 29 seconds to under 3 seconds.</p></li><li><p><a href="https://www.falkordb.com/news-updates/falkordb-browser-updates-april-2026/">FalkorDB Browser ships April 2026 update for GraphRAG developers</a> - Adds favourite query saving, one-click connection string copying, enhanced graph statistics, and configurable table views..</p></li><li><p><a href="https://community.neo4j.com/t/start-here-register-get-aura-credits-aura-agent-hackathon-2026/77191">Neo4j Aura Agent Hackathon opens</a> - Developers building knowledge-graph-grounded AI agents can register for cloud credits and managed GraphRAG platform access.</p></li><li><p><a href="https://github.com/DEEP-PolyU/Awesome-GraphRAG">Four GraphRAG papers accepted at ACL 2026</a> - PolyU&#8217;s Awesome-GraphRAG repo confirmed acceptances including ProbeRAG for retrieval faithfulness, LegalGraphRAG for legal reasoning, and LinearRAG for efficient graph construction.</p></li></ul><div><hr></div><p>That&#8217;s all for today. Thank you for reading this issue of Deep Engineering.</p><p>We&#8217;ll be back next week with more expert-led content.</p><p>Stay awesome, </p><p>Saqib Jan </p><p>Editor-in-Chief, Deep Engineering</p><div><hr></div><p><em>If your company is interested in reaching an audience of senior developers, software engineers, and technical decision-makers, you may want to </em><strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong><em>.</em></p><p>Thanks for reading Packt Deep Engineering! Subscribe for free to receive new posts and support my work.</p>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #42: Building Reliable Multi-Agent Systems with Fitz Nowlan]]></title><description><![CDATA[How to preserve facts across agent handoffs, when to use MCP, and why bounding execution is non-negotiable]]></description><link>https://deepengineering.substack.com/p/deep-engineering-42-building-reliable</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-42-building-reliable</guid><dc:creator><![CDATA[Saqib Jan]]></dc:creator><pubDate>Thu, 09 Apr 2026 15:21:01 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/a5466920-69f5-4417-8a13-fc13b9f5ec76_1440x868.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3><a href="https://www.eventbrite.co.uk/e/building-an-ai-powered-internal-developer-platform-from-scratch-tickets-1978960034736?aff=deepeng">Building an AI-Powered Internal Developer Platform from Scratch</a></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.co.uk/e/building-an-ai-powered-internal-developer-platform-from-scratch-tickets-1978960034736?aff=deepeng" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X-O7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e46c203-54b4-4dfa-99e6-d2d8ce40b7fc_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!X-O7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e46c203-54b4-4dfa-99e6-d2d8ce40b7fc_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!X-O7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e46c203-54b4-4dfa-99e6-d2d8ce40b7fc_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!X-O7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e46c203-54b4-4dfa-99e6-d2d8ce40b7fc_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X-O7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e46c203-54b4-4dfa-99e6-d2d8ce40b7fc_2160x1080.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e46c203-54b4-4dfa-99e6-d2d8ce40b7fc_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.eventbrite.co.uk/e/building-an-ai-powered-internal-developer-platform-from-scratch-tickets-1978960034736?aff=deepeng&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!X-O7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e46c203-54b4-4dfa-99e6-d2d8ce40b7fc_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!X-O7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e46c203-54b4-4dfa-99e6-d2d8ce40b7fc_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!X-O7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e46c203-54b4-4dfa-99e6-d2d8ce40b7fc_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!X-O7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e46c203-54b4-4dfa-99e6-d2d8ce40b7fc_2160x1080.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>Hone your skills to design, implement, and ship an AI-powered internal developer platform from scratch with <a href="https://www.linkedin.com/in/chankramath/">Ajay Chankramath</a>.</p><p>&#128197; <strong>25th</strong> and <strong>26th</strong> April 2026 | <strong>11:00 AM</strong> to <strong>3:00 PM</strong> ET</p><p>Use code<strong> DEEPENG50 </strong>for<strong> 50% off, </strong>or grab the<strong> 2-for-1 </strong>deal</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.co.uk/e/building-an-ai-powered-internal-developer-platform-from-scratch-tick%E2%80%A6&quot;,&quot;text&quot;:&quot;Register now&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.eventbrite.co.uk/e/building-an-ai-powered-internal-developer-platform-from-scratch-tick%E2%80%A6"><span>Register now</span></a></p><p><em>Includes access to <a href="https://www.packtpub.com/en-us/product/the-platform-engineers-handbook-9781806380121">The Platform Engineer&#8217;s Handbook</a> by Ajay Chankramath upon release (eBook worth $35.99)</em></p><div><hr></div><p><strong>&#9997;&#65039; From the editor&#8217;s desk,</strong></p><p>Welcome to the 42nd issue of Deep Engineering!</p><p>Multi-agent AI is widely being adopted in production, but the engineering reality is messier than the demos suggest. GitHub Engineering published<a href="https://github.blog/ai-and-ml/generative-ai/multi-agent-workflows-often-fail-heres-how-to-engineer-ones-that-dont/"> a post by Gwen Davis</a> laying out the most common ways multi-agent workflows fail in practice. Most failures come down to missing structure, not model capability. </p><p>Agents make implicit assumptions about state, ordering, and validation at the points where they hand off work to one another, and without explicit data formats, typed interfaces, and defined action schemas at those boundaries, the system breaks in ways that are hard to reproduce and harder to debug.</p><p>The architectural decisions you make around the model matter more than the model itself. That is precisely what today&#8217;s issue covers. <strong><a href="https://www.linkedin.com/in/fitz-nowlan/">Fitz Nowlan</a></strong>, VP of AI and Architecture at <a href="https://smartbear.com/">SmartBear</a>, has spent years building agentic systems in production.</p><p>Let&#8217;s get started.</p><div><hr></div><h4 style="text-align: center;"><strong>Featured Newsletter: <a href="https://www.thecloudplaybook.com/">The Cloud Playbook</a></strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.thecloudplaybook.com/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NQSA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd83d05f4-88b5-4f79-b558-2f658c5c21e5_500x500.png 424w, https://substackcdn.com/image/fetch/$s_!NQSA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd83d05f4-88b5-4f79-b558-2f658c5c21e5_500x500.png 848w, https://substackcdn.com/image/fetch/$s_!NQSA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd83d05f4-88b5-4f79-b558-2f658c5c21e5_500x500.png 1272w, https://substackcdn.com/image/fetch/$s_!NQSA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd83d05f4-88b5-4f79-b558-2f658c5c21e5_500x500.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NQSA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd83d05f4-88b5-4f79-b558-2f658c5c21e5_500x500.png" width="312" height="312" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d83d05f4-88b5-4f79-b558-2f658c5c21e5_500x500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:500,&quot;resizeWidth&quot;:312,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.thecloudplaybook.com/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NQSA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd83d05f4-88b5-4f79-b558-2f658c5c21e5_500x500.png 424w, https://substackcdn.com/image/fetch/$s_!NQSA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd83d05f4-88b5-4f79-b558-2f658c5c21e5_500x500.png 848w, https://substackcdn.com/image/fetch/$s_!NQSA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd83d05f4-88b5-4f79-b558-2f658c5c21e5_500x500.png 1272w, https://substackcdn.com/image/fetch/$s_!NQSA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd83d05f4-88b5-4f79-b558-2f658c5c21e5_500x500.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>If you own reliability, cost, and compliance in production on AWS, <strong><a href="https://www.thecloudplaybook.com/">The Cloud Playbook</a></strong> newsletter is worth your attention.</p><p><em>It is a weekly read for engineering leaders building platforms where incidents, audits, and surprise AWS bills are real problems. It covers AWS architecture, platform engineering, FinOps, security, observability, and compliance frameworks like FedRAMP, HIPAA, and ISO 27001.</em></p><p><strong><a href="https://www.thecloudplaybook.com/">Subscribe to The Cloud Playbook</a></strong></p><div><hr></div><h1><strong>Multi-Agent Systems Need Rules to Stay Reliable in Production</strong></h1><p><em>by </em><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Saqib Jan&quot;,&quot;id&quot;:427210082,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/997a788a-cd78-4f84-9b3b-c72ab6dc0153_1008x1008.jpeg&quot;,&quot;uuid&quot;:&quot;f89aae65-246f-44b5-b849-dc27f0060228&quot;}" data-component-name="MentionToDOM"></span> <em>with <a href="https://www.linkedin.com/in/fitz-nowlan/">Fitz Nowlan</a></em></p><p>As agents pass tasks to one another, reason autonomously, and compose solutions on the fly, it is easy to construct a version of multi-agent AI that looks technically sound on a whiteboard. In practice, however, that version tends to fall apart when context gets lost between handoffs, when loops run without terminating, and when open-ended systems become progressively harder to test, debug, or trust.</p><p><strong><a href="https://www.linkedin.com/in/fitz-nowlan/">Fitz Nowlan</a></strong>, VP of AI and Architecture at <a href="https://smartbear.com/">SmartBear</a>, has spent the past two years building agentic systems in production, and his view, drawn from that engineering experience, is that the reliability of a multi-agent system is determined less by the model you choose and more by the architectural decisions you make around it.</p><h2>Preserving facts across the handoff boundary</h2><p>The first place multi-agent systems break down is at the handoff. When agent A passes context to agent B, the question is not just what to pass but how to pass it. Raw string prompts are the path of least resistance, but Nowlan argues they are also the path most likely to introduce errors.</p><p>&#8220;We are almost always using some form of structured data,&#8221; he points out. &#8220;It&#8217;s generally going to be JSON. What we&#8217;ll often try to do on top of that JSON is define, effectively, a domain-specific language, or DSL, or our own schema, to cache, kind of, to preserve truth that we&#8217;ve already determined.&#8221;</p><p>The distinction matters because of what happens when you do not preserve that truth. Suppose an agent is working within the context of a browser and identifies that two elements appear inside the same container on a page. That relationship has been syntactically proven through a screenshot, the HTML, or the DOM. If you pass that context as plain text to the next agent, that agent has to decompose the text and then probabilistically reconstruct whether the relationship exists at all.</p><p>&#8220;That other agent has to effectively decompose and then probabilistically, i.e., potentially hallucinate, that relationship is there,&#8221; Nowlan notes. &#8220;So what we try to do is communicate over JSON and lock in to the JSON in our custom schema the facts that we&#8217;ve identified or extracted from one context or world to another.&#8221;</p><p>The practical principle is simple enough. Anything that has been established as a fact should be encoded as a fact, not as prose. Structured contracts at the handoff boundary are not just a formatting preference. They are a mechanism for preventing the downstream agent from having to guess at things the upstream agent already knew.</p><h2>When MCP outperforms a static API wrapper</h2><p>Model Context Protocol (MCP) has become a standard topic in agentic architecture discussions, and anyone planning to use it should understand where it actually adds value and where it does not.</p><p>&#8220;If you knew all five workflows that your customers ever did in your application, well, then you should just statically code them up,&#8221; Nowlan reasons. &#8220;Make it a single API endpoint, take the inputs at the outset, chain them all together, and spit the outputs back out to your user. That would be highly efficient. You wouldn&#8217;t then need MCP or agents at all.&#8221;</p><p>The benefit of MCP is the emergent use case. That is the workflow your users need that you did not anticipate, in the sequence they need it, composed on the fly from the tools you have exposed. By giving the model a set of tools rather than a fixed pipeline, you allow the system to compose solutions for problems you never explicitly programmed for.</p><p>&#8220;If you have an application that&#8217;s very diverse, with a diverse set of data, with a wide-ranging type or class of data, and maybe even different user roles that are coming in and using your product, that&#8217;s where MCP can really be a massive unlock, because the composition artifacts are effectively infinite,&#8221; Nowlan observes.</p><p>The corollary is equally important. If your application is relatively rigid and your users reliably need the same five things, MCP introduces complexity without adding value. The decision to use it should follow directly from the diversity of your use cases, not from the fact that it is available.</p><h2>The 80-20 rule for DAG versus autonomous orchestration</h2><p>One of the more practically useful frameworks Nowlan describes is how his team decides when to use a fixed Directed Acyclic Graph (DAG)-based workflow versus an open-ended MCP-style loop, and how that decision evolves over time.</p><p>The starting point is openness. When a new feature or product area is introduced, the team tends to begin with the full MCP loop. The premise is straightforward. Here is the set of tools. Let the system compose whatever the user needs. This preserves maximum flexibility while the team learns how customers actually use the system.</p><p>Over time, patterns emerge. Certain workflows appear repeatedly. Those are the candidates for promotion into a DAG.</p><p>&#8220;There&#8217;s kind of an 80-20 rule here, where 80% of the time your customers are looking to solve their problems with 20% of these key workflows that you&#8217;ve identified,&#8221; Nowlan notes. &#8220;Those should then be translated into DAGs, into workflows, into a little bit stricter information flow architecture.&#8221;</p><p>The payoff is significant, Nowlan affirms. Once a workflow is on a DAG, you can optimise aggressively. You can use a cheaper model for nodes that do not require frontier-level reasoning. You can shed context that is irrelevant to a particular step rather than packing everything into the window. You can bound latency because the execution path is known in advance.</p><p>&#8220;When you get on that track, that predefined workflow, that&#8217;s where you can save cost, you can potentially use a cheaper model for a particular node that you know doesn&#8217;t need the most expensive model. And you can also shed information from context in that workflow when you know it&#8217;s not necessary for the outcome.&#8221;</p><p>The open-ended MCP loop remains available for everything else, for the 20% of use cases that do not fit a known pattern. The architecture supports both, and the team actively monitors usage to identify when a new workflow has crossed the threshold and is ready to be promoted. There is no firm cutoff, just the observation that a workflow is appearing often enough to justify the investment in making it faster and cheaper.</p><h2>The infinite loop problem</h2><p>Bounding execution is one of the more fundamental challenges in agentic systems, and it is one that the industry is still working through. The early solutions were basic by necessity. At the most fundamental level, Nowlan explains, it comes down to two questions: has the system hit a timeout, and has it exceeded a set number of attempts.</p><p>The deeper issue is that the problem did not originate with modern agents. In the early days of GPT-3-era pipelines, a common approach was to ask the model for one action at a time, execute it, and return for the next. The loop would never terminate because the model had no reliable sense of when it was done.</p><p>&#8220;We quickly realized they would literally go on forever. The loop would just never terminate, would never know that it was done, or it would know that it was done way too early.&#8221;</p><p>The response was to shift from reactive step-by-step prompting to upfront scoping. Rather than asking the model what to do next after each action, you ask it at the outset to decompose the overall task into a bounded set of subtasks, and then you execute those subtasks in sequence and stop.</p><p>&#8220;We pivoted from the early days toward putting more bounds on the problem space. What are the things you think I should do? Break this down into a set of tasks, a set of subtasks, and then I&#8217;ll take each of those subtasks in turn, but when I get to that last subtask, I&#8217;m done. I&#8217;m not going back and asking you for more.&#8221;</p><p>As models have improved, this has relaxed somewhat. The team now allows a final evaluation pass, a double or triple check at the end, before closing the loop. But the underlying principle has not changed. Get the model to scope the work before execution begins, and treat that scope as a constraint rather than a suggestion.</p><p>&#8220;You want to get the AI to put bounds and scope around the overall work that you&#8217;ll be doing to solve or complete some task, and try to stick to that as a guide so that you don&#8217;t run off into the infinite space of querying forever.&#8221;</p><h2>Testing non-deterministic flows</h2><p>Testing a system where the execution path changes based on the model&#8217;s output requires a different approach from conventional integration testing. Nowlan and his team lean toward trace-based evaluation, grounded in a close understanding of realistic user inputs.</p><p>&#8220;All of our evaluations are, we think, we hope, reasonably close to the reality of those inputs that we&#8217;re going to get from our end users.&#8221;</p><p>The logic is that if you understand the domain well enough, you can anticipate the shape of the tasks users will bring to the system even if you cannot predict the exact inputs. In a web testing context, for example, that means understanding that users are going to log in, fill out forms, scroll through lists, and navigate between pages. Those logical actions become the basis for evaluations, and the evaluations can then check whether the agent followed a reasonable path to completion rather than whether it followed an exact predetermined path.</p><p>At the same time, Nowlan acknowledges that no evaluation suite fully covers the space of real-world inputs. The complement to pre-built evaluations is comprehensive logging and tracing of every prompt and response the system exchanges with the model.</p><p>&#8220;We log and trace all of our inputs and outputs that we exchange to the LLMs, and then we can go back and debug those, and examine those, and we can obviously use AI to probabilistically parse and understand those inputs and outputs.&#8221;</p><p>This creates a feedback loop that pre-built evaluations cannot replicate. When a user reports a bad experience or churns, the team can go back to the traces for that user, examine the prompt and response sequences, and use a model to evaluate whether the quality of the AI outputs degraded at any point. The evaluation happens after the fact, using the actual production inputs rather than synthetic ones.</p><p>Nowlan&#8217;s broader point is that evaluation in non-deterministic systems is not a gate you run before deployment. It is an ongoing process that runs in parallel with production, using real data to surface quality issues that no pre-deployment test suite would have caught.</p><div><hr></div><h2><strong>&#128736;&#65039; Tool of the Week</strong></h2><p><strong><a href="https://github.com/huggingface/smolagents">smolagents</a></strong> &#8212; Hugging Face&#8217;s open-source library for building agents that think in code</p><p><strong>Highlights:</strong></p><ul><li><p><strong>Code-first agents:</strong> Generates and executes Python code instead of structured tool calls, which can reduce back-and-forth with the model in some workflows.</p></li><li><p><strong>Model-agnostic:</strong> Works with local Transformers models, Hugging Face Inference API, and providers via LiteLLM.</p></li><li><p><strong>Supports sandboxing:</strong> Can run code in environments like Docker, E2B, or Pyodide, but requires proper setup for safety.</p></li><li><p><strong>Hub integration:</strong> Tools and agents can be shared and reused via the Hugging Face Hub.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://github.com/huggingface/smolagents&quot;,&quot;text&quot;:&quot;Learn more about smolagents&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://github.com/huggingface/smolagents"><span>Learn more about smolagents</span></a></p><div><hr></div><h1><strong>&#128206; Tech Briefs</strong></h1><ul><li><p><a href="https://techcrunch.com/2026/04/07/anthropic-mythos-ai-model-preview-security/">Anthropic moves Claude Mythos into controlled early access under Project Glasswing</a> - Limited rollout to partners including Amazon, Apple, and Microsoft for defensive security work, with early reports pointing to strong capability in identifying software vulnerabilities</p></li><li><p><a href="https://www.microsoft.com/en-us/microsoft-copilot/blog/copilot-studio/new-and-improved-multi-agent-orchestration-connected-experiences-and-faster-prompt-iteration/">Microsoft Copilot Studio ships multi-agent orchestration to general availability</a> - Now supports A2A protocol for agent-to-agent delegation and cross-app agent reuse via the Microsoft 365 Agents SDK.</p></li><li><p><a href="https://www.openpr.com/news/4454447/2026-agentic-ai-era-why-multi-model-routing-has-become">Google releases Gemma 4 under Apache 2.0</a> - Ranges from lightweight edge models to a 31B-parameter variant with strong performance on reasoning, agentic workflows, and multilingual tasks.</p></li><li><p><a href="https://docs.langchain.com/oss/python/releases/changelog">LangGraph ships async subagents in latest Deep Agents update</a> - Adds non-blocking background subagents alongside type-safe streaming and Pydantic coercion in the new v2 API.</p></li><li><p><a href="https://www.helpnetsecurity.com/2026/04/03/microsoft-ai-agent-governance-toolkit/">Microsoft releases open-source Agent Governance Toolkit</a> - A seven-package system that intercepts every agent action before execution at sub-millisecond latency, with native integrations for LangChain, CrewAI, Google ADK, and Microsoft Agent Framework.</p></li></ul><div><hr></div><p>That&#8217;s all for today. Thank you for reading this issue of Deep Engineering.</p><p>We&#8217;ll be back next week with more expert-led content.</p><p>Stay awesome, </p><p>Saqib Jan </p><p>Editor-in-Chief, Deep Engineering</p><div><hr></div><p><em>If your company is interested in reaching an audience of senior developers, software engineers, and technical decision-makers, you may want to </em><strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong><em>.</em></p><p>Thanks for reading Packt Deep Engineering! Subscribe for free to receive new posts and support my work.</p>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #41: Scaling C++ the Right Way with Sam Morley]]></title><description><![CDATA[Template metaprogramming, cache-aware design, concurrency models, and why learning Rust might actually make you a better C++ programmer.]]></description><link>https://deepengineering.substack.com/p/deep-engineering-41-scaling-c-the</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-41-scaling-c-the</guid><dc:creator><![CDATA[Saqib Jan]]></dc:creator><pubDate>Thu, 02 Apr 2026 15:16:15 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/4017b543-27c2-4082-9f3b-1bd7abbbdd3a_1432x840.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3><a href="https://www.eventbrite.com/e/c-memory-management-masterclass-tickets-1983063567513?aff=deepeng">C++ Memory Management Masterclass (Live) &#8212; Back for the 3rd Run</a></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.com/e/c-memory-management-masterclass-tickets-1983063567513?aff=deepeng" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M9ZS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!M9ZS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!M9ZS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!M9ZS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M9ZS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:508191,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.eventbrite.com/e/c-memory-management-masterclass-tickets-1983063567513?aff=deepeng&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/189970085?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.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_!M9ZS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!M9ZS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!M9ZS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!M9ZS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Back by demand (3rd run). </figcaption></figure></div><p>Learn ownership, RAII, smart pointers &amp; allocators to eliminate leaks/UB&#8212;live hands-on with <strong>Patrice Roy</strong>&#8212;#1 bestselling author of <em><strong>C++ Memory Management</strong></em> and ISO C++ Standards Committee (WG21) member. <strong>Online: Sat Apr 11, 10:30 AM&#8211;Sun Apr 12, 4:00 PM ET.</strong> Limited seats.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/c-memory-management-masterclass-tickets-1983063567513?aff=deepeng&quot;,&quot;text&quot;:&quot;Register now&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.eventbrite.com/e/c-memory-management-masterclass-tickets-1983063567513?aff=deepeng"><span>Register now</span></a></p><div><hr></div><p><strong>&#9997;&#65039; From the editor&#8217;s desk,</strong></p><p>Welcome to the 41<sup>st</sup> issue of Deep Engineering!</p><p>As AI scaling hits the <a href="https://semiengineering.com/memory-wall-gets-higher/">memory wall</a>, system performance is increasingly limited by data movement rather than raw compute power. This shifts the optimization focus toward data locality because adding cores provides no benefit when bandwidth bottlenecks the system. Writing fast code now requires precise control over memory layout and concurrency, yet these techniques often introduce complexity that becomes unmanageable as codebases grow.</p><p>That specific tension defines this week&#8217;s feature with <strong><a href="https://www.linkedin.com/in/morleys90/">Sam Morley</a></strong>, Research Software Engineer and Mathematician at the <strong>University of Oxford</strong> and author of <em><strong><a href="https://www.packtpub.com/en-us/product/the-c-programmers-mindset-9781835888438">The C++ Programmer&#8217;s Mindset</a></strong></em>. </p><p>Building on our earlier discussion in <a href="https://deepengineering.substack.com/p/deep-engineering-31-sam-morley-on">Part 1 around decomposition and abstraction</a> costs, today's issue digs deeper into the guiding principles for scaling C++ systems. It covers how teams can keep complexity under control as codebases grow, why template metaprogramming deserves extreme caution, and why thinking with the machine is non-negotiable when optimising cache layout.</p><p>Let&#8217;s get started.</p><div><hr></div><h2 style="text-align: center;"><a href="https://www.vpdae.com/redirect/5fyjlge1f9ex7lvgzd49zncleuf">Stop Building Vault</a></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.vpdae.com/redirect/5fyjlge1f9ex7lvgzd49zncleuf" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_Syn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png 424w, https://substackcdn.com/image/fetch/$s_!_Syn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png 848w, https://substackcdn.com/image/fetch/$s_!_Syn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png 1272w, https://substackcdn.com/image/fetch/$s_!_Syn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_Syn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png" width="300" height="300" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:300,&quot;width&quot;:300,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.vpdae.com/redirect/5fyjlge1f9ex7lvgzd49zncleuf&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!_Syn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png 424w, https://substackcdn.com/image/fetch/$s_!_Syn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png 848w, https://substackcdn.com/image/fetch/$s_!_Syn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png 1272w, https://substackcdn.com/image/fetch/$s_!_Syn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Sponsored </figcaption></figure></div><p style="text-align: center;">Secrets, PKI, &amp; PAM in one platform. Postgres-backed. No custom orchestration. Flexible deployment.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.vpdae.com/redirect/5fyjlge1f9ex7lvgzd49zncleuf&quot;,&quot;text&quot;:&quot;Start for free today &#8594;&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.vpdae.com/redirect/5fyjlge1f9ex7lvgzd49zncleuf"><span>Start for free today &#8594;</span></a></p><div><hr></div><h1>Adopting the C++ Programmer&#8217;s Mindset (Part 2) with Sam Morley</h1><p>Before listing any specific practices, Morley introduces a concept he returns to repeatedly. He calls it the future you.</p><p>&#8220;Future you is your future self and for all intents and purposes this is a different person,&#8221; Morley says. &#8220;When you&#8217;re writing some code, you understand things the way they are in the context of what you&#8217;re doing at the moment. Future you will have lost this context. So, when you come back to your code in a month, six months, a year&#8217;s time and you look at it and you think what was I thinking &#8212; almost surely the answer to that is: I don&#8217;t know.&#8221;</p><p>The practical implication is easy to skip under deadline pressure, but it could be costly to ignore. Comments are not just for teammates. They are messages to yourself, written at the moment of maximum understanding, for a future reader who no longer has that understanding. Morley is explicit that this does not mean narrating the obvious. What he does instead, particularly on mathematically intricate work, is write large block comments that describe where the process is, how the next section works, and what the algorithm is intended to achieve. &#8220;These comments save me so much pain when I jump off the project for a week and then go back and have to remember exactly what I was trying to do.&#8221;</p><p>Beyond comments, Morley points to three C++ specific practices that matter most for scalability. The first is a <strong>strict separation of concerns</strong>. Numerical computation should not live in the same place as user-facing code. Components should be modular enough to be tested in isolation. This also pays dividends when distributing computation across clusters, because reusable tight-loop routines can be dropped into different distribution mechanisms without rework.</p><p>The second practice is <strong>thinking about thread safety earlier</strong> than you think you need to. Designing class members with that future in mind costs almost nothing early and can be enormously expensive to retrofit later. The third is <strong>keeping your build system clean</strong>. Morley uses CMake and is emphatic about this. &#8220;Having a broken build system is far worse than having broken code. It&#8217;s much harder to figure out what exactly has gone wrong if your build system is broken.&#8221; Build systems accumulate debt quietly and the consequences arrive at the worst possible moment, usually when you need to extract a component into its own library under time pressure.</p><h2><strong>When metaprogramming becomes the problem</strong></h2><p>&#8220;I&#8217;ve seen some horrendous template metaprogramming in my life,&#8221; Morley reflects. &#8220;I&#8217;ve written some horrendous template metaprogramming in my life. I&#8217;m going to be the first one to admit that it&#8217;s never worth it.&#8221;</p><p>The target here is the elaborate kind: deeply nested type machinery and SFINAE-heavy <code>enable_if</code> chains. Instantiating a complex template metaprogram can easily double compile time for a single translation unit. At scale, across thousands of files, the cost becomes structural. Morley notes this is exactly why Google kept metaprogramming to an absolute minimum when writing Abseil. Modern C++ has reduced the genuine need for TMP significantly. Concepts and <code>constexpr</code> functions cover much of what engineers used to reach for TMP to solve, with readable syntax and without the compile time penalty.</p><p>Lambdas are a different conversation. Used correctly, Morley thinks they are one of the most readability-enhancing tools in the language. Used carelessly, they introduce exactly the kind of invisible coupling that makes the future you miserable. His specific warning is about lambdas that capture and modify values defined far away from where the lambda is used. &#8220;Every time you think what is this lambda doing, it&#8217;s modifying something that you&#8217;ve not looked at for a long time because your screen has been further down the page.&#8221; In cases where a lambda is the only place that reads or writes a particular value, Morley argues the value almost certainly belongs inside a class, where the ownership and mutation path are explicit.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4WHF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5180dc2f-843c-405c-a720-a93da5a3970e_903x337.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4WHF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5180dc2f-843c-405c-a720-a93da5a3970e_903x337.png 424w, https://substackcdn.com/image/fetch/$s_!4WHF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5180dc2f-843c-405c-a720-a93da5a3970e_903x337.png 848w, https://substackcdn.com/image/fetch/$s_!4WHF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5180dc2f-843c-405c-a720-a93da5a3970e_903x337.png 1272w, https://substackcdn.com/image/fetch/$s_!4WHF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5180dc2f-843c-405c-a720-a93da5a3970e_903x337.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4WHF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5180dc2f-843c-405c-a720-a93da5a3970e_903x337.png" width="903" height="337" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5180dc2f-843c-405c-a720-a93da5a3970e_903x337.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:337,&quot;width&quot;:903,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4WHF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5180dc2f-843c-405c-a720-a93da5a3970e_903x337.png 424w, https://substackcdn.com/image/fetch/$s_!4WHF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5180dc2f-843c-405c-a720-a93da5a3970e_903x337.png 848w, https://substackcdn.com/image/fetch/$s_!4WHF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5180dc2f-843c-405c-a720-a93da5a3970e_903x337.png 1272w, https://substackcdn.com/image/fetch/$s_!4WHF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5180dc2f-843c-405c-a720-a93da5a3970e_903x337.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Thinking with the machine</strong></h2><p>Morley uses a road analogy to introduce hardware-aware programming. If you are driving down an unfamiliar road in the dark, you slow down because you cannot see what is ahead. Knowing the road means you can go faster without risk. The system you are running the code on is the road, the code you are writing is the car, and understanding the road conditions means you can drive faster with confidence.</p><p>The most practically important piece of hardware to understand is the <strong>cache hierarchy</strong>. Cache behavior is invisible in the code but determines a large part of actual runtime performance. The canonical example comes from the games industry: the debate between <strong>Array of Structs (AoS)</strong> and <strong>Struct of Arrays (SoA)</strong>.</p><p>If you represent each game entity as a large struct and store those structs in a vector, then iterating over position data means striding across the full width of each struct to reach the next position value. &#8220;Big strides are bad for the cache. What you really want is all of the position data to be close together.&#8221;</p><p>The alternative is to separate data by type, storing all position values together and all velocity values together, so that each field is laid out contiguously in memory rather than interleaved across structs. As Morley puts it: &#8220;This transformation basically doubles or quadruples your throughput because now you don&#8217;t have to step over all of the useless data in order to update your position.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EP7K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd791d54-d1d0-4d6f-a213-7b9634b9b71c_903x343.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EP7K!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd791d54-d1d0-4d6f-a213-7b9634b9b71c_903x343.png 424w, https://substackcdn.com/image/fetch/$s_!EP7K!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd791d54-d1d0-4d6f-a213-7b9634b9b71c_903x343.png 848w, https://substackcdn.com/image/fetch/$s_!EP7K!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd791d54-d1d0-4d6f-a213-7b9634b9b71c_903x343.png 1272w, https://substackcdn.com/image/fetch/$s_!EP7K!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd791d54-d1d0-4d6f-a213-7b9634b9b71c_903x343.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EP7K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd791d54-d1d0-4d6f-a213-7b9634b9b71c_903x343.png" width="903" height="343" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bd791d54-d1d0-4d6f-a213-7b9634b9b71c_903x343.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:343,&quot;width&quot;:903,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EP7K!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd791d54-d1d0-4d6f-a213-7b9634b9b71c_903x343.png 424w, https://substackcdn.com/image/fetch/$s_!EP7K!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd791d54-d1d0-4d6f-a213-7b9634b9b71c_903x343.png 848w, https://substackcdn.com/image/fetch/$s_!EP7K!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd791d54-d1d0-4d6f-a213-7b9634b9b71c_903x343.png 1272w, https://substackcdn.com/image/fetch/$s_!EP7K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd791d54-d1d0-4d6f-a213-7b9634b9b71c_903x343.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>Matrix multiplication illustrates the same principle at a more concrete level. In one direction, data access is sequential and cache-friendly. In the other direction, moving between rows in a column means jumping across memory in steps as wide as the entire matrix, which is exactly what the cache is designed to avoid. The standard mitigation is tiling: load a small tile of the matrix, do as much computation as possible on that tile, then move to the next one. Morley walks through a tiled implementation in the book and notes roughly a four-times improvement over the naive approach from tiling alone, before any SIMD or pipelining optimisations are applied.</p><p>Branch prediction and SIMD matter too, but Morley is careful about context. For general-purpose application code, the compiler will usually make reasonable decisions, and the latency bottleneck is more often a network call or a disk write than an instruction pipeline stall. These details start to matter seriously when throughput is the primary constraint: training large models, running physics simulations, anything where a microsecond saved per operation compounds into meaningful wall-clock time across billions of invocations. &#8220;Taking an extra microsecond to do a calculation is devastating when you have to do that a billion times.&#8221;</p><h2><strong>Concurrency: two models, two risk profiles</strong></h2><p>Morley distinguishes two fundamentally different multi-threaded scenarios that require different mental models.</p><p>The first is data parallelism. A large dataset split across threads, each thread operating on its own independent range with no shared state. <em>&#8220;There&#8217;s never any overlap. Each thread goes away, does its work, and the results are put in the buffer.&#8221;</em> This is relatively safe territory. Parallel algorithms and OpenMP handle much of the machinery, and as long as the data partition is clean and there is no self-referential access, data races are structurally prevented.</p><p>The second scenario is harder. Multiple worker threads operating on shared state within a larger system. A dispatch queue is the typical pattern, where a main thread stacks work items and worker threads pull from the queue. Here, ownership discipline becomes non-negotiable. </p><p>Morley&#8217;s design goal is simple to state and difficult to achieve: only one thread, one function, one whatever should be able to modify a value at any given time. There are two ways to achieve this. The first is architectural: design the program so that each thread exclusively owns its data and never touches another thread&#8217;s values. The second is synchronisation: use atomics, mutex-locked values, or other thread-safe mechanisms to control access.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ahy9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85faf9b9-f322-4c67-8086-a294a8baa630_903x367.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ahy9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85faf9b9-f322-4c67-8086-a294a8baa630_903x367.png 424w, https://substackcdn.com/image/fetch/$s_!ahy9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85faf9b9-f322-4c67-8086-a294a8baa630_903x367.png 848w, https://substackcdn.com/image/fetch/$s_!ahy9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85faf9b9-f322-4c67-8086-a294a8baa630_903x367.png 1272w, https://substackcdn.com/image/fetch/$s_!ahy9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85faf9b9-f322-4c67-8086-a294a8baa630_903x367.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ahy9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85faf9b9-f322-4c67-8086-a294a8baa630_903x367.png" width="903" height="367" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85faf9b9-f322-4c67-8086-a294a8baa630_903x367.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:367,&quot;width&quot;:903,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ahy9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85faf9b9-f322-4c67-8086-a294a8baa630_903x367.png 424w, https://substackcdn.com/image/fetch/$s_!ahy9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85faf9b9-f322-4c67-8086-a294a8baa630_903x367.png 848w, https://substackcdn.com/image/fetch/$s_!ahy9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85faf9b9-f322-4c67-8086-a294a8baa630_903x367.png 1272w, https://substackcdn.com/image/fetch/$s_!ahy9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85faf9b9-f322-4c67-8086-a294a8baa630_903x367.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>Morley urges engineers to read the synchronisation documentation carefully before reaching for any of these tools. Deadlocks happen when engineers use them without fully understanding their semantics. The architectural solution is always preferable when achievable: if you can design the program so that each thread never touches another thread&#8217;s data, you eliminate the entire class of problem. When you cannot, synchronisation primitives are available, but the burden of correctness falls entirely on the engineer.</p><h2><strong>Memory safety and the Rust argument</strong></h2><p>The issue closes on a topic that provokes strong reactions in C++ communities. With around 70% of serious security vulnerabilities attributed to memory safety failures in C and C++ code, the question of whether the language itself is the problem is not academic.</p><blockquote><p>Morley&#8217;s answer is direct. <em>&#8220;Go and learn some Rust.&#8221;</em></p></blockquote><p>He anticipates the objection. <em>&#8220;A lot of C++ programmers turn their nose up when Rust is mentioned. Generally, the feeling is: we don&#8217;t need Rust, we can do all of this in C++. But that&#8217;s not the point.&#8221;</em> The point is that the Rust compiler forces a specific kind of thinking about ownership and lifetime that C++ leaves entirely to the developer. Rust&#8217;s sync and send traits enforce thread safety at the type system level. Unsafe code is marked explicitly, which means the developer makes a deliberate choice to step outside safe boundaries rather than doing so accidentally. <em>&#8220;Learning a bit of Rust will make you better at writing safe C++. The reverse is not true.&#8221;</em></p><p>For engineers who are not yet ready to invest in Rust, Morley's immediate C++ recommendations are practical and specific. Prefer <code>std::array</code> over C-style arrays. Use smart pointers instead of manual memory management; writing operator new directly in application code is an antipattern at this point. Use <code>std::span</code> rather than raw pointers when passing data around. Avoid the C standard library IO functions entirely: <code>gets</code>, <code>puts</code>, <code>sprintf</code>, and their relatives have documented vulnerabilities and safer equivalents exist.</p><blockquote><p><em>&#8220;The best-case scenario for a bad memory access is a crash. If it goes unnoticed, it could happen for months before you notice that this has been producing garbage the entire time. By which point you&#8217;ve wasted months.&#8221;</em></p></blockquote><p>The throughline from <a href="https://deepengineering.substack.com/p/deep-engineering-31-sam-morley-on">Part 1</a> holds here. Whether the subject is decomposition, abstraction, maintainability, or memory safety, Morley keeps returning to the same discipline: be conscious of what you are doing, understand the costs of your choices, write for the person who will read the code next, and treat the machine as a collaborator rather than a black box.</p><h2><strong>&#128269; In case you missed it&#8230;</strong></h2><p>The complete Chapter 1 from Sam Morley&#8217;s book, The C++ Programmer&#8217;s Mindset &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;5269e736-ea61-4f8d-b468-9e75cd9dbf63&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Thinking Computationally&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:440051761,&quot;name&quot;:&quot;Sam Morley&quot;,&quot;bio&quot;:&quot;Research software engineer and mathematician on the DataSig project at the University of Oxford.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!hfZA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b7dcfcf-a878-45d0-99e4-a8f2045dee3e_144x144.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://sammorley.substack.com/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://sammorley.substack.com&quot;,&quot;primaryPublicationName&quot;:&quot;Sam Morley&quot;,&quot;primaryPublicationId&quot;:7726502}],&quot;post_date&quot;:&quot;2026-01-22T08:31:44.729Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7667fcd3-2279-4e00-a74d-ff1459f26896_800x533.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/thinking-computationally&quot;,&quot;section_name&quot;:&quot;Practical Deep-Dives&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:185392285,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;0154149e-12fd-4a3b-bd08-fe678eb672c9&quot;,&quot;caption&quot;:&quot;C++ rewards engineers who treat problem-solving as a deliberate process rather than an improvisation. In this conversation, Sam Morley returns repeatedly to that theme: decompose the work until it becomes a set of solvable, &#8220;atomic&#8221; parts, then choose abstractions that fit the real constraints of the system. He argues that abstractions are never free, e&#8230;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The C++ Programmer&#8217;s Mindset on Abstraction Costs, &#8220;Future You,&#8221; and Thinking with the Machine: A Conversation with Sam Morley&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:140662997,&quot;name&quot;:&quot;Divya Anne Selvaraj&quot;,&quot;bio&quot;:&quot;Editor-in-Chief of Deep Engineering by Packt&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/309a6f07-27a6-40bf-ab99-d042556d816b_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:440051761,&quot;name&quot;:&quot;Sam Morley&quot;,&quot;bio&quot;:&quot;Research software engineer and mathematician on the DataSig project at the University of Oxford.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!hfZA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b7dcfcf-a878-45d0-99e4-a8f2045dee3e_144x144.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://sammorley.substack.com/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://sammorley.substack.com&quot;,&quot;primaryPublicationName&quot;:&quot;Sam Morley&quot;,&quot;primaryPublicationId&quot;:7726502}],&quot;post_date&quot;:&quot;2026-01-22T05:13:13.607Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/TRii5U87yn8&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/the-c-programmers-mindset-on-abstraction&quot;,&quot;section_name&quot;:&quot;Interviews&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:185273208,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;a75cf9ab-b8b4-43a8-bfa5-5fa6353fe767&quot;,&quot;caption&quot;:&quot;C++ Memory Management Masterclass (Live) &#8212; Jan 24&#8211;25&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Deep Engineering #31: Sam Morley on decomposition &amp; abstraction in C++&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:140662997,&quot;name&quot;:&quot;Divya Anne Selvaraj&quot;,&quot;bio&quot;:&quot;Editor-in-Chief of Deep Engineering by Packt&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/309a6f07-27a6-40bf-ab99-d042556d816b_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:440051761,&quot;name&quot;:&quot;Sam Morley&quot;,&quot;bio&quot;:&quot;Research software engineer and mathematician on the DataSig project at the University of Oxford.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!hfZA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b7dcfcf-a878-45d0-99e4-a8f2045dee3e_144x144.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://sammorley.substack.com/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://sammorley.substack.com&quot;,&quot;primaryPublicationName&quot;:&quot;Sam Morley&quot;,&quot;primaryPublicationId&quot;:7726502}],&quot;post_date&quot;:&quot;2026-01-22T13:31:21.327Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e8e6bf12-873b-4f08-ac14-f9e4d69295a8_800x533.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/deep-engineering-31-sam-morley-on&quot;,&quot;section_name&quot;:&quot;Newsletter Issues&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:185385606,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:3,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128736;&#65039; Tool of the Week</h2><p><strong><a href="https://github.com/google/benchmark">Google Benchmark</a> </strong>&#8212; A microbenchmark support library for C++</p><p>Google Benchmark is an open-source framework for measuring the performance of isolated C++ code so you can test cache-aware designs and tight-loop optimizations with high precision.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://github.com/google/benchmark&quot;,&quot;text&quot;:&quot;Learn more about Google Benchmark&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://github.com/google/benchmark"><span>Learn more about Google Benchmark</span></a></p><div><hr></div><h1><strong>&#128206; Tech Briefs</strong></h1><ul><li><p><a href="https://herbsutter.com/2026/03/29/c26-is-done-trip-report-march-2026-iso-c-standards-meeting-london-croydon-uk/">C++26 Finalizes Technical Work</a> &#8212; The ISO committee completed the C++26 draft in London, locking in features like compile-time reflection, memory safety improvements, and contracts ahead of final approval.</p></li><li><p><a href="https://blog.rust-lang.org/2026/03/26/1.94.1-release/">Rust 1.94.1 Shipped</a> &#8212; A point release that fixes compiler regressions, resolves clippy false positives on match arms, and updates Cargo dependencies to address critical CVEs.</p></li><li><p><a href="https://blog.jetbrains.com/rust/2026/03/30/whats-new-in-rustrover-2026-1/">RustRover 2026.1 Released</a> &#8212; JetBrains introduced cargo-nextest integration, a call hierarchy view, LLDB 21 upgrades, and improved DWARF indexing for procedural macros.</p></li><li><p><a href="https://cppcon.org/category/news/">CppCon 2026 Opens Registration</a> &#8212; Registration is open for the Colorado event, with sessions covering AI infrastructure, low-latency design, and hardware-aware performance.</p></li><li><p><a href="https://www.helpnetsecurity.com/2026/02/09/linux-kernel-6-19-released/">Linux Kernel 7.0 Approaches</a> &#8212; After Linux 6.19, the merge window for 7.0 is now open, pointing to a major version release expected later this April.</p></li></ul><div><hr></div><p>That&#8217;s all for today. Thank you for reading this issue of Deep Engineering.</p><p>We&#8217;ll be back next week with more expert-led content.</p><p>Stay awesome, </p><p>Saqib Jan </p><p>Editor-in-Chief, Deep Engineering</p><div><hr></div><p><em>If your company is interested in reaching an audience of senior developers, software engineers, and technical decision-makers, you may want to </em><strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong><em>.</em></p>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #40: Karun Thankachan on Small Language Models in production]]></title><description><![CDATA[How to train SLMs to reason well, route across specialised models, and govern correctness at scale]]></description><link>https://deepengineering.substack.com/p/deep-engineering-40-karun-thankachan</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-40-karun-thankachan</guid><dc:creator><![CDATA[Saqib Jan]]></dc:creator><pubDate>Thu, 26 Mar 2026 14:49:14 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d04425f8-ad70-4b72-85e9-c60becee333c_2816x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3><strong><a href="https://www.eventbrite.com/e/building-production-ready-agent-systems-with-mcp-tickets-1982519419953?aff=deepeng">Building Production-Ready Agent Systems with MCP</a></strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.com/e/building-production-ready-agent-systems-with-mcp-tickets-1982519419953?aff=deepeng" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dyy6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!dyy6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!dyy6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!dyy6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dyy6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.eventbrite.com/e/building-production-ready-agent-systems-with-mcp-tickets-1982519419953?aff=deepeng&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!dyy6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!dyy6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!dyy6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!dyy6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.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>A full-lifecycle workshop on designing, securing, evaluating, and optimizing agent systems that hold up in production. </p><p><strong>Online: </strong>March 29 <strong>|</strong> 10:30 AM - 4:00 PM EST</p><p>&#10003; 2-for-1 deal: Bring a colleague, get 2 passes for the price of 1.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/building-production-ready-agent-systems-with-mcp-tickets-1982519419953?aff=deepeng&quot;,&quot;text&quot;:&quot;Register now&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.eventbrite.com/e/building-production-ready-agent-systems-with-mcp-tickets-1982519419953?aff=deepeng"><span>Register now</span></a></p><div><hr></div><p><strong>&#9997;&#65039; From the editor&#8217;s desk,</strong></p><p>Welcome to the 40th issue of Deep Engineering!</p><p>The conversation around AI infrastructure is heating up. Nvidia this week pointed to more than <strong>$1 trillion</strong> in <a href="https://links.uk.defend.egress.com/Warning?crId=69c523b34c6c9c9ab6d09b48&amp;Domain=packt.com&amp;Threat=eNpzrShJLcpLzAEADmkDRA%3D%3D&amp;Lang=en&amp;Base64Url=eNoNyksOgzAMBNATDUZUYsFtTBliJOejxFXF7WH1Ns8i2thEgl8r9eCUvO7qsszLKvPnVf52Y2R1h2tJP01EfqcPZL2xE2FE6mRhR9MwnLVDW_OLB_SSB9XXIys%3D&amp;@OriginalLink=technode.global">AI chip revenue opportunity</a> by 2027, explicitly tying that outlook to growing demand for inference. And when inference at scale becomes a boardroom number, model efficiency stops being a niche engineering concern and starts shaping cost control, product design, and build versus buy decisions. That is the<a href="https://www.reuters.com/world/asia-pacific/nvidia-ceo-set-reveal-new-chips-software-ai-megaconference-gtc-2026-03-16/"> </a>context in which small language models are becoming harder to ignore.</p><p>The case is not that general-purpose LLMs are going away &#8211; it is that a large share of production workloads, classification, structured extraction, and domain-specific reasoning, do not need an LLM. Serving a 7-billion parameter&#8239;<a href="https://links.uk.defend.egress.com/Warning?crId=69c523b34c6c9c9ab6d09b48&amp;Domain=packt.com&amp;Threat=eNpzrShJLcpLzAEADmkDRA%3D%3D&amp;Lang=en&amp;Base64Url=eNoFwkEKwCAMBMAX2bUWPPQ3YkMqbFRI-v8y80ZsvwHfK8YMIYfK7HL0ZSi5VOQLZ4VbIxPb1K-pJFuP0JPTHD8qOheY&amp;@OriginalLink=spotintelligence.com">SLM runs 10 to 30 times cheaper</a>&#8239;than a 70-billion parameter LLM, and that gap compounds across millions of requests. For engineering leaders, the question is no longer whether SLMs belong in the stack &#8211; it is how to train them to reason well, how to route across multiple specialized models at runtime, and how to govern correctness when AI is accelerating the pace of change.</p><p>This week&#8217;s feature is based on a conversation with&#8239;<a href="https://links.uk.defend.egress.com/Warning?crId=69c523b34c6c9c9ab6d09b48&amp;Domain=packt.com&amp;Threat=eNpzrShJLcpLzAEADmkDRA%3D%3D&amp;Lang=en&amp;Base64Url=eNrLKCkpKLbS1y8vL9fLyczLTk3JzNNLzs_Vz8zTz04sKs0rAQDf1Azk&amp;@OriginalLink=www.linkedin.com">Karun Thankachan</a>, Senior Data Scientist at&#8239;<a href="https://links.uk.defend.egress.com/Warning?crId=69c523b34c6c9c9ab6d09b48&amp;Domain=packt.com&amp;Threat=eNpzrShJLcpLzAEADmkDRA%3D%3D&amp;Lang=en&amp;Base64Url=eNotyssJgEAMBcCKNrnbjMQQzCEfcZ_Yvgh7HcaBa27MMHV6JVJukHaydsEKvGyc0YfE-B9b7c8kR8YH-UoX7w%3D%3D&amp;@OriginalLink=tech.walmart.com">Walmart</a>. We dig deep into how to treat reasoning as a budgeted resource, when routing across specialized models beats relying on a single large one, and why context engineering is winning over fine-tuning for many teams right now.</p><p>And we also have a <a href="https://deepengineering.substack.com/p/agentic-ai-is-redefining-edge-infrastructure">thought leadership</a> piece by <a href="https://www.linkedin.com/in/leejpeterson">Lee Peterson</a>, VP of Secure WAN Product Management at <strong>Cisco</strong>, on why the network layer underneath agentic systems matters just as much as the models running on top of it.</p><p>Let&#8217;s get started.</p><div><hr></div><h2 style="text-align: center;"><a href="https://www.vpdae.com/redirect/5fyjlge1f9ex7lvgzd49zncleuf">Stop Building Vault</a></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.vpdae.com/redirect/5fyjlge1f9ex7lvgzd49zncleuf" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_Syn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png 424w, https://substackcdn.com/image/fetch/$s_!_Syn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png 848w, https://substackcdn.com/image/fetch/$s_!_Syn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png 1272w, https://substackcdn.com/image/fetch/$s_!_Syn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_Syn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png" width="300" height="300" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:300,&quot;width&quot;:300,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.vpdae.com/redirect/5fyjlge1f9ex7lvgzd49zncleuf&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!_Syn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png 424w, https://substackcdn.com/image/fetch/$s_!_Syn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png 848w, https://substackcdn.com/image/fetch/$s_!_Syn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png 1272w, https://substackcdn.com/image/fetch/$s_!_Syn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f67aa6-849f-46a9-8a05-53e9c5620c5e_300x300.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Sponsored </figcaption></figure></div><p style="text-align: center;">Secrets, PKI, &amp; PAM in one platform. Postgres-backed. No custom orchestration. Flexible deployment.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.vpdae.com/redirect/5fyjlge1f9ex7lvgzd49zncleuf&quot;,&quot;text&quot;:&quot;Start for free today &#8594;&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.vpdae.com/redirect/5fyjlge1f9ex7lvgzd49zncleuf"><span>Start for free today &#8594;</span></a></p><div><hr></div><h1>The Case for Small Language Models in Real Systems</h1><p><em>by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Deepayan Bhattacharjee&quot;,&quot;id&quot;:480630041,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!jegY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F385931a8-2eb0-4f8a-bd57-14713ff3988d_144x144.png&quot;,&quot;uuid&quot;:&quot;e098a63a-523a-4081-9d92-9b51e15de766&quot;}" data-component-name="MentionToDOM"></span> with </em><a href="https://www.linkedin.com/in/karunt">Karun Thankachan</a>.</p><p>Karun Thankachan&#8217;s <a href="https://deepengineering.substack.com/p/small-language-models-and-the-future">conversation</a> with us keeps circling back to one production truth:</p><p>The &#8220;best&#8221; model is the one that meets your accuracy target inside your cost and latency budget.</p><p>In early phases of a product, teams often use large general-purpose LLMs to explore what&#8217;s possible. But once the user experience stabilizes, the engineering focus shifts &#8211; toward predictable latency, controllable spend, and repeatable quality. That shift is where small language models (SLMs) start to matter more than giant LLMs, because many real systems don&#8217;t need universal reasoning &#8211; they need reliable, narrow reasoning at scale.</p><p>Recent research and releases support this trajectory. For example,&#8239;<strong><a href="https://links.uk.defend.egress.com/Warning?crId=69c523b34c6c9c9ab6d09b48&amp;Domain=packt.com&amp;Threat=eNpzrShJLcpLzAEADmkDRA%3D%3D&amp;Lang=en&amp;Base64Url=eNoNyEEOwyAMBMAXgaMccuhvqFkVS8aOjFO-385xRua9XkR779pmr-yTYNTxhfqNoMDyJxiLEjxMuGlpkcL6r_M4LxLL8P6w2KcE2nJTSZSjXO86cuoPOBskkw%3D%3D&amp;@OriginalLink=www.amd.com">Zihao An et al. (Jan 20, 2026)</a></strong>&#8239;show that a&#8239;<strong>0.6B-parameter</strong>&#8239;reasoning model (ReasonLite) can reach&#8239;<strong>75.2% accuracy on AIME 2024</strong>, and they attribute it to distillation and training recipe design rather than sheer parameter count. This is exactly the kind of result that makes SLMs a serious production option once you know what task you need to solve.</p><h2>Cost-effective reasoning is a budget problem</h2><p>Thankachan&#8217;s core argument is not that LLMs are bad. It&#8217;s that <strong>general-purpose reasoning is expensive overkill</strong> for many high-volume workflows (customer support classification, catalog normalization, routing, anomaly triage, internal copilots for one domain). When a feature goes from thousands of calls to millions, the economics change.</p><p>A key point from the research community is that reasoning often becomes expensive because teams implicitly pay for&#8239;<strong>long reasoning traces</strong>&#8239;even when a request is simple.&#8239;<strong><a href="https://links.uk.defend.egress.com/Warning?crId=69c523b34c6c9c9ab6d09b48&amp;Domain=packt.com&amp;Threat=eNpzrShJLcpLzAEADmkDRA%3D%3D&amp;Lang=en&amp;Base64Url=eNrLKCkpKLbS108sqsgs08svStdPTCrWNzIzMNQzsDA2NAAAuWoJ8w%3D%3D&amp;@OriginalLink=arxiv.org">Kun Liang et al. (Jan 13, 2026)</a></strong>&#8239;describe this problem directly: long-form chain-of-thought reasoning can improve accuracy, but applying &#8220;overlong reasoning&#8221; uniformly at inference time creates &#8220;substantial and often unnecessary computational cost.&#8221; They propose&#8239;<strong>ORBIT</strong>, which aims to make reasoning behavior controllable across multiple &#8220;budgets.&#8221;</p><p>That maps cleanly to production reality: <strong>you don&#8217;t want a single mode of intelligence</strong>. You want a system that can do &#8220;fast and cheap&#8221; when it can, and &#8220;slow and deep&#8221; only when it must.</p><h2>Teaching SLMs to reason without bloating latency</h2><p>The approach Thankachan describes in the interview treats SLM training like an engineering workflow: combine distillation techniques, program-aided verification, and evaluation probes to close the gap between a teacher model and a smaller student.</p><p>What&#8217;s notable is that the <em>same idea</em> is showing up in recent public work: reasoning performance in small models is increasingly a function of <strong>distillation data quality, training curriculum, and trace control</strong>, not only scale.</p><p>In the AMD ReasonLite write-up, the authors describe a <strong>two-stage distillation curriculum</strong>: first fine-tune on <strong>short chain-of-thought</strong> for efficiency, then fine-tune on <strong>long chain-of-thought</strong> for peak accuracy. They also report that the &#8220;Turbo&#8221; variant tends to generate shorter outputs and offers a better efficiency/accuracy balance, while the long-trace variant reaches higher peak performance. This lines up with the production emphasis Thankachan describes: if your model is trained to be verbose, it will be slow and costly; if you want predictable serving, you must treat <em>thinking length</em> as a first-class knob.</p><p>A practical pattern for senior engineers is to separate <strong>training-time compute</strong> from <strong>serving-time compute</strong>:</p><ul><li><p>Use heavier techniques (like generating multiple traces, voting, or deeper teacher reasoning) during dataset creation and training, where batching and offline pipelines reduce the pain.</p></li><li><p>Enforce strict budgets at inference (max reasoning tokens, max latency, max retries) and treat budget violations as signals to improve training data or shorten traces.</p></li></ul><p><strong>The leadership takeaway:</strong> budgeting belongs in the contract, not just in infrastructure dashboards after costs explode.</p><h2>Orchestrating many small models beats one giant model</h2><p>The SLM-Fusion framing Thankachan describes &#8211; routing across specialized models, merging where it helps, and wrapping the whole thing behind an OpenAI-compatible gateway &#8211; reflects a broader trend:</p><p>Modern systems are becoming mixtures, not monoliths.</p><p>Recent work in retrieval-heavy QA shows why. <strong><a href="https://arxiv.org/abs/2603.14045">Yasaman Zarrinkia, Venkatesh Srinivasan, and Alex Thomo (Mar 18, 2026; v2)</a></strong> report a striking result when evaluating a Graph-RAG system: 77%&#8211;91% of questions contain the gold answer in the retrieved context, yet end-to-end accuracy is only 35%&#8211;78%, and 73%&#8211;84% of errors are reasoning failures.</p><p>That finding matters for architecture decisions. It implies that &#8220;better retrieval&#8221; alone isn&#8217;t enough; you need <strong>better reasoning structure</strong> and <strong>better context shaping</strong>. The same paper proposes two augmentations &#8211; structured prompting plus graph-walk compression &#8211; and then shows something that should make engineering leaders pay attention: with question-type routing, an <strong>open-weight Llama-8B</strong> configuration can <strong>match or exceed an unaugmented Llama-70B baseline</strong> across multiple benchmarks at about <strong>12&#215; lower cost</strong>.</p><p>This is the pragmatic case for SLM-centric production:</p><ul><li><p><strong>Route</strong> by intent/domain and cost budget, not just by &#8220;best model available.&#8221;</p></li><li><p><strong>Specialize</strong> models for stable tasks (where fine-tuning or distillation pays off).</p></li><li><p><strong>Escalate</strong> to a larger model only when uncertainty is high or stakes demand it.</p></li></ul><h2>Why context engineering is beating fine-tuning right now</h2><p>Thankachan argues that industry attention is shifting toward RAG and context engineering because it can be cheaper and easier to operationalize than constant fine-tuning &#8211; especially when domain knowledge changes frequently.</p><p>The Graph-RAG results above reinforce this. Even when the answer is present in retrieved context, the failure mode is often <strong>reasoning over context</strong>, not retrieval itself. That pushes teams toward two concrete engineering priorities:</p><ul><li><p><strong>Structure the prompt</strong> so the model reasons in a way that matches the data representation (for Graph-RAG, they use SPARQL-style decomposition).</p></li><li><p><strong>Compress context</strong> so the model sees less noise and wastes fewer tokens, while still preserving the minimal information needed to answer.</p></li></ul><p>For architects, the key decision lens is: <strong>fine-tuning changes the model; context engineering changes the problem presented to the model</strong>. When requirements or source documents change weekly, the second approach often has a faster operational loop.</p><h2>What&#8217;s next &#8211; budget-aware reasoning and diffusion models</h2><p>Thankachan flags diffusion models as a trend to watch. The key reason is not hype &#8211; it&#8217;s that diffusion-based language models may offer <strong>new efficiency controls</strong> that differ from token-by-token autoregressive decoding.</p><p>A concrete example:&#8239;<strong><a href="https://links.uk.defend.egress.com/Warning?crId=69c523b34c6c9c9ab6d09b48&amp;Domain=packt.com&amp;Threat=eNpzrShJLcpLzAEADmkDRA%3D%3D&amp;Lang=en&amp;Base64Url=eNrLKCkpKLbS108sqsgs08svStdPTCrWNzIzMNYzMDM0MgYAuW8J9Q%3D%3D&amp;@OriginalLink=arxiv.org">Vittorio Rossi et al. (Mar 6, 2026)</a></strong>&#8239;argue that diffusion language models (DLMs) can waste compute because they run denoising steps over a fixed maximum length even when the desired response is short. They propose a zero-shot mechanism to estimate required output length and crop the context window before generation, reporting large FLOP reductions without statistically significant performance loss (and improvements in 2 of 4 benchmarks).</p><p>This matters because &#8220;right-sized reasoning&#8221; is becoming an explicit research goal across paradigms &#8211; whether you do it with controllable budgets in autoregressive models (as in ORBIT) or with length control in diffusion models.</p><p>Finally, distillation itself is getting more modular.&#8239;<strong><a href="https://links.uk.defend.egress.com/Warning?crId=69c523b34c6c9c9ab6d09b48&amp;Domain=packt.com&amp;Threat=eNpzrShJLcpLzAEADmkDRA%3D%3D&amp;Lang=en&amp;Base64Url=eNrLKCkpKLbS108sqsgs08svStdPTCrWNzIzMNIzMDQyMgIAuVYJ7w%3D%3D&amp;@OriginalLink=arxiv.org">Shaoxiong Yang et al. (Feb 1, 2026)</a></strong>&#8239;propose&#8239;<strong>FutureMind</strong>, which combines adaptive distillation with a multi-stage reasoning pipeline and retrieval guidance &#8211; explicitly acknowledging that SLMs are attractive for low-latency settings but often struggle on knowledge-intensive tasks without structured reasoning and retrieval help.</p><h2>Key Takeaways</h2><ul><li><p><strong>Treat reasoning as a budgeted resource.</strong> Put token limits and latency targets into your API contract, not just your monitoring dashboards, and design &#8220;fast vs deep&#8221; modes intentionally.</p></li><li><p><strong>Distillation makes small models competitive when the recipe is right.</strong>&#8239;Evidence from subbillion models shows that curriculum design and trace supervision can close surprising amounts of the gap.</p></li><li><p><strong>RAG failures are often reasoning failures, not retrieval failures.</strong> Even when the answer is in-context, models may fail to use it &#8211; so prompt structure and context compression matter.</p></li><li><p><strong>Routing is a cost lever.</strong> With the right augmentations and routing, smaller open-weight models can rival much larger baselines at large cost reductions.</p></li><li><p><strong>Watch diffusion LMs for new efficiency primitives.</strong> Length-aware diffusion decoding suggests a different path to controlling wasted compute, which may matter for production workloads dominated by short answers.</p></li></ul><h2><strong>&#128269; In case you missed it&#8230;</strong></h2><p></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;b1fe48f4-5104-4892-8986-23ff6c9a668c&quot;,&quot;caption&quot;:&quot;This conversation with Karun Thankachan is a practical tour through small language models in production, starting from the limitations of general-purpose LLMs and repeatedly returning to a single constraint. Cost-effective reasoning for specific tasks is a different engineering problem than general-purpose reasoning, and good engineers choose their tool&#8230;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;md&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Small Language Models and the Future of Production AI with Karun Thankachan&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:140662997,&quot;name&quot;:&quot;Divya Anne Selvaraj&quot;,&quot;bio&quot;:&quot;Editor-in-Chief of Deep Engineering by Packt&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/309a6f07-27a6-40bf-ab99-d042556d816b_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-03-26T07:55:56.871Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9159d430-667c-43e3-ac30-1a5827aab86a_1920x1080.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/small-language-models-and-the-future&quot;,&quot;section_name&quot;:&quot;Interviews&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:191846393,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128161;<strong> Industry Perspective</strong></h2><h3><strong><a href="https://deepengineering.substack.com/p/agentic-ai-is-redefining-edge-infrastructure">Agentic AI Is Redefining Edge Infrastructure</a></strong></h3><p><em>Thought leadership piece by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Saqib Jan&quot;,&quot;id&quot;:427210082,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/997a788a-cd78-4f84-9b3b-c72ab6dc0153_1008x1008.jpeg&quot;,&quot;uuid&quot;:&quot;73d576a3-a268-40d4-b9f0-ae4567e5103a&quot;}" data-component-name="MentionToDOM"></span> with <a href="https://www.linkedin.com/in/leejpeterson">Lee Peterson</a>, VP of Secure WAN Product Management at <a href="https://www.cisco.com/">Cisco</a>.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://deepengineering.substack.com/p/agentic-ai-is-redefining-edge-infrastructure" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3-Bj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f898dfb-9641-4ff5-8cc8-053df85f5268_1200x628.png 424w, https://substackcdn.com/image/fetch/$s_!3-Bj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f898dfb-9641-4ff5-8cc8-053df85f5268_1200x628.png 848w, https://substackcdn.com/image/fetch/$s_!3-Bj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f898dfb-9641-4ff5-8cc8-053df85f5268_1200x628.png 1272w, https://substackcdn.com/image/fetch/$s_!3-Bj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f898dfb-9641-4ff5-8cc8-053df85f5268_1200x628.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3-Bj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f898dfb-9641-4ff5-8cc8-053df85f5268_1200x628.png" width="724" height="378.8933333333333" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f898dfb-9641-4ff5-8cc8-053df85f5268_1200x628.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1200,&quot;resizeWidth&quot;:724,&quot;bytes&quot;:175042,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://deepengineering.substack.com/p/agentic-ai-is-redefining-edge-infrastructure&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/189967537?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f898dfb-9641-4ff5-8cc8-053df85f5268_1200x628.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_!3-Bj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f898dfb-9641-4ff5-8cc8-053df85f5268_1200x628.png 424w, https://substackcdn.com/image/fetch/$s_!3-Bj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f898dfb-9641-4ff5-8cc8-053df85f5268_1200x628.png 848w, https://substackcdn.com/image/fetch/$s_!3-Bj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f898dfb-9641-4ff5-8cc8-053df85f5268_1200x628.png 1272w, https://substackcdn.com/image/fetch/$s_!3-Bj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f898dfb-9641-4ff5-8cc8-053df85f5268_1200x628.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>As agentic systems move closer to the edge, the network underneath them matters just as much as the models running on top. Peterson makes the case that organizations still designing around centralized control will hit a wall at exactly the wrong moment, and that getting edge compute and networking right is not an upgrade but a rethink from the ground up.</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:192122268,&quot;url&quot;:&quot;https://deepengineering.substack.com/p/agentic-ai-is-redefining-edge-infrastructure&quot;,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;title&quot;:&quot;Agentic AI Is Redefining Edge Infrastructure&quot;,&quot;truncated_body_text&quot;:&quot;Artificial intelligence is entering a new phase with agentic AI, where autonomous systems perceive, decide, act, and learn without constant human oversight, operating independently across distributed environments while collaborating with other agents in real time.&quot;,&quot;date&quot;:&quot;2026-03-25T18:13:57.493Z&quot;,&quot;like_count&quot;:0,&quot;comment_count&quot;:0,&quot;bylines&quot;:[{&quot;id&quot;:427210082,&quot;name&quot;:&quot;Saqib Jan&quot;,&quot;handle&quot;:&quot;sjan00&quot;,&quot;previous_name&quot;:&quot;S Jan&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/997a788a-cd78-4f84-9b3b-c72ab6dc0153_1008x1008.jpeg&quot;,&quot;bio&quot;:&quot;/localhost&quot;,&quot;profile_set_up_at&quot;:&quot;2025-12-19T07:06:59.856Z&quot;,&quot;reader_installed_at&quot;:null,&quot;publicationUsers&quot;:[],&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:null,&quot;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://deepengineering.substack.com/p/agentic-ai-is-redefining-edge-infrastructure?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!H5BJ!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png" loading="lazy"><span class="embedded-post-publication-name">Packt Deep Engineering</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">Agentic AI Is Redefining Edge Infrastructure</div></div><div class="embedded-post-body">Artificial intelligence is entering a new phase with agentic AI, where autonomous systems perceive, decide, act, and learn without constant human oversight, operating independently across distributed environments while collaborating with other agents in real time&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">a month ago &#183; Saqib Jan</div></a></div><div><hr></div><h2>&#128736;&#65039; Tool of the Week</h2><p><strong><a href="https://github.com/arcee-ai/DistillKit">DistillKit</a></strong> &#8212; open-source knowledge distillation toolkit for language models</p><p><strong>Highlights:</strong></p><ul><li><p><strong>Two distillation methods in one toolkit:</strong> Supports both logit-based distillation and hidden states-based distillation, which aligns intermediate layer representations and allows distillation across different model architectures.</p></li><li><p><strong>Offline distillation at scale:</strong> An advanced logit compression system using polynomial approximation, error-diffusion quantization, and bit-packing makes it practical to train from pre-captured teacher outputs without running the teacher model live during every training step.</p></li><li><p><strong>Composable loss functions:</strong> Mix and match KL divergence, JSD, TVD, ranking losses, and hidden state alignment to control exactly what the student model learns and how aggressively it is pushed toward the teacher&#8217;s behaviour.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://github.com/arcee-ai/DistillKit&quot;,&quot;text&quot;:&quot;Learn more about Distillkit&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://github.com/arcee-ai/DistillKit"><span>Learn more about Distillkit</span></a></p><div><hr></div><h1><strong>&#128206; Tech Briefs</strong></h1><ul><li><p><a href="https://huggingface.co/blog/huggingface/state-of-os-hf-spring-2026">Hugging Face Spring 2026 open source report released</a>: The platform now has 13 million users and over 2 million models, with Chinese models accounting for 41% of downloads and robotics datasets growing 23x to become the largest category.</p></li><li><p><a href="https://github.com/vllm-project/vllm/releases">vLLM 0.18.0 released with 30.8% throughput improvement and new Realtime API</a>: The release ships async scheduling with Pipeline Parallelism delivering a 30.8% end-to-end throughput gain, a WebSocket-based Realtime API for streaming audio, and expanded hardware support across NVIDIA, AMD, Intel, and TPU.</p></li><li><p><a href="https://openai.com/index/introducing-gpt-5-4-mini-and-nano/">OpenAI launches GPT-5.4 mini and GPT-5.4 nano</a>: Two smaller models optimized for speed and efficiency in coding, subagents, and high-volume tool use, continuing the industry shift toward task-specific models over general-purpose frontier inference.</p></li><li><p><a href="https://blockchain.news/news/nvidia-ai-grid-distributed-edge-inference-gtc-2026">NVIDIA&#8217;s AI Grid reference design cuts edge inference costs by 76% in early benchmarks</a>: The architecture distributes AI compute across telco network nodes, with Comcast benchmarks showing sub-500ms latency at P99 burst traffic and 80.9% throughput gains over a centralized deployment.</p></li><li><p><a href="https://www.anthropic.com/news/the-anthropic-institute">Anthropic announces the Anthropic Institute</a>: A new research body focused on the economic, societal, and security impacts of advanced AI, signalling that frontier labs are formalizing impact analysis as a structured part of model development and evaluation.</p></li></ul><div><hr></div><p>That&#8217;s all for today. Thank you for reading this issue of Deep Engineering.</p><p>We&#8217;ll be back next week with more expert-led content.</p><p>Stay awesome, </p><p>Saqib Jan </p><p>Editor-in-Chief, Deep Engineering</p><div><hr></div><p><em>If your company is interested in reaching an audience of senior developers, software engineers, and technical decision-makers, you may want to </em><strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong><em>.</em></p>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #39: Ron Veen on Java-to-Kotlin migration without the rewrite]]></title><description><![CDATA[How to modernize a large JVM codebase layer by layer, without freezing product velocity or introducing semantic risk]]></description><link>https://deepengineering.substack.com/p/deep-engineering-39-ron-veen-on-java</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-39-ron-veen-on-java</guid><dc:creator><![CDATA[Saqib Jan]]></dc:creator><pubDate>Thu, 19 Mar 2026 14:30:54 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c19ffd8d-5fc7-43bb-aa4e-c6917f552142_2816x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3><strong><a href="https://www.eventbrite.com/e/building-production-ready-agent-systems-with-mcp-tickets-1982519419953?aff=deepeng">Building Production-Ready Agent Systems with MCP</a></strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.com/e/building-production-ready-agent-systems-with-mcp-tickets-1982519419953?aff=deepeng" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dyy6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!dyy6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!dyy6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!dyy6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dyy6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.eventbrite.com/e/building-production-ready-agent-systems-with-mcp-tickets-1982519419953?aff=deepeng&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!dyy6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!dyy6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!dyy6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!dyy6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F624a1d5a-7aae-4aff-9217-f01110781728_2160x1080.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>A full-lifecycle workshop on designing, securing, evaluating, and optimizing agent systems that hold up in production. </p><p><strong>Online: </strong>March 29 <strong>|</strong> 10:30 AM - 4:00 PM EST</p><p>&#10003; 2-for-1 deal: Bring a colleague, get 2 passes for the price of 1.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/building-production-ready-agent-systems-with-mcp-tickets-1982519419953?aff=deepeng&quot;,&quot;text&quot;:&quot;Register now&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.eventbrite.com/e/building-production-ready-agent-systems-with-mcp-tickets-1982519419953?aff=deepeng"><span>Register now</span></a></p><div><hr></div><p><strong>&#9997;&#65039; From the editor&#8217;s desk,</strong></p><p><strong>Welcome to the 39th issue of Deep Engineering!</strong></p><p>In Issue <strong><a href="https://deepengineering.substack.com/p/deep-engineering-34-jose-dimas-lujan">#34</a> </strong>we spoke with Jos&#233; Dimas Luj&#225;n Castillo and Ron Veen, authors of <em><strong><a href="https://www.packtpub.com/en-us/product/kotlin-for-java-developers-9781835884836">Kotlin for Java Developers</a></strong>, </em>to unpack practical decision lenses for modernizing JVM systems. In the past week, JetBrains released <strong><a href="https://kotlinlang.org/docs/whatsnew2320.html">Kotlin 2.3.20</a></strong> with a simpler Maven setup and compiler-plugin improvements, and OpenAI added <strong><a href="https://developers.openai.com/codex/changelog">GPT-5.4 mini to Codex</a></strong> as a faster, lighter model for coding tasks. The language stack is evolving, and so are the AI tools teams now use to change production code at speed.</p><p>But how can a large Java codebase be migrated without turning modernization into a rewrite, a slowdown, or a source of subtle semantic risk? We are collaborating again with Ron Veen, whose <strong><a href="https://deepengineering.substack.com/p/from-java-to-kotlin-a-large-scale">article</a></strong> answers that by treating migration as a controlled, layer-by-layer transformation&#8212;one where Kotlin&#8217;s gains in null safety and expressiveness matter, but where the harder engineering work lies in framework compatibility, review discipline, and keeping humans accountable while AI accelerates the mechanics.</p><p><strong><a href="https://www.linkedin.com/in/ron-veen/">Ron Veen</a> </strong>is<strong> </strong>a JVM veteran with over 20 years of experience across enterprise systems, from mainframes to modern microservices. Veen is an <strong>Oracle Certified Java Programmer </strong>and certified <strong>Sun Business Component Developer</strong>. As a Lead Developer at Team Rockstars IT and a regular international speaker, Veen brings both hands-on experience and architectural perspective.</p><p>Let&#8217;s get started</p><div><hr></div><blockquote><p><strong>Mike Scientific Repo:</strong> Tons (&gt; 1200) of FREE Math, AI, Machine Learning Books, All reviews (almost 600), presentations and more learning resources: <a href="https://github.com/merlihson/scientific-resources">https://github.com/merlihson/scientific-resources</a></p><p><strong>Science and AI with Mike:</strong> Telegram channel - fresh deep learning paper reviews and free books: <a href="https://t.me/science_and_ai_with_mike_english/">https://t.me/science_and_ai_with_mike_english/</a></p></blockquote><div><hr></div><h3>From Java to Kotlin at Scale &#8211; with AI in the Loop</h3><p>by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Deepayan Bhattacharjee&quot;,&quot;id&quot;:480630041,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!jegY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F385931a8-2eb0-4f8a-bd57-14713ff3988d_144x144.png&quot;,&quot;uuid&quot;:&quot;cda99dd1-94d3-43cb-b196-cc364895bb37&quot;}" data-component-name="MentionToDOM"></span> with <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Ron veen&quot;,&quot;id&quot;:102761742,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!QPwW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfa02f9f-52dd-4573-942f-cefe45913adb_1166x1168.jpeg&quot;,&quot;uuid&quot;:&quot;7db32e64-476b-4f87-97b1-bc288d5e2a2f&quot;}" data-component-name="MentionToDOM"></span></p><p>Most large engineering organizations are sitting on a paradox.</p><p>Their core systems &#8211; often millions of lines of Java &#8211; are stable, battle-tested, and deeply valuable. But they&#8217;re also increasingly out of step with how modern teams want to write software: safer by default, more expressive, and easier to reason about. Kotlin promises exactly that. The problem is not <em>why</em> to migrate, it&#8217;s <em>how</em> to do it without freezing product velocity or introducing subtle, system-wide risk.</p><p>This is where Ron Veen&#8217;s migration story becomes relevant. Instead of treating Java-to-Kotlin as a one-shot rewrite or a tooling exercise, he approaches it as a controlled, layer-by-layer transformation &#8211; reconstructed on an OpenMRS codebase to mirror real-world enterprise constraints. The twist: AI is not just assisting but <em>actively accelerating</em> the migration &#8211; while humans remain accountable for every semantic decision.</p><p>What emerges is not just a migration playbook, but a shift in how we think about large-scale code evolution. The bottleneck is no longer writing code &#8211; it&#8217;s governing correctness at speed. And in that world, success depends less on conversion tools and more on how teams handle semantics, frameworks, and oversight under AI-assisted velocity.</p><p>To this end, today&#8217;s issue focuses on three action points for senior engineers and engineering leaders:</p><ul><li><p>Kotlin migrations succeed when you treat them as a <em>semantic</em> change (types, nullability, and idioms), not a mechanical translation.</p></li><li><p>Framework constraints (Spring/Hibernate/JPA) are where migrations usually get stuck &#8211; unless you plan for Kotlin&#8217;s &#8220;final by default&#8221; stance and use the right compiler plugins.</p></li><li><p>AI can compress weeks of conversion work into days, but it shifts the hard work to <em>governance</em>: review strategy, testing cadence, and repeatable patterns.</p></li></ul><h2>1: Treat migration as a semantic refactor, not a syntax swap</h2><p>One of the easiest mistakes in a Java-to-Kotlin migration is to treat it as a tooling problem. Run the IDE converter, clean up a few warnings, and move on. Veen&#8217;s work makes it clear why that approach fails: working Kotlin isn&#8217;t the goal &#8211; <em>idiomatic</em> Kotlin is. And the gap between the two is where most of the risk, and value, lies.</p><p>Veen&#8217;s core point is easy to miss if you&#8217;ve only used IDE &#8220;convert Java to Kotlin&#8221; tools: <em>working Kotlin is not the goal &#8211; idiomatic Kotlin is.</em> The difference shows up most sharply in nullability, because Kotlin forces you to say what can be null and what cannot.</p><p>That&#8217;s also why Kotlin&#8217;s Java interop rules matter for incremental migration. Kotlin can call existing Java &#8220;naturally,&#8221; but when Kotlin reads Java types, it must assume any reference might be null. Kotlin handles this by using <em>platform types</em>, which relax compile-time null checks and can still fail at runtime if your assumptions are wrong. For leaders, the practical implication is: your migration policy must include a nullability strategy (what becomes <code>T</code>, what becomes <code>T?</code>, and when you tighten types).</p><p>Veen&#8217;s entity conversion example shows why this is a worthwhile discipline:</p><p><strong>Java Version</strong></p><pre><code><code>@Entity 
@Table(name = "location_tag") 
@Audited 
@AttributeOverride(name = "name", column = @Column(name = "name", nullable = false, length = 50)) 
public class LocationTag extends BaseChangeableOpenmrsMetadata { 
 
    private static final long serialVersionUID = 7654L; 
    private Integer locationTagId; 
    
    public LocationTag() { 
    } 
 
    public LocationTag(Integer locationTagId) { 
        this.locationTagId = locationTagId; 
    } 
 
    public LocationTag(String name, String description) { 
        setName(name); 
        setDescription(description); 
    } 
 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Column(name = "location_tag_id", nullable = false) 
    public Integer getLocationTagId() { 
        return this.locationTagId; 
    } 
 
    public void setLocationTagId(Integer locationTagId) { 
        this.locationTagId = locationTagId; 
    } 
 
    @Override 
    public Integer getId() { 
        return getLocationTagId(); 
    } 
 
    @Override 
    public void setId(Integer id) { 
        setLocationTagId(id); 
    } 
 
    @Override 
    public String toString() { 
        return getName() != null ? getName() : ""; 
    } 
} </code></code></pre><p><strong>Kotlin Version</strong></p><pre><code><code>@Audited 
@Entity 
@Table(name = "location_tag") 
@AttributeOverride(name = "name", column = Column(name = "name", nullable = false, length = 50)) 
class LocationTag() : BaseChangeableOpenmrsMetadata() { 
 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Column(name = "location_tag_id", nullable = false) 
    var locationTagId: Int? = null 
 
    constructor(locationTagId: Int?) : this() { 
        this.locationTagId = locationTagId 
    } 
 
    constructor(name: String?, description: String?) : this() { 
        this.name = name 
        this.description = description 
    } 
 
    override fun toString(): String = name ?: "" 
 
    override fun getId(): Int? = locationTagId 
 
    override fun setId(id: Int?) { 
        locationTagId = id 
    } 
 
    companion object { 
        private const val serialVersionUID = 7654L 
    } 
} </code></code></pre><p>With this approach, boilerplate shrinks, but more importantly, intent becomes visible in the type system.</p><p>For senior reviewers, the takeaway is that &#8220;semantic migration&#8221; is reviewable. You can ask: Do the nullability markings reflect reality? Did we remove boilerplate without losing invariants? Are we leaning on Kotlin&#8217;s strengths (properties, expression bodies, Elvis operator) in ways that reduce bug surface?</p><h2>2: Framework constraints are the hidden migration backlog</h2><p>Most Java-to-Kotlin migration pain doesn&#8217;t come from language syntax. It comes from frameworks that depend on bytecode tricks: proxies, reflection, and runtime enhancement.</p><p>Two Kotlin compiler plugins exist precisely to reduce this friction:</p><ul><li><p>The <strong>all-open</strong> plugin addresses Kotlin&#8217;s default of making classes and members <em>final</em>. Kotlin&#8217;s docs explicitly call out that this default is inconvenient for frameworks such as Spring AOP, which require classes to be <code>open</code> so proxies can be created.</p></li><li><p>The <strong>no-arg</strong> plugin generates a synthetic zero-argument constructor for annotated classes, which helps frameworks like JPA instantiate entities via reflection even when Kotlin doesn&#8217;t define a zero-arg constructor explicitly.</p></li></ul><p>These are leadership-level concerns because they determine whether your migration scales. If teams manually sprinkle <code>open</code> and constructors across hundreds of files with inconsistent rules, you get a &#8220;looks migrated, runs broken&#8221; outcome.</p><p>Veen shows this in his service implementation example:</p><pre><code><code>@Service("medicationDispenseService") 
@Transactional 
open class MedicationDispenseServiceImpl : BaseOpenmrsService(), MedicationDispenseService { 
 
    @Autowired 
    lateinit var dao: MedicationDispenseDAO 
 
    @Transactional(readOnly = true) 
    override fun getMedicationDispense(id: Int?): MedicationDispense? = 
        dao.getMedicationDispense(id) 
 
    override fun saveMedicationDispense(dispense: MedicationDispense): MedicationDispense { 
        require(dispense != null) { "MedicationDispense cannot be null" } 
        return dao.saveMedicationDispense(dispense) 
    } 
 
    @Transactional(readOnly = true) 
    override fun getMedicationDispenses( 
        patient: Patient, 
        drug: Drug?, 
        dateRangeParam: DateRangeParam?, 
        startIndex: Int?, 
        limit: Int? 
    ): List&lt;MedicationDispense&gt; { 
        require(patient != null) { "Patient cannot be null" } 
        return dao.getMedicationDispenses(patient, drug, dateRangeParam, startIndex, limit) 
    } 
} </code></code></pre><p>In the preceding code, the <code>open</code> keyword is a runtime requirement, not a stylistic choice, when frameworks proxy your classes for transactions.</p><p>A practical leadership move here is to standardize <em>how</em> these requirements are met: prefer compiler plugins (where feasible) over manual edits. Kotlin&#8217;s docs note that you can use a Spring-specific wrapper (<code>kotlin-spring</code>) on top of <code>all-open</code>, and that Spring project templates typically enable it by default. Likewise, Kotlin documents that <code>kotlin-jpa</code> is a wrapper on top of <code>no-arg</code> and automatically targets common JPA annotations.</p><h2>3: AI accelerates conversion, but governance determines quality</h2><p>Veen&#8217;s migration stance is not &#8220;AI replaces engineers.&#8221; It&#8217;s closer to: <em>AI replaces repetitive conversion work, so humans can spend time on correctness and architecture.</em></p><p>Recent developments reinforce why that governance burden is growing. Anthropic positions Claude Opus 4.6 as improved for coding tasks that involve longer planning, more reliable operation in larger codebases, and stronger debugging and code review &#8211; with a very large context window intended for long, multi-step work. In practice, Anthropic&#8217;s telemetry-based research suggests users are already letting Claude Code run autonomously for longer on the most complex work: the 99.9th percentile &#8220;turn duration&#8221; in Claude Code nearly doubled from under 25 minutes to over 45 minutes over a three-month span, and experienced users enable auto-approve more often while interrupting when needed.</p><p>That pattern maps directly onto migration risk. The faster you transform files, the easier it is to:</p><ul><li><p>Propagate a wrong nullability decision across a layer.</p></li><li><p>Preserve a Java anti-pattern in Kotlin clothing.</p></li><li><p>Break a proxy/reflection expectation in subtle ways.</p></li></ul><p>For senior engineers and architects, the emphasis shifts to <em>controlling the blast radius</em>. Veen&#8217;s own best practices (small batches, frequent commits, tests between batches, and explicit pattern guides) are not process overload &#8211; they are how you turn &#8220;AI speed&#8221; into &#8220;organizational safety.&#8221;</p><p>Even Kotlin itself nudges teams toward explicitness where Java might have relied on convention. For example, Kotlin treats Java&#8217;s checked exceptions as unchecked &#8211; the compiler won&#8217;t force catches &#8211; so interoperability requires deliberate documentation patterns (for example, <code>@Throws</code> for Java callers, as Veen shows).</p><p>A smaller but telling example from Veen&#8217;s validator conversion shows how Kotlin idioms can reduce branching and clarify intent &#8211; if reviewers insist on it:</p><pre><code><code>@Component 
@Handler(supports = [EncounterRole::class]) 
class EncounterRoleValidator : RequireNameValidator() { 
 
    @Autowired 
    private lateinit var encounterService: EncounterService 
 
    override fun validate(obj: Any, errors: Errors) { 
        super.validate(obj, errors) 
        if (errors.hasErrors()) return 
 
        val encounterRole = obj as EncounterRole 
        val name = encounterRole.name?.trim() 
 
        if (!name.isNullOrBlank()) { 
            val duplicate = encounterService.getEncounterRoleByName(name) 
            if (duplicate != null &amp;&amp; encounterRole.uuid != duplicate.uuid) { 
                errors.rejectValue( 
                    "name", 
                    "EncounterRole.duplicate.name", 
                    "Specified Encounter Role name already exists" 
                ) 
            } 
        } 
    } 
} </code></code></pre><h2>Key Takeaways</h2><ul><li><p><strong>Migration success depends on semantic decisions, not just conversion volume.</strong> Lock down your nullability rules early, and review them as architecture, not style.</p></li><li><p><strong>Use Kotlin&#8217;s compiler plugins to meet framework requirements at scale.</strong> Kotlin is <code>final</code> by default; <code>all-open</code> (and wrappers like <code>kotlin-spring</code>) exist because frameworks such as Spring AOP need <code>open</code> classes.</p></li><li><p><strong>Plan for reflection and JPA.</strong> If your entities need zero-arg constructors for runtime instantiation, <code>no-arg</code> (and wrappers like <code>kotlin-jpa</code>) can generate them safely.</p></li><li><p><strong>AI makes migration fast, but it increases the need for governance.</strong> Long-context models are designed for sustained, multi-step coding work.</p></li><li><p><strong>Adopt &#8220;human-in-the-loop&#8221; guardrails</strong> that match how agents are used in practice &#8211; users increasingly auto-approve and let agents run longer, intervening when needed.</p></li></ul><div><hr></div><h1><strong>&#129504; Expert Insight</strong></h1><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;f969b9dc-121d-4c8f-9c00-2ec7bea53303&quot;,&quot;caption&quot;:&quot;Recently, I had to migrate a Java codebase to Kotlin. Now, we are talking about proprietary software, so the code cannot be shared in this article. Thus, I decided to find an open-source project with approximately the same characteristics. That is the reason why we use OpenMRS in this article.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;md&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;From Java to Kotlin: A Large-Scale Migration Story with AI Assistance&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:102761742,&quot;name&quot;:&quot;Ron veen&quot;,&quot;bio&quot;:&quot;Experienced Java developer, conference speaker, book autor. Specializing in AI supported software development.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!QPwW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfa02f9f-52dd-4573-942f-cefe45913adb_1166x1168.jpeg&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-03-18T18:09:02.960Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a3586000-b386-4273-b570-744b0f0b7291_2816x1536.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/from-java-to-kotlin-a-large-scale&quot;,&quot;section_name&quot;:&quot;Tutorials&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:191366305,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128269; In case you missed it&#8230;</h2><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;3272d5f8-8de5-4f1d-abbf-c97968611c66&quot;,&quot;caption&quot;:&quot;Multi-Agent Code Review That Catches Real Issues&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Deep Engineering #34: Jos&#233; Dimas Luj&#225;n Castillo and Ron Veen on Kotlin for Java in Production&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:140662997,&quot;name&quot;:&quot;Divya Anne Selvaraj&quot;,&quot;bio&quot;:&quot;Editor-in-Chief of Deep Engineering by Packt&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/309a6f07-27a6-40bf-ab99-d042556d816b_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:102761742,&quot;name&quot;:&quot;Ron veen&quot;,&quot;bio&quot;:&quot;Experienced Java developer, conference speaker, book autor. Specializing in AI supported software development.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!QPwW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfa02f9f-52dd-4573-942f-cefe45913adb_1166x1168.jpeg&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:112865362,&quot;name&quot;:&quot;Jos&#233; Dimas Luj&#225;n&quot;,&quot;bio&quot;:&quot;Jos&#233; Dimas Luj&#225;n Castillo is an Engineering Manager, author, and tech community leader with 20+ years in software development. He writes about AI, software engineering, leadership, and how developers evolve in an AI-driven world.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0700d6f9-50c3-45f7-a72b-461aa7132a7c_400x400.jpeg&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://josedlujan.substack.com/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://josedlujan.substack.com&quot;,&quot;primaryPublicationName&quot;:&quot;Jos&#233; Dimas Luj&#225;n&quot;,&quot;primaryPublicationId&quot;:8364593}],&quot;post_date&quot;:&quot;2026-02-12T13:31:35.690Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/adf8dee9-ff71-4fc4-8023-42b2b6ce5011_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/deep-engineering-34-jose-dimas-lujan&quot;,&quot;section_name&quot;:&quot;Newsletter Issues&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:187724506,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128736;&#65039; Tool of the Week</h2><p><strong><a href="https://github.com/JetBrains/Exposed">Exposed</a></strong> &#8212; Kotlin&#8217;s type-safe SQL framework, now at 1.0</p><p>Exposed is JetBrains&#8217; open-source SQL framework for Kotlin, hitting 1.0 this week with R2DBC support for reactive database access and a guaranteed stable API, making it a production-ready database layer for teams adopting Kotlin.</p><div><hr></div><h1><strong>&#128206; Tech Briefs</strong></h1><ul><li><p><strong><a href="https://www.oracle.com/middleeast/news/announcement/oracle-releases-java-26-2026-03-17/">Java 26 released</a></strong> &#8212; Java 26 ships ten JEPs including HTTP/3 for the HTTP Client API, lazy constants in second preview, and an AOT cache that now works with any garbage collector including ZGC.</p></li><li><p><strong><a href="https://blog.jetbrains.com/kotlin/2026/03/kotlin-2-3-20-released/">Kotlin 2.3.20 released</a></strong> &#8212; The release removes significant manual Maven setup by automating source root configuration and stdlib inclusion, and adds name-based destructuring declarations to the language.</p></li><li><p><strong><a href="https://blog.jetbrains.com/idea/2026/03/java-26-in-intellij-idea/">Java 26 support lands in IntelliJ IDEA</a></strong> &#8212; IntelliJ IDEA adds full Java 26 support this week, including inspections and quick-fixes for lazy constants, primitive patterns, and the extended ahead-of-time cache for ZGC.</p></li><li><p><strong><a href="https://blog.jetbrains.com/kotlin/2026/03/gsoc-2026-contribute-to-kotlin/">Kotlin Foundation joins Google Summer of Code 2026</a> </strong>&#8212; The programme is accepting applications for projects spanning Swift-to-Kotlin interop, tail call support in Kotlin/Wasm, and a Kotlin education landscape research report, with the deadline on March 31.</p></li></ul><div><hr></div><p>That&#8217;s all for today. Thank you for reading this issue of Deep Engineering.</p><p>We&#8217;ll be back next week with more expert-led content.</p><p>Stay awesome, </p><p>Saqib Jan </p><p>Editor-in-Chief, Deep Engineering</p><div><hr></div><p><em>If your company is interested in reaching an audience of senior developers, software engineers, and technical decision-makers, you may want to </em><strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong><em>.</em></p>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #38: Steven Lott on Practical Object-Oriented Design in Python]]></title><description><![CDATA[Review can catch defects, but not weak design. This issue looks at dependency injection, protocols, and the architectural choices that shape reliable Python code.]]></description><link>https://deepengineering.substack.com/p/deep-engineering-38-steven-lott-on</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-38-steven-lott-on</guid><dc:creator><![CDATA[Saqib Jan]]></dc:creator><pubDate>Thu, 12 Mar 2026 14:44:58 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d33058d0-8435-4c51-a7ca-e5db0666799a_3168x1344.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2><strong><a href="https://www.eventbrite.com/e/safely-refactor-production-codebases-with-ai-registration-1982005923070?aff=deepengg">Safely Refactor Production Codebases with AI</a></strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KVPk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ad82ea1-0eb0-419b-ba9a-8e3b8f582e41_800x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KVPk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ad82ea1-0eb0-419b-ba9a-8e3b8f582e41_800x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KVPk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ad82ea1-0eb0-419b-ba9a-8e3b8f582e41_800x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KVPk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ad82ea1-0eb0-419b-ba9a-8e3b8f582e41_800x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KVPk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ad82ea1-0eb0-419b-ba9a-8e3b8f582e41_800x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KVPk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ad82ea1-0eb0-419b-ba9a-8e3b8f582e41_800x400.jpeg" width="800" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8ad82ea1-0eb0-419b-ba9a-8e3b8f582e41_800x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!KVPk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ad82ea1-0eb0-419b-ba9a-8e3b8f582e41_800x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KVPk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ad82ea1-0eb0-419b-ba9a-8e3b8f582e41_800x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KVPk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ad82ea1-0eb0-419b-ba9a-8e3b8f582e41_800x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KVPk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ad82ea1-0eb0-419b-ba9a-8e3b8f582e41_800x400.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></figure></div><p>AI can refactor your code in seconds, but it can introduce subtle breakages just as quickly. Learn how to combine AI-assisted reasoning with AST-based structural guarantees to refactor code safely.</p><p><strong>Online: </strong>March 14<strong> | </strong>10:00 AM EST</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.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 Packt Deep Engineering! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>&#10003; 2-for-1 deal: Bring a colleague, get 2 passes for $48<br>&#10003; Includes 300+ page <em>Mastering ast-grep</em> ebook</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/safely-refactor-production-codebases-with-ai-registration-1982005923070?aff=deepengineeringnewsletter&quot;,&quot;text&quot;:&quot;Register now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eventbrite.com/e/safely-refactor-production-codebases-with-ai-registration-1982005923070?aff=deepengineeringnewsletter"><span>Register now</span></a></p><div><hr></div><p><strong>&#9997;&#65039; From the editor&#8217;s desk,</strong></p><p><strong>Welcome to the 38th issue of Deep Engineering!</strong></p><p>The rise of AI-generated code is putting pressure on a familiar engineering constraint: review does not scale as easily as output. Anthropic&#8217;s own <a href="https://www.anthropic.com/research/measuring-agent-autonomy">recent research</a> on Claude Code points in the same direction. It found that longer autonomous coding sessions are becoming more common, and that experienced users increasingly shift from step-by-step approval to letting the tool run and intervening when needed. But, <strong>if more code is being written with less direct review, how do engineers stop poor design from shipping in the first place?</strong></p><p>Anthropic&#8217;s new <strong><a href="https://claude.com/plugins/code-review">Code Review</a></strong> system for Claude Code is one answer at the downstream end. It runs five specialized reviewers in parallel, scores findings on a confidence scale, and only posts high-confidence comments back to GitHub. That is a useful safeguard. But it also clarifies the limit of review itself. The more teams rely on layered automation to inspect pull requests, the more important the original design decisions become. Review can catch defects. It cannot compensate for weak boundaries, poor abstractions, or code that was hard to reason about from the start.</p><p>That is the context for this week&#8217;s Expert Insight from <strong><a href="https://www.linkedin.com/in/steven-lott-029835/">Steven F. Lott</a></strong>. Lott has been programming since the era when computers were large, expensive, and rare, and has worked with Python since the 1990s. He is the co-author of the newly published fifth edition of <em><strong><a href="https://www.packtpub.com/en-us/product/python-object-oriented-programming-9781801075237">Python Object-Oriented Programming</a></strong></em>, updated for Python 3.13 with added material on areas such as type hints, testing, and professional software engineering practice. In this issue, his <strong><a href="https://deepengineering.substack.com/p/part-2-getting-started-with-object">piece</a></strong> looks at object-oriented design as a practical engineering discipline: dependency injection, protocols, and duck typing as choices that shape coupling, change, and maintainability in production systems. We have also included <strong>Chapter 1, &#8220;Object-Oriented Design,&#8221;</strong> from the new edition for readers who want the full foundation.</p><p>Let&#8217;s get started.</p><div><hr></div><h3><a href="https://www.pulsemcp.com/newsletter">PulseMCP Newsletter</a></h3><p>Our friends at PulseMCP recently wrote up a great post on the <a href="https://links.uk.defend.egress.com/Warning?crId=699801b5256d531b1560050d&amp;Domain=packt.com&amp;Threat=eNpzrShJLcpLzAEADmkDRA%3D%3D&amp;Lang=en&amp;Base64Url=eNoFwtEJwDAIBcCJEv-zTZCHFRqVanD9cvdURS6i7p5x38ThmOyHwrOStsBKecBEDfjU5AfokhNf&amp;@OriginalLink=www.pulsemcp.com">rise of agentic engineering</a>. It highlights both the very public, high profile case studies of top tier engineering organizations adopting the practice, and gets into the weeds of what&#8217;s working in the<a href="https://links.uk.defend.egress.com/Warning?crId=699801b5256d531b1560050d&amp;Domain=packt.com&amp;Threat=eNpzrShJLcpLzAEADmkDRA%3D%3D&amp;Lang=en&amp;Base64Url=eNrLKCkpKLbS1y9JzMmp1CvO1y_Sz0oMLAyoAAB4Ewkn&amp;@OriginalLink=tally.so"> PulseMCP team&#8217;s personal coaching</a> of engineering teams trying to make the transition from &#8220;AI pair programming&#8221; to &#8220;autonomous agents&#8221;.</p><p><a href="https://www.pulsemcp.com/newsletter">Check out PulseMCP &#8594;</a></p><div><hr></div><h1><strong>&#129504;Expert Insight</strong></h1><h3>Part 2: Getting Started with Object-Oriented Programming in Python</h3><p><em>by </em><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Steven Lott&quot;,&quot;id&quot;:151485613,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!s97l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc78bc1bf-a569-465d-997a-85a14c1135ba_480x640.png&quot;,&quot;uuid&quot;:&quot;3dd75240-e39e-42a6-99ce-333b61b30daf&quot;}" data-component-name="MentionToDOM"></span> </p><p>Python provides three primary ways to structure immutable data: <code>dataclass</code> with <code>frozen=True</code>, <code>NamedTuple</code>, and <code>TypedDict</code>. Each carries different trade-offs that matter in production systems.</p><p>A <code>dataclass</code> with <code>frozen=True</code> provides immutability through runtime enforcement. When you attempt to modify a frozen dataclass instance, Python raises an exception. This makes frozen dataclasses useful when you need immutability guarantees but also need features like inheritance, custom methods, or post-initialization processing. The runtime check adds minimal overhead and catches mutation attempts immediately in development and testing.</p><p><code>NamedTuple</code> provides immutability through tuple semantics. Because NamedTuple instances are actual tuples under the hood, they inherit tuple&#8217;s immutability at the language level. This makes NamedTuple marginally faster than frozen dataclass and ensures that mutation is structurally impossible rather than runtime-prevented. NamedTuple works well for simple data containers that do not require inheritance or complex initialization logic.</p><p><code>TypedDict</code> does not provide immutability at all. TypedDict exists purely for type checking and documentation. At runtime, a TypedDict is just a regular dictionary with no special behavior or constraints. This makes TypedDict appropriate when you need to type-hint dictionary structures for API contracts or configuration, but you do not control the actual dictionary creation or mutation.</p><p>The choice between these three depends on what guarantees your system actually requires. If you need inheritance or custom methods, use frozen dataclass. If you need maximum performance for simple data structures, use NamedTuple. If you need to type-hint existing dictionary-based interfaces without changing runtime behavior, use TypedDict.</p><h3><strong>Hashability and when it matters</strong></h3><p>Immutable objects in Python can be hashable, which means they can be used as dictionary keys or stored in sets. This is not just a convenience feature. Hashability enables certain architectural patterns that would otherwise require significantly more complex code.</p><p>When you need to deduplicate objects, track which objects have been processed, or use objects as cache keys, hashability becomes a structural requirement rather than a nice-to-have feature. A frozen dataclass or NamedTuple containing only hashable fields is automatically hashable. A regular mutable dataclass is not hashable because its contents could change after being added to a set or used as a dictionary key, which would break the fundamental contract of hash-based collections.</p><h3><strong>SOLID principles in Python</strong></h3><p>The SOLID principles originated in statically-typed object-oriented languages like Java and C++, but they translate to Python with some adjustments for Python&#8217;s dynamic nature and duck typing.</p><p>Single Responsibility Principle states that a class should have one reason to change. In Python, this often means keeping data structures separate from business logic, keeping validation logic separate from transformation logic, and keeping I/O operations separate from computation. When a class starts accumulating methods that could logically belong to different concerns, it is time to split it.</p><p>Open/Closed Principle states that software entities should be open for extension but closed for modification. In Python, this is typically achieved through composition and protocols rather than deep inheritance hierarchies. Instead of modifying existing classes to add behavior, you compose new classes that delegate to existing ones or define protocol-based interfaces that new classes can implement without touching existing code.</p><p>Liskov Substitution Principle states that subtypes must be substitutable for their base types. In Python, this means that if your code expects a file-like object, any object that implements the file protocol (read, write, close) should work correctly. The principle prevents surprising behavior when substituting one implementation for another.</p><p>Interface Segregation Principle states that clients should not depend on interfaces they do not use. In Python, this translates to keeping protocols narrow and focused rather than creating large monolithic base classes with dozens of methods that most implementations leave empty or raise NotImplementedError.</p><p>Dependency Inversion Principle states that high-level modules should not depend on low-level modules; both should depend on abstractions. In Python, this is achieved through dependency injection and protocols. Instead of instantiating concrete dependencies inside a class, you pass dependencies in as constructor arguments, and instead of depending on concrete types, you depend on protocols that define the interface you actually need.</p><h3><strong>Dependency injection without frameworks</strong></h3><p>Dependency injection in Python does not require a framework. The pattern is simple: instead of creating dependencies inside a class, pass them in as constructor arguments.</p><p>python</p><pre><code><code># Without dependency injection
class OrderProcessor:
    def __init__(self):
        self.payment_gateway = StripeGateway()  # Hard dependency
        self.email_service = SendGridService()  # Hard dependency
    
    def process(self, order):
        self.payment_gateway.charge(order.amount)
        self.email_service.send_confirmation(order.email)

# With dependency injection
class OrderProcessor:
    def __init__(self, payment_gateway, email_service):
        self.payment_gateway = payment_gateway
        self.email_service = email_service
    
    def process(self, order):
        self.payment_gateway.charge(order.amount)
        self.email_service.send_confirmation(order.email)</code></code></pre><p>The second version allows you to swap payment gateways or email services without modifying OrderProcessor. It allows you to test OrderProcessor with mock implementations that do not actually charge credit cards or send emails. It makes the dependencies explicit in the constructor signature rather than hidden inside the implementation.</p><h3><strong>Protocols and duck typing</strong></h3><p>Python&#8217;s protocols allow you to define interfaces without requiring inheritance. A protocol specifies what methods an object must have without requiring the object to inherit from a specific base class.</p><p>python</p><pre><code><code>from typing import Protocol

class PaymentGateway(Protocol):
    def charge(self, amount: float) -&gt; bool: ...

class StripeGateway:
    def charge(self, amount: float) -&gt; bool:
        # Stripe implementation
        return True

class PayPalGateway:
    def charge(self, amount: float) -&gt; bool:
        # PayPal implementation
        return True</code></code></pre><p>Both StripeGateway and PayPalGateway satisfy the PaymentGateway protocol without inheriting from it. Type checkers like mypy will verify that any object passed where a PaymentGateway is expected actually implements the charge method with the correct signature.</p><p>This is duck typing with type safety. You get the flexibility of duck typing (if it walks like a duck and quacks like a duck, it is a duck) combined with static verification that the duck actually has the methods you are going to call on it.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.com/p/part-2-getting-started-with-object&quot;,&quot;text&quot;:&quot;Continue Reading&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://deepengineering.substack.com/p/part-2-getting-started-with-object"><span>Continue Reading</span></a></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;ea7a2ad8-2287-48e4-8f2c-6ea090f4d859&quot;,&quot;caption&quot;:&quot;Previously, we looked at some of the reasons OO programming is hard. And, we pitched a few strategies for getting started quickly:&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;md&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Part 2: Getting Started with Object-Oriented Programming in Python&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:151485613,&quot;name&quot;:&quot;Steven Lott&quot;,&quot;bio&quot;:&quot;Been turning coffee to code since computers where large, expensive, and rare.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!s97l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc78bc1bf-a569-465d-997a-85a14c1135ba_480x640.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://stevenlott.substack.com/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://stevenlott.substack.com&quot;,&quot;primaryPublicationName&quot;:&quot;Steven&#8217;s Substack&quot;,&quot;primaryPublicationId&quot;:5788192}],&quot;post_date&quot;:&quot;2026-03-10T14:03:55.379Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ec55e455-845b-450f-8c15-d1b0e2a4b87c_2752x1536.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/part-2-getting-started-with-object&quot;,&quot;section_name&quot;:&quot;Tutorials&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:169639977,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p><h2>Chapter 1: Object-Oriented Design </h2><p>The complete foundation chapter from <em>Object-Oriented Python</em> by Steven Lott, from <em><a href="https://www.packtpub.com/en-us/product/python-object-oriented-programming-9781801077262">Python Object-Oriented Programming</a></em> (Fourth Edition) that teaches how to build robust and maintainable object-oriented Python applications and libraries.</p><div class="file-embed-wrapper" data-component-name="FileToDOM"><div class="file-embed-container-reader"><div class="file-embed-container-top"><image class="file-embed-thumbnail-default" src="https://substackcdn.com/image/fetch/$s_!0Cy0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Fattachment_icon.svg"></image><div class="file-embed-details"><div class="file-embed-details-h1">Chapter 1 Object Oriented Design (from Python Object Oriented Programming Build Robust And Maintainable Object Oriented Python Applications And Libraries , Fourth Edition)</div><div class="file-embed-details-h2">1.05MB &#8729; PDF file</div></div><a class="file-embed-button wide" href="https://deepengineering.substack.com/api/v1/file/54fd9ea0-991b-4839-af25-0a3a68644179.pdf"><span class="file-embed-button-text">Download</span></a></div><a class="file-embed-button narrow" href="https://deepengineering.substack.com/api/v1/file/54fd9ea0-991b-4839-af25-0a3a68644179.pdf"><span class="file-embed-button-text">Download</span></a></div></div><div><hr></div><h1><strong>&#128269;In case you missed it&#8230;</strong></h1><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;f4a1c6e0-3c36-405a-8671-f32dd33805a7&quot;,&quot;caption&quot;:&quot;This is Part 1 of 2. In Part 2, we&#8217;ll look at immutability, hashability, and dependency management: when to switch from @dataclass to NamedTuple or frozen=True, how TypedDict fits a schema-first workflow, and how Protocols enable painless dependency injection.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Part 1: Getting Started with Object-Oriented Programming in Python&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:151485613,&quot;name&quot;:&quot;Steven Lott&quot;,&quot;bio&quot;:&quot;Been turning coffee to code since computers where large, expensive, and rare.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!s97l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc78bc1bf-a569-465d-997a-85a14c1135ba_480x640.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://stevenlott.substack.com/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://stevenlott.substack.com&quot;,&quot;primaryPublicationName&quot;:&quot;Steven&#8217;s Substack&quot;,&quot;primaryPublicationId&quot;:5788192}],&quot;post_date&quot;:&quot;2025-08-27T07:38:12.397Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/70d33dca-aec7-4a44-b3bd-d2f891ac29f2_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/part-1-getting-started-with-object&quot;,&quot;section_name&quot;:&quot;Tutorials&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:169634247,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:2,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;d6afc213-693f-44c9-addf-668eff40a4e5&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Deep Engineering #15: Steven F. Lott on Pragmatic Object-Oriented Python&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:140662997,&quot;name&quot;:&quot;Divya Anne Selvaraj&quot;,&quot;bio&quot;:&quot;Editor-in-Chief of Deep Engineering by Packt&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/309a6f07-27a6-40bf-ab99-d042556d816b_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:151485613,&quot;name&quot;:&quot;Steven Lott&quot;,&quot;bio&quot;:&quot;Been turning coffee to code since computers where large, expensive, and rare.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!s97l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc78bc1bf-a569-465d-997a-85a14c1135ba_480x640.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-08-28T13:45:34.390Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/34004285-61db-48c0-87b4-651e23902b3c_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/deep-engineering-15-steven-f-lott&quot;,&quot;section_name&quot;:&quot;Newsletter Issues&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:172070070,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;b4f70351-0464-41ef-aeb8-f5a9e67c409c&quot;,&quot;caption&quot;:&quot;In previous chapters, we've covered many of the defining features of object-oriented programming. We now know some principles and paradigms of object-oriented design, and we've covered the syntax of object-oriented programming in Python.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;When to Use Object-Oriented Programming&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:151485613,&quot;name&quot;:&quot;Steven Lott&quot;,&quot;bio&quot;:&quot;Been turning coffee to code since computers where large, expensive, and rare.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!s97l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc78bc1bf-a569-465d-997a-85a14c1135ba_480x640.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-08-27T08:36:19.467Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!S24_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0059565-ab59-4421-90dd-de189e63939f_810x1000&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/when-to-use-object-oriented-programming&quot;,&quot;section_name&quot;:&quot;Practical Deep-Dives&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:172067259,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>&#128736;&#65039; Tool of the Week</h2><p><a href="https://mypy-lang.org">mypy</a> &#8212; static type checker for Python</p><p><strong>Highlights:</strong></p><ul><li><p><strong>Catches type errors before runtime:</strong> Analyzes Python code statically to detect type inconsistencies, function signature mismatches, and attribute errors before the code ever runs, preventing entire classes of bugs from reaching production.</p></li><li><p><strong>First-class support for OOP patterns:</strong> Understands inheritance hierarchies, protocols, generics, and abstract base classes, making it especially valuable for object-oriented codebases where polymorphism and interface contracts matter.</p></li><li><p><strong>Gradual typing for existing projects:</strong> Works alongside untyped code, allowing you to add type hints incrementally to legacy projects without requiring a full rewrite, and can be configured to enforce strict typing only where needed.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://mypy-lang.org&quot;,&quot;text&quot;:&quot;Learn more about mypy&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://mypy-lang.org"><span>Learn more about mypy</span></a></p><div><hr></div><h1><strong>&#128206; Tech Briefs</strong></h1><ul><li><p><strong><a href="https://discuss.python.org/t/python-3-15-0-alpha-7/106475">Python 3.15.0a7</a></strong><a href="https://discuss.python.org/t/python-3-15-0-alpha-7/106475"> </a><em><a href="https://discuss.python.org/t/python-3-15-0-alpha-7/106475">(March 10, 2026)</a></em> &#8212; The seventh alpha for Python 3.15 gives developers an early look at changes that matter to Python design work, including a built-in <code>frozendict</code>, typed extra items for <code>TypedDict</code>, <code>TypeForm</code>, and further JIT performance gains. </p></li><li><p><strong><a href="https://discuss.python.org/t/python-3-12-13-3-11-15-and-3-10-20-are-now-available/106363">Python 3.12.13, 3.11.15, and 3.10.20 security releases</a></strong> <em>(March 3, 2026)</em> &#8212; Python shipped source-only security releases for 3.10&#8211;3.12 that fix header-injection issues, control-character handling bugs in HTTP and cookies, and bundled <code>libexpat</code> vulnerabilities. </p></li><li><p><strong><a href="https://github.blog/changelog/2026-03-05-copilot-code-review-now-runs-on-an-agentic-architecture/">Copilot code review now runs on an agentic architecture</a></strong> <em>(March 5, 2026)</em> &#8212; GitHub moved Copilot code review to an agentic tool-calling architecture that pulls broader repository context so review comments are higher-signal, lower-noise, and more grounded in architectural intent. </p></li><li><p><strong><a href="https://github.blog/ai-and-ml/github-copilot/60-million-copilot-code-reviews-and-counting/">60 million Copilot code reviews and counting</a></strong> <em>(March 5, 2026)</em> &#8212; GitHub says Copilot code review usage has grown 10x to more than one in five code reviews on GitHub, and says its current system is optimized around accuracy, signal, and speed rather than comment volume. </p></li><li><p><strong><a href="https://github.blog/changelog/2026-03-11-request-copilot-code-review-from-github-cli/">Request Copilot code review from GitHub CLI</a></strong> <em>(March 11, 2026)</em> &#8212; GitHub now lets developers request Copilot review directly from the terminal with <code>gh pr edit</code> and <code>gh pr create</code>, pulling AI review more tightly into the existing pull-request workflow. </p></li></ul><div><hr></div><p>That&#8217;s all for today. Thank you for reading this issue of Deep Engineering.</p><p>We&#8217;ll be back next week with more expert-led content.</p><p>Stay awesome, </p><p>Saqib Jan </p><p>Editor-in-Chief, Deep Engineering</p><div><hr></div><p><em>If your company is interested in reaching an audience of senior developers, software engineers, and technical decision-makers, you may want to </em><strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong><em>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.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 Packt Deep Engineering! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #37: Shreyans Doshi on building C++ trading systems under 50µs]]></title><description><![CDATA[Kernel bypass, memory pools, and the latency budget every performance engineer should know]]></description><link>https://deepengineering.substack.com/p/deep-engineering-37-shreyans-doshi</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-37-shreyans-doshi</guid><dc:creator><![CDATA[Saqib Jan]]></dc:creator><pubDate>Thu, 05 Mar 2026 13:31:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8c4e945b-a7e2-4e15-a5b2-008bcf49b095_1584x672.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3><a href="https://www.eventbrite.com/e/c-memory-management-masterclass-tickets-1983063567513?aff=deepeng">C++ Memory Management Masterclass (Live) &#8212; Back for the 3rd Run</a></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.com/e/c-memory-management-masterclass-tickets-1983063567513?aff=deepeng" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M9ZS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!M9ZS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!M9ZS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!M9ZS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M9ZS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:508191,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.eventbrite.com/e/c-memory-management-masterclass-tickets-1983063567513?aff=deepeng&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/189970085?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.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_!M9ZS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!M9ZS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!M9ZS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!M9ZS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23118828-1505-45fe-972f-5c55ac0dd359_2160x1080.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>Back by demand (3rd run). Learn ownership, RAII, smart pointers &amp; allocators to eliminate leaks/UB&#8212;live hands-on with <strong>Patrice Roy</strong>&#8212;#1 bestselling author of <em><strong>C++ Memory Management</strong></em> and ISO C++ Standards Committee (WG21) member. <strong>Online: Sat Apr 11, 10:30 AM&#8211;Sun Apr 12, 4:00 PM ET.</strong> Limited seats.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/c-memory-management-masterclass-tickets-1983063567513?aff=deepeng&quot;,&quot;text&quot;:&quot;Register now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eventbrite.com/e/c-memory-management-masterclass-tickets-1983063567513?aff=deepeng"><span>Register now</span></a></p><div><hr></div><p><strong>&#9997;&#65039; From the editor&#8217;s desk,</strong></p><blockquote><p>Hello, It&#8217;s a privilege to take over as the new Editor-in-Chief of Deep Engineering, which already has a strong foundation and readership.<br><br>With support from colleagues at Packt, I also plan to expand coverage into system design, cloud native applications, platform engineering, and other areas of modern software development where engineering leaders have strong interest.</p><p>Thank you.</p></blockquote><p>Welcome to the<strong> 37th </strong>issue of<strong> </strong><em><strong>Deep Engineering</strong>!</em></p><p>This week&#8217;s <strong><a href="https://source.android.com/docs/security/bulletin/2026/2026-03-01?">Android Security Bulletin</a></strong> includes a familiar warning for anyone who builds systems close to the metal: <em>&#8220;There are indications that CVE-2026-21385 may be under limited, targeted exploitation.&#8221;</em> Whatever the specific exploit chain looks like, <strong>memory corruption remains a production-grade failure mode</strong>, not a theoretical one.</p><p>This week&#8217;s Expert Insight comes from <strong><a href="https://www.linkedin.com/in/shreyans800755/">Shreyans Doshi</a> </strong>(ex Flow Traders,  Morgan Stanley), a software engineer who has spent the last several years building trading infrastructure in C++ and Rust. His article, <em><strong><a href="https://deepengineering.substack.com/p/from-nic-to-p99-engineering-low-latency">From NIC to P99: Engineering Low-Latency C++ Trading Systems in 2026</a></strong></em>, walks through the full stack of decisions required to hit a p95 wire-to-wire latency under 50 microseconds. It covers kernel bypass and memory pool design, NUMA affinity, hardware clock selection, and observability at nanosecond granularity.</p><p>This issue answers three questions that recur in performance-critical systems (trading and otherwise):</p><ul><li><p><strong>Where the latency budget actually goes</strong> once you include the NIC, kernel boundary, CPU topology, caches, and clocks&#8212;not just business logic.</p></li><li><p><strong>What belongs on the critical path</strong> vs. off it, using a clean pipeline model (ingestion &#8594; checks &#8594; pricing &#8594; strategy &#8594; OMS).</p></li><li><p><strong>How to measure regressions early</strong>, using stage-level histograms and system-level tracing that exposes jitter sources you won&#8217;t see in application profiles.</p></li></ul><p>Let&#8217;s get started.</p><div><hr></div><h3><strong><a href="https://www.eventbrite.com/e/openclaw-masterclass-workshop-tickets-1983508689886?aff=mobilenloc">OpenClaw Masterclass Workshop</a></strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.com/e/building-and-running-your-startup-with-openclaw-tickets-1983508689886?aff=mobilenloc" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I9Ju!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76c61fec-d6a8-4c65-82c3-e09f1a015931_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!I9Ju!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76c61fec-d6a8-4c65-82c3-e09f1a015931_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!I9Ju!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76c61fec-d6a8-4c65-82c3-e09f1a015931_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!I9Ju!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76c61fec-d6a8-4c65-82c3-e09f1a015931_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I9Ju!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76c61fec-d6a8-4c65-82c3-e09f1a015931_2160x1080.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/76c61fec-d6a8-4c65-82c3-e09f1a015931_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:924673,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.eventbrite.com/e/building-and-running-your-startup-with-openclaw-tickets-1983508689886?aff=mobilenloc&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/189970085?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76c61fec-d6a8-4c65-82c3-e09f1a015931_2160x1080.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_!I9Ju!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76c61fec-d6a8-4c65-82c3-e09f1a015931_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!I9Ju!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76c61fec-d6a8-4c65-82c3-e09f1a015931_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!I9Ju!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76c61fec-d6a8-4c65-82c3-e09f1a015931_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!I9Ju!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76c61fec-d6a8-4c65-82c3-e09f1a015931_2160x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><p>Learn how to turn AI into a safe and cost-effective operational backbone with live case studies from experts who are running their business</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/openclaw-masterclass-workshop-tickets-1983508689886?aff=mobilenloc&quot;,&quot;text&quot;:&quot;Register&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.eventbrite.com/e/openclaw-masterclass-workshop-tickets-1983508689886?aff=mobilenloc"><span>Register</span></a></p><div><hr></div><h4>Before we dive in&#8230;</h4><p>On the morning of August 1, 2012, Knight Capital Group opened for trading as one of the largest market makers in the US, handling roughly 10% of all equity trading volume on American exchanges. By 10:15 AM, 45 minutes after the market opened, the firm had lost $440 million and was effectively finished as an independent company.</p><p>The cause was a software deployment error. A new version of Knight&#8217;s order routing system had been pushed to seven of its eight production servers. The eighth server, missed during deployment, continued running a dormant piece of code that had not been used since 2003. When the market opened, that server began firing child orders into the market at full speed to fill just 212 customer orders, and kept going. The system sent more than 4 million orders before anyone intervened. Ninety-seven automated alert emails had been generated referencing the error before the market even opened. And nobody even acted on them. (<a href="https://www.sec.gov/files/litigation/admin/2013/34-70694.pdf">SEC enforcement order, October 2013</a>)</p><p>Knight Capital did not fail because its engineers were careless or inexperienced. It failed because the engineering discipline required to run software at trading-system speeds was not matched to the speed at which the system could cause damage. That discipline covers deterministic deployment, observable behavior, and a tested kill path. In a system capable of sending thousands of orders per second, the gap between &#8220;something is wrong&#8221; and &#8220;the damage is done&#8221; is measured in minutes, not days.</p><p>This is what <strong>Shreyans Doshi</strong> addresses in his article.</p><div><hr></div><h1><strong>&#129504;Expert Insight</strong></h1><h2>From NIC to P99: Engineering Low-Latency C++ Trading Systems in 2026</h2><p><em><strong>by Shreyans</strong> <strong>Doshi</strong></em></p><p>Trading systems have been evolving for decades, moving from manual execution based on charts and indicators to automated strategies that fire within tens of nanoseconds using FPGA and ASIC hardware. Both approaches still coexist today, but most advanced and systematic trading has moved into the sub-100 microsecond range. In this article I want to focus on the hardware and software aspects you need to understand in order to build a trading system with p95 wire-to-wire latency under 50 microseconds.</p><p>Traditional technology stacks like Java, JavaScript, TypeScript, and C# offer a lot of flexibility and scalability for large-scale applications, but their inherently nondeterministic nature makes it very difficult to get below a p50 latency of 500 microseconds. While there are ways to optimize garbage collection and other Java components for latency, most standard Java libraries do not focus on low-level concepts like aligning data to cache lines or reducing cache line misses. C and C++ applications optimize for a specific platform at the cost of portability, but that trade-off is exactly what gives you access to manual memory management and the ability to avoid multithreading pitfalls like false sharing. When the goal is to reduce latency, you need lower-level languages like C, C++, or Rust on critical paths. I will not cover pure hardware implementations like FPGAs or ASICs here since they are not required for our 50-microsecond latency target.</p><h3>Important definitions</h3><p>Before diving into the architecture and hardware optimizations, it will be helpful to establish exactly how performance is measured in a low-latency environment.</p><h4><strong>Wire-to-wire latency</strong></h4><p>Wire-to-wire latency is measured from the moment a market data packet is received on the NIC from the exchange to the moment an order is sent back to the exchange on the same NIC. You compute it as order send timestamp minus market data receive timestamp. The most precise measurements require NIC cards with hardware timestamping enabled, so the NIC stamps every inbound and outbound packet with a hardware timestamp that you can later use to analyze the latency graph. Exanic cards provide APIs for retrieving these hardware timestamps.</p><h4>Assumptions about the system</h4><p>To hit the latency target of under 50 microseconds, you need to optimize both hardware and server setup alongside your software, and the following assumptions underpin everything in this article.</p><ul><li><p><strong>Colocated host:</strong> Most stock exchanges in traditional finance provide colocation services where your servers sit physically adjacent to the exchange&#8217;s servers, removing extra network jitter from the equation.</p></li><li><p><strong>UDP market data access:</strong> Most stock exchanges distribute market data via UDP multicast to all subscribed parties, and this is the fastest way to consume and react to it.</p></li><li><p><strong>Kernel bypass NIC:</strong> The system runs on NIC cards enabled for kernel bypass and tuned for low-latency operation.</p></li><li><p><strong>Single venue:</strong> These systems are single-venue, meaning at any point they process market data to generate orders for one stock exchange only. For multi-venue setups, the assumption is one colocated host per venue with no shared critical-path processing.</p></li></ul><h4>Workload model</h4><p>Most trading systems follow this model of data processing in abstract terms.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_1_W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e071ec-b507-4278-a874-052d6e5cd7c1_1024x559.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_1_W!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e071ec-b507-4278-a874-052d6e5cd7c1_1024x559.png 424w, https://substackcdn.com/image/fetch/$s_!_1_W!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e071ec-b507-4278-a874-052d6e5cd7c1_1024x559.png 848w, https://substackcdn.com/image/fetch/$s_!_1_W!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e071ec-b507-4278-a874-052d6e5cd7c1_1024x559.png 1272w, https://substackcdn.com/image/fetch/$s_!_1_W!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e071ec-b507-4278-a874-052d6e5cd7c1_1024x559.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_1_W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e071ec-b507-4278-a874-052d6e5cd7c1_1024x559.png" width="1024" height="559" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d3e071ec-b507-4278-a874-052d6e5cd7c1_1024x559.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:559,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_1_W!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e071ec-b507-4278-a874-052d6e5cd7c1_1024x559.png 424w, https://substackcdn.com/image/fetch/$s_!_1_W!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e071ec-b507-4278-a874-052d6e5cd7c1_1024x559.png 848w, https://substackcdn.com/image/fetch/$s_!_1_W!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e071ec-b507-4278-a874-052d6e5cd7c1_1024x559.png 1272w, https://substackcdn.com/image/fetch/$s_!_1_W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e071ec-b507-4278-a874-052d6e5cd7c1_1024x559.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>Every strategy engine takes market data from the exchange as its primary input and produces orders sent to the exchange as its primary output, moving through multiple stages as described below. Exchange responses are a secondary input to the engine but are not on the hot path for latency calculations.</p><h4><strong>Market data ingestion</strong></h4><p>The first layer is responsible for ingesting the market data (raw or normalized) from the network card. This layer routinely processes terabytes of data per day and can exceed a petabyte on busy days at venues like CME or Eurex. On an average day at CME you can expect 20 to 30 million trades and 100 to 150 million open interest events in a single segment. Processing a full L1 feed for one segment means receiving traffic in the range of a few terabytes to hundreds of terabytes per day, so both software and hardware need to be extremely optimized.</p><h4><strong>Filtering and checks</strong></h4><p>Filtering and checks come next, cleaning up incoming data and validating it before it reaches downstream stages. This layer handles packet drops, invalid market data, trading phase transitions like moving from an active session to a halted one, and anomalous price changes that might indicate a software bug. When something goes wrong at this stage, the right response is often to instruct strategies to stop rather than pass bad data forward.</p><h4><strong>Pricing engine</strong></h4><p>The pricing engine receives valid and normalized market data and can range from a simple no-op or currency conversion all the way to a full ML-powered model. Lightweight pricing fits comfortably on the critical path. Complex ML models that require large amounts of memory and processing do not, because they would blow the latency budget. In practice, ML-powered engines in low-latency applications split into two processes: time-consuming training and inference model preparation happen off the critical path, and a lightweight inference step runs on the critical path using small linearized models fed configuration parameters from the heavier ML output. This keeps the heavy lifting off the hot path while still giving the strategy access to model-driven signals. Colocation also constrains available compute, so you want to reserve it for work that directly impacts critical path performance.</p><h4><strong>Strategy evaluation</strong></h4><p>Strategy evaluation compares transformed or theoretical prices against real prices and fires an order when it identifies an opportunity. Strategies generally fall into three categories.</p><ul><li><p><strong>Maker:</strong> Maker strategies keep quotes on both the buy and sell sides to provide liquidity and take advantage of the bid-ask spread. Exchanges often provide incentives to HFT firms that add liquidity this way.</p></li><li><p><strong>Taker:</strong> Taker strategies identify mispricing and fire IOC or FOK orders for immediate execution.</p></li><li><p><strong>Hedging:</strong> Hedging strategies reduce risk or book profit by executing the opposite side of an existing position.</p></li></ul><h4><strong>Order aggregation and routing (OMS)</strong></h4><p>Order aggregation and routing (OMS) can be combined with strategy evaluation in simple setups, but should be separated as complexity grows. It serves three purposes: aggregating orders from multiple strategies to reduce the number of orders sent to the exchange, managing exchange responses and passing normalized results back to the strategy, and handling the routing logic that grows more complex as your strategy count increases.</p><h2>Latency map: where the latency lies</h2><p>Now that the high-level components are clear, it is worth mapping out where the latency actually sits so you can allocate your budget with precision. Beyond the business logic itself, your latency profile depends on CPU model and generation, NIC type and model, operating system, software architecture, and business logic complexity.</p><p>Beyond the business logic stages, several factors contribute latency that stays invisible if you only look at application code. These factors come from hardware, OS and kernel processing, network behavior, and I/O, and they play an outsized role in ultra-low-latency systems. Even if they occur infrequently, they introduce jitter and latency spikes that directly hurt your p99. Although many of these latency sources depend on a multitude of factors, you can work with approximate cost ranges that provide a useful benchmark.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.com/p/from-nic-to-p99-engineering-low-latency&quot;,&quot;text&quot;:&quot;Continue reading&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://deepengineering.substack.com/p/from-nic-to-p99-engineering-low-latency"><span>Continue reading</span></a></p><p></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;905a4c05-051d-41a5-a3ce-0d08102b8135&quot;,&quot;caption&quot;:&quot;Trading systems have been evolving for decades, moving from manual execution based on charts and indicators to automated strategies that fire within tens of nanoseconds using FPGA and ASIC hardware. Both approaches still coexist today, but most advanced and systematic trading has moved into the sub-100 microsecond range. In this article I want to focus &#8230;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;From NIC to P99: Engineering Low-Latency C++ Trading Systems in 2026&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:16210726,&quot;name&quot;:&quot;Shreyans&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/298da20e-a7b4-4aa4-bfd7-ac6282cb6cbe_144x144.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-03-04T08:19:17.026Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b449d007-c2e0-4447-a359-fffc7681e42b_1792x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/from-nic-to-p99-engineering-low-latency&quot;,&quot;section_name&quot;:&quot;Practical Deep-Dives&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:189117004,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h1><strong>&#128736;&#65039;Tool of the Week</strong></h1><p><strong><a href="https://github.com/bpftrace/bpftrace">bpftrace</a></strong> &#8212; open-source high-level tracing language for Linux systems, built on eBPF</p><p><strong>Highlights:</strong></p><ul><li><p><strong>Instant latency visibility where it leaks</strong>: Attach probes to kernel/user-space events (kprobes/tracepoints/uprobes) to pinpoint tail-latency sources&#8212;scheduler delays, IRQ/softirq behavior, and &#8220;surprise&#8221; syscalls&#8212;without changing your C++ code.</p></li><li><p><strong>Built-in distribution tooling (histograms by default)</strong>: First-class aggregations like <code>hist()</code> and <code>quantize()</code> make it trivial to generate p50/p95/p99-style views (not just averages), which is exactly what you need for jitter and p99 debugging.</p></li><li><p><strong>Ready-to-run scripts for common low-latency failure modes</strong>: The bundled <code>tools/</code> library covers practical staples like syscall counts, run-queue latency, and retransmits&#8212;fast to deploy during an investigation, easy to keep as regression checks.</p><p></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://github.com/bpftrace/bpftrace&quot;,&quot;text&quot;:&quot;Learn more about bpftrace&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://github.com/bpftrace/bpftrace"><span>Learn more about bpftrace</span></a></p><div><hr></div><h1><strong>&#128206; Tech Briefs</strong></h1><ul><li><p><strong><a href="https://www.postgresql.org/about/news/postgresql-183-179-1613-1517-and-1422-released-3246/">PostgreSQL 18.3 / 17.9 / 16.13 / 15.17 / 14.22 released</a>:</strong> PostgreSQL shipped an <strong>out-of-cycle</strong> patch set to all supported branches to fix <strong>regressions</strong> (including fixes touching standby behavior, <code>substring()</code> encoding edge cases related to a CVE fix, <code>pg_trgm</code> stability, and restoring <code>json*_strip_nulls()</code> immutability for index use). </p></li><li><p><strong><a href="https://github.blog/changelog/2026-02-26-github-actions-now-supports-uploading-and-downloading-non-zipped-artifacts/">GitHub Actions: upload/download artifacts without forced ZIP</a>:</strong> GitHub Actions added support to upload and download <strong>non-zipped</strong> artifacts (via <code>actions/upload-artifact@v7</code> with <code>archive: false</code> and <code>actions/download-artifact@v8</code>), reducing friction for single-file downloads, in-browser viewing, and &#8220;double-zip&#8221; workflows. </p></li><li><p><strong><a href="https://www.dpdk.org/dpdk-governing-board-minutes-february-17-2026/">DPDK Governing Board minutes: quality-first 26.03 cycle + AI-assisted review gate)</a>:</strong> DPDK&#8217;s Feb 17 governing-board update highlights a <strong>code-hardening</strong> 26.03 cycle (roughly &#8220;half the commits&#8221; focused on fixes/backports) and describes introducing <strong>AI-assisted code reviews</strong> hosted by the UNH lab as an additional quality gate after standard CI passes. </p></li><li><p><strong><a href="https://nodejs.org/en/blog/release/v25.8.0">Node.js 25.8.0 (Current) released</a>:</strong> Node.js 25.8.0 landed with notable changes including SQLite <code>DatabaseSync</code> additions, expanded diagnostics channel support, a new <code>--permission-audit</code> flag, and dependency updates (including an npm upgrade). </p></li><li><p><strong><a href="https://github.blog/changelog/2026-03-03-dependabot-alert-assignees-are-now-generally-available/">Dependabot alert assignees GA</a>:</strong> GitHub made <strong>Dependabot alert assignees</strong> generally available, enabling explicit ownership of dependency vulnerability alerts (UI + REST API + webhooks) and visibility across repo/org/enterprise alert views. </p></li></ul><div><hr></div><p>That&#8217;s all for today. Thank you for reading this issue of Deep Engineering.</p><p>We&#8217;ll be back next week with more expert-led content.</p><p>Stay awesome, </p><p>Saqib Jan </p><p>Editor-in-Chief, Deep Engineering</p><div><hr></div><p><em>If your company is interested in reaching an audience of senior developers, software engineers, and technical decision-makers, you may want to </em><strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong><em>.</em></p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.com/p/deep-engineering-37-shreyans-doshi/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://deepengineering.substack.com/p/deep-engineering-37-shreyans-doshi/comments"><span>Leave a comment</span></a></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.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 Packt Deep Engineering! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #36: Archit Agarwal on System Design Trade-offs ]]></title><description><![CDATA[From monolith-to-services signals to &#8220;performance per dollar&#8221; and practical resilience under real attacks&#8212;clear choices you can defend in production and interviews.]]></description><link>https://deepengineering.substack.com/p/deep-engineering-36-archit-agarwal</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-36-archit-agarwal</guid><dc:creator><![CDATA[Divya Anne Selvaraj]]></dc:creator><pubDate>Thu, 26 Feb 2026 13:30:47 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/837caa73-ceef-4856-b9c0-49f815314471_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2><a href="https://getunblocked.com/?utm_source=packt_deepengineering&amp;utm_medium=email&amp;utm_campaign=contextengine&amp;utm_content=260223_primary">Unblocked: The context layer your AI tools are missing</a></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://getunblocked.com/?utm_source=packt_deepengineering&amp;utm_medium=email&amp;utm_campaign=contextengine&amp;utm_content=260223_primary" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YXRj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bfa32d-8982-4958-accb-32aa662ac2bd_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!YXRj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bfa32d-8982-4958-accb-32aa662ac2bd_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!YXRj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bfa32d-8982-4958-accb-32aa662ac2bd_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!YXRj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bfa32d-8982-4958-accb-32aa662ac2bd_1200x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YXRj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bfa32d-8982-4958-accb-32aa662ac2bd_1200x600.png" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/30bfa32d-8982-4958-accb-32aa662ac2bd_1200x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:307185,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://getunblocked.com/?utm_source=packt_deepengineering&amp;utm_medium=email&amp;utm_campaign=contextengine&amp;utm_content=260223_primary&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/188591840?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bfa32d-8982-4958-accb-32aa662ac2bd_1200x600.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_!YXRj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bfa32d-8982-4958-accb-32aa662ac2bd_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!YXRj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bfa32d-8982-4958-accb-32aa662ac2bd_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!YXRj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bfa32d-8982-4958-accb-32aa662ac2bd_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!YXRj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bfa32d-8982-4958-accb-32aa662ac2bd_1200x600.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>Give AI agents the knowledge of your most experienced engineers. Unblocked builds context from your team&#8217;s code, PR history, conversations, documentation, planning tools, and runtime signals to surface what matters for the task at hand &#8211; while resolving conflicts and respecting permissions. Ship faster with AI outputs that reflect how your system actually works.</p></blockquote><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://getunblocked.com/?utm_source=packt_deepengineering&amp;utm_medium=email&amp;utm_campaign=contextengine&amp;utm_content=260223_primary&quot;,&quot;text&quot;:&quot;See how it works&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://getunblocked.com/?utm_source=packt_deepengineering&amp;utm_medium=email&amp;utm_campaign=contextengine&amp;utm_content=260223_primary"><span>See how it works</span></a></p><div><hr></div><p><strong>&#9997;&#65039;From the editor&#8217;s desk,</strong></p><blockquote><p><em>Dear reader,</em></p><p><em>It has been a privilege to serve you as we built Deep Engineering over the past year. This is my final issue, and next month the newsletter will continue under new editorial leadership. I&#8217;m glad to introduce <strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Saqib Jan&quot;,&quot;id&quot;:427210082,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/997a788a-cd78-4f84-9b3b-c72ab6dc0153_1008x1008.jpeg&quot;,&quot;uuid&quot;:&quot;0aae71ef-7739-476e-afec-921b8781202c&quot;}" data-component-name="MentionToDOM"></span></strong> as the new Editor-in-Chief of Deep Engineering.</em></p><p><em>Deep Engineering remains committed to serving the software community with timely, expert-led insights. Thank you for reading and for being part of this journey with me.</em></p></blockquote><p><strong>Welcome to the 36th issue of Deep Engineering!</strong></p><p><a href="https://blog.cloudflare.com/ddos-threat-report-2025-q4/">Cloudflare&#8217;s Q4 2025 DDoS Threat Report</a> described a record <strong>31.4 Tbps</strong> attack and hyper-volumetric HTTP floods exceeding <strong>200 million requests per second</strong>&#8212;a useful reminder that production systems run in a hostile environment. Today&#8217;s issue is grounded in my conversation with <strong><a href="https://www.linkedin.com/in/architagarwal984/">Archit Agarwal</a></strong>, <strong>Principal Member of Technical Staff</strong> at <strong>Oracle</strong> working on ultra-low-latency authorization services in Go, and the author of <em><strong><a href="https://www.linkedin.com/newsletters/the-weekly-golang-journal-7261403856079597568/">The Weekly Golang Journal</a></strong></em>. As Agarwal says, we must assume <strong>the system will fail and the system will be attacked</strong>, then work backward into controls that keep the blast radius small.</p><p>In this issue, we explore <strong>what makes a system design hold up in production once cost, failure, and security constraints become non-negotiable?</strong> Agarwal&#8217;s guidance is consistent across topics: delay microservices until &#8220;splitting signals&#8221; are visible, treat <strong>performance per dollar</strong> as a design requirement, cap autoscaling to prevent runaway spend during attacks, and keep dependency risk contained through abstraction, version discipline, and unified observability. Agarwal also offers battle-tested <strong>tips on cracking the system design interview</strong>.</p><p>You can watch the complete interview and read the transcript<strong> <a href="https://deepengineering.substack.com/p/trade-offs-in-modern-system-design">here</a></strong>, or read on for distilled insights.</p><div id="youtube2-rOLA2NpKPfM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;rOLA2NpKPfM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/rOLA2NpKPfM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h4><a href="https://www.eventbrite.com/e/building-an-internal-developer-platform-from-scratch-tickets-1978960034736?aff=deepeng">Build an Internal Developer Platform from scratch (2-day live workshop)</a></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.com/e/building-an-internal-developer-platform-from-scratch-tickets-1978960034736?aff=deepeng" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2saJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F778ffd99-31f8-4ad0-9f1f-f6b5fccec31c_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!2saJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F778ffd99-31f8-4ad0-9f1f-f6b5fccec31c_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!2saJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F778ffd99-31f8-4ad0-9f1f-f6b5fccec31c_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!2saJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F778ffd99-31f8-4ad0-9f1f-f6b5fccec31c_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2saJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F778ffd99-31f8-4ad0-9f1f-f6b5fccec31c_2160x1080.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/778ffd99-31f8-4ad0-9f1f-f6b5fccec31c_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:391116,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.eventbrite.com/e/building-an-internal-developer-platform-from-scratch-tickets-1978960034736?aff=deepeng&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/188591840?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F778ffd99-31f8-4ad0-9f1f-f6b5fccec31c_2160x1080.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_!2saJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F778ffd99-31f8-4ad0-9f1f-f6b5fccec31c_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!2saJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F778ffd99-31f8-4ad0-9f1f-f6b5fccec31c_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!2saJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F778ffd99-31f8-4ad0-9f1f-f6b5fccec31c_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!2saJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F778ffd99-31f8-4ad0-9f1f-f6b5fccec31c_2160x1080.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>Most IDPs fail when teams build tools, not products. This 2-day live, hands-on workshop shows how to design and build a production-ready IDP with platform-as-a-product patterns, adoption, governance, and reliability. <strong>Sat, Apr 25, 2026 &#8212; 11:00 AM ET.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/building-an-internal-developer-platform-from-scratch-tickets-1978960034736?aff=deepeng&quot;,&quot;text&quot;:&quot;Reserve your seat &#8594;&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eventbrite.com/e/building-an-internal-developer-platform-from-scratch-tickets-1978960034736?aff=deepeng"><span>Reserve your seat &#8594;</span></a></p><div><hr></div><h1><strong>System Design That Holds Up in Production with Archit Agarwal</strong></h1><p>A system design diagram is only useful if it reflects the constraints the system will live under. Archit Agarwal&#8217;s answer to most design questions is the same: make the trade-offs explicit, and choose them deliberately.</p><h2><strong>When microservices are worth it</strong></h2><p>It is now generally established best practice to begin with a monolith when requirements are still changing and the domain is still unfamiliar. Agarwal recommends keeping module boundaries clean so that separation is possible later, but he delays distribution until there is clear evidence it will help.</p><p>He looks for &#8220;splitting signals&#8221;:</p><ul><li><p><strong>Deployment friction shows up:</strong> Releases get larger, slower, and harder to roll back.</p></li><li><p><strong>The blast radius grows:</strong> A defect in one area increasingly breaks unrelated user paths.</p></li><li><p><strong>Independent scaling becomes necessary:</strong> One workload needs more capacity than others during predictable peaks.</p></li><li><p><strong>Technology needs diverge:</strong> A subsystem truly benefits from different runtimes, storage, or processing tools.</p></li></ul><p>Microservices add team autonomy, but they also add coordination overhead and network latency. According to Agarwal, splitting makes sense when the monolith&#8217;s pain is observable, repeatable, and clearly outweighs the operational tax of moving to services.</p><h2><strong>Performance per dollar as a design requirement</strong></h2><p>Cost is part of the architecture. Agarwal evaluates choices as &#8220;performance per dollar,&#8221; so teams weigh latency gains against the full cost of running and operating the system.</p><p>A cost-aware loop can:</p><ul><li><p>Make spend visible through dashboards, so teams connect architecture to real numbers.</p></li><li><p>Put cost into design reviews alongside latency, availability, and security trade-offs.</p></li><li><p>Build for horizontal scaling, then scale only when demand and reliability targets prove the need.</p></li><li><p>Manage data by lifecycle. Keep frequently accessed data in hot tiers and move cold data to cheaper storage.</p></li></ul><h2><strong>Design for a hostile environment</strong></h2><p>It is also important to <strong>design around two expectations: systems fail, and systems get attacked</strong>. Planning for both keeps failure domains small and recovery predictable.</p><p>Recent threat telemetry supports the posture. <strong><a href="https://radar.cloudflare.com/reports/ddos-2025-q4">Cloudflare&#8217;s Q4 2025 DDoS report</a></strong> describes a record 31.4 Tbps attack and a subsequent campaign with hyper-volumetric HTTP floods exceeding 200 million requests per second. The same report says DDoS attacks surged 121% in 2025, averaging 5,376 mitigations per hour on Cloudflare&#8217;s network.</p><p>Agarwal recommends a practical resilience toolkit that ties these risks to concrete controls:</p><ul><li><p>Add layered defenses at the edge before the application spends CPU.</p></li><li><p>Rate-limit meaningfully by user, token, IP, and geography, and tune limits using real traffic.</p></li><li><p>Cap autoscaling so an attack cannot trigger runaway capacity and spend.</p></li><li><p>Separate failure domains with multi&#8211;availability zone deployments, and reserve multi-region for the paths that must stay up.</p></li><li><p>Keep observability complete, because incident response depends on fast visibility.</p></li></ul><p>Supply chain exposure belongs in the same threat model. <strong><a href="https://www.sonatype.com/blog/open-source-malware-index-q4-2025-automation-overwhelms-ecosystems">Sonatype</a></strong> reported 394,877 new malicious open-source packages in Q4 2025 alone, a 476% jump compared to the prior three quarters combined, with 99.8% of the malware it saw in that quarter originating from npm. <strong><a href="https://www.reversinglabs.com/blog/sscs-report-2026-takeaways">ReversingLabs&#8217; 2026 software supply chain report</a></strong> also points to npm as the primary hotspot, reporting 10,819 malicious packages detected there in 2025 (nearly 90% of its detections across OSS platforms) and describing a first-of-its-kind self-replicating registry-native worm dubbed Shai-hulud that compromised close to 1,000 npm packages across two campaigns.</p><p>Design implications follow naturally: pin and review dependency updates, validate new versions before promotion, avoid automatic upgrades on production-critical paths, and enforce least privilege and deny-by-default authorization so that a compromised component has limited reach.</p><h2><strong>Depend on services without letting dependencies own you</strong></h2><p>Modern systems rely on external services and SaaS APIs. Agarwal recommends keeping those dependencies from becoming single points of failure.</p><p>His approach is pragmatic:</p><ul><li><p>Put an abstraction layer in front of major external services, so the application talks to an interface rather than a vendor-specific client library.</p></li><li><p>Prefer portable standards where they fit, such as containers and unified telemetry.</p></li><li><p>Replicate only what is mission-critical across regions or providers, and keep observability in one place.</p></li></ul><h2><strong>Ultra-low latency without sacrificing the whole codebase</strong></h2><p>Agarwal recommends treating latency like a budget: every hop and allocation spends from it. Ultra-low-latency work, in his view, is mostly subtraction.</p><p>Replicable strategies:</p><ul><li><p>Put compute closer to users when geography is on the critical path.</p></li><li><p>Remove network hops from hot paths, and keep the performance-critical code lean.</p></li><li><p>Reuse connections and choose efficient service-to-service protocols when calls are unavoidable.</p></li><li><p>Match hardware and runtime to the goal, because software choices cannot fully offset weak infrastructure.</p></li></ul><p>He also draws a boundary that protects maintainability: only a small part of most systems needs extreme optimization. Keep the rest readable and easy to change.</p><h2><strong>How to communicate system design under pressure</strong></h2><p>Agarwal&#8217;s interview advice doubles as a template for real design discussions: keep the design aligned with requirements, and keep your reasoning easy to follow.</p><p>His recommended structure for cracking the system design interview:</p><ul><li><p>Align on functional requirements first.</p></li><li><p>Capture nonfunctional requirements next, because they drive architecture.</p></li><li><p>Present a high-level design, then zoom in one component at a time.</p></li><li><p>State trade-offs as you choose, including what you gain and what you give up.</p></li></ul><p>When constraints change midstream, he recommends restating the change, identifying the affected parts, and updating only what needs updating. That approach shows control, adaptability, and a clear &#8220;commit history&#8221; of decisions.</p><div><hr></div><h1><strong>&#129504;</strong>Expert Insight</h1><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;e0023496-7319-47aa-a4f2-1a9a12e1994d&quot;,&quot;caption&quot;:&quot;This conversation with Archit Agarwal is a practical tour through modern system design&#8212;starting from first principles and repeatedly returning to a single constraint: real systems live under trade-offs, and good engineers choose those trade-offs deliberately. Agarwal is a&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Trade-offs in Modern System Design: A Conversation with Archit Agarwal&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:140662997,&quot;name&quot;:&quot;Divya Anne Selvaraj&quot;,&quot;bio&quot;:&quot;Editor-in-Chief of Deep Engineering by Packt&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/309a6f07-27a6-40bf-ab99-d042556d816b_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:14853060,&quot;name&quot;:&quot;Archit Agarwal&quot;,&quot;bio&quot;:&quot;Principal Member of Technical Staff at Oracle, building ultra-low latency auth in Golang. Creator of The Weekly Golang Journal, turning system design theory into practical, high-performance code using language and SQL internals, cloud solutions.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d3d8661-57d3-4b2a-8e42-f789caf14aa6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-02-26T05:13:34.221Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4a14374-2767-4450-9c5b-ca04d9e4a48a_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/trade-offs-in-modern-system-design&quot;,&quot;section_name&quot;:&quot;Interviews&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:189001968,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h1><strong>&#128736;&#65039;</strong>Tool of the Week</h1><p><strong><a href="https://github.com/envoyproxy/envoy">Envoy Proxy</a></strong>: a high-performance L7 proxy that standardizes service-to-service and edge traffic management (routing, resilience, security, and telemetry) across distributed systems.</p><p><strong>Highlights:</strong></p><ul><li><p><strong>Advanced traffic routing &amp; load balancing:</strong> dynamic routing rules, weighted traffic splitting, and multiple load-balancing policies.</p></li><li><p><strong>Resilience controls built in:</strong> timeouts, retries, circuit breaking, and outlier detection to contain failures.</p></li><li><p><strong>Security + observability hooks:</strong> mTLS/TLS termination, external authorization integration, and first-class metrics/logging/tracing support.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://github.com/envoyproxy/envoy&quot;,&quot;text&quot;:&quot;Learn more about Envoy Proxy&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://github.com/envoyproxy/envoy"><span>Learn more about Envoy Proxy</span></a></p><div><hr></div><h1><strong>&#128206;</strong>Tech Briefs</h1><ul><li><p><strong><a href="https://blog.cloudflare.com/cloudflare-outage-february-20-2026/">Cloudflare outage (BYOIP route withdrawal)</a>: </strong>Explains how a change in BYOIP prefix management unintentionally triggered BGP route withdrawals for some customers, causing timeouts and connectivity failures, and documents the mitigations and follow-up controls.</p></li><li><p><strong><a href="https://blog.cloudflare.com/post-quantum-sase/">Post-quantum encryption across Cloudflare One (SASE)</a>: </strong>Cloudflare has rolled out standards-based post-quantum hybrid ML-KEM across Zero Trust and WAN on-ramps/off-ramps (including TLS/MASQUE/IPsec paths) without requiring specialized hardware changes.</p></li><li><p><strong><a href="https://www.fastly.com/blog/private-incident-notifications">Private incident + maintenance notifications (SSO &amp; Slack) &#8212; Fastly</a></strong>: <br>Fastly has introduced private, security-sensitive incident and maintenance notifications with integrations like SSO and Slack to improve operational transparency for customers without exposing details publicly.</p></li><li><p><strong><a href="https://www.postgresql.org/about/news/aptpostgresqlorg-changelogs-build-logs-and-ubuntu-releases-resolute-and-plucky-3238/">apt.postgresql.org operational updates</a></strong>: The PostgreSQL project&#8217;s apt repository announces automatic apt-retrievable changelogs, colocated build logs, and repository changes as Ubuntu 26.04 work begins and Ubuntu 25.04 reaches EOL.</p></li><li><p><strong><a href="https://www.postgresql.org/about/news/postgresql-anonymizer-30-parallel-static-masking-json-import-export-3236/">PostgreSQL Anonymizer 3.0</a>:</strong> Dalibo&#8217;s PostgreSQL Anonymizer 3.0 adds parallel static masking via background workers and JSON import/export for masking rules, alongside security fixes and breaking-change notes.</p></li></ul><div><hr></div><p>That is all from me today. Thank you for reading this issue of <em>Deep Engineering</em>. </p><p>We will be back next week with more expert-led content.</p><p>Signing off one last time,<br>Divya Anne Selvaraj <br><em>Editor-in-Chief, Deep Engineering</em></p><p>(Don&#8217;t forget to stay awesome!)</p><div><hr></div><p>If your company is interested in reaching an audience of developers, software engineers, and tech decision makers, you may want to <strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong>.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.com/p/deep-engineering-22-richard-d-avila/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://deepengineering.substack.com/p/deep-engineering-22-richard-d-avila/comments"><span>Leave a comment</span></a></p>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #35: Scott Millett on closing the “story gap”]]></title><description><![CDATA[SCQA, the Pyramid Principle, and the decision-forcing close]]></description><link>https://deepengineering.substack.com/p/deep-engineering-35-scott-millett</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-35-scott-millett</guid><dc:creator><![CDATA[Divya Anne Selvaraj]]></dc:creator><pubDate>Fri, 20 Feb 2026 13:31:14 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7431607d-0784-4098-8a5a-27ef0c494085_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3><a href="https://www.eventbrite.com/e/building-mcp-servers-in-production-tickets-1982519419953?aff=deepeng">Building MCP Servers in Production (Live workshop)</a></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.com/e/building-mcp-servers-in-production-tickets-1982519419953?aff=deepeng" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ggl4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc586e101-bf2d-47ed-a165-7012ad066f2a_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!ggl4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc586e101-bf2d-47ed-a165-7012ad066f2a_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!ggl4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc586e101-bf2d-47ed-a165-7012ad066f2a_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!ggl4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc586e101-bf2d-47ed-a165-7012ad066f2a_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ggl4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc586e101-bf2d-47ed-a165-7012ad066f2a_2160x1080.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c586e101-bf2d-47ed-a165-7012ad066f2a_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:354237,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.eventbrite.com/e/building-mcp-servers-in-production-tickets-1982519419953?aff=deepeng&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/188463970?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc586e101-bf2d-47ed-a165-7012ad066f2a_2160x1080.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_!ggl4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc586e101-bf2d-47ed-a165-7012ad066f2a_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!ggl4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc586e101-bf2d-47ed-a165-7012ad066f2a_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!ggl4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc586e101-bf2d-47ed-a165-7012ad066f2a_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!ggl4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc586e101-bf2d-47ed-a165-7012ad066f2a_2160x1080.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>Move MCP from demos to production. In this 5-hour online workshop you&#8217;ll cover OAuth 2.1 auth pitfalls, OpenTelemetry observability, scaling persistent connections, and managing context growth/cost. Led by Saxo Bank Principal Dev Peder Holdgaard Pedersen. <strong>When: Mar 29, 10:30am&#8211;3:30pm ET / 7:30am&#8211;12:30pm PT.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/building-mcp-servers-in-production-tickets-1982519419953?aff=deepeng&quot;,&quot;text&quot;:&quot;Get tickets on Eventbrite&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eventbrite.com/e/building-mcp-servers-in-production-tickets-1982519419953?aff=deepeng"><span>Get tickets on Eventbrite</span></a></p><div><hr></div><p><strong>&#9997;&#65039;From the editor&#8217;s desk,</strong></p><p>Welcome to the 35th issue of <em><strong>Deep Engineering</strong></em>!</p><p>This is the second installment in Deep Engineering&#8217;s ongoing series adapted from chapter 2 of <em><strong><a href="https://www.packtpub.com/en-us/product/the-it-strategy-playbook-9781806109623">The IT Strategy Playbook</a></strong></em> by <strong><a href="https://www.linkedin.com/in/scottmillett/">Scott Millett</a></strong> (Packt; publishing May 2026). Millett is a long-time IT leader and architect who has served in CIO/CTO roles and led large-scale transformation work across multiple sectors (as you saw in <strong><a href="https://deepengineering.substack.com/p/the-it-strategy-playbook-part-1-define">Part 1&#8217;s</a></strong> &#8220;100 Day Plan&#8221; boardroom story).</p><p>Today&#8217;s adaptation focuses on a practical problem: <strong>how technical realities become executive decisions</strong>. Millett lays out a repeatable approach for communicating strategy&#8212;clarifying the single objective, framing the narrative with <strong>SCQA (Situation&#8211;Complication&#8211;Question&#8211;Answer)</strong>, and supporting the recommendation using the <strong>Pyramid Principle</strong>&#8212;so boards and executives can evaluate trade-offs and commit to a direction.</p><p>This is well aligned with what US technology leaders are navigating this week: <strong><a href="https://www.gartner.com/en/newsroom/press-releases/2026-02-17-gartner-global-ai-regulations-fuel-billion-dollar-market-for-ai-governance-platforms">Gartner&#8217;s Feb 17 Q&amp;A</a></strong> piece argues that fragmented AI regulation is accelerating spend on <strong>AI governance platforms</strong> as organizations try to manage compliance and operational risk. At the same time, a multi-industry coalition urged the Commerce Department to preserve the core of the <strong><a href="https://www.axios.com/2026/02/13/industry-lutnick-ai-risk-framework">NIST AI Risk Management Framework</a></strong>, a signal that many enterprises are already using it as a shared language for oversight and internal controls. And <strong><a href="https://www.cisa.gov/news-events/news/cisa-announces-new-town-halls-engage-stakeholders-cyber-incident-reporting-critical-infrastructure">CISA&#8217;s Feb 13 announcement of CIRCIA</a></strong> rulemaking town halls reinforces that incident reporting expectations&#8212;and the need to communicate risk and response clearly&#8212;remain active, moving targets.</p><p>Let&#8217;s get started.</p><div><hr></div><h4><a href="https://www.eventbrite.com/e/safely-refactor-large-production-codebases-with-ai-registration-1982005923070?aff=deepengineeringnewsletter">Safely Refactor Large Production Codebases with AI</a></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.com/e/safely-refactor-large-production-codebases-with-ai-registration-1982005923070?aff=deepengineeringnewsletter" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j7oI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a8b9324-9d90-414d-a7d4-21d21727822d_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!j7oI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a8b9324-9d90-414d-a7d4-21d21727822d_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!j7oI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a8b9324-9d90-414d-a7d4-21d21727822d_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!j7oI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a8b9324-9d90-414d-a7d4-21d21727822d_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j7oI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a8b9324-9d90-414d-a7d4-21d21727822d_2160x1080.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a8b9324-9d90-414d-a7d4-21d21727822d_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:449917,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.eventbrite.com/e/safely-refactor-large-production-codebases-with-ai-registration-1982005923070?aff=deepengineeringnewsletter&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/188463970?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a8b9324-9d90-414d-a7d4-21d21727822d_2160x1080.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_!j7oI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a8b9324-9d90-414d-a7d4-21d21727822d_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!j7oI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a8b9324-9d90-414d-a7d4-21d21727822d_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!j7oI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a8b9324-9d90-414d-a7d4-21d21727822d_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!j7oI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a8b9324-9d90-414d-a7d4-21d21727822d_2160x1080.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>Safely refactor large production codebases with AI. Learn a workflow that pairs Claude Code with ast-grep&#8217;s AST-based rewrites for structural guarantees&#8212;migrations, guardrails, and best-practice enforcement. Ticket includes <em>Mastering ast-grep</em> + prompt templates. <strong>Mar 14, 10&#8211;11:30am ET / 7&#8211;8:30am PT.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/safely-refactor-large-production-codebases-with-ai-registration-1982005923070?aff=deepengineeringnewsletter&quot;,&quot;text&quot;:&quot;Get tickets&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eventbrite.com/e/safely-refactor-large-production-codebases-with-ai-registration-1982005923070?aff=deepengineeringnewsletter"><span>Get tickets</span></a></p><div><hr></div><h1><strong>&#129504;Expert Insight:</strong></h1><h1><strong>The IT Strategy Playbook (Part 2): Closing the Story Gap by Scott Millett</strong></h1><blockquote><p><em><strong>&#8220;The most powerful person in the world is the storyteller.&#8221; &#8212; Steve Jobs</strong></em></p></blockquote><p>In the early 2000s, Nokia dominated mobile phones. Its strategy, built on exceptional hardware engineering and global supply-chain execution, worked flawlessly until 2007. The company didn&#8217;t fall because its engineers lacked insight. It fell because the organization couldn&#8217;t convert critical technical knowledge into strategic intent. The signals were present; the translation mechanisms were not.</p><p>Nokia&#8217;s software teams had long recognized that Symbian&#8217;s architecture was reaching its limits. It was fragmented, costly to evolve, and increasingly misaligned with the emerging touch-driven experience. Alternative platforms such as Maemo and later MeeGo were being explored, and the technical risks were well understood within engineering. But these concerns were filtered through a hardware-first culture that interpreted platform limitations as minor technical defects, not as threats to the business model. The communication path from &#8220;this architecture will constrain what the business can do&#8221; to &#8220;this requires a strategic shift&#8221; simply wasn&#8217;t there.</p><p>At the same time, senior leadership continued to optimize short-term device metrics. They still viewed the competitive landscape as a handset battle rather than an ecosystem battle, and the implications of Apple&#8217;s and Google&#8217;s platform strategies never translated into a unified architectural or strategic response. Nokia&#8217;s organizational structure created a communication gradient: technical truths lost meaning as they travelled upward, and strategic signals failed to reorient investment, priorities, or direction.</p><p>Within five years, the world&#8217;s leading mobile manufacturer was forced to exit the handset business, not because it lacked capability, but because it lacked the ability to translate insight into coherent action. This chapter focuses on the story gap: how to communicate strategic needs clearly, how to ensure signals travel across the organization intact, and how to avoid the silent failures that undermine strategy long before the market ever does.</p><p>In this chapter, you&#8217;ll learn how to:</p><ul><li><p>Communicate strategic intent with clarity, ensuring technical insight translates into decisions rather than confusion</p></li><li><p>Structure a coherent strategic narrative using proven frameworks to move from context to conclusion</p></li><li><p>Develop presentation material that supports decision-making, not just information sharing</p></li><li><p>Deliver your message effectively, guiding senior stakeholders from understanding to commitment</p></li></ul><p>You will use these skills to close the story gap: translating strategy, architectural intent, and plans into a narrative that enables decisions. Not more slides, but a clear line from context to conclusion, so leaders understand the trade-offs, commit to a direction, and act.</p><h1><strong>How to Be An Effective Communicator</strong></h1><p>Delivering a technology strategy is not simply an act of presenting information; it is an act of leadership and influence. The best strategy in the world will fail if the communicator lacks clarity of purpose or the ability to authentically connect with the audience.</p><h2><strong>Clarify your objective</strong></h2><p>Before you open a slide deck or write a single email, you must answer one question with absolute, non-negotiable clarity: What is the one thing I need the audience to believe or do when I stop speaking or reading? This is the foundation of strategic communication. Without a single, clearly defined objective, your message will lack focus, and your audience will leave confused about the desired next step. Your objective should never be passive, such as &#8220;to inform the Board&#8221; or &#8220;to update the team.&#8221; It must be an action verb tied to a measurable outcome. Consider the examples in table 2-1 where we take a passive goal and turn it into an active objective.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ajHS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe71b8b6-7a49-4c69-8680-e16fe0ff9ce5_783x440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ajHS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe71b8b6-7a49-4c69-8680-e16fe0ff9ce5_783x440.png 424w, https://substackcdn.com/image/fetch/$s_!ajHS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe71b8b6-7a49-4c69-8680-e16fe0ff9ce5_783x440.png 848w, https://substackcdn.com/image/fetch/$s_!ajHS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe71b8b6-7a49-4c69-8680-e16fe0ff9ce5_783x440.png 1272w, https://substackcdn.com/image/fetch/$s_!ajHS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe71b8b6-7a49-4c69-8680-e16fe0ff9ce5_783x440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ajHS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe71b8b6-7a49-4c69-8680-e16fe0ff9ce5_783x440.png" width="783" height="440" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/be71b8b6-7a49-4c69-8680-e16fe0ff9ce5_783x440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:440,&quot;width&quot;:783,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:36978,&quot;alt&quot;:&quot;&quot;,&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://deepengineering.substack.com/i/188464810?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe71b8b6-7a49-4c69-8680-e16fe0ff9ce5_783x440.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_!ajHS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe71b8b6-7a49-4c69-8680-e16fe0ff9ce5_783x440.png 424w, https://substackcdn.com/image/fetch/$s_!ajHS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe71b8b6-7a49-4c69-8680-e16fe0ff9ce5_783x440.png 848w, https://substackcdn.com/image/fetch/$s_!ajHS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe71b8b6-7a49-4c69-8680-e16fe0ff9ce5_783x440.png 1272w, https://substackcdn.com/image/fetch/$s_!ajHS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe71b8b6-7a49-4c69-8680-e16fe0ff9ce5_783x440.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>When you define your objective down to the &#8216;one thing,&#8217; you achieve two crucial results:</p><ol><li><p><strong>Elimination of Noise:</strong> Every slide, chart, and word you use must directly serve that single objective. If a piece of data doesn&#8217;t help you achieve the objective, it belongs in the appendix, or nowhere at all.</p></li><li><p><strong>Forcing the Answer:</strong> By knowing the desired action, you structure your entire presentation to lead logically and inevitably to that conclusion. Your presentation becomes a persuasive roadmap, not a rambling document review.</p></li></ol><h2><strong>Master the three modes of Persuasion</strong></h2><p>As an IT leader, you must consciously deploy all three modes to secure buy-in. Relying solely on data (Logos) is rarely enough; you must also establish your credibility (Ethos) and connect your strategy to the organization&#8217;s goals and fears (Pathos). The following subsections detail how to weave each of these essential appeals into your strategic narrative to maximize influence and drive action.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9M5u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c25742a-ce1d-4540-996c-f9c06976a3ed_624x213.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9M5u!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c25742a-ce1d-4540-996c-f9c06976a3ed_624x213.png 424w, https://substackcdn.com/image/fetch/$s_!9M5u!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c25742a-ce1d-4540-996c-f9c06976a3ed_624x213.png 848w, https://substackcdn.com/image/fetch/$s_!9M5u!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c25742a-ce1d-4540-996c-f9c06976a3ed_624x213.png 1272w, https://substackcdn.com/image/fetch/$s_!9M5u!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c25742a-ce1d-4540-996c-f9c06976a3ed_624x213.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9M5u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c25742a-ce1d-4540-996c-f9c06976a3ed_624x213.png" width="624" height="213" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1c25742a-ce1d-4540-996c-f9c06976a3ed_624x213.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:213,&quot;width&quot;:624,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:38983,&quot;alt&quot;:&quot;&quot;,&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://deepengineering.substack.com/i/188464810?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c25742a-ce1d-4540-996c-f9c06976a3ed_624x213.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_!9M5u!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c25742a-ce1d-4540-996c-f9c06976a3ed_624x213.png 424w, https://substackcdn.com/image/fetch/$s_!9M5u!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c25742a-ce1d-4540-996c-f9c06976a3ed_624x213.png 848w, https://substackcdn.com/image/fetch/$s_!9M5u!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c25742a-ce1d-4540-996c-f9c06976a3ed_624x213.png 1272w, https://substackcdn.com/image/fetch/$s_!9M5u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c25742a-ce1d-4540-996c-f9c06976a3ed_624x213.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Figure 2-1 Ethos, Pathos and Logos</figcaption></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.com/p/the-it-strategy-playbook-part-2-closing&quot;,&quot;text&quot;:&quot;Continue reading...&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://deepengineering.substack.com/p/the-it-strategy-playbook-part-2-closing"><span>Continue reading...</span></a></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;54329835-b5e6-4210-a02d-63aa9b4978aa&quot;,&quot;caption&quot;:&quot;This article is Part 2 of Deep Engineering&#8217;s ongoing series adapted from The IT Strategy Playbook: How CIOs and CTOs can drive business growth through focused action, architecture, and execution (Packt; publishing May 2026). Each installment is a web-ready adaptation of a draft chapter. I&#8217;m refining the manuscript as we go&#8212;leave feedback in the comments.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;md&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The IT Strategy Playbook (Part 2): Closing the Story Gap&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:49430582,&quot;name&quot;:&quot;Scott Millett&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!gt3L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb37d1c66-6fe0-4fcc-b196-a539a4cf2ab5_144x144.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-02-19T08:50:59.447Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/635c10ea-b2c3-439b-94d7-f30a83565938_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/the-it-strategy-playbook-part-2-closing&quot;,&quot;section_name&quot;:&quot;The IT Strategy Playbook&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:188464810,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h1><strong>&#128269;In case you missed it&#8230;</strong></h1><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;75f8c7f7-e95b-41d3-a68a-019494769ac9&quot;,&quot;caption&quot;:&quot;This article is Part 1 of Deep Engineering&#8217;s exclusive ongoing series adapted from The IT Strategy Playbook: How CIOs and CTOs can drive business growth through focused action, architecture, and execution by Scott Millett (Packt; publishing May 2026). Millett is an IT leader, strategist, and author with 25+ years&#8217; experience, having served as a CIO, CTO, and archite&#8230;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The IT Strategy Playbook (Part 1): Define, Shape, Deliver &quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:49430582,&quot;name&quot;:&quot;Scott Millett&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!gt3L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb37d1c66-6fe0-4fcc-b196-a539a4cf2ab5_144x144.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-10-29T09:22:31.808Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!6aia!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318241a1-5076-4d65-b0a0-33ab5bbc6060_1586x1120.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/the-it-strategy-playbook-part-1-define&quot;,&quot;section_name&quot;:&quot;The IT Strategy Playbook&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:177442666,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:3,&quot;comment_count&quot;:1,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;33badf11-f39a-4995-92ab-9cc39ba13df9&quot;,&quot;caption&quot;:&quot;Build your next app on HubSpot with the flexibility of an all-new Developer Platform&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Deep Engineering #24: Scott Millett on why IT strategy is business strategy&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:140662997,&quot;name&quot;:&quot;Divya Anne Selvaraj&quot;,&quot;bio&quot;:&quot;Editor-in-Chief of Deep Engineering by Packt&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/309a6f07-27a6-40bf-ab99-d042556d816b_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:49430582,&quot;name&quot;:&quot;Scott Millett&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!gt3L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb37d1c66-6fe0-4fcc-b196-a539a4cf2ab5_144x144.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-10-30T13:30:55.522Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c3ec52cc-71ad-48d2-850c-417237d93294_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/deep-engineering-24-scott-millett&quot;,&quot;section_name&quot;:&quot;Newsletter Issues&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:177538808,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:2,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h1><strong>&#128736;&#65039;Tool of the Week</strong></h1><p><strong><a href="https://mermaid.js.org/">Mermaid &#8212; Open-source &#8220;diagrams as code&#8221; for flowcharts, sequence diagrams, and architecture visuals (rendered from plain text)</a></strong></p><p>Mermaid (mermaid-js/mermaid) is a text-based diagramming tool that turns Markdown-like syntax into diagrams you can embed in docs, RFCs, and strategy decks&#8212;useful when you want visuals that stay versionable and easy to review.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://mermaid.js.org/&quot;,&quot;text&quot;:&quot;More about Mermaid&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://mermaid.js.org/"><span>More about Mermaid</span></a></p><div><hr></div><h1><strong>&#128206;Tech Briefs</strong></h1><ul><li><p><strong><a href="https://www.federalregister.gov/documents/2026/02/13/2026-02948/cyber-incident-reporting-for-critical-infrastructure-act-circia-rulemaking-town-hall-meetings">CIRCIA town halls / reporting requirements</a></strong><a href="https://www.federalregister.gov/documents/2026/02/13/2026-02948/cyber-incident-reporting-for-critical-infrastructure-act-circia-rulemaking-town-hall-meetings"> (US critical infrastructure </a><strong><a href="https://www.federalregister.gov/documents/2026/02/13/2026-02948/cyber-incident-reporting-for-critical-infrastructure-act-circia-rulemaking-town-hall-meetings">CIRCIA rulemaking</a>: </strong>DHS/CISA scheduled sector-specific virtual town halls (plus two general sessions) to gather additional stakeholder input on refining the scope and burden of the proposed cyber incident reporting rule. </p></li><li><p><strong><a href="https://github.blog/changelog/2026-02-13-github-agentic-workflows-are-now-in-technical-preview/">GitHub Agentic Workflows (technical preview)</a>: </strong>GitHub introduced Markdown-authored &#8220;agentic&#8221; automations that compile into standard Actions workflows, aiming to make repo automation more natural-language and security-constrained by default. </p></li><li><p><strong><a href="https://www.cloudflare.com/press/press-releases/2026/cloudflare-and-mastercard-partner-to-extend-comprehensive-cyber-defense/">Attack-surface and app-sec bundling</a>: </strong>Cloudflare and Mastercard announced a partnership to combine attack surface monitoring/risk scoring with Cloudflare&#8217;s application security controls for faster remediation across internet-facing assets. </p></li><li><p><strong><a href="https://www.cisa.gov/news-events/alerts/2026/02/17/cisa-adds-four-known-exploited-vulnerabilities-catalog">CISA KEV update</a>:</strong> CISA added <strong>four</strong> vulnerabilities to its Known Exploited Vulnerabilities Catalog (evidence of active exploitation), reinforcing KEV-driven prioritization for vulnerability management. </p></li><li><p><strong><a href="https://github.com/VictoriaMetrics/VictoriaMetrics/releases">VictoriaMetrics LTS release</a>:</strong> VictoriaMetrics shipped LTS release <strong>v1.122.15</strong> (released <strong>2026-02-13</strong>) with bugfixes intended for production observability deployments. </p></li></ul><div><hr></div><p>That&#8217;s all for today. Thank you for reading this issue of <em>Deep Engineering</em>.</p><p>We&#8217;ll be back next week with more expert-led content.</p><p>Stay awesome,<br>Divya Anne Selvaraj<br><em><strong>Editor-in-Chief, Deep Engineering</strong></em></p><div><hr></div><p>If your company is interested in reaching an audience of developers, software engineers, and tech decision makers, you may want to <strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong>.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post&quot;,&quot;text&quot;:&quot;Refer a friend&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post"><span>Refer a friend</span></a></p>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #34: José Dimas Luján Castillo and Ron Veen on Kotlin for Java in Production]]></title><description><![CDATA[Kotlin adoption, virtual threads, and modular monoliths&#8212;practical decision lenses for modernizing JVM systems]]></description><link>https://deepengineering.substack.com/p/deep-engineering-34-jose-dimas-lujan</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-34-jose-dimas-lujan</guid><dc:creator><![CDATA[Divya Anne Selvaraj]]></dc:creator><pubDate>Thu, 12 Feb 2026 13:31:35 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/adf8dee9-ff71-4fc4-8023-42b2b6ce5011_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3><strong><a href="https://www.vpdae.com/redirect/cnr7cdyutf5g9yhwbbyiq1813iv">Multi-Agent Code Review That Catches Real Issues</a></strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.vpdae.com/redirect/cnr7cdyutf5g9yhwbbyiq1813iv" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4zNu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4zNu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4zNu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4zNu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4zNu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.jpeg" width="1320" height="660" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:660,&quot;width&quot;:1320,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.vpdae.com/redirect/cnr7cdyutf5g9yhwbbyiq1813iv&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4zNu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4zNu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4zNu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4zNu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.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></figure></div><p>Code review is stuck. It's slow (manual), noisy (tools), or misses things. Qodo 2.0 is different. With highest precision &amp; recall, it finds critical issues other review tools miss, while limiting noise. Learning from your codebase &amp; PR history, Qodo gives fixes developers actually use.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.vpdae.com/redirect/cnr7cdyutf5g9yhwbbyiq1813iv&quot;,&quot;text&quot;:&quot;Try Qodo for Free&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.vpdae.com/redirect/cnr7cdyutf5g9yhwbbyiq1813iv"><span>Try Qodo for Free</span></a></p><div><hr></div><p><strong>&#9997;&#65039;From the editor&#8217;s desk,</strong></p><p>Welcome to the 34th issue of <em><strong>Deep Engineering</strong></em>!</p><p>On February 10, 2026, the <strong>OpenJDK Quality Group</strong> warned that <strong><a href="https://inside.java/2026/02/10/quality-heads-up/">JDK 27 will remove </a></strong><code>ThreadPoolExecutor.finalize()</code>, a source-incompatible change that can surface as <strong>compile errors</strong> in code that calls or overrides it. It is a useful reminder that JVM modernization happens under load while production systems keep running. Today&#8217;s issue looks at what &#8220;practical modernization&#8221; means after the Kotlin hype cycle, grounded in my conversation with <strong>Jos&#233; Dimas Luj&#225;n Castillo</strong> and <strong>Ron Veen</strong>, co-authors of <em><strong><a href="https://www.packtpub.com/en-us/product/kotlin-for-java-developers-9781835884836">Kotlin for Java Developers</a></strong></em>.</p><p>Luj&#225;n Castillo brings a mobile-first view shaped by <strong>15 years building Android, iOS, and Flutter applications and leading teams globally</strong>, including work across <strong>500+ mobile apps</strong>, plus experience as a teacher and author. Veen brings an enterprise JVM lens from <strong>20+ years in the Java ecosystem</strong>, spanning mainframes to microservices, with certifications including <strong>Oracle Certified Java Programmer</strong> and <strong>Sun Business Component Developer</strong>, and hands-on work around Jakarta EE migrations and modern concurrency. </p><p>You can watch the complete interview and read the transcript <strong><a href="https://deepengineering.substack.com/p/coroutines-vs-virtual-threads-and">here</a></strong>, or read on for distilled insights.</p><div id="youtube2-5pfsenEI-bc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;5pfsenEI-bc&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/5pfsenEI-bc?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Today&#8217;s issue also includes the complete <strong><a href="https://deepengineering.substack.com/p/coroutines">Chapter 15: Coroutines</a></strong> from their book in addition to our regular <strong>Tool of the Week</strong> pick and <strong>Tech Briefs</strong>.</p><p>Let&#8217;s get started.</p><div><hr></div><p><em>Sponsored:</em></p><p><strong><a href="https://links.uk.defend.egress.com/Warning?crId=697b625161078799765e2b2b&amp;Domain=packt.com&amp;Threat=eNpzrShJLcpLzAEADmkDRA%3D%3D&amp;Lang=en&amp;Base64Url=eNpNTjsOwjAMvQ2bGxYWpIqjRK5jqEVTR4nTiNtjEAPj-7_VrLRrCGOMyXjjKs-JNIfBi-xYW0h8UMW7BRS4awXHvGnh2mDVAaaAtIqTgHA5gwvEu0GpmjqZHGIvWFSb3brlmDlJzzOVfPrApt3ts495rUe-JGEuKI99ThZR4n9T_N2Ki5ge8gbF6Umj&amp;@OriginalLink=www.telerik.com">Webinar | How to Build Faster with AI Agents</a>: </strong>Learn how full&#8209;stack developers boost productivity by 50% with AI agents that automate layout, styling, and component generation through RAG and LLM pipelines. See how orchestration and spec&#8209;driven workflows keep you in control of quality and consistency. <strong><a href="https://links.uk.defend.egress.com/Warning?crId=697b625161078799765e2b2b&amp;Domain=packt.com&amp;Threat=eNpzrShJLcpLzAEADmkDRA%3D%3D&amp;Lang=en&amp;Base64Url=eNpNTjsOwjAMvQ2bGxYWpIqjRK5jqEVTR4nTiNtjEAPj-7_VrLRrCGOMyXjjKs-JNIfBi-xYW0h8UMW7BRS4awXHvGnh2mDVAaaAtIqTgHA5gwvEu0GpmjqZHGIvWFSb3brlmDlJzzOVfPrApt3ts495rUe-JGEuKI99ThZR4n9T_N2Ki5ge8gbF6Umj&amp;@OriginalLink=www.telerik.com">Save your seat!</a></strong></p><div><hr></div><h1><strong>Kotlin and Java after the Hype Cycle with Jos&#233; Dimas Luj&#225;n Castillo</strong> and <strong>Ron Veen</strong></h1><p>A language switch succeeds or fails in the space between code and people. Teams can adopt Kotlin fast and still ship Kotlin that behaves like Java. The most useful guidance is keeping modernization practical while systems keep running.</p><h2><strong>Kotlin&#8217;s first gains: safety and continuity</strong></h2><p>Luj&#225;n Castillo says Kotlin&#8217;s benefits were easy to see on Android because &#8220;<em>Java was too verbose</em>.&#8221; He names one feature that changed everyday work immediately: &#8220;<em>null safety. It&#8217;s automatic.</em>&#8221; He also describes the adoption detail that matters most in mature codebases: Kotlin&#8217;s &#8220;<em>interoperability with Java</em>.&#8221; &#8220;<em>Maybe I can do the next steps in my applications with Kotlin, but I don&#8217;t need to fight with the legacy code even if it&#8217;s in another language</em>,&#8221; he says, and he reminds teams that &#8220;<em>the main problems are still there even if you change the language</em>.&#8221;</p><p>Veen&#8217;s enterprise view focuses on maintenance and defects. &#8220;<em>There will be less code&#8212;and less code is good</em> (because it means) <em>less code to maintain</em>,&#8221; he says, and he expects Kotlin to help because it &#8220;tends to be less error-prone,&#8221; with null handling as a steady source of bugs.</p><h2><strong>The migration trap: translating Java line by line</strong></h2><p>Both warn that Kotlin adoption can stall at Java-flavored Kotlin. Veen calls it a natural reflex: teams start Kotlin while still thinking in the patterns they already know, because there is still a project to ship. &#8220;<em><strong>It&#8217;s not a drop-in replacement</strong></em>,&#8221; he says. &#8220;<em>You really have to be willing to learn</em>.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yapw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1766c4b-f253-4e47-8e01-2bc7d162d793_1408x673.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yapw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1766c4b-f253-4e47-8e01-2bc7d162d793_1408x673.png 424w, https://substackcdn.com/image/fetch/$s_!yapw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1766c4b-f253-4e47-8e01-2bc7d162d793_1408x673.png 848w, https://substackcdn.com/image/fetch/$s_!yapw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1766c4b-f253-4e47-8e01-2bc7d162d793_1408x673.png 1272w, https://substackcdn.com/image/fetch/$s_!yapw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1766c4b-f253-4e47-8e01-2bc7d162d793_1408x673.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yapw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1766c4b-f253-4e47-8e01-2bc7d162d793_1408x673.png" width="1408" height="673" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f1766c4b-f253-4e47-8e01-2bc7d162d793_1408x673.png&quot;,&quot;srcNoWatermark&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c620da27-f3bd-40a7-8795-bc2e2d5bca5e_1408x673.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:673,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1874005,&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://deepengineering.substack.com/i/187724506?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F521074b9-ab6c-40b7-8017-a618a9469130_1408x768.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_!yapw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1766c4b-f253-4e47-8e01-2bc7d162d793_1408x673.png 424w, https://substackcdn.com/image/fetch/$s_!yapw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1766c4b-f253-4e47-8e01-2bc7d162d793_1408x673.png 848w, https://substackcdn.com/image/fetch/$s_!yapw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1766c4b-f253-4e47-8e01-2bc7d162d793_1408x673.png 1272w, https://substackcdn.com/image/fetch/$s_!yapw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1766c4b-f253-4e47-8e01-2bc7d162d793_1408x673.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>Luj&#225;n Castillo describes the common first step: &#8220;<em>99% of developers start by just translating the code</em>.&#8221; Translation helps people learn syntax, but it does not deliver the major improvements teams expect. &#8220;<em>If you are translating each line, you will see you don&#8217;t have less code&#8212;you have the same code in a different way</em>,&#8221; he says. He looks for a shift where developers start asking whether Kotlin makes a line unnecessary.</p><p>Veen gives a concrete way to test that shift. He rewrote an implementation and reduced it &#8220;<em>from 250&#8221; lines &#8220;down to under 100</em>,&#8221; not because shorter is always better, but because it forced him to ask how to &#8220;<em>leverage Kotlin&#8217;s native way of doing things</em>.&#8221; Luj&#225;n Castillo describes &#8220;<em>immutability first</em>&#8221; as a sign that developers have started to think in Kotlin&#8217;s defaults rather than Java&#8217;s habits.</p><h2><strong>Concurrency decisions: coroutines, virtual threads, and structure</strong></h2><p>Luj&#225;n Castillo frames concurrency as choosing a model you can work with under pressure. For coroutines, he highlights the structure: &#8220;<em>You have cancellation, you have propagation, you have control of the whole cycle</em>.&#8221; For virtual threads, he emphasizes familiarity. They are &#8220;<em>very traditional,</em>&#8221; and he sees them as attractive when a system already has &#8220;<em>a very complex structure with layer</em>s.&#8221; He avoids declaring a winner: &#8220;<em>It&#8217;s not a model about who is better</em>.&#8221;</p><p>Veen names the shared goal behind both approaches: async work that can &#8220;<em>appear sequentially in the code</em>,&#8221; so developers can reason about flow and avoid &#8220;<em>callback hell</em>.&#8221; OpenJDK&#8217;s current structured concurrency work follows that reasoning-first intent. <a href="https://openjdk.org/jeps/525">JEP 525</a> describes subtasks whose lifetimes are &#8220;<em>confined to the syntactic block</em>&#8221; of their parent task so they can be managed &#8220;<em>as a unit</em>,&#8221; and it calls structured concurrency &#8220;<em>a great match for virtual threads</em>.&#8221;</p><h2><strong>Modernization without regret: boundaries first, then change</strong></h2><p>Luj&#225;n Castillo argues that &#8220;<em><strong>microservices, in my experience, is not the goal, OK? It&#8217;s the consequence for that.</strong></em>&#8221; Before a team breaks apart a monolith, he asks, &#8220;<em><strong>Are we prepared for paying the real cost to use microservices&#8212;not just the money</strong></em>?&#8221; and &#8220;<em><strong>are we prepared to use this architecture or not?</strong></em>&#8221; He also rejects the idea that monoliths are obsolete: &#8220;<em>you can use monoliths without problems for huge systems</em>.&#8221;</p><p>Veen explains where the cost shows up. Microservices require &#8220;<em>a lot more overhead</em>&#8221; in monitoring, and debugging grows harder when incidents span &#8220;<em>dozens or hundreds of services.</em>&#8221; His default is a &#8220;<em>modular monolith</em>,&#8221; where modules have clear boundaries and must use a &#8220;<em>predefined API</em>&#8221; to interact. He then watches for signals that justify extraction, such as a module that forces frequent redeployments or has distinct scaling needs.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5Bed!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa794f15-6412-47f2-8a9f-4104bd040e4a_1408x638.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5Bed!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa794f15-6412-47f2-8a9f-4104bd040e4a_1408x638.png 424w, https://substackcdn.com/image/fetch/$s_!5Bed!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa794f15-6412-47f2-8a9f-4104bd040e4a_1408x638.png 848w, https://substackcdn.com/image/fetch/$s_!5Bed!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa794f15-6412-47f2-8a9f-4104bd040e4a_1408x638.png 1272w, https://substackcdn.com/image/fetch/$s_!5Bed!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa794f15-6412-47f2-8a9f-4104bd040e4a_1408x638.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5Bed!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa794f15-6412-47f2-8a9f-4104bd040e4a_1408x638.png" width="1408" height="638" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa794f15-6412-47f2-8a9f-4104bd040e4a_1408x638.png&quot;,&quot;srcNoWatermark&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/77604d48-d724-4a47-b44d-cafa24f83b47_1408x638.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:638,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1720898,&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://deepengineering.substack.com/i/187724506?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc6e2852-b9a9-4c55-a68a-a605ca9afe1c_1408x768.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_!5Bed!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa794f15-6412-47f2-8a9f-4104bd040e4a_1408x638.png 424w, https://substackcdn.com/image/fetch/$s_!5Bed!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa794f15-6412-47f2-8a9f-4104bd040e4a_1408x638.png 848w, https://substackcdn.com/image/fetch/$s_!5Bed!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa794f15-6412-47f2-8a9f-4104bd040e4a_1408x638.png 1272w, https://substackcdn.com/image/fetch/$s_!5Bed!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa794f15-6412-47f2-8a9f-4104bd040e4a_1408x638.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>Both speakers treat adoption as a leadership problem. Veen recommends bringing skeptics into the work early and using mixed teams and code reviews to build confidence. Luj&#225;n Castillo recommends &#8220;<em>small limits</em>&#8221; and warns leaders away from shallow metrics: &#8220;<em>Don&#8217;t try to read productivity&#8230; as: &#8216;If you have more lines of code or less lines of code</em>.&#8217;&#8221;</p><p>JetBrains lists <a href="https://kotlinlang.org/docs/releases.html">Kotlin 2.3.10 as released on February 5, 2026</a>, which supports the kind of incremental upgrades both speakers describe</p><div><hr></div><h1><strong>&#129504;Expert Insight: </strong></h1><ol><li><p><strong><a href="https://deepengineering.substack.com/p/coroutines-vs-virtual-threads-and">The complete Deep Engineering interview with Jos&#233; Dimas Luj&#225;n Castillo and Ron Veen</a></strong></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;a4c2a619-b948-4894-a129-d227ecf3995b&quot;,&quot;caption&quot;:&quot;Kotlin has moved from &#8220;Android-first&#8221; to a practical option for Java teams that want safer, more concise JVM code without abandoning their existing Java investments.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;md&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Coroutines vs Virtual Threads and the Kotlin Java Decision in Practice: A Conversation with Jos&#233; Dimas Luj&#225;n Castillo and Ron Veen&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:140662997,&quot;name&quot;:&quot;Divya Anne Selvaraj&quot;,&quot;bio&quot;:&quot;Content Engineer @Packt Software Engineering &amp; Architecture Vertical | Editor-in-Chief of Packt Deep Engineering and Packt PythonPro Newsletters&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/309a6f07-27a6-40bf-ab99-d042556d816b_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:102761742,&quot;name&quot;:&quot;Ron veen&quot;,&quot;bio&quot;:&quot;Experienced Java developer, conference speaker, book autor. Specializing in AI supported software development.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!QPwW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfa02f9f-52dd-4573-942f-cefe45913adb_1166x1168.jpeg&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-02-12T07:58:23.280Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/5pfsenEI-bc&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/coroutines-vs-virtual-threads-and&quot;,&quot;section_name&quot;:&quot;Interviews&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:187715309,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div></li><li><p><strong><a href="https://deepengineering.substack.com/p/coroutines">The complete Chapter 15: Coroutines from Kotlin for Java Developers by Jos&#233; Dimas Luj&#225;n Castillo and Ron Veen (Packt, 2025)</a></strong></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;ccec171a-2fd4-4d3d-b086-b26963fedd44&quot;,&quot;caption&quot;:&quot;In this chapter, we will explore one of Kotlin&#8217;s most powerful and transformative features &#8211; coroutines. Designed to simplify and enhance asynchronous programming, coroutines allow developers to write non-blocking, concurrent code with ease and clarity. By offering a structured and intuitive approach to handling tasks such as API calls, database operati&#8230;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;md&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Coroutines&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:102761742,&quot;name&quot;:&quot;Ron veen&quot;,&quot;bio&quot;:&quot;Experienced Java developer, conference speaker, book autor. Specializing in AI supported software development.&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!QPwW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfa02f9f-52dd-4573-942f-cefe45913adb_1166x1168.jpeg&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-02-12T09:04:47.093Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e24774ab-3f3e-4526-86a4-4de740c0206a_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/coroutines&quot;,&quot;section_name&quot;:&quot;Practical Deep-Dives&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:187721246,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div></li></ol><div><hr></div><h1><strong>&#128736;&#65039;Tool of the Week</strong></h1><p><strong><a href="https://github.com/open-telemetry/opentelemetry-java-instrumentation">OpenTelemetry Java Agent &#8212; Open-source, zero-code auto-instrumentation for JVM services (traces, metrics, and more)</a></strong></p><p>The OpenTelemetry Java Agent (from <code>open-telemetry/opentelemetry-java-instrumentation</code>) is a Java agent JAR you attach at startup to capture telemetry from popular Java libraries and frameworks without changing application code. </p><p><strong>Highlights:</strong></p><ul><li><p><strong>Zero-code startup integration:</strong> Attach the agent with the JVM <code>-javaagent</code> flag to &#8220;gather telemetry data from a Java application without code changes.&#8221;</p></li><li><p><strong>Collector-first by default, configurable when needed:</strong> The agent&#8217;s default path uses OTLP to send telemetry to an OpenTelemetry Collector endpoint (and you can configure it via system properties or environment variables).</p></li><li><p><strong>Open source, production-oriented ecosystem, recently updated</strong></p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://github.com/open-telemetry/opentelemetry-java-instrumentation&quot;,&quot;text&quot;:&quot;More about OpenTelemetry Java Agent&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://github.com/open-telemetry/opentelemetry-java-instrumentation"><span>More about OpenTelemetry Java Agent</span></a></p><div><hr></div><h1><strong>&#128206;Tech Briefs</strong></h1><ul><li><p><strong><a href="https://kotlinlang.org/docs/releases.html">Kotlin 2.3.10 Released</a></strong>: Kotlin 2.3.10 is a new Kotlin/JVM release, giving teams a concrete upgrade point for Kotlin codebases that need to stay current with the Java ecosystem. </p></li><li><p><strong><a href="https://jdk.java.net/26/">OpenJDK JDK 26 Release-Candidate Builds (Build 34)</a></strong>: DK 26&#8217;s RC builds are now available, which is useful for teams that want to validate JVM and runtime behavior changes (including concurrency-related changes) against real workloads before GA. </p></li><li><p><strong><a href="https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide">Spring Boot 4.0 Migration Guide</a></strong>: Spring Boot&#8217;s 4.0 migration guide captures the practical baseline shifts (Java 17+, Spring Framework 7.x, Jakarta EE 11, Kotlin version requirements) that enterprise JVM teams need to account for in upgrades. </p></li><li><p><strong><a href="https://inside.java/2026/02/10/quality-heads-up/">Quality Outreach Heads-up (JDK 27): Removal of </a></strong><code>ThreadPoolExecutor.finalize()</code>: This heads-up flags a source-incompatible change where removing <code>ThreadPoolExecutor.finalize()</code> can trigger compile errors in code that directly calls or overrides it. </p></li><li><p><strong><a href="https://joelsiks.com/posts/valhalla-inlinelayoutinfo-array-optimization/">Optimizing Java Class Metadata in Project Valhalla</a>:</strong> A Project Valhalla update digs into how the JVM is evolving class metadata to support value classes and flattening/inlining, which matters for performance-sensitive JVM designs over the long term. </p></li></ul><div><hr></div><p>That&#8217;s all for today. Thank you for reading this issue of <em>Deep Engineering</em>. </p><p>We&#8217;ll be back next week with more expert-led content.</p><p>Stay awesome,<br>Divya Anne Selvaraj<br><em><strong>Editor-in-Chief, Deep Engineering</strong></em></p><div><hr></div><p>If your company is interested in reaching an audience of developers, software engineers, and tech decision makers, you may want to <strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong>.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post&quot;,&quot;text&quot;:&quot;Refer a friend&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post"><span>Refer a friend</span></a></p>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #33: Why Lockfiles Are Part of Your Threat Model with Ivo Balbaert]]></title><description><![CDATA[PackageGate and Shai-Hulud 2.0 expose holes in the safety net]]></description><link>https://deepengineering.substack.com/p/deep-engineering-33-why-lockfiles</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-33-why-lockfiles</guid><dc:creator><![CDATA[Divya Anne Selvaraj]]></dc:creator><pubDate>Thu, 05 Feb 2026 13:30:54 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/a9bf75bd-2365-44fb-83f1-bd0ef7c9a68f_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3><strong><a href="https://www.vpdae.com/redirect/cnr7cdyutf5g9yhwbbyiq1813iv">Multi-Agent Code Review That Catches Real Issues</a></strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.vpdae.com/redirect/cnr7cdyutf5g9yhwbbyiq1813iv" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4zNu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4zNu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4zNu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4zNu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4zNu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.jpeg" width="1320" height="660" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:660,&quot;width&quot;:1320,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.vpdae.com/redirect/cnr7cdyutf5g9yhwbbyiq1813iv&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4zNu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4zNu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4zNu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4zNu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F225ed530-c53a-4c06-953f-c8097f016dbb_1320x660.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></figure></div><p>Code review is stuck. It's slow (manual), noisy (tools), or misses things. Qodo 2.0 is different. With highest precision &amp; recall, it finds critical issues other review tools miss, while limiting noise. Learning from your codebase &amp; PR history, Qodo gives fixes developers actually use.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.vpdae.com/redirect/cnr7cdyutf5g9yhwbbyiq1813iv&quot;,&quot;text&quot;:&quot;Try Qodo for Free&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.vpdae.com/redirect/cnr7cdyutf5g9yhwbbyiq1813iv"><span>Try Qodo for Free</span></a></p><p><strong>Qodo CEO Itamar Friedman</strong> in a conversation with Deep Engineering said that SWE-bench mainly measures code generation rather than maintainability or security&#8212;and that code can pass tests while still introducing serious issues. <strong>Read the full piece:</strong></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;bc839fbd-6314-4c71-99a9-e73365407f66&quot;,&quot;caption&quot;:&quot;Most technical leaders are optimizing for speed. AI agents now generate code fast enough to reshape how teams ship software. So teams contending with shorter deadlines and shrinking budgets are integrating them into delivery pipelines to increase velocity.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Benchmarks Are Making AI Coding Look Safer Than It Is &quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:427210082,&quot;name&quot;:&quot;Saqib Jan&quot;,&quot;bio&quot;:&quot;/localhost&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/997a788a-cd78-4f84-9b3b-c72ab6dc0153_1008x1008.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-02-04T18:02:22.559Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!uBaj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2556e4bd-217a-4b38-a98d-9b5dd7300e82_1200x628.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/benchmarks-are-making-ai-coding-look&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:186883869,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><p><strong>&#9997;&#65039;From the editor&#8217;s desk,</strong></p><p>Welcome to the 33rd issue of <em><strong>Deep Engineering</strong></em>!</p><p>On Jan 26, 2026, <strong>Oren Yomtov (Koi Security)</strong> wrote about finding <strong><a href="https://www.koi.ai/blog/packagegate-6-zero-days-in-js-package-managers-but-npm-wont-act">six &#8220;PackageGate&#8221; bypasses</a></strong> across JavaScript package managers&#8212;bypasses that can undermine the two defenses widely repeated after Shai-Hulud: <strong>disable lifecycle scripts</strong> and <strong>commit lockfiles with integrity checks</strong>. </p><p>The lockfile is now part of the boundary you rely on, and the boundary can fail at the edges. This is the focus for today&#8217;s issue. We also bring you <strong>Ivo Balbaert&#8217;s </strong>(lecturer in web programming and databases at CVO Antwerpen and Packt author), <strong><a href="https://deepengineering.substack.com/p/building-with-mojo-part-5-modules">fifth article</a></strong> in our ongoing<strong> <a href="https://deepengineering.substack.com/s/mojo">Building with Mojo</a> </strong>series. Today&#8217;s Mojo deep dive covers how Pixi structures environments and uses <code>pixi.lock</code>, and how modules and packages get imported and shipped as artifacts.</p><p>Let&#8217;s get started.</p><div><hr></div><h1>Your Lockfile Is Now Part of Your Threat Model</h1><p>Late last year, the <strong>Shai-Hulud 2.0</strong> incident underscored why lockfiles have become security-critical. This aggressive npm supply chain attack <strong>compromised over 700 packages and exposed credentials from some 25,000 repositories</strong>. Attackers hijacked maintainer accounts of popular projects (e.g. Postman, Zapier) and pushed malicious updates. In each infected package, a rogue <em>preinstall</em> script ran early, before tests or security scans, to surreptitiously install tools and exfiltrate secrets. Developer machines, CI pipelines, and cloud workloads that pulled these packages had credentials stolen and uploaded to attacker-controlled repositories. This worm-like malware spread rapidly through trusted package workflows &#8211; a <em>masterclass</em> in how our reliance on open-source packages can be turned against us. Traditional network defenses offered little protection when the attack piggybacked on legitimate package updates.</p><p>The immediate response across the JavaScript ecosystem was to double down on two measures: <strong>disable implicit code execution</strong> and <strong>pin every dependency</strong>. <a href="https://www.microsoft.com/en-us/security/blog/2025/12/09/shai-hulud-2-0-guidance-for-detecting-investigating-and-defending-against-the-supply-chain-attack/">Security guides and corporate policies</a> began advising developers to run package managers with &#8220;ignore scripts&#8221; flags (to block auto-running install scripts) and to check in lockfiles for all projects. The logic behind this was that If no untrusted postinstall code runs, and if every dependency version is locked, attackers can&#8217;t sneak in. In theory, <strong>&#8220;if malicious code can&#8217;t run on install, and your dependency tree is pinned, you&#8217;re covered&#8221;</strong>.</p><h2>Holes in the Safety Net</h2><p>However, the reality proved far more complicated. In January this year, <strong><a href="https://www.koi.ai/blog/packagegate-6-zero-days-in-js-package-managers-but-npm-wont-act">Oren Yomtov</a></strong>, security researcher with <strong>Koi Security</strong> revealed &#8220;<strong><a href="https://devops.com/packagegate-vulnerabilities-can-let-attackers-bypass-shai-hulud-defenses/">PackageGate</a></strong>,&#8221; a set of six zero-day vulnerabilities spanning multiple package managers (npm, pnpm, Bun, and others) that <strong>blew holes through these defenses</strong>. One flaw in pnpm (<strong><a href="https://nvd.nist.gov/vuln/detail/CVE-2025-69263">CVE-2025-69263</a></strong>) showed how a lockfile could be rendered toothless: pnpm was recording certain git or HTTP-based dependencies <strong>without any integrity hash</strong> in its lockfile, so a remote server could insidiously serve different code on each install &#8211; completely undermining the &#8220;locked&#8221; state. Another pnpm bug (<strong><a href="https://www.sentinelone.com/vulnerability-database/cve-2025-69264/">CVE-2025-69264</a></strong>) let malicious git-hosted packages execute code during install despite script blocking features. Attackers found ways to <strong>bypass lockfile integrity and re-enable install scripts</strong>, enabling remote code execution even in projects that followed best practices.</p><p>The Shai-Hulud attackers (and copycats like &#8220;PhantomRaven&#8221;) were already experimenting with such techniques, such as sneaking malicious directives via nested git dependencies. It became clear that the <strong>lockfile itself is part of the threat model</strong>: any weakness in how it&#8217;s generated or enforced can be targeted. According to <strong><a href="https://devops.com/packagegate-vulnerabilities-can-let-attackers-bypass-shai-hulud-defenses/">Javed Hasan</a></strong>, <strong>co-founder and CEO</strong> of <strong>Lineaje</strong>, this underscores <em>&#8220;how brittle many existing trust assumptions remain&#8221;</em> in our software pipelines. Even the largest package registry was not immune to complacency &#8211; npm&#8217;s maintainers initially declined to patch one of the reported exploits from Yomtov, deeming it <strong>&#8220;works as expected&#8221;</strong>. This response was scary: the very safety net (lockfiles and script blocking) installed after the worst supply-chain attack in npm&#8217;s history was proven to have holes, and not all providers rushed to fix them. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2RfK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b76442d-d4ec-4f54-b825-23b01da3b99b_1408x704.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2RfK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b76442d-d4ec-4f54-b825-23b01da3b99b_1408x704.png 424w, https://substackcdn.com/image/fetch/$s_!2RfK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b76442d-d4ec-4f54-b825-23b01da3b99b_1408x704.png 848w, https://substackcdn.com/image/fetch/$s_!2RfK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b76442d-d4ec-4f54-b825-23b01da3b99b_1408x704.png 1272w, https://substackcdn.com/image/fetch/$s_!2RfK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b76442d-d4ec-4f54-b825-23b01da3b99b_1408x704.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2RfK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b76442d-d4ec-4f54-b825-23b01da3b99b_1408x704.png" width="1408" height="704" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b76442d-d4ec-4f54-b825-23b01da3b99b_1408x704.png&quot;,&quot;srcNoWatermark&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9fd07ca4-5f30-4a98-9429-2a7996853a07_1408x704.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:704,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2217865,&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://deepengineering.substack.com/i/186825108?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fe94c19-bb6e-489f-bcf6-2d33f06b888c_1408x768.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_!2RfK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b76442d-d4ec-4f54-b825-23b01da3b99b_1408x704.png 424w, https://substackcdn.com/image/fetch/$s_!2RfK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b76442d-d4ec-4f54-b825-23b01da3b99b_1408x704.png 848w, https://substackcdn.com/image/fetch/$s_!2RfK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b76442d-d4ec-4f54-b825-23b01da3b99b_1408x704.png 1272w, https://substackcdn.com/image/fetch/$s_!2RfK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b76442d-d4ec-4f54-b825-23b01da3b99b_1408x704.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>A safety net with a side door.</strong> <em>PackageGate reminded us that blocking scripts means nothing if the lockfile itself invites the attacker inside via unhashed git dependencies.</em></figcaption></figure></div><p>Treating lockfiles as security artifacts means ensuring they contain strong integrity guarantees and that your build process honors them. Modern lockfiles (whether <code>pixi.lock</code>, <code>package-lock.json</code>, or <code>Cargo.lock</code>) don&#8217;t just pin versions; they often embed a cryptographic hash for each package download. During installation, the package manager is supposed to verify the content against those hashes and fail if there&#8217;s a mismatch. This is how a lockfile acts as a gatekeeper: if an attacker compromises a registry or MITMs a connection, they can&#8217;t slip altered code past the hash check. However, the pnpm incident showed that if those hashes are omitted or not verified in all cases, the lockfile &#8220;provides no protection&#8221; at all. Similarly, if your tool allows alternate install flows (like git URLs or tarball links) without equal scrutiny, attackers will find that side door. Part of making lockfiles a security boundary is <strong>keeping your tooling up-to-date</strong> &#8211; in this case, upgrading pnpm promptly to get the patch that reinstates hash enforcement.</p><h2>Hardening the Supply Chain</h2><p>The wave of supply-chain compromises has prompted ecosystem-wide changes. One major vector in Shai-Hulud&#8217;s spread was stolen npm credentials &#8211; which allowed attackers to publish malicious versions of packages they didn&#8217;t own. In response, <strong>registry providers are tightening authentication and publishing workflows</strong>. For example, as of November 2025 GitHub (which operates npm) <strong><a href="https://github.blog/changelog/2025-11-05-npm-security-update-classic-token-creation-disabled-and-granular-token-changes/">disabled classic long-lived npm tokens</a> and required a move to fine-grained access tokens with 2FA enforcement and expiration</strong>. By mid-November, all legacy npm tokens were revoked and replaced by <strong>short-lived 2-hour session tokens for publishing</strong>. This means even if an attacker pilfers a token from a CI log or a maintainer&#8217;s machine, its window of use is dramatically narrowed. GitHub&#8217;s guidance to maintainers is to adopt &#8220;<strong>trusted publishing</strong>&#8221; &#8211; tying package publishing to your CI&#8217;s identity via OpenID Connect &#8211; and to <strong>mandate 2FA for any package modifications</strong>. This approach binds the act of releasing a new package to a verified workflow (for instance, a signed-in GitHub Actions job), removing the human weakness of stolen passwords or tokens from the equation. It&#8217;s a direct policy response to attacks: make the act of injecting a bad update much harder.</p><p>Other ecosystem measures complement the lockfile&#8217;s role in security. Services like GitHub&#8217;s <a href="https://github.com/dependabot">Dependabot</a> and <a href="https://learn.microsoft.com/en-us/azure/defender-for-cloud/defender-for-cloud-introduction">Microsoft Defender for Cloud</a> now alert on suspicious package behavior or known-compromised dependencies, encouraging teams to <strong>&#8220;freeze&#8221; or replace those dependencies quickly</strong>. Two defenses became &#8220;standard advice&#8221; after the Shai-Hulud worm attacks: </p><ol><li><p><strong>disable lifecycle scripts</strong> that run automatically during installation</p></li><li><p><strong>Commit lockfiles with integrity checks</strong> (such as <code>package-lock.json</code> or <code>pnpm-lock.yaml</code>) to version control. </p></li></ol><p>Lockfiles record the exact dependency versions and integrity hashes, and on later installs the package manager checks downloaded packages against those hashes and fails if they don&#8217;t match&#8212;so a compromised package update should be blocked by the integrity mismatch. However,<strong> Yomtov </strong>argues that the two defenses remain worth following but do not fully hold if package-manager bypasses exist.</p><blockquote><p>In Mojo&#8217;s Pixi workflow, as Ivo Balbaert demonstrates in today&#8217;s feature article, developers can use <code>pixi install --frozen</code> (or set <code>PIXI_FROZEN=true</code>) to ensure CI installs <strong>only</strong> what&#8217;s in the lockfile and fails if the lock isn&#8217;t up to date. This mirrors analogous flags like <code>npm ci</code> or <code>pip install --require-hashes</code> in other ecosystems. The overarching theme is consistency: the lockfile and the published packages must match, and any deviation is a potential intrusion. By enforcing this at multiple levels&#8212;developer machines, CI pipelines, and registry policies&#8212;we establish the lockfile as a firm security checkpoint rather than a passive snapshot.</p></blockquote><p>If the <em>code</em> is the new perimeter in cloud-native apps, then the <em>lockfile</em> is quickly becoming the new gatekeeper in our build systems. It&#8217;s not a silver bullet; as we&#8217;ve seen, it can be bypassed if we get complacent. But when used in tandem with hardened tooling and policies, the lockfile is a powerful line of defense. </p><h2>Best Practices</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lVfQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb59efd0b-a6fc-453a-9426-27b4c8209be1_1011x498.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lVfQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb59efd0b-a6fc-453a-9426-27b4c8209be1_1011x498.png 424w, https://substackcdn.com/image/fetch/$s_!lVfQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb59efd0b-a6fc-453a-9426-27b4c8209be1_1011x498.png 848w, https://substackcdn.com/image/fetch/$s_!lVfQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb59efd0b-a6fc-453a-9426-27b4c8209be1_1011x498.png 1272w, https://substackcdn.com/image/fetch/$s_!lVfQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb59efd0b-a6fc-453a-9426-27b4c8209be1_1011x498.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lVfQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb59efd0b-a6fc-453a-9426-27b4c8209be1_1011x498.png" width="1011" height="498" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b59efd0b-a6fc-453a-9426-27b4c8209be1_1011x498.png&quot;,&quot;srcNoWatermark&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6a4c8de7-a50d-4432-932d-d4872e43f638_1011x498.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:498,&quot;width&quot;:1011,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:814284,&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://deepengineering.substack.com/i/186825108?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddab0a0d-77e7-472f-9aef-9fd6b8edcc68_1024x1024.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_!lVfQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb59efd0b-a6fc-453a-9426-27b4c8209be1_1011x498.png 424w, https://substackcdn.com/image/fetch/$s_!lVfQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb59efd0b-a6fc-453a-9426-27b4c8209be1_1011x498.png 848w, https://substackcdn.com/image/fetch/$s_!lVfQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb59efd0b-a6fc-453a-9426-27b4c8209be1_1011x498.png 1272w, https://substackcdn.com/image/fetch/$s_!lVfQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb59efd0b-a6fc-453a-9426-27b4c8209be1_1011x498.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><ul><li><p><strong>Pin and verify every dependency:</strong> Commit and maintain your lockfiles (e.g. <code>pixi.lock</code>, <code>package-lock.json</code>). Use package managers&#8217; integrity features so that each dependency&#8217;s content is verified against a hash. If your ecosystem supports it, require hashes for any external or git-based dependencies as well.</p></li><li><p><strong>Enforce frozen installs in CI:</strong> Configure CI/CD pipelines to install dependencies in locked mode (e.g. Pixi&#8217;s <code>--frozen</code> flag or <code>npm ci</code>). This ensures no new package versions or surprises slip in during automated builds. Any lockfile change should be deliberate and code-reviewed.</p></li><li><p><strong>Avoid unofficial sources and dynamic resolution:</strong> Prefer canonical registry packages over direct URLs or git references. If you must use a git or tarball dependency, pin it to a specific commit/tag and treat it with extra scrutiny. Unpinned artifacts can bypass lockfile guarantees.</p></li><li><p><strong>Harden publisher credentials:</strong> Enable 2FA on package registries and migrate to fine-grained, short-lived tokens or OIDC-based trusted publishing. Eliminate long-lived secrets from your workflows; use ephemeral credentials tied to CI jobs so that stolen credentials quickly become useless.</p></li><li><p><strong>Monitor and react quickly:</strong> Stay aware of security advisories for your package manager (e.g. pnpm CVEs) and apply updates that patch lockfile or installer vulnerabilities. Monitor dependency changes in your supply chain (via tools or manual review) and have an incident response plan (e.g. rapid credential rotation and dependency isolation) for suspected supply-chain compromises. Each lockfile update is a security event &#8211; treat it with the same caution you would a code change in your core application.</p></li></ul><div><hr></div><p>In Mojo&#8217;s Pixi workflow, as <strong>Ivo Balbaert</strong> shows in today&#8217;s feature on <strong>modules, packages, and Pixi</strong>, <code>pixi.lock</code> and <code>pixi install --frozen</code> offer a concrete example of how lockfiles act as a security boundary and under what conditions. Balbaert&#8217;s article also walks through Mojo&#8217;s module/package structure and import syntax, including re-exporting via <code>__init__.mojo</code>, and shows how to import packages from source or as compiled <code>.mojopkg</code> artifacts, plus how to pull in external Mojo community packages with Pixi.</p><h1><strong>&#129504;Expert Insight: </strong></h1><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;9ae422b3-a86d-43d2-a61f-1f773bf6c13b&quot;,&quot;caption&quot;:&quot;This article is Part 5 of our ongoing series on the Mojo programming language. It covers:<br />&amp;gt; A review of Mojo&#8217;s standard library.<br />&amp;gt; Creating and importing modules.<br />&amp;gt; Importing a package from source or compiled.<br />&amp;gt; Importing external Mojo packages with Pixi.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Building with Mojo (Part 5): Modules and Packages&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:121154596,&quot;name&quot;:&quot;Ivo Balbaert&quot;,&quot;bio&quot;:&quot;I worked for 30 years in the software industry as a developer, project manager and programming teacher. Emerging programming languages have my main interest. I authored a number of books (Go, Rust, Julia and others) for Packt and other publishers. &quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/33f3918d-d13b-4a6a-9761-1d2b5353c581_144x144.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-02-05T05:43:50.909Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b532ad4e-978e-4a0a-902e-208cd388148d_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/building-with-mojo-part-5-modules&quot;,&quot;section_name&quot;:&quot;Practical Deep-Dives&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:186845507,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h1><strong>&#128736;&#65039;Tool of the Week</strong></h1><p><strong><a href="https://github.com/sigstore/cosign">Sigstore Cosign &#8212; Open-source signing and verification for OCI container images (and other artifacts)</a></strong></p><p>Cosign is a CLI and set of workflows for signing and verifying container images (and related supply-chain artifacts) using Sigstore&#8217;s model (including keyless signing via OIDC). It&#8217;s designed for teams that want cryptographic &#8220;who produced this?&#8221; and &#8220;has it changed?&#8221; checks that can be automated in CI/CD and enforced at deploy time.</p><p><strong>Highlights:</strong></p><ul><li><p><strong>Keyless signing with workload identity:</strong> Cosign can sign artifacts using OIDC-issued identities (no long-lived private key to manage), so signatures are tied to <em>who/what</em> ran the build (e.g., a CI workflow).</p></li><li><p><strong>OCI-native signatures and attestations:</strong> It stores signatures (and can store SBOM/provenance attestations) alongside OCI artifacts in registries, so verification works wherever the image travels.</p></li><li><p><strong>Policy-friendly verification primitives:</strong> Cosign supports verifying by identity claims (issuer/subject), signatures, transparency log inclusion, and certificate chains&#8212;building blocks you can wire into admission controllers or deployment gates.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://github.com/sigstore/cosign&quot;,&quot;text&quot;:&quot;Learn more about Cosign&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://github.com/sigstore/cosign"><span>Learn more about Cosign</span></a></p><div><hr></div><h1><strong>&#128206;Tech Briefs</strong></h1><ul><li><p><strong><a href="https://www.infoworld.com/article/4127156/github-eyes-restrictions-on-pull-requests-to-rein-in-ai-based-code-deluge-on-maintainers.html">GitHub eyes restrictions on pull requests to rein in AI-based code deluge on maintainers</a></strong>: GitHub is weighing tighter PR controls and filtering as maintainers report a surge of low-quality, AI-generated submissions overwhelming open-source review capacity.</p></li><li><p><strong><a href="https://arstechnica.com/security/2026/02/notepad-updater-was-compromised-for-6-months-in-supply-chain-attack/">Notepad++ updater was compromised for 6 months in supply-chain attack</a>:</strong> Attackers hijacked Notepad++ update infrastructure to selectively deliver trojanized installers to targeted users, illustrating how &#8220;trusted update paths&#8221; become the distribution channel.</p></li><li><p><strong><a href="https://arstechnica.com/apple/2026/02/xcode-26-3-adds-support-for-claude-codex-and-other-agentic-tools-via-mcp/">Xcode 26.3 adds support for Claude, Codex, and other agentic tools via MCP</a>:</strong> Apple is integrating agentic coding tools directly into Xcode, including support for Model Context Protocol (MCP), pushing more automation into the IDE workflow.</p></li><li><p><strong><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-23890">CVE-2026-23890: pnpm path traversal in bin linking</a> :</strong>NVD describes a pnpm flaw where malicious packages can create executable shims/symlinks outside <code>node_modules/.bin</code>, turning installs into a filesystem write primitive.</p></li><li><p><strong><a href="https://www.securityweek.com/packagegate-flaws-open-javascript-ecosystem-to-supply-chain-attacks/">&#8216;PackageGate&#8217; flaws open JavaScript ecosystem to supply chain attacks</a>:</strong> Coverage of the PackageGate class of issues where package-manager behavior can bypass script-blocking / lockfile-based assumptions and enable execution through attacker-controlled dependencies.</p></li></ul><div><hr></div><p>That&#8217;s all for today. Thank you for reading this issue of <em>Deep Engineering</em>. </p><p>We&#8217;ll be back next week with more expert-led content.</p><p>Stay awesome,<br>Divya Anne Selvaraj<br><em><strong>Editor-in-Chief, Deep Engineering</strong></em></p><div><hr></div><p>If your company is interested in reaching an audience of developers, software engineers, and tech decision makers, you may want to <strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong>.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post&quot;,&quot;text&quot;:&quot;Refer a friend&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post"><span>Refer a friend</span></a></p>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #32: Richard D. Avila on The Rise of the AI Architect]]></title><description><![CDATA[Operational AI: evaluation, monitoring, and controlled rollout.]]></description><link>https://deepengineering.substack.com/p/deep-engineering-32-richard-d-avila</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-32-richard-d-avila</guid><dc:creator><![CDATA[Divya Anne Selvaraj]]></dc:creator><pubDate>Thu, 29 Jan 2026 13:30:35 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c2f7a7aa-30a2-4af7-ac59-568ec3e366ef_800x533.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3><a href="https://www.vpdae.com/redirect/msnswi6mxys1xoq8cwvytrsjthe">Is your source code training someone else&#8217;s AI? </a></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.vpdae.com/redirect/msnswi6mxys1xoq8cwvytrsjthe" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8wnn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52de7a21-8afa-4070-bdf7-de4e50a51f87_1120x373.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8wnn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52de7a21-8afa-4070-bdf7-de4e50a51f87_1120x373.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8wnn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52de7a21-8afa-4070-bdf7-de4e50a51f87_1120x373.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8wnn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52de7a21-8afa-4070-bdf7-de4e50a51f87_1120x373.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8wnn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52de7a21-8afa-4070-bdf7-de4e50a51f87_1120x373.jpeg" width="1120" height="373" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/52de7a21-8afa-4070-bdf7-de4e50a51f87_1120x373.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:373,&quot;width&quot;:1120,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;2026 Winter Product Launch&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.vpdae.com/redirect/msnswi6mxys1xoq8cwvytrsjthe&quot;,&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="2026 Winter Product Launch" title="2026 Winter Product Launch" srcset="https://substackcdn.com/image/fetch/$s_!8wnn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52de7a21-8afa-4070-bdf7-de4e50a51f87_1120x373.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8wnn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52de7a21-8afa-4070-bdf7-de4e50a51f87_1120x373.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8wnn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52de7a21-8afa-4070-bdf7-de4e50a51f87_1120x373.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8wnn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52de7a21-8afa-4070-bdf7-de4e50a51f87_1120x373.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></figure></div><p>On <strong>February 3 at 11:00 AM PT</strong>, we&#8217;ll introduce <strong><a href="https://www.vpdae.com/redirect/msnswi6mxys1xoq8cwvytrsjthe">Cyberhaven&#8217;s data lineage</a></strong> powered and unified DSPM and DLP platform. You&#8217;ll see how one AI-native solution can finally keep up with the way data really moves. Be among the first to see how a unified DSPM and DLP platform can change how your organization protects its most important data.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.vpdae.com/redirect/msnswi6mxys1xoq8cwvytrsjthe&quot;,&quot;text&quot;:&quot;Register now&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.vpdae.com/redirect/msnswi6mxys1xoq8cwvytrsjthe"><span>Register now</span></a></p><div><hr></div><p><strong>&#9997;&#65039;From the editor&#8217;s desk,</strong></p><p>Welcome to the 32nd issue of <em><strong>Deep Engineering</strong></em>!</p><p>Engineering teams today are being asked to operationalize systems whose behavior cannot be fully inferred from source code. Once a model sits inside a product workflow, the work shifts to measurement, monitoring, and change control: what the system does today, what it did yesterday, and what it will do after the next model update.</p><p><strong><a href="https://docs.aws.amazon.com/wellarchitected/latest/generative-ai-lens/generative-ai-lens.html">AWS&#8217;s</a></strong><a href="https://docs.aws.amazon.com/wellarchitected/latest/generative-ai-lens/generative-ai-lens.html"> </a><strong><a href="https://docs.aws.amazon.com/wellarchitected/latest/generative-ai-lens/generative-ai-lens.html">Generative AI Lens</a></strong> (updated Nov. 19, 2025) puts operational requirements&#8212;traceability, monitoring, automation of lifecycle management&#8212;on the same footing as security and reliability for AI systems. The <strong><a href="https://aws.amazon.com/blogs/architecture/announcing-the-updated-aws-well-architected-generative-ai-lens/">accompanying architecture note</a></strong> describes expanded material on responsible AI, data architecture, and agentic workflows, reflecting what teams are now deploying in practice.</p><p>If an organization cannot evaluate systems rigorously, it cannot claim to operate them reliably.<strong> OpenAI</strong>, in a <strong><a href="https://openai.com/index/evals-drive-next-chapter-of-ai/">Nov. 19, 2025 post</a></strong>, centers <strong>evaluation</strong> as an operational discipline for business deployments: setting measurable targets, tracking performance shifts, and making decisions about release readiness. <strong><a href="https://www.anthropic.com/transparency/model-report">Anthropic&#8217;s model reporting</a></strong>, updated Dec. 4, 2025, treats capabilities and safety evaluations as documentation that must be maintained alongside deployment safeguards. Dependencies can and will change on a schedule outside any single team&#8217;s control; regression testing and rollback planning must become part of normal operations.</p><p>Today&#8217;s <strong><a href="https://deepengineering.substack.com/p/the-rise-of-the-ai-architect">feature</a></strong> sits in this environment. We have collaborated again with <strong>Richard D. Avila</strong> who has over two decades of experience building complex software and AI systems and has led architecture for everything from large-scale simulations and autonomous platforms to data analytics systems. Avila, along with <strong>Imran Ahmad</strong> has also co-authored <em><strong><a href="https://www.packtpub.com/en-us/product/architecting-ai-software-systems-9781804619469">Architecting AI Software Systems</a></strong></em>. The &#8220;AI architect&#8221; Avila describes in today&#8217;s article is a role shaped by post AI production realities and a function we predict will become the cornerstone of successful software engineering teams.</p><div><hr></div><h1><strong>&#129504;Expert Insight: </strong></h1><h1><strong>The Rise of the AI Architect by Richard D Avila</strong></h1><blockquote><p><em>In Richard D Avila&#8217;s <strong><a href="https://deepengineering.substack.com/p/deep-engineering-22-richard-d-avila">previous article</a></strong>, he pointed out that building an AI prototype in the lab is one thing, but turning it into a dependable product is quite another. This is where AI Architecture and the role of the <strong>AI architect</strong> becomes relevant. Much like a software architect ensures a system&#8217;s structure can support its goals, an AI architect is emerging as the key figure to bridge cutting-edge AI with solid engineering. <strong>Google</strong>, for example, recently <strong><a href="https://www.thesoftwarereport.com/google-appoints-koray-kavukcuoglu-as-chief-ai-architect-to-speed-up-ai-product-integration/">appointed</a></strong> <strong>Koray Kavukcuoglu</strong> (formerly of DeepMind) as its first <strong>Chief AI Architect</strong> to accelerate the integration of advanced models &#8220;into our products, with the goal of more seamless integration, faster iteration, and greater efficiency&#8221;. Without sound architecture, AI innovations won&#8217;t translate into sustainable, reliable solutions. But who is an AI Architect and what do they do?</em></p></blockquote><p>AI systems and technology are very quickly impacting so many areas of modern life. Whether it be a seemingly simple task, such as detecting a cat in an image, or the autonomous operation of a vehicle. There is also a shift toward greater acceptance of AI technologies into society. AI systems are primarily built into complex software. What makes AI-enabled systems unique is that they have, at their heart, the notion of decision making. This extended functionality puts new demands on the processes and guides for building these sorts of systems.</p><p>Architecting fundamentals can help navigate these complexities and the successful building and operation of these sorts of systems. Historically, an architect would aid in the building of a system and then would be able to sort of &#8220;walk away&#8221; or execute a new project. In this age of AI, this is simply not the case. The challenges of observability, integrated development, testing, the voice of the user, and their centrality to business outcomes place new demands on an architect.</p><h2><strong>Challenges that impact AI enabled systems</strong></h2><ul><li><p><strong>Complex integrations:</strong> For example, is the system going to be a hybrid cloud or on premise deployment? What dependencies exist on external software?</p></li><li><p><strong>High performance bar:</strong> the system is expected to be deployed to impact key business functions or activities that the organization shall depend upon.</p></li><li><p>Depending on the technology, using the AI/ML can incur significant costs.</p></li><li><p>If not well architected or instrumented, the system can be a challenge to troubleshoot.</p></li></ul><h2><strong>What can architecture do to help?</strong></h2><ul><li><p>By modeling and conducting robust conceptual designs, the unique perspective and aspects of the AI technology are identified.</p></li><li><p>The use of tactics and patterns partitions the system for better performance and meeting non-functional requirements.</p></li><li><p>Robust architecting helps keep a holistic view of the end to end system.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IPp_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bed346d-e43d-4a73-8131-8b83f4757109_1408x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IPp_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bed346d-e43d-4a73-8131-8b83f4757109_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!IPp_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bed346d-e43d-4a73-8131-8b83f4757109_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!IPp_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bed346d-e43d-4a73-8131-8b83f4757109_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!IPp_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bed346d-e43d-4a73-8131-8b83f4757109_1408x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IPp_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bed346d-e43d-4a73-8131-8b83f4757109_1408x768.png" width="1408" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6bed346d-e43d-4a73-8131-8b83f4757109_1408x768.png&quot;,&quot;srcNoWatermark&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/65d3dfbf-b063-46f9-a5ab-d66b020e7c59_1408x768.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1885468,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/186053945?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57f29466-c24a-4265-83e7-02814edfcd79_1408x768.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_!IPp_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bed346d-e43d-4a73-8131-8b83f4757109_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!IPp_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bed346d-e43d-4a73-8131-8b83f4757109_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!IPp_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bed346d-e43d-4a73-8131-8b83f4757109_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!IPp_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bed346d-e43d-4a73-8131-8b83f4757109_1408x768.png 1456w" sizes="100vw" loading="lazy" 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">Figure 1: Architecting for Success - Transforming AI Complexity, Cost, and Performance Challenges into Scalable Solutions</figcaption></figure></div><h2><strong>The Rise of AI Architects</strong></h2><p>As modern technology progresses, the practice of architecting also evolves. We are now witnessing the rise of the AI architect. The modern AI architect will be closer to operations and must help with managing the complexity of systems. These include:</p><ul><li><p>The architect is the principal approver for the completion of acceptance gates for going from an AI prototype to a production deployment. He ensures the concept has merit, evaluates the results of the prototype, guides design of the production model, evaluates the performance of prototypes, and finally accepts the production deployment.</p></li><li><p>They integrate and synthesize solutions to balance the data science, data engineering, software development, operations, and business teams.</p></li><li><p>The architect is the principal owner of the non-functional requirements and interfaces across the AI system.</p></li><li><p>They must be involved in the observability, where they need to understand what decisions the software is making.</p></li></ul><h2><strong>From Idea to Production Life cycle</strong></h2><p>As AI engineering is maturing, a notional process is emerging that takes an AI idea to production. The initial stage is discovery and evaluation. It looks to determine if the data, algorithms, and compute resources exist to make a system that will have impact. The next stage is prototyping; here one now adds complexity to the software, both by adding more production domain elements, to test how well the new system would work. It is at the end of the prototype phase where a key decision is made to determine if it is warranted to take the prototype to a production environment.</p><p>With the passage out of the prototyping phase, a controlled execution of the model is done, where it is observed and monitored to ensure it is working as expected and delivering value. With the monitoring phase complete, a controlled rollout of the system is done to production, with another layer of monitoring to ensure the systems it is now impacting still also function as expected. Finally, with these gates completed, a full deployment can be done and now the system goes into a monitor and evaluation phase. The evaluation is to see if the model needs to be adapted or retrained.</p><p>One key item is as the system is now in operation &#8211; a new set of metrics for system observability need to be captured. Below are some basic ones; this should not be considered exhaustive:</p><ol><li><p>Accuracy</p></li><li><p>Data throughput</p></li><li><p>Area under the Curve</p></li><li><p>Time for processing</p></li><li><p>Cost per transaction</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QOle!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f4087a5-b236-40b7-9db6-6b474aa57b3c_1408x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QOle!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f4087a5-b236-40b7-9db6-6b474aa57b3c_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!QOle!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f4087a5-b236-40b7-9db6-6b474aa57b3c_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!QOle!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f4087a5-b236-40b7-9db6-6b474aa57b3c_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!QOle!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f4087a5-b236-40b7-9db6-6b474aa57b3c_1408x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QOle!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f4087a5-b236-40b7-9db6-6b474aa57b3c_1408x768.png" width="1408" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9f4087a5-b236-40b7-9db6-6b474aa57b3c_1408x768.png&quot;,&quot;srcNoWatermark&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e8df155-fb3c-4e91-8c36-248280d2157b_1408x768.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1593480,&quot;alt&quot;:&quot;&quot;,&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://deepengineering.substack.com/i/186053945?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e8df155-fb3c-4e91-8c36-248280d2157b_1408x768.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_!QOle!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f4087a5-b236-40b7-9db6-6b474aa57b3c_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!QOle!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f4087a5-b236-40b7-9db6-6b474aa57b3c_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!QOle!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f4087a5-b236-40b7-9db6-6b474aa57b3c_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!QOle!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f4087a5-b236-40b7-9db6-6b474aa57b3c_1408x768.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Figure 2: The AI Engineering Lifecycle - From Concept to Continuous Observability</figcaption></figure></div><p>How often these metrics should be reviewed really depends on how time dependent AI performance is to the enterprise. That said, these observability metrics should be reviewed frequently by the operations teams, and on a weekly basis or sooner by the other stakeholders, to see how AI model performance is impacting their areas of responsibilities.</p><h2><strong>Specific Areas an AI architect can Influence</strong></h2><p>As has been mentioned, the AI architect needs to have a solid understanding of, and be able to communicate in the language of, AI/ML and data science topics. This includes the perspective in understanding the role of non-functional requirements as applied to AI/ML systems. How to extend their knowledge for architecture modeling should incorporate systems where there is to be a sort of non-human decision making. They will also need to fortify and understand how users and stakeholders of the system are to be impacted, aided, and potential friction points. They will need to be close to guiding and evaluating the rapid prototyping in support of software development. The architect needs to consider interfaces and how their management will impact the decision making of the system. The use of AI/ML technologies inherently add a layer of complexity. The architect acts at his own peril with the notion that a simple AI application can readily be made in a less rigorous manner. Adding a layer of AI into almost any application raises the complexity significantly.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jkFh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e7a1d-78f2-4fe5-b982-3fc2155d5d68_1408x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jkFh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e7a1d-78f2-4fe5-b982-3fc2155d5d68_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!jkFh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e7a1d-78f2-4fe5-b982-3fc2155d5d68_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!jkFh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e7a1d-78f2-4fe5-b982-3fc2155d5d68_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!jkFh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e7a1d-78f2-4fe5-b982-3fc2155d5d68_1408x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jkFh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e7a1d-78f2-4fe5-b982-3fc2155d5d68_1408x768.png" width="1408" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a8e7a1d-78f2-4fe5-b982-3fc2155d5d68_1408x768.png&quot;,&quot;srcNoWatermark&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/acf66d0c-9121-49a3-bad5-16efe9a09a5f_1408x768.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1807524,&quot;alt&quot;:&quot;&quot;,&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://deepengineering.substack.com/i/186053945?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf66d0c-9121-49a3-bad5-16efe9a09a5f_1408x768.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_!jkFh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e7a1d-78f2-4fe5-b982-3fc2155d5d68_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!jkFh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e7a1d-78f2-4fe5-b982-3fc2155d5d68_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!jkFh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e7a1d-78f2-4fe5-b982-3fc2155d5d68_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!jkFh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e7a1d-78f2-4fe5-b982-3fc2155d5d68_1408x768.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Figure 3: The Central Nexus of AI Engineering - Orchestrating the Critical Intersections of Data, Development, Operations, and Compliance.</figcaption></figure></div><p>The AI architect must by necessity straddle AI/ML and software engineering. This is to ensure the architect can navigate the alphabet soup of techniques, algorithmic aspects, and technologies that exist. It is very easy for an AI architect to be overcome by the various other roles needed to deploy modern AI systems. In many enterprises, there are typically several functional teams: Data Team, Development Team, ML Ops, Legal/Compliance. Below are some of the major facets that the architect influences and needs to be involved with:</p><p><strong>Data Team</strong></p><p>The architect works with the data team to ensure that the product question can indeed be answered by the data that exists or is to be used. He is pivotal in levying requirements for the speed, format, and consistency checks that must be met.</p><p><strong>Development Team</strong></p><p>The architect works to ensure top-level designs, interfaces, and non-functional requirements are being met by the designs being created. He is more in a reviewer mode. He also aids in clarifying engineering requirements and providing guidance to address design questions and challenges.</p><p><strong>MLOps Team</strong></p><p>The architect, in this role, defines how well the production system is required to perform, and how the system is to be instrumented and monitored for correct execution. He will also define the canaries and fail-safe mechanisms to ensure issues with the AI components do not compromise the full production environment. The mechanisms for model and system updating are also laid out by the architect.</p><p><strong>Legal and Compliance Team</strong></p><p>In this capacity, the architect provides the technical insight, design guidance, and evidence that the AI system is meeting the legal and compliance needs of the enterprise. The architect also oversees re-design activities and troubleshooting to ensure legal and compliance aspects are indeed met.</p><p><strong>Incident Run Book</strong></p><p>There needs to exist a run book that the architect is a principal in its development. A run book should look to use a layered manner to address an error in the AI model or its interfaces. Clear mechanisms and architecture need to exist to be able to disengage the model from a production system, and put the production system into a nominal configuration. The run book should also provide for clear expected outputs of the different stages of the system &#8211; that is, it should be documented what &#8220;correct&#8221; looks like and why at each stage to enable quicker troubleshooting. The error handling within the system should also be readily indexed in the run book so that system, data, and model tracing can occur. Finally, the run book should also include clear traceability to software repositories, configuration information, and points of contact.</p><h2><strong>Conclusion</strong></h2><p>These are exciting times for being an AI architect. The field is in its infancy and there are many excellent and challenging domains where one can make a significant impact. In this new era one needs to accept that there will be constant learning and adaptation. As the techniques and concepts of AI/ML continue to increase, the combinations and applications simply keep growing. That said, having a solid foundational knowledge of AI/ML concepts shall mitigate short-term knowledge gaps. Are you ready to become an AI architect?</p><div><hr></div><h1>&#128269;In case you missed it&#8230;</h1><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;9d501194-9918-42e4-8c1b-8c2d27e4c20e&quot;,&quot;caption&quot;:&quot;Teach Someone You Love Python &#128013;| Open Python 101 for Beginners&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Deep Engineering #29: Imran Ahmad on Architecting Real-World AI Systems&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:140662997,&quot;name&quot;:&quot;Divya Anne Selvaraj&quot;,&quot;bio&quot;:&quot;Content Engineer @Packt Software Engineering &amp; Architecture Vertical | Editor-in-Chief of Packt Deep Engineering and Packt PythonPro Newsletters&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/309a6f07-27a6-40bf-ab99-d042556d816b_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:2260974,&quot;name&quot;:&quot;Imran Ahmad&quot;,&quot;bio&quot;:&quot;I&#8217;m a data scientist and an author&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!qXS5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8b0819-6513-45db-b99b-ec849c945bf1_144x144.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://imran409.substack.com/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://imran409.substack.com&quot;,&quot;primaryPublicationName&quot;:&quot;Imran Ahmad&quot;,&quot;primaryPublicationId&quot;:5449073}],&quot;post_date&quot;:&quot;2025-12-04T13:31:36.413Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c8aab265-d604-4ad6-b047-a05a3406df16_2816x1536.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/deep-engineering-29-imran-ahmad-on&quot;,&quot;section_name&quot;:&quot;Newsletter Issues&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:180677672,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:1,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;42774afb-e990-4c3d-a420-2883e384af98&quot;,&quot;caption&quot;:&quot;SysML 2 in a Day: Hands-On MBSE Masterclass&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Deep Engineering #22: Richard D Avila on Why AI Systems Need Architecture&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:140662997,&quot;name&quot;:&quot;Divya Anne Selvaraj&quot;,&quot;bio&quot;:&quot;Content Engineer @Packt Software Engineering &amp; Architecture Vertical | Editor-in-Chief of Packt Deep Engineering and Packt PythonPro Newsletters&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/309a6f07-27a6-40bf-ab99-d042556d816b_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:25692736,&quot;name&quot;:&quot;Richard D Avila&quot;,&quot;bio&quot;:&quot;Submarine officer 1994-2000. Fast Attack sailor. Chest full of ribbons. NROTC Loyola University New Orleans. \nCurrently work as a chief engineer for autonomous systems at Northrop Grumman.&quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/33f85486-4054-4fce-bd3b-57fc7db6481b_144x144.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-10-16T13:31:44.098Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7ed8d6de-5b2d-462c-bfc6-c3a27a0786ff_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/deep-engineering-22-richard-d-avila&quot;,&quot;section_name&quot;:&quot;Newsletter Issues&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:175498967,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:4,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h1><strong>&#128736;&#65039;Tool of the Week</strong></h1><p><strong>OpenTelemetry Collector &#8212; Vendor-neutral telemetry pipeline for traces, metrics, logs, and profiles</strong></p><p>The OpenTelemetry Collector is an open-source service that sits between your applications and your observability backends, receiving telemetry, processing it (filtering, sampling, enriching), and exporting it in a controlled, consistent way. It&#8217;s designed to reduce the sprawl of per-vendor agents while keeping the data path configurable and auditable.</p><p><strong>Highlights:</strong></p><ul><li><p><strong>Pluggable pipelines you can reason about:</strong> Collector configs are explicitly built from <strong>receivers, processors, exporters, and connectors</strong>, enabling transparent ingestion &#8594; transformation &#8594; delivery flows instead of opaque agents. </p></li><li><p><strong>Unified multi-signal collection:</strong> One codebase can handle <strong>traces, metrics, and logs</strong> (and supports profiles via components), allowing teams to consolidate telemetry paths and apply consistent policy controls. (open-telemetry. </p></li><li><p><strong>Production-grade release cadence and governance:</strong> The Collector shipped <strong>v1.49.0/v0.143.0 on 05 Jan 2026</strong>, with published breaking changes and end-user changelogs&#8212;useful when you operate it as shared infrastructure. </p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://opentelemetry.io/docs/collector/&quot;,&quot;text&quot;:&quot;Learn more about OpenTelemetry Collector&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://opentelemetry.io/docs/collector/"><span>Learn more about OpenTelemetry Collector</span></a></p><div><hr></div><h1><strong>&#128206;Tech Briefs</strong></h1><ul><li><p><strong><a href="https://openai.com/index/scaling-postgresql/">Scaling PostgreSQL to power 800 million ChatGPT users</a>: </strong>Details how OpenAI scaled PostgreSQL for ChatGPT/API workloads&#8212;using a single primary with large-scale read replication and hard-earned operational lessons from overload-driven SEVs.</p></li><li><p><strong><a href="https://blog.cloudflare.com/route-leak-incident-january-22-2026/">Route leak incident on January 22, 2026</a>:</strong> Cloudflare&#8217;s post-incident report explains how an automation/policy misconfiguration leaked IPv6 routes for ~25 minutes (triggering congestion/loss), and lists concrete guardrails they&#8217;re adding in automation and validation.</p></li><li><p><strong><a href="https://cloud.google.com/blog/topics/inside-google-cloud/whats-new-google-cloud">What&#8217;s new with Google Cloud</a></strong><a href="https://cloud.google.com/blog/topics/inside-google-cloud/whats-new-google-cloud">&#8212; </a><strong><a href="https://cloud.google.com/blog/topics/inside-google-cloud/whats-new-google-cloud">January 24, 2026</a>:</strong> Google Cloud&#8217;s weekly roundup compiles recent product updates, announcements, and engineering resources in one place (a useful &#8220;diff feed&#8221; for platform teams tracking change).</p></li><li><p><strong><a href="https://github.blog/ai-and-ml/github-copilot/power-agentic-workflows-in-your-terminal-with-github-copilot-cli/">Power agentic workflows in your terminal with GitHub Copilot CLI</a>:</strong> GitHub introduces Copilot CLI, positioning the terminal as a first-class surface for agentic developer workflows rather than a thin wrapper around the IDE.</p></li><li><p><strong><a href="https://kubernetes.io/blog/2026/01/22/headlamp-in-2025-project-highlights/">Headlamp in 2025: Project Highlights</a>:</strong> The Headlamp maintainers recap what shipped across 2025 and what they&#8217;re prioritizing next&#8212;useful signal for platform orgs standardizing cluster UX and operational visibility.</p></li></ul><div><hr></div><p>That&#8217;s all for today. Thank you for reading this issue of <em>Deep Engineering</em>. We have some really exciting things planned for Deep Engineering members in 2026 and we can&#8217;t wait to tell you all about it very soon.</p><p>We&#8217;ll be back next week with more expert-led content.</p><p>Stay awesome,<br>Divya Anne Selvaraj<br><em><strong>Editor-in-Chief, Deep Engineering</strong></em></p><div><hr></div><p>If your company is interested in reaching an audience of developers, software engineers, and tech decision makers, you may want to <strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong>.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post&quot;,&quot;text&quot;:&quot;Refer a friend&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post"><span>Refer a friend</span></a></p>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #31: Sam Morley on decomposition & abstraction in C++]]></title><description><![CDATA[What &#8220;future you&#8221; needs: How senior C++ engineers make decisions that hold up over time]]></description><link>https://deepengineering.substack.com/p/deep-engineering-31-sam-morley-on</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-31-sam-morley-on</guid><dc:creator><![CDATA[Divya Anne Selvaraj]]></dc:creator><pubDate>Thu, 22 Jan 2026 13:31:21 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e8e6bf12-873b-4f08-ac14-f9e4d69295a8_800x533.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h4><strong><a href="https://www.eventbrite.com/e/c-memory-management-masterclass-tickets-1962865917799?aff=deepeng">C++ Memory Management Masterclass (Live) &#8212; Jan 24&#8211;25</a></strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.com/e/c-memory-management-masterclass-tickets-1962865917799?aff=deepeng" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h7a8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F325fc1ed-7db4-4d6a-81fe-2dc521beed5e_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!h7a8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F325fc1ed-7db4-4d6a-81fe-2dc521beed5e_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!h7a8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F325fc1ed-7db4-4d6a-81fe-2dc521beed5e_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!h7a8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F325fc1ed-7db4-4d6a-81fe-2dc521beed5e_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h7a8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F325fc1ed-7db4-4d6a-81fe-2dc521beed5e_2160x1080.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/325fc1ed-7db4-4d6a-81fe-2dc521beed5e_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.eventbrite.com/e/c-memory-management-masterclass-tickets-1962865917799?aff=deepeng&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!h7a8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F325fc1ed-7db4-4d6a-81fe-2dc521beed5e_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!h7a8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F325fc1ed-7db4-4d6a-81fe-2dc521beed5e_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!h7a8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F325fc1ed-7db4-4d6a-81fe-2dc521beed5e_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!h7a8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F325fc1ed-7db4-4d6a-81fe-2dc521beed5e_2160x1080.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>We are back with cohort two of our live, hands-on workshop with <strong>Patrice Roy</strong> (author of <em>C++ Memory Management</em>, ISO C++ WG21 member) focused on practical ownership models, RAII, smart pointers, exception safety, allocators, and debugging memory issues in production C++ code. Use code <strong>DEEPENG50</strong> for <strong>50% off</strong> Standard and Bulk tickets (not valid on Premium Pass).</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/c-memory-management-masterclass-tickets-1962865917799?aff=deepeng&quot;,&quot;text&quot;:&quot;Save 50% with DEEPENG50&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eventbrite.com/e/c-memory-management-masterclass-tickets-1962865917799?aff=deepeng"><span>Save 50% with DEEPENG50</span></a></p><div><hr></div><p><strong>&#9997;&#65039;From the editor&#8217;s desk,</strong></p><p><strong>Happy New Year &#8212; and welcome to the first Deep Engineering issue of 2026!</strong></p><p>Most senior engineers can solve hard problems. The real test is whether the team can repeat that success&#8212;six months later, with new constraints, when &#8220;future you&#8221; has lost the context that made the design feel obvious at the time.</p><p>This issue is <strong>Part 1</strong> of a two-part series grounded in our interview with <strong><a href="https://www.linkedin.com/in/morleys90/">Sam Morley</a></strong>, Research Software Engineer and Mathematician at the <strong>University of Oxford</strong> and author of <em><strong><a href="https://www.packtpub.com/en-us/product/the-c-programmers-mindset-9781835888438">The C++ Programmer&#8217;s Mindset</a></strong></em>. </p><p>In today&#8217;s installment we cover four guiding principles from Morley:</p><ul><li><p><strong>Be explicit about your process</strong></p></li><li><p><strong>Decompose relentlessly</strong></p></li><li><p><strong>Treat abstraction as a multi-cost decision</strong></p></li><li><p><strong>Use the STL as your baseline</strong></p></li></ul><p>We&#8217;ve also included the complete <strong><a href="https://deepengineering.substack.com/p/thinking-computationally">Chapter 1: Thinking Computationally</a></strong> from Morley&#8217;s book. Our tool of the week today is <strong><a href="https://github.com/wolfpld/tracy">Tracy</a></strong>, a practical complement to this mindset. In <strong>Part 2</strong>, we&#8217;ll extend the same framing into maintainability under &#8220;power tools,&#8221; hardware-aware performance, and safer concurrency. You can also <strong>watch</strong> the complete interview and <strong>read</strong> the transcript <strong><a href="https://deepengineering.substack.com/p/the-c-programmers-mindset-on-abstraction">here</a></strong>.</p><div id="youtube2-TRii5U87yn8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;TRii5U87yn8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/TRii5U87yn8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h1>Adopting the C++ Programmer&#8217;s Mindset (Part 1) with Sam Morley</h1><p>Adopting the &#8220;C++ programmer&#8217;s mindset&#8221; means <strong>combining</strong> sound engineering habits with deep knowledge of the language&#8217;s strengths. In this first part, we learn from Sam Morley that senior engineers should actively reflect on how they solve problems, relentlessly break down big challenges, choose abstractions with care, and take full advantage of the rich standard library. These practices lead to code that is not just correct, but also maintainable and efficient by construction. As Morley puts it, it&#8217;s about <em>&#8220;how you marry [your process] with the C++ language and the broader system to make a better, faster solution.&#8221;</em></p><h2>Embrace Computational Thinking and Process Awareness</h2><p>Senior C++ engineers often solve complex problems intuitively, but Sam Morley argues that making this process explicit is key to growth. Morley emphasizes <em>&#8220;thinking about your process&#8221;</em> &#8211; after solving a problem, step back and ask how you approached it. </p><blockquote><p><strong>By breaking down challenges, identifying abstractions, and noting familiar patterns or novel obstacles, engineers can refine their problem-solving toolkit.</strong> </p></blockquote><p>This reflection helps avoid repeated mistakes. As Senior iOS Engineer, Jeremy Fitzpatrick also <a href="https://martiancraft.com/blog/2025/07/learning-from-my-mistakes/">writes</a>, retrospectively analyzing how errors happen &#8211; and how you fixed them &#8211; is vital to prevent falling into the same pitfalls again. Morley adds that consciously &#8220;documenting&#8221; your approach (even just mentally) builds a knowledge base you can pass on to junior developers. This mindset shift &#8211; from just writing code to analyzing <em>how</em> you write it &#8211; turns problem-solving into a teachable, improvable skill.</p><p>The C++ programmer&#8217;s mindset ties this process to the capabilities of the language and system. Morley notes that experienced devs already use &#8220;computational thinking,&#8221; but <em>connecting</em> those abstract problem-solving steps with C++&#8217;s specific features and the underlying machine can lead to more efficient solutions. In practice, this means considering how C++ abstractions (like classes, templates, or the STL) and system resources (like CPU caches or IO throughput) inform each step of your solution. Adopting this broader perspective &#8211; thinking not just about <em>what</em> to code but <em>why</em> and <em>how</em> in context &#8211; is what elevates a senior engineer&#8217;s effectiveness.</p><h2>Break Problems Down </h2><p>A core principle Morley highlights is <em><strong>decomposition</strong></em>: any non-trivial software problem must be broken into smaller parts. </p><blockquote><p><em>&#8220;<strong>The notion that one can solve a problem without breaking it down... is kind of folly</strong>,&#8221;</em> he says. </p></blockquote><p>Even if it happens unconsciously, every big challenge comprises sub-problems. Experienced engineers should do this deliberately and strategically. Some ways of slicing a problem are more efficient than others, so it pays to practice systematic decomposition.</p><p>Morley illustrates this with a real-world project processing video data through an AI service. The task &#8211; extract frames from 100,000+ videos, send frames to an Azure ML API, then store the results &#8211; was obviously <strong>too complex to tackle monolithically</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_!TfzG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03dbb844-818b-4d77-ab4b-d878a9ac847e_1408x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TfzG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03dbb844-818b-4d77-ab4b-d878a9ac847e_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!TfzG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03dbb844-818b-4d77-ab4b-d878a9ac847e_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!TfzG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03dbb844-818b-4d77-ab4b-d878a9ac847e_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!TfzG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03dbb844-818b-4d77-ab4b-d878a9ac847e_1408x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TfzG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03dbb844-818b-4d77-ab4b-d878a9ac847e_1408x768.png" width="1408" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03dbb844-818b-4d77-ab4b-d878a9ac847e_1408x768.png&quot;,&quot;srcNoWatermark&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5e9378fb-7824-4972-ac20-5e91b20e3d2b_1408x768.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2143405,&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://deepengineering.substack.com/i/185385606?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e9378fb-7824-4972-ac20-5e91b20e3d2b_1408x768.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_!TfzG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03dbb844-818b-4d77-ab4b-d878a9ac847e_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!TfzG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03dbb844-818b-4d77-ab4b-d878a9ac847e_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!TfzG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03dbb844-818b-4d77-ab4b-d878a9ac847e_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!TfzG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03dbb844-818b-4d77-ab4b-d878a9ac847e_1408x768.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Figure 1: Moving from a monolithic challenge to solvable, atomic units allows for targeted fixes&#8212;like adding a buffer to the disk-write stage&#8212;without breaking the whole system.</figcaption></figure></div><p>Morley split it into four stages: reading and decoding video files, dispatching frames to the cloud API (with careful rate limiting), collecting the results, and writing outputs to disk. Each stage was further subdivided: for example, the output-writing stage gained a buffered queue to prevent slow disk writes from bottlenecking the faster network responses. This iterative <em>divide-and-conquer</em> approach revealed hidden bottlenecks (disk I/O in this case) and allowed targeted fixes (introducing back-pressure when the buffer grew). </p><blockquote><p>The take-away: <strong>decompose early and often</strong>. Start with large components, then refine each into smaller, more tractable units until reaching operations you know how to implement (or can leverage from libraries). </p></blockquote><p>This not only makes problems solvable; it also isolates performance issues and enables concurrency where possible. By &#8220;bringing down the level of the larger problem to small, atomic things,&#8221; you can apply known solutions or standard libraries at each step. Smart problem breakdown is <em>foundational</em> to the C++ mindset &#8211; and indeed any engineering mindset &#8211; for complex systems.</p><h2>Choose the Right Abstraction for the Job</h2><p>C++ offers many ways to abstract &#8211; from simple functions to classes, templates, and beyond &#8211; but Morley cautions that <strong>no abstraction comes free</strong>. </p><blockquote><p><em>&#8220;<strong>People claim zero-cost abstractions... They&#8217;re really not; every abstraction has a cost</strong>,&#8221;</em> he says. </p></blockquote><p>This cost may not be at runtime, but could be <strong>compile-time overhead</strong> or <strong>added code complexity</strong>. For instance, template instantiations can incur heavy compile-time costs even when they impose little or no runtime penalty. As one accepted definition puts it, <em>zero-cost abstractions in C++ mean &#8220;no runtime cost, only compile time cost (the code will be slower to compile)&#8221;</em>. In practice, template-heavy code can slow builds and strain developers&#8217; ability to reason about the code. Maintaining a balance is essential.</p><p>A useful way to make the trade-offs explicit is to treat &#8220;abstraction cost&#8221; as multi-dimensional:</p><ul><li><p><strong>Runtime cost:</strong> additional instructions, indirection (e.g., virtual dispatch), cache effects.</p></li><li><p><strong>Compile-time cost:</strong> template instantiation, header inclusion blow-up, longer incremental builds.</p></li><li><p><strong>Cognitive cost:</strong> readability, debuggability, and how hard the code is for &#8220;future you&#8221; (and teammates) to understand.</p></li><li><p><strong>Change cost:</strong> how easy it is to adapt the abstraction when requirements shift (interfaces that are too narrow or too general can both be expensive to fix).</p></li></ul><h3>Choosing the appropriate abstraction level</h3><blockquote><p>Morley&#8217;s rule of thumb is to aim for <strong>the simplest abstraction that solves the problem without painting yourself into a corner</strong>. In practice, that translates into a tiered decision model:</p></blockquote><ul><li><p><strong>Start with a straightforward function</strong> if the behavior is local, stateless, and unlikely to require customization: This keeps the call site obvious, the code easy to inspect, and the build impact minimal.</p></li><li><p><strong>Move to a small function template</strong> when you need type flexibility at low runtime cost: Morley will template a utility function early if it might be reused with different types, noting that <em>&#8220;the cost of doing this is basically nil&#8221;</em> in terms of added complexity&#8212;<em>provided the template stays small and the diagnostics remain tractable</em>.</p></li><li><p><strong>Reach for a class</strong> only when there is a clear need that a function (templated or not) does not satisfy. Morley&#8217;s <strong>three &#8220;good reasons&#8221;</strong> are:</p><ul><li><p><strong>State management:</strong> you need to encapsulate and protect internal invariants (e.g., <code>std::vector</code> managing allocation and lifetime correctly).</p></li><li><p><strong>Interchangeable interface:</strong> you want a stable outward contract while swapping underlying mechanisms (e.g., reading from disk vs. network behind a consistent <code>read()</code>/<code>write()</code> API).</p></li><li><p><strong>Customization point:</strong> you want controlled extensibility&#8212;often via class templates and specialization patterns that are harder to express cleanly with function templates alone.</p></li></ul></li></ul><p>Classes&#8212;especially those using inheritance/virtual functions&#8212;bring additional considerations:</p><ul><li><p>Potential <strong>runtime overhead</strong> (e.g., vtable dispatch) that may be fine off the hot path.</p></li><li><p>Increased <strong>cognitive load</strong> (more surface area, invariants, lifecycle, ownership).</p></li><li><p>More complicated <strong>testing and integration</strong> if responsibilities are not tightly scoped.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0Tf9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f96db46-1b08-433f-97a8-6c1e52368688_1408x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0Tf9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f96db46-1b08-433f-97a8-6c1e52368688_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!0Tf9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f96db46-1b08-433f-97a8-6c1e52368688_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!0Tf9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f96db46-1b08-433f-97a8-6c1e52368688_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!0Tf9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f96db46-1b08-433f-97a8-6c1e52368688_1408x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0Tf9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f96db46-1b08-433f-97a8-6c1e52368688_1408x768.png" width="1408" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f96db46-1b08-433f-97a8-6c1e52368688_1408x768.png&quot;,&quot;srcNoWatermark&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d46ea34a-41e5-4839-a653-71aed916ff70_1408x768.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1817017,&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://deepengineering.substack.com/i/185385606?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd46ea34a-41e5-4839-a653-71aed916ff70_1408x768.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_!0Tf9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f96db46-1b08-433f-97a8-6c1e52368688_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!0Tf9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f96db46-1b08-433f-97a8-6c1e52368688_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!0Tf9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f96db46-1b08-433f-97a8-6c1e52368688_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!0Tf9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f96db46-1b08-433f-97a8-6c1e52368688_1408x768.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Figure 2: The trade-offs&#8212;from build times to cognitive load&#8212;when deciding between a simple function, a template, or a full class structure.</figcaption></figure></div><h3>Beware over-abstraction</h3><p>It is also important to beware of over-abstraction. It&#8217;s easy, especially for seasoned C++ engineers, to create elaborate class hierarchies or template meta-programs that technically solve the problem but introduce needless complexity. Every additional layer of indirection or generality can obscure the logic. </p><p>Morley&#8217;s countermeasure is disciplined minimalism:</p><ul><li><p>Design the <strong>minimal abstraction</strong> that solves today&#8217;s problem.</p></li><li><p>Treat &#8220;clever&#8221; template tricks and extra abstraction layers as <strong>a last resort</strong>, not a default.</p></li><li><p>When adding complexity, ask: <strong>what concrete benefit does this buy</strong>&#8212;performance, flexibility, or clarity?</p></li><li><p>If the answer is not specific, measurable, and defensible: <strong>remove the abstraction</strong>.</p></li></ul><p>Keeping abstractions lean reduces build times and makes life easier for &#8220;future you&#8221; (and anyone maintaining the code). Morley notes that over-specifying an interface can be just as costly as under-designing one: if an interface is too narrow, you may end up reworking it when the real generality becomes clear. </p><h2>Leverage the Standard Library and Proven Tools</h2><p>One practical takeaway that Morley stresses is to <strong>use the C++ Standard Library (STL) whenever possible</strong>. Reinventing data structures or algorithms that are already well-implemented is usually wasted effort and risk. </p><blockquote><p><em><strong>&#8220;The STL is always there and you can always use it... these are very good, high-performance facilities that make your life easier,&#8221;</strong></em><strong> </strong>Morley notes. </p></blockquote><p>Using the standard <code>&lt;algorithm&gt;</code> or <code>&lt;vector&gt;</code> isn&#8217;t just about saving coding time &#8212; it sets a baseline of reliability and portability. Relying on the STL means you spend less time debugging low-level issues or re-optimizing basic operations, and more time on the unique logic of your application.</p><p>Mastery of the standard library often distinguishes top-tier C++ developers. Knowing the ins and outs of containers and algorithms allows you to recognize common problems (searching, sorting, transforming collections, etc.) and apply a ready-made solution. This can dramatically speed up development.</p><p>Morley points out that using STL algorithms to get an initial solution can reveal where the real performance bottlenecks are &#8212; frequently it&#8217;s not the standard component itself. In many cases, the out-of-the-box <code>std::sort</code> or <code>std::unordered_map</code> will be sufficient. If not, you have a working baseline to optimize further.</p><p>If you do need more specialized tools, there are established libraries like <strong><a href="https://github.com/boostorg/boost">Boost</a></strong> or <strong><a href="https://abseil.io/">Abseil</a></strong>. These offer:</p><ul><li><p><strong>Extended containers</strong> (e.g., Boost multi-index, Abseil <code>flat_hash_map</code>)</p></li><li><p><strong>Drop-in replacements with different trade-offs</strong> (e.g., small-size optimized vectors)</p></li></ul><p>Google engineers Jeff Dean and Sanjay Ghemawat <strong><a href="https://abseil.io/fast/hints.html">suggest</a></strong> techniques such as using an <code>absl::InlinedVector</code> (which stores small sequences in-place) for performance-critical code, as this yields gains <em>&#8220;without adding non-local complexity&#8221;</em> &#8212; essentially a free win if your data fits in the small buffer. Knowing about such tools is part of the seasoned C++ mindset: you raise the floor of what problems you can solve effortlessly. Why hand-roll a ring buffer or thread pool when battle-tested implementations exist? The wisdom is to trust well-known libraries for standard needs &#8212; and reserve custom implementations for truly novel problems, after asking &#8220;why am I re-inventing this wheel?&#8221; (Often, you shouldn&#8217;t be.)</p><p>However, being a good C++ citizen also means keeping an eye on the costs. The STL&#8217;s flexibility might not always be optimal for your use case (e.g., <code>std::map</code> might be too slow for very large data if cache misses dominate, where a flat array plus binary search could outperform). Morley&#8217;s approach is:</p><ul><li><p><strong>Start with the idiomatic solution</strong> using STL or Boost</p></li><li><p><strong>Measure performance</strong></p></li><li><p><strong>Iterate based on evidence</strong></p></li><li><p><strong>Swap in specialized containers/algorithms if needed</strong></p></li></ul><p>But even then, prefer using a well-regarded library implementation over crafting your own. Writing your own containers or memory management is notoriously tricky &#8212; a fact Morley underscores. Issues like exception safety, pointer invalidation, and performance tuning of allocations are devilishly complex. <em>&#8220;If you are reimagining containers, you should be asking why rather than how,&#8221;</em> Morley says. In modern C++ development, leaning on the collective wisdom embedded in the standard library (and its extensions) is a mark of pragmatism and professionalism.</p><h2><strong>Up Next </strong></h2><p>Next month, In <strong>Part 2</strong>, we will delve into additional facets of this mindset: keeping C++ codebases clean and team-friendly, balancing advanced &#8220;power tools&#8221; like metaprogramming with readability, thinking in terms of hardware (CPU architecture, memory hierarchy) for performance, and strategies for safe concurrency and memory management. </p><div><hr></div><h1><strong>&#129504;Expert Insight</strong></h1><ol><li><p><strong>The complete Chapter 1 from Sam Morley&#8217;s book, The C++ Programmer&#8217;s Mindset:</strong></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;842b402c-1d52-4102-86fd-8e2724c403d5&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Thinking Computationally&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:440051761,&quot;name&quot;:&quot;Sam Morley&quot;,&quot;bio&quot;:&quot;Research software engineer and mathematician on the DataSig project at the University of Oxford.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b7dcfcf-a878-45d0-99e4-a8f2045dee3e_144x144.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://sammorley.substack.com/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://sammorley.substack.com&quot;,&quot;primaryPublicationName&quot;:&quot;Sam Morley&quot;,&quot;primaryPublicationId&quot;:7726502}],&quot;post_date&quot;:&quot;2026-01-22T08:31:44.729Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7667fcd3-2279-4e00-a74d-ff1459f26896_800x533.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/thinking-computationally&quot;,&quot;section_name&quot;:&quot;Practical Deep-Dives&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:185392285,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div></li><li><p><strong>Our complete interview with Sam Morley in article and video format:</strong></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;71425235-0569-4c11-9ff6-9adfa6d6f985&quot;,&quot;caption&quot;:&quot;C++ rewards engineers who treat problem-solving as a deliberate process rather than an improvisation. In this conversation, Sam Morley returns repeatedly to that theme: decompose the work until it becomes a set of solvable, &#8220;atomic&#8221; parts, then choose abstractions that fit the real constraints of the system. He argues that abstractions are never free, e&#8230;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The C++ Programmer&#8217;s Mindset on Abstraction Costs, &#8220;Future You,&#8221; and Thinking with the Machine: A Conversation with Sam Morley&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:140662997,&quot;name&quot;:&quot;Divya Anne Selvaraj&quot;,&quot;bio&quot;:&quot;Content Engineer @Packt Software Engineering &amp; Architecture Vertical | Editor-in-Chief of Packt Deep Engineering and Packt PythonPro Newsletters&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/309a6f07-27a6-40bf-ab99-d042556d816b_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-22T05:13:13.607Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/TRii5U87yn8&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/the-c-programmers-mindset-on-abstraction&quot;,&quot;section_name&quot;:&quot;Interviews&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:185273208,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div></li></ol><div><hr></div><h1><strong>&#128736;&#65039;Tool of the Week</strong></h1><p><strong><a href="https://github.com/wolfpld/tracy">Tracy Profiler &#8212; Real-time timeline profiler for C++ systems</a></strong></p><p>Tracy is an open-source, low-overhead profiler that captures CPU/GPU activity, allocations, and synchronization behavior into a unified timeline view, so you can identify bottlenecks and contention based on traces rather than inference.</p><p><strong>Highlights:</strong></p><ul><li><p><strong>CPU profiling with low-friction integration</strong>: Direct support for C and C++ (and additional language integrations), designed for instrumented &#8220;zones&#8221; and practical iteration.</p></li><li><p><strong>GPU profiling across major APIs</strong>: GPU support spans OpenGL, Vulkan, Direct3D 11/12, Metal, OpenCL, and CUDA, enabling end-to-end frame and workload analysis.</p></li><li><p><strong>Memory and concurrency visibility</strong>: Tracks memory allocations, locks, and context switches, making contention and allocation churn observable rather than inferred.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://github.com/wolfpld/tracy&quot;,&quot;text&quot;:&quot;Learn more about Tracy Profiler&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://github.com/wolfpld/tracy"><span>Learn more about Tracy Profiler</span></a></p><div><hr></div><h1><strong>&#128206;Tech Briefs</strong></h1><ul><li><p><strong><a href="https://github.blog/changelog/2026-01-21-github-copilot-cli-plan-before-you-build-steer-as-you-go/">GitHub Copilot CLI adds &#8220;plan mode&#8221; and richer agent controls</a>:</strong> In a January 21, 2026 GitHub Changelog post, GitHub says Copilot CLI now supports plan mode (toggle with Shift+Tab) plus features like configurable reasoning effort for GPT models and a new <code>/review</code> command for reviewing changes directly in the terminal.</p></li><li><p><strong><a href="https://github.blog/changelog/2026-01-20-codeql-2-23-9-has-been-released/">CodeQL 2.23.9 ships, with a Kotlin deprecation clock starting</a>:</strong> GitHub&#8217;s January 20, 2026 changelog notes CodeQL 2.23.9 is released (no user-facing CLI/query changes), and states Kotlin 1.6 and 1.7 support is deprecated and slated for removal in CodeQL 2.24.1 (planned February 2026).</p></li><li><p><strong><a href="https://docs.cloud.google.com/storage/docs/release-notes">Google Cloud Storage introduces &#8220;dry run&#8221; for batch operations</a>:</strong> In Cloud Storage release notes dated January 16, 2026, Google says you can now use dry run mode to simulate Storage batch operations jobs &#8220;without modifying or deleting data,&#8221; to validate configuration before running the real job.</p></li><li><p><strong><a href="https://aws.amazon.com/blogs/aws/amazon-ec2-x8i-instances-powered-by-custom-intel-xeon-6-processors-are-generally-available-for-memory-intensive-workloads/">AWS announces EC2 X8i GA with large-memory specs and published perf deltas</a>:</strong> On January 15, 2026, AWS developer advocate Channy Yun announced general availability of EC2 X8i instances, claiming up to 6 TB memory, 1.5&#215; more memory capacity, 3.4&#215; more memory bandwidth, and up to 43% higher performance versus prior-generation X2i instances (with workload-specific figures also listed).</p></li><li><p><strong><a href="https://cloud.google.com/blog/topics/threat-intelligence/net-ntlmv1-deprecation-rainbow-tables">Mandiant releases Net-NTLMv1 rainbow tables to accelerate deprecation</a>:</strong> In a January 16, 2026 Google Cloud blog post, Nic Losby (Mandiant) says Mandiant is publicly releasing Net-NTLMv1 rainbow tables, asserting the dataset enables defenders/researchers to recover keys in under 12 hours using consumer hardware costing less than $600 USD.</p></li></ul><div><hr></div><p>That&#8217;s all for today. Thank you for reading this issue of <em>Deep Engineering</em>. We have some really exciting things planned for Deep Engineering members in 2026 and we can&#8217;t wait to tell you all about it very soon.</p><p>We&#8217;ll be back next week with more expert-led content.</p><p>Stay awesome,<br>Divya Anne Selvaraj<br><em>Editor-in-Chief, Deep Engineering</em></p><div><hr></div><p>If your company is interested in reaching an audience of developers, software engineers, and tech decision makers, you may want to <strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong>.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post&quot;,&quot;text&quot;:&quot;Refer a friend&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post"><span>Refer a friend</span></a></p>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #30: Kevlin Henney on TDD in the AI Era]]></title><description><![CDATA[Misconceptions, design pressure, legacy code, language cultures, and why testing & review&#8212;not tools or AI&#8212;should drive TDD.]]></description><link>https://deepengineering.substack.com/p/deep-engineering-30-kevlin-henney</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-30-kevlin-henney</guid><dc:creator><![CDATA[Divya Anne Selvaraj]]></dc:creator><pubDate>Thu, 11 Dec 2025 13:31:11 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/5950cb9a-7ee9-4014-88d3-bed20ccaf7fe_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h4><a href="https://www.eventbrite.com/e/ai-agent-frontiers-innovation-and-practical-applications-tickets-1972989383357?aff=deepeng">AI Agent Frontiers: Innovation and Practical Applications - Dec 13 (Online)</a></h4><p>If you are making decisions about AI systems in 2025, you cannot afford a fuzzy view of agents.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.com/e/ai-agent-frontiers-innovation-and-practical-applications-tickets-1972989383357?aff=deepeng" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uQX4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb4d7ff7-2411-459c-a28e-8eb1d0ac2a69_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!uQX4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb4d7ff7-2411-459c-a28e-8eb1d0ac2a69_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!uQX4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb4d7ff7-2411-459c-a28e-8eb1d0ac2a69_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!uQX4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb4d7ff7-2411-459c-a28e-8eb1d0ac2a69_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uQX4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb4d7ff7-2411-459c-a28e-8eb1d0ac2a69_2160x1080.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fb4d7ff7-2411-459c-a28e-8eb1d0ac2a69_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1137003,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.eventbrite.com/e/ai-agent-frontiers-innovation-and-practical-applications-tickets-1972989383357?aff=deepeng&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/181308615?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb4d7ff7-2411-459c-a28e-8eb1d0ac2a69_2160x1080.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_!uQX4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb4d7ff7-2411-459c-a28e-8eb1d0ac2a69_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!uQX4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb4d7ff7-2411-459c-a28e-8eb1d0ac2a69_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!uQX4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb4d7ff7-2411-459c-a28e-8eb1d0ac2a69_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!uQX4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb4d7ff7-2411-459c-a28e-8eb1d0ac2a69_2160x1080.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>Join us on <strong>Dec 13, 2025 &#183; 9am&#8211;2pm ET / 6am&#8211;11am PT </strong>for a 5-hour deep dive with the creators of <strong>AG2</strong>/AutoGen and leading researchers from <strong>MIT</strong> and <strong>Cambridge</strong> on real multi-agent architectures, autonomous research agents, and AI-native companies. Deep Engineering readers get <strong>50% off</strong> with code <code>FINAL50</code>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/ai-agent-frontiers-innovation-and-practical-applications-tickets-1972989383357?aff=deepeng&quot;,&quot;text&quot;:&quot;Register now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eventbrite.com/e/ai-agent-frontiers-innovation-and-practical-applications-tickets-1972989383357?aff=deepeng"><span>Register now</span></a></p><div><hr></div><p><strong>&#9997;&#65039;From the editor&#8217;s desk,</strong></p><blockquote><p><strong>This is our final Deep Engineering issue of the year as we break for the holidays &#127876;. Thank you for reading, sharing, and thinking with us in 2025 &#8212; I hope you get time to rest, recharge, and come back to your work with a clearer head and a mysteriously missing backlog in the new year.&#9731;&#65039;</strong></p></blockquote><p>In <strong><a href="https://testgrid.io/blog/continuous-testing-trends-2025/">TestGrid&#8217;s 2025 benchmark</a></strong>, based on 7.3 million automated test runs across 55,800 organizations, the average pass rate is 75% &#8212; better than last year&#8217;s 59%, but still roughly one in four runs failing. For teams betting on CI, CD, and AI-assisted development, that gap is where production risk hides.</p><blockquote><p><strong>How should teams rethink test-driven development and developer testing in the context of legacy systems, AI-generated code, and increasingly automated pipelines?</strong></p></blockquote><p>To explore that, I sat down with <strong><a href="https://www.linkedin.com/in/kevlin/">Kevlin Henney</a></strong> &#8212; independent consultant, speaker, writer, and trainer. Henney works with companies on code, design, practices, and people; contributes to the <a href="https://www.youtube.com/c/ContinuousDelivery">Modern Software Engineering</a> YouTube channel; co-authored <em>A Pattern Language for Distributed Computing</em> and &#8220;On Patterns and Pattern Languages&#8221; in the <em>Pattern-Oriented Software Architecture</em> series; and edited <em><a href="https://github.com/97-things/97-things-every-programmer-should-know">97 Things Every Programmer Should Know</a></em> and co-edited <em>97 Things Every Java Programmer Should Know</em>. His work sits at the intersection of everyday development practice and long-term design thinking.</p><p>In this issue, we focus on:</p><ul><li><p><strong>TDD vs &#8220;just testing&#8221;:</strong> what TDD actually is, and why conflating it with ad hoc developer testing hides deeper gaps.</p></li><li><p><strong>Design pressure from tests:</strong> using tests as executable specifications that expose coupling, cohesion, and legacy-code seams worth reshaping.</p></li><li><p><strong>AI in the loop:</strong> why AI-generated code and tests increase the need for testing and review skills rather than replacing them.</p></li></ul><p>You can watch the full conversation with Kevlin Henny below, read the complete Q&amp;A <strong><a href="https://deepengineering.substack.com/p/rethinking-test-driven-development">here</a></strong>, or scroll down for the distilled insights.</p><div id="youtube2-gCPZ8oXNdm8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;gCPZ8oXNdm8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/gCPZ8oXNdm8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><p><em>Sponsored:</em></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://fload.com/?utm_source=newsletter&amp;utm_medium=email&amp;utm_campaign=packtmobilepro" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PPYO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2ac8e8a-c384-4eff-adc8-53781ac26907_800x350.jpeg 424w, https://substackcdn.com/image/fetch/$s_!PPYO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2ac8e8a-c384-4eff-adc8-53781ac26907_800x350.jpeg 848w, https://substackcdn.com/image/fetch/$s_!PPYO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2ac8e8a-c384-4eff-adc8-53781ac26907_800x350.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!PPYO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2ac8e8a-c384-4eff-adc8-53781ac26907_800x350.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PPYO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2ac8e8a-c384-4eff-adc8-53781ac26907_800x350.jpeg" width="314" height="137.375" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e2ac8e8a-c384-4eff-adc8-53781ac26907_800x350.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:350,&quot;width&quot;:800,&quot;resizeWidth&quot;:314,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://fload.com/?utm_source=newsletter&amp;utm_medium=email&amp;utm_campaign=packtmobilepro&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!PPYO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2ac8e8a-c384-4eff-adc8-53781ac26907_800x350.jpeg 424w, https://substackcdn.com/image/fetch/$s_!PPYO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2ac8e8a-c384-4eff-adc8-53781ac26907_800x350.jpeg 848w, https://substackcdn.com/image/fetch/$s_!PPYO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2ac8e8a-c384-4eff-adc8-53781ac26907_800x350.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!PPYO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2ac8e8a-c384-4eff-adc8-53781ac26907_800x350.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><strong><a href="https://fload.com/?utm_source=newsletter&amp;utm_medium=email&amp;utm_campaign=packtmobilepro">The First AI Employee for Your Mobile App</a></strong>: <a href="http://Fload monitors your app 24/7, catches issues before they cost you money, finds new growth opportunities, and predicts what&#8217;s coming next, all automatically.">Fload</a> monitors your app 24/7, catches issues before they cost you money, finds new growth opportunities, and predicts what&#8217;s coming next, all automatically. <strong><a href="https://fload.com/?utm_source=newsletter&amp;utm_medium=email&amp;utm_campaign=packtmobilepro">Connect your app in 60 seconds</a>.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://fload.com/?utm_source=newsletter&amp;utm_medium=email&amp;utm_campaign=packtmobilepro&quot;,&quot;text&quot;:&quot;Try Fload Free&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://fload.com/?utm_source=newsletter&amp;utm_medium=email&amp;utm_campaign=packtmobilepro"><span>Try Fload Free</span></a></p><div><hr></div><h1>Rethinking Test-Driven Development for the AI Era with Kevlin Henney</h1><p>Test-driven development sits in an awkward place in many teams: widely cited, unevenly practiced, and often misunderstood. For some developers, TDD is a niche technique only for greenfield code; for others, it&#8217;s reduced to &#8220;writing some unit tests&#8221; after the fact. Meanwhile, real-world pressures &#8212; legacy systems, language ecosystems, CI pipelines, even AI-generated code &#8212; make it challenging to apply TDD consistently under tight deadlines. In my conversation with Kevlin Henney, we talked about:</p><ul><li><p>Why TDD adoption stalls even for experienced developers</p></li><li><p>The misconceptions that blur the line between &#8220;developer testing&#8221; and true TDD</p></li><li><p>How tests can shape software design without losing sight of the bigger architectural picture. </p></li><li><p>Best practices for introducing tests into large legacy codebases</p></li><li><p>How language and ecosystem culture influence testing practices</p></li><li><p>What distinguishes good, specification-like tests from brittle checklists. </p></li><li><p>Henney&#8217;s perspective on AI-assisted development &#8212; warning about the risks of offloading testing to code generators &#8212; and explained why, in an era of increasingly automated code, testing and review skills matter more than ever.</p></li></ul><p>What follows is a distilled summary of a part of our extensive conversation, which I highly recommend reading or listening to in full <strong><a href="https://deepengineering.substack.com/p/rethinking-test-driven-development">here</a></strong>.</p><h2>Why TDD Is Hard to Adopt</h2><p>For many experienced engineers, TDD requires unlearning comfortable habits. It forces a fundamentally different workflow &#8211; writing tests first and working in small increments &#8211; which <em>&#8220;is always going to be difficult&#8221;</em> when you&#8217;re used to another rhythm. Many developers also lack a strong testing practice to begin with, so TDD&#8217;s strict discipline feels like a shock. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PTHA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5964c528-f116-41c2-a0a0-5c9cb848d0a9_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PTHA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5964c528-f116-41c2-a0a0-5c9cb848d0a9_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!PTHA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5964c528-f116-41c2-a0a0-5c9cb848d0a9_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!PTHA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5964c528-f116-41c2-a0a0-5c9cb848d0a9_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!PTHA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5964c528-f116-41c2-a0a0-5c9cb848d0a9_2816x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PTHA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5964c528-f116-41c2-a0a0-5c9cb848d0a9_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5964c528-f116-41c2-a0a0-5c9cb848d0a9_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5c88dc77-2aa5-493b-b85d-c598da25efc3_2816x1536.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6967776,&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://deepengineering.substack.com/i/181308615?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c88dc77-2aa5-493b-b85d-c598da25efc3_2816x1536.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_!PTHA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5964c528-f116-41c2-a0a0-5c9cb848d0a9_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!PTHA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5964c528-f116-41c2-a0a0-5c9cb848d0a9_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!PTHA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5964c528-f116-41c2-a0a0-5c9cb848d0a9_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!PTHA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5964c528-f116-41c2-a0a0-5c9cb848d0a9_2816x1536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Overcoming the TDD adoption barrier requires a mindset shift</figcaption></figure></div><p>Henney notes that the classic <em>&#8220;red, green, refactor&#8221;</em> mantra by itself often isn&#8217;t convincing; without context, developers ask, <em>&#8220;Why write a test for something I haven&#8217;t built yet?&#8221;</em> The answer is that the failing test defines the next behavior you <em>intend</em> to add. You&#8217;re writing a concrete example of a new requirement &#8211; essentially a to-do list item for the code. TDD limits you to one small change at a time, preventing the urge to over-build and ensuring you constantly get feedback (tests passing or failing) on your design. But making this mental shift is hard without practice.</p><h2>Common Misconceptions</h2><p>TDD often suffers from misunderstandings. Some of the myths Henney debunks include:</p><ul><li><p><em>&#8220;TDD is only for new code.&#8221;</em> In reality, you can introduce TDD practices into legacy systems gradually &#8211; it&#8217;s not limited to greenfield projects.</p></li><li><p><em>&#8220;TDD just means writing tests.&#8221;</em> No &#8211; it refers to a specific <strong>test-first</strong> development cycle. Writing some tests after coding is simply testing, not TDD.</p></li><li><p><em>&#8220;TDD isn&#8217;t about testing, it&#8217;s about design.&#8221;</em> Not exactly. TDD is an intensive testing technique <em>and</em> a design aid. The tests are the vehicle, driving better design, but you are absolutely still writing tests (and lots of them) as you go.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MK8a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cdff117-726e-4ad8-a386-bd9c840110e9_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MK8a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cdff117-726e-4ad8-a386-bd9c840110e9_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!MK8a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cdff117-726e-4ad8-a386-bd9c840110e9_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!MK8a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cdff117-726e-4ad8-a386-bd9c840110e9_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!MK8a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cdff117-726e-4ad8-a386-bd9c840110e9_2816x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MK8a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cdff117-726e-4ad8-a386-bd9c840110e9_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5cdff117-726e-4ad8-a386-bd9c840110e9_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fadb3429-afd6-45d3-bb9d-453b0dfc74e5_2816x1536.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5618226,&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://deepengineering.substack.com/i/181308615?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffadb3429-afd6-45d3-bb9d-453b0dfc74e5_2816x1536.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_!MK8a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cdff117-726e-4ad8-a386-bd9c840110e9_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!MK8a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cdff117-726e-4ad8-a386-bd9c840110e9_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!MK8a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cdff117-726e-4ad8-a386-bd9c840110e9_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!MK8a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cdff117-726e-4ad8-a386-bd9c840110e9_2816x1536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">TDD Myths and Facts</figcaption></figure></div><h2>Tackling Legacy Code</h2><p>When dealing with a large, untested codebase, aim for <strong>incremental improvements</strong> instead of perfect coverage. Henney&#8217;s advice:</p><ul><li><p><strong>Start with a strategic slice:</strong> Identify a part of the code you need to modify for upcoming work, and focus your efforts there. Break dependencies to isolate that component (using safe refactoring tools and the compiler, if available), then add some tests around it and refactor in small steps. You can&#8217;t fix everything at once, but you can gradually create pockets of well-tested code.</p></li><li><p><strong>Prioritize trouble spots:</strong> Use version history and bug reports to find the areas that change often or cause frequent issues. Target those &#8220;hot spots&#8221; for testing and cleanup first, where better tests will have the most payoff. Stable sections of the system can wait until they actually need attention.</p></li></ul><h2>What Do Good Tests Look Like?</h2><p>Quality tests are the backbone of TDD. Henney offers a couple of guidelines for writing tests that stay valuable over time:</p><ul><li><p><strong>Test one concept per test:</strong> Each unit test should exercise a single behavior or scenario, not a grab-bag of things. This usually means writing tests at the level of <em>use</em> (what the code should do), not one test per function. For example, instead of separate tests for <code>deposit</code> and <code>withdraw</code> methods, write tests that express the outcomes (e.g. depositing increases the balance, withdrawing decreases it). A good test name reads like a specification, so if it fails, you immediately know what requirement broke.</p></li><li><p><strong>Use tests to get design feedback:</strong> If a piece of code is hard to test, treat that as a sign that the design might need refactoring. TDD shines when you listen to those signals. For instance, if you&#8217;re setting up excessive mocks or needing to call private functions, consider splitting responsibilities or adding interfaces to decouple the design. The goal is to make both the code and the tests simpler. As Henney puts it, often <em>&#8220;excessive use of mocking indicates a design that could be simplified.&#8221;</em></p></li></ul><h2>The Role of AI and the Future of TDD</h2><p>Henney argues AI doesn&#8217;t replace the need for good testing &#8211; if anything, it heightens it. <em>&#8220;If you do not already have an automated testing habit, now is a good time to start,&#8221;</em> he says. AI tools can generate a lot of code or tests in seconds, but this often creates an <strong>illusion of speed</strong> &#8211; you get output quickly, then spend days fixing it. Henney advises teams to be skeptical and thorough: use AI as an assistant for ideas, but <strong>review everything</strong> it produces. Treat AI suggestions as if they came from a junior developer &#8211; useful as a starting point, but to be thoroughly reviewed, tested, and refined by experienced developers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VuGL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54a3265-d361-4295-9fc6-7ebb345d6507_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VuGL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54a3265-d361-4295-9fc6-7ebb345d6507_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!VuGL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54a3265-d361-4295-9fc6-7ebb345d6507_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!VuGL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54a3265-d361-4295-9fc6-7ebb345d6507_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!VuGL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54a3265-d361-4295-9fc6-7ebb345d6507_2816x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VuGL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54a3265-d361-4295-9fc6-7ebb345d6507_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b54a3265-d361-4295-9fc6-7ebb345d6507_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1c6f7a7c-5b74-4e24-bbd7-0e6f32b59950_2816x1536.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6213321,&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://deepengineering.substack.com/i/181308615?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c6f7a7c-5b74-4e24-bbd7-0e6f32b59950_2816x1536.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_!VuGL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54a3265-d361-4295-9fc6-7ebb345d6507_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!VuGL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54a3265-d361-4295-9fc6-7ebb345d6507_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!VuGL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54a3265-d361-4295-9fc6-7ebb345d6507_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!VuGL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb54a3265-d361-4295-9fc6-7ebb345d6507_2816x1536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The future of TDD post AI Automation</figcaption></figure></div><p>In the coming years, as more coding tasks become automated, the differentiator for great engineering teams will be their testing and review skills. TDD remains as relevant as ever. Its emphasis on clarity, rapid feedback, and thinking through requirements can keep software quality high. The specific tools may evolve, but the core discipline of writing tests to drive design and guard against regressions will continue to pay dividends.</p><div><hr></div><h1><strong>&#129504;Expert Insight</strong></h1><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;49ed6016-2075-44d7-8c0a-17011a606915&quot;,&quot;caption&quot;:&quot;Test-driven development sits in an awkward place in many teams: widely cited, unevenly practiced, and often misunderstood. For some developers, TDD is a niche technique that only applies to greenfield code; for others, it is reduced to &#8220;writing some unit tests&#8221; after the fact. In between those extremes are practical concerns about legacy systems, langua&#8230;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Rethinking Test-Driven Development for the AI Era: A Conversation with Kevlin Henney&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:140662997,&quot;name&quot;:&quot;Divya Anne Selvaraj&quot;,&quot;bio&quot;:&quot;Content Engineer @Packt Software Engineering &amp; Architecture Vertical | Editor-in-Chief of Packt Deep Engineering and Packt PythonPro Newsletters&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/309a6f07-27a6-40bf-ab99-d042556d816b_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:12556609,&quot;name&quot;:&quot;Kevlin Henney&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/094e5313-7d18-4c72-9ee3-25e52ed1923c_144x144.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-12-11T05:11:40.935Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/gCPZ8oXNdm8&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/rethinking-test-driven-development&quot;,&quot;section_name&quot;:&quot;Interviews&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:181223892,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h1><strong>&#128736;&#65039;Tool of the Week</strong></h1><h3><a href="https://github.com/HypothesisWorks/hypothesis">Hypothesis: Property-based testing for Python)</a></h3><p>Hypothesis is a mature, open source property-based testing library for Python. Instead of hand-picking a few example inputs, you describe the <em>space</em> of valid inputs and Hypothesis automatically generates many concrete cases&#8212;including edge cases you probably would not have thought of.</p><p><strong>Where it helps teams</strong></p><ul><li><p><strong>Hard-to-enumerate behaviors:</strong> Algorithms, parsers, serialization code, numeric logic, scheduling logic, and anything with a large or subtle input space.</p></li><li><p><strong>Guarding against AI-generated regressions:</strong> If AI suggests an implementation, property-based tests help check that it satisfies an invariant across many inputs instead of just the obvious happy paths.</p></li><li><p><strong>Design feedback:</strong> When a function is hard to express as &#8220;for all inputs in this domain, the following relationship holds,&#8221; that friction often reveals API or modeling issues worth revisiting.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://github.com/HypothesisWorks/hypothesis&quot;,&quot;text&quot;:&quot;Learn more about Hypothesis&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://github.com/HypothesisWorks/hypothesis"><span>Learn more about Hypothesis</span></a></p><div><hr></div><h1><strong>&#128206;Tech Briefs</strong></h1><ul><li><p><strong><a href="https://testgrid.io/blog/continuous-testing-trends-2025/">TestGrid | Continuous Testing Benchmark Report 2025: Trends and Findings</a>: </strong>TestGrid&#8217;s latest benchmark blog post analyzes 7.3 million automated tests across 55,800 organizations and shows how continuous testing tied directly into CI pipelines affects reliability, runtime, coverage, and AI-assisted failure analysis in production environments. </p></li><li><p><strong><a href="https://blog.cryptomilk.org/2025/12/04/cmocka-2-0-released-enhancing-unit-testing-in-c/">CMocka 2.0 Released: Enhancing Unit Testing in C</a>: </strong>Andreas Schneider announced CMocka 2.0, a major upgrade of the open-source C unit testing framework that modernizes it around C99 types, adds richer assertion and mocking APIs, supports TAP 14 output, and improves CI/CD integration while keeping API stability for existing test suites. </p></li><li><p><strong><a href="https://www.vector.com/int/en/products/products-a-z/software/vectorcast/ai-enhanced-vectorcast/">VectorCAST + AI: Instantly Generate Unit Tests from Your Requirements (Early Access)</a>: </strong>Vector introduces an early-access program for an LLM-powered test-case generation engine in VectorCAST that turns detailed natural-language requirements into executable unit tests for C/C++, aiming to accelerate requirements-level coverage while keeping engineers in the review loop. </p></li><li><p><strong><a href="https://www.jpourdanis.com/2025/12/06/more-scripts-same-problems-why-test-automation-isnt-automagic-%F0%9F%AA%84/">John Pourdanis | More Scripts, Same Problems: Why Test Automation isn&#8217;t Automagic</a>: </strong>In this practitioner essay, John Pourdanis argues that simply adding more automated checks does not guarantee quality and emphasizes risk mapping, shared ownership, exploratory work, and feedback loops over raw script volume for effective test automation strategies. </p></li><li><p><strong><a href="https://www.einfochips.com/blog/accelerating-continuous-integration-with-buildkite-github-and-s3-bucket/">eInfochips | Accelerating Continuous Integration with Buildkite, GitHub, and S3 Bucket</a>: </strong>eInfochips has outlined a production-grade CI setup using Buildkite, GitHub, and AWS S3, walking through org setup, agents, queues, pipeline-as-code YAML, and test automation best practices focused on fast feedback and reliable quality gates. </p></li></ul><div><hr></div><p>That&#8217;s all for today &#8212; and for this year. Thank you for reading Deep Engineering, sharing it with colleagues, and pushing us with thoughtful feedback. Do take a moment to <strong><a href="https://forms.microsoft.com/Pages/ResponsePage.aspx?id=Dmauk5VIE0SnXsWk3kKcDhvEtilalEBEqs_8ZEM_u5xUMEIxUDRTNTVTMjhXQVpWUDlXS0g2MzVJNy4u">fill out this short survey</a></strong> we run monthly&#8212;as a thank-you, we&#8217;ll add <strong>one Packt credit</strong> to your account, redeemable for any book of your choice.</p><p>We&#8217;ll be back in the new year with more expert-led, practice-focused issues.</p><p>Merry Christmas&#127876;and Happy Holidays&#129420; &#8212; and don&#8217;t forget to stay awesome&#127775;!<br>Divya Anne Selvaraj<br><em>Editor-in-Chief, Deep Engineering</em></p><p>&#127926;A small musical send-off for the year: Vince Guaraldi Trio &#8211; &#8220;<strong><a href="https://www.youtube.com/watch?v=U43uX0zPReE">Christmas Time Is Here</a></strong>&#8221;</p><div><hr></div><p>If your company is interested in reaching an audience of developers, software engineers, and tech decision makers, you may want to <strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong>.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post&quot;,&quot;text&quot;:&quot;Refer a friend&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post"><span>Refer a friend</span></a></p>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #29: Imran Ahmad on Architecting Real-World AI Systems]]></title><description><![CDATA[What it takes to move AI from demo to durable systems&#8212;architecture, agents, and ops.]]></description><link>https://deepengineering.substack.com/p/deep-engineering-29-imran-ahmad-on</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-29-imran-ahmad-on</guid><dc:creator><![CDATA[Divya Anne Selvaraj]]></dc:creator><pubDate>Thu, 04 Dec 2025 13:31:36 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c8aab265-d604-4ad6-b047-a05a3406df16_2816x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h4><a href="https://www.eventbrite.com/e/getting-started-with-python-in-an-online-editor-registration-1975094416568?aff=deepengineeringnewsletter">Teach Someone You Love Python &#128013;| Open Python 101 for Beginners</a></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.com/e/getting-started-with-python-in-an-online-editor-registration-1975094416568?aff=deepengineeringnewsletter" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ye06!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa311a054-a418-4fa4-8f18-0e717b820a13_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!Ye06!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa311a054-a418-4fa4-8f18-0e717b820a13_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!Ye06!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa311a054-a418-4fa4-8f18-0e717b820a13_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!Ye06!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa311a054-a418-4fa4-8f18-0e717b820a13_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ye06!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa311a054-a418-4fa4-8f18-0e717b820a13_2160x1080.png" width="728" height="364" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a311a054-a418-4fa4-8f18-0e717b820a13_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:436721,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.eventbrite.com/e/getting-started-with-python-in-an-online-editor-registration-1975094416568?aff=deepengineeringnewsletter&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/180677672?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa311a054-a418-4fa4-8f18-0e717b820a13_2160x1080.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_!Ye06!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa311a054-a418-4fa4-8f18-0e717b820a13_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!Ye06!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa311a054-a418-4fa4-8f18-0e717b820a13_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!Ye06!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa311a054-a418-4fa4-8f18-0e717b820a13_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!Ye06!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa311a054-a418-4fa4-8f18-0e717b820a13_2160x1080.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>Have a friend or teammate who keeps saying they want to learn Python?</p><p>On <strong>Thu, Dec 12, 9:00&#8211;10:30am ET</strong>, <em>Python Illustrated</em> authors <strong>Maaike and Imke van Putten</strong> are running a <strong><a href="https://www.eventbrite.com/e/getting-started-with-python-in-an-online-editor-registration-1975094416568?aff=deepengineeringnewsletter">free</a></strong><a href="https://www.eventbrite.com/e/getting-started-with-python-in-an-online-editor-registration-1975094416568?aff=deepengineeringnewsletter">, virtual, live beginner intro to Python</a> in an online editor&#8212;no installs, no setup, just Hello World, simple logic, a small mini-project, and Q&amp;A with a book giveaway.</p><p>Spread the word&#8212;and a bit of holiday cheer&#8212;from <strong>Deep Engineering</strong>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/getting-started-with-python-in-an-online-editor-registration-1975094416568?aff=deepengineeringnewsletter&quot;,&quot;text&quot;:&quot;Register for free &#8594;&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eventbrite.com/e/getting-started-with-python-in-an-online-editor-registration-1975094416568?aff=deepengineeringnewsletter"><span>Register for free &#8594;</span></a></p><div><hr></div><p><strong>&#9997;&#65039;From the editor&#8217;s desk,</strong></p><p>In his keynote at <strong>AWS re:Invent 2025</strong>, AWS CEO Matt Garman <a href="https://www.techradar.com/pro/the-world-is-not-slowing-down-aws-ceo-says-ai-agents-will-be-bigger-than-the-internet-so-act-now">said</a> that AI agents will ultimately have a bigger impact than the internet or cloud computing themselves. At the same event, AWS introduced an <strong>Agentic AI Specialization</strong> for partners, with <a href="https://ir.crowdstrike.com/news-releases/news-release-details/crowdstrike-operationalizes-and-secures-agentic-ai-workloads-aws">CrowdStrike</a> highlighted as an inaugural launch partner securing agentic workloads on AWS. Enterprises are now being asked to run AI&#8212;and agentic AI&#8212;in production, at scale, on real architectures.</p><blockquote><p><strong>What does it take to architect AI systems that meet real constraints on cost, reliability, security, sustainability, and operations?</strong></p></blockquote><p>To explore that, we&#8217;ve collaborated again with <strong>Imran Ahmad</strong>, data scientist, educator, and author focused on algorithms, AI, and cloud computing. He leads machine learning projects for the Canadian government, teaches at Carleton University, and is an authorized instructor for AWS and Google Cloud. With Packt, he has authored several books including <em><strong><a href="https://www.packtpub.com/en-us/product/architecting-ai-software-systems-9781804615973">Architecting AI Software Systems</a></strong></em> (2025, with co-author <strong><a href="https://deepengineering.substack.com/p/deep-engineering-22-richard-d-avila">Richard D Avila</a></strong>). </p><p>Here&#8217;s what&#8217;s in today&#8217;s issue:</p><ul><li><p><strong>Feature:</strong> &#8220;Architecting AI Systems for the Real World&#8221; - Key Insights from my conversation with Imran Ahmad</p></li><li><p>The complete <strong>&#8220;<a href="https://deepengineering.substack.com/p/fundamentals-of-ai-system-architecture">Chapter 1: Fundamentals of AI System Architecture</a>&#8221;</strong> from <em><strong>Architecting AI Software Systems</strong></em> by Richard D Avila and Imran Ahmad. </p></li><li><p>The full <strong><a href="https://deepengineering.substack.com/p/architecting-ai-software-systems">Deep Engineering interview with Imran Ahmad</a></strong>, covering agentic AI, RAG vs. agentic RAG, UX, cross-functional teams, and how the architect&#8217;s role is changing.</p><div id="youtube2-DVPZyn0WpPY" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;DVPZyn0WpPY&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/DVPZyn0WpPY?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div></li><li><p>And In today&#8217;s <strong>Tech Briefs</strong>, we look at <strong><a href="https://www.linkedin.com/pulse/mcps-november-2025-spec-long-running-ai-agents-apvbc/">MCP&#8217;s November 2025 spec</a></strong> and the security research landing alongside it, <strong><a href="https://www.microsoft.com/en-us/research/blog/fara-7b-an-efficient-agentic-model-for-computer-use/">Fara-7B</a></strong> as Microsoft&#8217;s on-device agentic model for direct UI control, <strong><a href="https://blog.vllm.ai/2025/11/30/vllm-omni.html">vLLM-Omni</a></strong> as a new framework for efficient omni-modal model serving in production, Anthropic&#8217;s internal study on <strong><a href="https://www.anthropic.com/research/how-ai-is-transforming-work-at-anthropic">how engineers actually use Claude and Claude Code</a></strong> in daily work, and more.</p></li></ul><p>Let us begin.</p><div><hr></div><h1>Architecting AI Systems for the Real World: Key Insights from Imran Ahmad</h1><p>AI is everywhere, but turning a machine learning prototype into a reliable, cost-effective product is hard work. Simply dropping a model into an existing system rarely works&#8212;success requires sound architecture and planning. Imran Ahmad has seen this firsthand as a data science leader and AI educator and shares practical advice on designing <strong>scalable, sustainable AI systems</strong> that work in the real world.</p><h2>Why AI Solutions Need Strong Architecture</h2><p>An AI product isn&#8217;t just a good model&#8212;it&#8217;s the whole <strong>system</strong> around it. To take a prototype from the lab to production, you must design for real-world conditions from the start. Ahmad suggests rating your architecture against 6 key <strong>pillars</strong>:</p><ul><li><p><strong>Security:</strong> Protect data and access.</p></li><li><p><strong>Reliability:</strong> Works consistently.</p></li><li><p><strong>Performance:</strong> Meets speed/latency needs efficiently.</p></li><li><p><strong>Cost:</strong> Runs affordably at scale.</p></li><li><p><strong>Sustainability:</strong> Avoids wasted energy/resources.</p></li><li><p><strong>Operational Excellence:</strong> Maintainable operations.</p></li></ul><p>The stronger your design is in these areas, the better its chances of thriving in production. Ahmad also stresses nailing software fundamentals (like modular design and solid data pipelines) before adding AI. For example, you can use cloud <strong>elasticity</strong> (scaling resources on demand) to achieve high performance without paying for idle servers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dUJQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5827973-c1c7-4a31-991d-087992074897_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dUJQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5827973-c1c7-4a31-991d-087992074897_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!dUJQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5827973-c1c7-4a31-991d-087992074897_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!dUJQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5827973-c1c7-4a31-991d-087992074897_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!dUJQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5827973-c1c7-4a31-991d-087992074897_2816x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dUJQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5827973-c1c7-4a31-991d-087992074897_2816x1536.png" width="728" height="397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5827973-c1c7-4a31-991d-087992074897_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:6012942,&quot;alt&quot;:&quot;&quot;,&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://deepengineering.substack.com/i/180677672?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5827973-c1c7-4a31-991d-087992074897_2816x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!dUJQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5827973-c1c7-4a31-991d-087992074897_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!dUJQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5827973-c1c7-4a31-991d-087992074897_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!dUJQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5827973-c1c7-4a31-991d-087992074897_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!dUJQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5827973-c1c7-4a31-991d-087992074897_2816x1536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>From Concept to Design &#8211; Iterate and Evaluate</h2><p>Designing an AI solution means choosing the right components (data pipelines, models, interfaces) for the job. Be prepared to <strong>iterate</strong> on this design. The first architecture you sketch might not be optimal. As Ahmad puts it, <em>&#8220;Your first attempt at the design may not be the best one. You have to rethink; you have to evolve.&#8221;</em> A good way to vet a design is to build a <strong>pilot</strong> (a scaled-down version) and see if it meets your speed, reliability, and cost goals. If not, adjust early before full deployment.</p><p>Another step is checking the project&#8217;s <strong>viability</strong> up front. Ahmad suggests asking: <strong>Cost</strong> &#8211; can we afford it at scale? <strong>Speed</strong> &#8211; will it make things faster? <strong>Accuracy</strong> &#8211; are the results better than the current method? You don&#8217;t need improvements in all three, but be clear about which benefit your AI delivers and ensure it outweighs any drawbacks.</p><h2>Architecting for Scalability and Flexibility</h2><p>AI systems often need heavy compute power, but avoid running expensive resources 24/7 if you don&#8217;t have to. One smart strategy is to <strong>decouple data and compute</strong>: keep data in durable storage, and spin up compute instances only when needed (for training jobs or batch processing), then shut them down. This yields high performance on demand while keeping costs and energy use in check.</p><p>Also, design differently for <strong>model training vs. inference</strong>. Training jobs can run in batch mode (e.g. overnight on cloud GPUs) and then be turned off. Serving live predictions might require always-on servers for low latency, but not every feature needs instant results. If a task can be done hourly or daily, use batch processing instead of real-time APIs and save resources.</p><p>Choosing <strong>cloud vs. on-premises</strong> deployment is another factor. It depends on data sensitivity, regulations, and legacy systems. If you move to cloud, make sure to redesign to use cloud features like auto-scaling&#8212;simply moving an on-prem design into cloud without changes can end up costing more. Aim for an architecture that scales and adapts efficiently as needs grow.</p><h2>Avoid Pitfalls &#8211; Lock-In and Rigor</h2><p>Beware of tying your solution to one provider&#8217;s tools. <strong>Vendor lock-in</strong> is risky if that provider fails or becomes too expensive. Use abstractions and standard frameworks so you can swap components easily. For example, use a library that supports multiple ML backends instead of coding directly to one vendor&#8217;s API, and containerize your application to keep it portable across clouds.</p><p>Another pitfall is weak <strong>engineering practices</strong>. Many AI projects lack tests, monitoring, or documentation. Treat an AI system like any critical software: write tests for data pipelines and model outputs, monitor performance, and plan for maintainability and security. Have cross-functional stakeholders agree on what a successful outcome looks like (covering both model metrics and system reliability/UX). This ensures the final system is robust from all angles.</p><h2>User Experience Matters</h2><p>No matter how powerful the AI, users will reject it if it&#8217;s hard to use or understand. Always design the AI solution as a <strong>simple service</strong> for the end user, hiding the complexity. For example, Google Maps runs complex algorithms for routing and traffic, but to the user it&#8217;s just &#8220;enter destination, get directions.&#8221; Likewise, make sure your AI&#8217;s outputs are presented in a clear, helpful way. Good UX builds trust and encourages adoption of the system.</p><h2>Looking Ahead</h2><p>The AI landscape continues to evolve. One major trend is <strong>multi-agent systems</strong>&#8212;multiple AI agents collaborating autonomously. This approach brings new capabilities and new challenges, and better methods for integrating enterprise knowledge into AI are emerging as well. For architects, such changes make <strong>continuous learning</strong> essential. The architect&#8217;s role is now a constant involvement&#8212;guiding the system through iterations. And while AI technology moves fast, core principles remain the anchor of success: keep systems secure, reliable, efficient, cost-effective, maintainable, and user-friendly.</p><div><hr></div><h1><strong>&#129504;Expert Insight</strong></h1><ol><li><p><strong><a href="https://deepengineering.substack.com/p/fundamentals-of-ai-system-architecture">The complete &#8220;Chapter 1: Fundamentals of AI System Architecture&#8221; from the book, </a></strong><em><strong><a href="https://deepengineering.substack.com/p/fundamentals-of-ai-system-architecture">Architecting AI Software Systems</a></strong></em><strong><a href="https://deepengineering.substack.com/p/fundamentals-of-ai-system-architecture"> by Richard D Avila and Imran Ahmad</a></strong></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;8bd4f92d-308a-4060-9037-a239ada5f336&quot;,&quot;caption&quot;:&quot;The recent surge of public interest in Artificial Intelligence (AI), particularly with the rise of generative AI, has ignited a wave of excitement and demand for comprehensive AI solutions. This heightened interest extends beyond tech enthusiasts and researchers to businesses, governments, and individuals seeking to harness AI&#8217;s power to solve real-worl&#8230;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;md&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Fundamentals of AI System Architecture&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:2260974,&quot;name&quot;:&quot;Imran Ahmad&quot;,&quot;bio&quot;:&quot;I&#8217;m a data scientist and an author&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!qXS5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8b0819-6513-45db-b99b-ec849c945bf1_144x144.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://imran409.substack.com/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://imran409.substack.com&quot;,&quot;primaryPublicationName&quot;:&quot;Imran Ahmad&quot;,&quot;primaryPublicationId&quot;:5449073},{&quot;id&quot;:25692736,&quot;name&quot;:&quot;Richard D Avila&quot;,&quot;bio&quot;:&quot;Submarine officer 1994-2000. Fast Attack sailor. Chest full of ribbons. NROTC Loyola University New Orleans. \nCurrently work as a chief engineer for autonomous systems at Northrop Grumman.&quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/33f85486-4054-4fce-bd3b-57fc7db6481b_144x144.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-12-04T05:23:00.654Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!mCUY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe338efee-2dce-4923-b2a9-dc7261e4317a_761x541.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/fundamentals-of-ai-system-architecture&quot;,&quot;section_name&quot;:&quot;Practical Deep-Dives&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:180675052,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div></li><li><p><strong><a href="https://deepengineering.substack.com/p/architecting-ai-software-systems">The complete Deep Engineering interview with Imran Ahmad</a></strong></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;24f0c31b-9318-440d-8711-ccef4ec75347&quot;,&quot;caption&quot;:&quot;AI systems are now everywhere in software, but turning a promising model into a reliable, cost-effective, and sustainable product is still hard work. Teams are discovering that &#8220;just add a model&#8221; is not enough; you need end-to-end architecture that can take an idea from a lab-style proof of concept to a production system that meets real constraints arou&#8230;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;md&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Architecting AI Software Systems for the Real World: A Conversation with Imran Ahmad&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:140662997,&quot;name&quot;:&quot;Divya Anne Selvaraj&quot;,&quot;bio&quot;:&quot;Content Engineer @Packt Software Engineering &amp; Architecture Vertical | Editor-in-Chief of Packt Deep Engineering and Packt PythonPro Newsletters&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/309a6f07-27a6-40bf-ab99-d042556d816b_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:2260974,&quot;name&quot;:&quot;Imran Ahmad&quot;,&quot;bio&quot;:&quot;I&#8217;m a data scientist and an author&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!qXS5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8b0819-6513-45db-b99b-ec849c945bf1_144x144.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://imran409.substack.com/subscribe?&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://imran409.substack.com&quot;,&quot;primaryPublicationName&quot;:&quot;Imran Ahmad&quot;,&quot;primaryPublicationId&quot;:5449073}],&quot;post_date&quot;:&quot;2025-12-03T11:18:19.220Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/DVPZyn0WpPY&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/architecting-ai-software-systems&quot;,&quot;section_name&quot;:&quot;Interviews&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:180580239,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:1,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div></li></ol><div><hr></div><h1><strong>&#128736;&#65039;Tool of the Week</strong></h1><p><strong><a href="https://github.com/kserve/kserve">KServe: Kubernetes-Native Model Serving for Scalable, Vendor-Agnostic AI Inference</a></strong></p><p>KServe is an open-source, Kubernetes-native platform for deploying and operating predictive and generative AI models in production using a standard, cloud-agnostic inference API.</p><p><strong>Highlights</strong></p><ul><li><p><strong>Open-source and actively maintained:</strong> Apache-2.0 licensed CNCF project with ongoing development and an active community.</p></li><li><p><strong>Proven in production:</strong> Adopted by organizations running real-world inference workloads across multiple model types and frameworks.</p></li><li><p><strong>Built for scalable inference:</strong> Provides an <code>InferenceService</code> abstraction, autoscaling (including scale-to-zero), GPU support, and support for common ML/LLM frameworks.</p></li><li><p><strong>Cloud-agnostic architecture:</strong> Runs on any Kubernetes cluster (on-prem or cloud), helping teams avoid hard coupling to a single vendor&#8217;s serving stack.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://kserve.github.io/website/&quot;,&quot;text&quot;:&quot;Learn more about KServe&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://kserve.github.io/website/"><span>Learn more about KServe</span></a></p><div><hr></div><h1><strong>&#128206;Tech Briefs</strong></h1><ul><li><p><strong><a href="https://www.linkedin.com/pulse/mcps-november-2025-spec-long-running-ai-agents-apvbc/">MCP&#8217;s November 2025 Spec: Long-Running AI Agents Meet Very Real Security Issues</a>: </strong>Deep Engineering&#8217;s MCP analysis pairs the new 2025-11-25 Model Context Protocol spec&#8212;focused on long-running tasks and enterprise security&#8212;with fresh research on real-world MCP deployments that have already suffered exposed servers, critical vulnerabilities, and a 35-day cross-tenant data leak.</p></li><li><p><strong><a href="https://www.microsoft.com/en-us/research/blog/fara-7b-an-efficient-agentic-model-for-computer-use/">Fara-7B: On-device agentic model for computer use</a>:</strong> Microsoft Research introduces <strong>Fara-7B</strong>, a 7B-parameter &#8220;computer use agent&#8221; that drives the UI directly (mouse, keyboard, scrolling) instead of just answering in text. It runs locally on Copilot+ PCs and via open weights (MIT license) on Foundry and Hugging Face, targeting real-world web tasks like form filling, booking, and information lookup.</p></li><li><p><strong><a href="https://blog.vllm.ai/2025/11/30/vllm-omni.html">vLLM-Omni: Omni-modal model serving for text, image, audio, and video</a>:</strong> The vLLM team announces <strong>vLLM-Omni</strong>, an extension of vLLM for high-throughput <strong>omni-modality serving</strong>. It adds support for text, images, audio, and video, and goes beyond standard autoregressive LLMs to handle diffusion transformers and other parallel generation architectures.</p></li><li><p><strong><a href="https://www.anthropic.com/research/how-ai-is-transforming-work-at-anthropic">How AI is transforming work at Anthropic</a>:</strong> Anthropic publishes an internal study on how its own engineers use Claude and Claude Code: 132 engineers surveyed, 53 interviews, and usage data analysis. Engineers report using Claude in ~60% of their work with self-reported ~50% productivity gains and ~27% of Claude-assisted work representing tasks that simply wouldn&#8217;t have happened otherwise.</p></li><li><p><strong><a href="https://www.crowdstrike.com/en-us/press-releases/crowdstrike-secures-operationalizes-agentic-ai-aws/">CrowdStrike Operationalizes and Secures Agentic AI Workloads on AWS</a>:</strong> CrowdStrike becomes an inaugural <strong>AWS Agentic AI Specialization</strong> partner and describes how it is &#8220;operationalizing and securing agentic AI workloads on AWS.&#8221; The release outlines an &#8220;agentic SOC&#8221; (security operations center) where human analysts orchestrate fleets of security agents built on the CrowdStrike platform.</p></li></ul><div><hr></div><p>That&#8217;s all for today. Thank you for reading this issue of <em>Deep Engineering</em>. We&#8217;re just getting started, and your feedback will help shape what comes next. Do take a moment to <strong><a href="https://forms.microsoft.com/Pages/ResponsePage.aspx?id=Dmauk5VIE0SnXsWk3kKcDhvEtilalEBEqs_8ZEM_u5xUMEIxUDRTNTVTMjhXQVpWUDlXS0g2MzVJNy4u">fill out this short survey</a></strong> we run monthly&#8212;as a thank-you, we&#8217;ll add <strong>one Packt credit</strong> to your account, redeemable for any book of your choice.</p><p>We&#8217;ll be back next week with more expert-led content.</p><p>Stay awesome,<br>Divya Anne Selvaraj<br><em>Editor-in-Chief, Deep Engineering</em></p><div><hr></div><p>If your company is interested in reaching an audience of developers, software engineers, and tech decision makers, you may want to <strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong>.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post&quot;,&quot;text&quot;:&quot;Refer a friend&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post"><span>Refer a friend</span></a></p>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #28: Sam Keen on Making AI Agents Remember]]></title><description><![CDATA[How AI agents remember, forget, and relearn: from enterprise memory trilemmas to hybrid architectures and real-world tools.]]></description><link>https://deepengineering.substack.com/p/deep-engineering-28-sam-keen-on-making</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-28-sam-keen-on-making</guid><dc:creator><![CDATA[Divya Anne Selvaraj]]></dc:creator><pubDate>Thu, 27 Nov 2025 13:31:35 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/5402a04d-7b78-4a61-be99-bdf37d88fe5c_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2><strong><a href="https://www.eventbrite.com/e/ai-agent-frontiers-innovation-and-practical-applications-tickets-1972989383357?aff=deepeng">AI Agent Frontiers Summit 2025 (Online)</a></strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.com/e/ai-agent-frontiers-innovation-and-practical-applications-tickets-1972989383357?aff=deepeng" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pLAu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.png 424w, https://substackcdn.com/image/fetch/$s_!pLAu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.png 848w, https://substackcdn.com/image/fetch/$s_!pLAu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.png 1272w, https://substackcdn.com/image/fetch/$s_!pLAu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pLAu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.png" width="800" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83e79300-614f-42c9-b156-bf1f81c97c89_800x450.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:51002,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.eventbrite.com/e/ai-agent-frontiers-innovation-and-practical-applications-tickets-1972989383357?aff=deepeng&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/179343308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.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_!pLAu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.png 424w, https://substackcdn.com/image/fetch/$s_!pLAu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.png 848w, https://substackcdn.com/image/fetch/$s_!pLAu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.png 1272w, https://substackcdn.com/image/fetch/$s_!pLAu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.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>Join us on <strong>Dec 13, 2025 &#183; 9am&#8211;2pm ET / 6am&#8211;11am PT </strong>to discover how AG2, autonomous research agents, and real-world multi-agent systems are reshaping science, engineering, and AI-native companies. Get <strong>40%</strong> off with code <strong>DEEPENG40</strong> and secure your spot at the frontier of agentic AI. <strong><a href="https://www.linkedin.com/pulse/from-single-models-multi-agent-systems-why-ai-starting-vivic/">Why attend?</a></strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/ai-agent-frontiers-innovation-and-practical-applications-tickets-1972989383357?aff=deepeng&quot;,&quot;text&quot;:&quot;Unlock 40% off &#8211; Register with DEEPENG40&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.eventbrite.com/e/ai-agent-frontiers-innovation-and-practical-applications-tickets-1972989383357?aff=deepeng"><span>Unlock 40% off &#8211; Register with DEEPENG40</span></a></p><div><hr></div><p><strong>&#9997;&#65039;From the editor&#8217;s desk,</strong></p><p>According to McKinsey&#8217;s November 2025 <em><a href="https://www.mckinsey.com/~/media/mckinsey/business%20functions/quantumblack/our%20insights/the%20state%20of%20ai/november%202025/the-state-of-ai-2025-agents-innovation_cmyk-v1.pdf">State of AI</a></em> survey, 23% of enterprises say they&#8217;re already scaling at least one agentic AI system and another 39% are experimenting &#8212; yet in any given function fewer than 10% have agents at scale. At the same time, <a href="https://arxiv.org/abs/2509.26506">Salesforce&#8217;s SCUBA</a> (<em>Salesforce Computer-Use Benchmark for Agents</em>) &#8212; a 900-plus-task benchmark built from real CRM workflows &#8212; finds that leading open-source computer-use agents currently solve under <strong>5%</strong> of realistic enterprise tasks end-to-end, while even the best closed-source systems only reach around <strong>39%</strong> success, climbing to roughly 50% only when heavily augmented with human demonstrations.</p><p>If frontier models are already capable of solving 30&#8211;50% of complex workflows end-to-end in controlled benchmarks, <strong>why are so few enterprises able to get agents beyond narrow, local successes in production?</strong> One hypothesis, which we delve into in today&#8217;s issue is that <strong>the bottleneck is less about raw model capability and more about how we structure control and memory around these systems.</strong> </p><p>We have collaborated again with <strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Sam Keen&quot;,&quot;id&quot;:11641009,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a4c7deeb-ea40-40f3-8793-06bd0d441d29_500x500.jpeg&quot;,&quot;uuid&quot;:&quot;001f60f8-0546-483b-8b43-60a10be7a6db&quot;}" data-component-name="MentionToDOM"></span></strong> of <strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Altered Craft&quot;,&quot;id&quot;:5059820,&quot;type&quot;:&quot;pub&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:null,&quot;uuid&quot;:&quot;3188309a-eb35-4a63-bea9-c36038a772a7&quot;}" data-component-name="MentionToDOM"></span></strong> (AI Architect | ex: AWS, Lululemon, Nike | Author of <em><a href="https://www.packtpub.com/en-in/product/clean-architecture-with-python-9781836642886">Clean Architecture with Python</a></em>) to take us through moving from <strong>explicit, command-driven memory</strong> (<code>!remember</code>) to <strong><a href="https://deepengineering.substack.com/p/implicit-memory-systems-for-llms">implicit, LLM-managed memory</a></strong>, with the host application reduced to infrastructure hooks and hard security guardrails. It&#8217;s a concrete <strong>design pattern</strong> for delegated control &#8212; and a useful lens on what we want our next generation of agents to be allowed to decide on their own.</p><div><hr></div><p><em>Sponsored:</em></p><h4><strong><a href="https://www.messe-stuttgart.de/quantum-effects/en/">Quantum Effects 2026: Where Quantum Tech Meets Industry</a></strong></h4><p>Leading annual exhibition and conference for application-oriented quantum technology, uniting research, start-ups and business in <strong>Stuttgart</strong>, <strong>6&#8211;7 Oct 2026</strong>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.messe-stuttgart.de/quantum-effects/en/&quot;,&quot;text&quot;:&quot;Learn more&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.messe-stuttgart.de/quantum-effects/en/"><span>Learn more</span></a></p><div><hr></div><h1><strong>&#129504;Expert Insight</strong></h1><h2><strong>The Irony of Explicit Memory Controls by Sam Keen</strong></h2><p>In my previous post, <a href="https://alteredcraft.com/p/the-memory-illusion-teaching-your">The Memory Illusion</a>, I demonstrated that LLM memory doesn&#8217;t require vector databases or sophisticated architectures. It&#8217;s fundamentally just text management. We built a proof-of-concept in ~150 lines of Python that stored memories in a simple markdown file. It worked. But it had an amusing limitation: <strong>The user had to remember to tell the AI to remember</strong>.</p><p>The system required explicit commands. Want the LLM to store your name? Type <code>!remember &#8220;My name is Alex&#8221;</code>. Want it to know your project preferences? Another <code>!remember</code> command. The irony was sharp: we&#8217;d outsourced memory to technology, only to burden ourselves with managing that memory manually.</p><p>This wasn&#8217;t an oversight. It was a conscious design decision. Our application code controlled every memory operation through explicit if/else logic. The host app was the memory manager, and the LLM was simply our text processor.</p><p>But what if we handed that authority to the LLM itself?</p><p>This isn&#8217;t an incremental improvement or &#8220;v2&#8221; of the same approach. It&#8217;s a fundamentally different philosophy: <strong>trusting the LLM to autonomously manage its own memory</strong>. The technical implications are profound. We move from programming specific behaviors to setting high-level intentions. We shift from writing parsing logic to defining trust boundaries.</p><p>This approach enables the system to handle its own errors, organize information without explicit rules, and maintain its own memory hygiene. All without writing a single if/else statement.</p><h3><strong>The Explicit Approach: When Code Defines Every Decision</strong></h3><p>In my original POC, every memory operation required explicit user commands. Here&#8217;s what a typical session looked like:</p><pre><code><code>[You]: Hello, I&#8217;m working on a React app
[Claude]: Hi! What kind of React app are you building?
[You]: !remember I am building a React e-commerce application
[Claude]: [Memory saved]</code></code></pre><p>Here we see that required use of <code>!remember</code>. Adding to the user&#8217;s cognitive load alongside their actual work.</p><p>Behind the scenes, our code intercepted every message, parsed for commands, managed file operations, and reconstructed the prompt with memories for each interaction. We were the brain; the LLM was just processing text within our constraints.</p><p>This gave us complete control. We defined in code the exact format of the memory file. Want memories timestamped? We coded it. Want them categorized? More code. Every behavior was explicit, predictable, testable.</p><p>This is how we&#8217;ve built software applications since the inception of the craft. We write the logic, we define the control flow, we handle the edge cases. It&#8217;s comfortable, familiar territory. But when working with LLMs, this traditional approach means we&#8217;re not fully leveraging what makes them truly powerful: their ability to understand context and make intelligent decisions autonomously.</p><p>The LLM&#8217;s contextual intelligence sits idle while our code makes every decision. This intelligence was trained on billions of examples of how humans organize and retrieve information.</p><p>Most importantly, users had to remember the commands, creating friction in your app&#8217;s usability. Edge cases multiplied. The code grew ever larger as we handled more scenarios, more commands, more special cases. We were swimming upstream against the fundamental capabilities of modern LLMs.</p><h3><strong>The Implicit Approach: LLM as Autonomous Manager</strong></h3><p>The paradigm shift is what matters. We&#8217;re implementing a harness that grants the LLM autonomous authority. While this example uses the Claude Agent SDK, the pattern can be implemented with other SDKs or custom code. The key is delegation of decision-making, not specific tooling.</p><p>Let&#8217;s look at the skeleton of our memory tool implementation:<br>Full code found in the <strong><a href="https://github.com/AlteredCraft/implicit-memory-system-poc-article/tree/main">companion app</a></strong>:</p><pre><code><code># memory_tool.py 
class LocalFilesystemMemoryTool(BetaAbstractMemoryTool):
    &#8220;&#8221;&#8220;
    The LLM calls these methods autonomously based on context.
    We provide the infrastructure; Claude makes the decisions.
    &#8220;&#8221;&#8220;

    # The hook methods (memory tools) Claude is made aware of:

    @override
    def view(self, command):
        &#8220;&#8221;&#8220;Claude calls this to read memories or list files&#8221;&#8220;&#8221;
        # Validate path, read file/directory, return contents

    @override
    def create(self, command):
        &#8220;&#8221;&#8220;Claude calls this to create new memory files&#8221;&#8220;&#8221;
        # Validate path, write file, log operation

    @override
    def str_replace(self, command):
        &#8220;&#8221;&#8220;Claude calls this to update existing memories&#8221;&#8220;&#8221;
        # Find text, replace it, handle errors

    @override
    def insert(self, command):
        &#8220;&#8221;&#8220;Claude calls this to add lines to memories&#8221;&#8220;&#8221;
        # Insert at specific line number

    @override
    def delete(self, command):
        &#8220;&#8221;&#8220;Claude calls this to remove memories&#8221;&#8220;&#8221;
        # Delete files or directories

    @override
    def rename(self, command):
        &#8220;&#8221;&#8220;Claude calls this to reorganize memories&#8221;&#8220;&#8221;
        # Move or rename files</code></code></pre><p>The SDK provides these hook methods as the interface contract. We implement the file operations; Claude decides when to invoke them. No command parsing required from us.</p><p>The system prompt grants authority. Instead of telling Claude what to remember, we grant it authority:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UbAb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6971d63d-d3ad-4258-b6cb-10527eaf33ec_1144x276.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UbAb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6971d63d-d3ad-4258-b6cb-10527eaf33ec_1144x276.png 424w, https://substackcdn.com/image/fetch/$s_!UbAb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6971d63d-d3ad-4258-b6cb-10527eaf33ec_1144x276.png 848w, https://substackcdn.com/image/fetch/$s_!UbAb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6971d63d-d3ad-4258-b6cb-10527eaf33ec_1144x276.png 1272w, https://substackcdn.com/image/fetch/$s_!UbAb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6971d63d-d3ad-4258-b6cb-10527eaf33ec_1144x276.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UbAb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6971d63d-d3ad-4258-b6cb-10527eaf33ec_1144x276.png" width="1144" height="276" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6971d63d-d3ad-4258-b6cb-10527eaf33ec_1144x276.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:276,&quot;width&quot;:1144,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:54239,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://exploregamedev.substack.com/i/178638297?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6971d63d-d3ad-4258-b6cb-10527eaf33ec_1144x276.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_!UbAb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6971d63d-d3ad-4258-b6cb-10527eaf33ec_1144x276.png 424w, https://substackcdn.com/image/fetch/$s_!UbAb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6971d63d-d3ad-4258-b6cb-10527eaf33ec_1144x276.png 848w, https://substackcdn.com/image/fetch/$s_!UbAb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6971d63d-d3ad-4258-b6cb-10527eaf33ec_1144x276.png 1272w, https://substackcdn.com/image/fetch/$s_!UbAb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6971d63d-d3ad-4258-b6cb-10527eaf33ec_1144x276.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Concise system prompt</figcaption></figure></div><p>This shift is profound. We&#8217;re not programming behaviors anymore. We&#8217;re setting intentions and trusting Claude to execute them. The orchestration that once consumed lines of code now happens autonomously, guided by our system prompt.</p><p>This hands-off approach of providing just the infrastructure hooks while delegating all decision-making to the LLM may seem minimal. That&#8217;s precisely the point.</p><p>If you&#8217;ve spent years writing deterministic code, this delegation feels uncomfortable. You&#8217;re trusting the LLM to make architectural decisions you once controlled. That discomfort is valid. Let&#8217;s add some clarity to the real world implications of this approach.</p><h3><strong>Under the Hood: Autonomous Decisions in Action</strong></h3><p>Let&#8217;s trace what actually happens during a conversation. These examples come from real sessions the <a href="https://github.com/AlteredCraft/implicit-memory-system-poc/">companion app</a>&#8217;s trace and render diagram features.</p><h4><strong>Creating New Memory</strong></h4><pre><code><code>[You]: &#8220;I&#8217;m starting a new project. I&#8217;d like to build a web app for solo entrepreneurs
       to track their time and projects&#8221;

~Claude internally~: Creates new memory at path `project_solo_entrepreneur_app.txt`

[Claude]: &#8220;That&#8217;s an exciting project! A time and project tracker specifically for solo entrepreneurs ...&#8221;</code></code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IUyu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2edbd534-97ba-45a2-a53a-2194562e7a4e_3958x2438.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IUyu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2edbd534-97ba-45a2-a53a-2194562e7a4e_3958x2438.png 424w, https://substackcdn.com/image/fetch/$s_!IUyu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2edbd534-97ba-45a2-a53a-2194562e7a4e_3958x2438.png 848w, https://substackcdn.com/image/fetch/$s_!IUyu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2edbd534-97ba-45a2-a53a-2194562e7a4e_3958x2438.png 1272w, https://substackcdn.com/image/fetch/$s_!IUyu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2edbd534-97ba-45a2-a53a-2194562e7a4e_3958x2438.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IUyu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2edbd534-97ba-45a2-a53a-2194562e7a4e_3958x2438.png" width="1456" height="897" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2edbd534-97ba-45a2-a53a-2194562e7a4e_3958x2438.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:897,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:474522,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://exploregamedev.substack.com/i/178638297?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2edbd534-97ba-45a2-a53a-2194562e7a4e_3958x2438.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_!IUyu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2edbd534-97ba-45a2-a53a-2194562e7a4e_3958x2438.png 424w, https://substackcdn.com/image/fetch/$s_!IUyu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2edbd534-97ba-45a2-a53a-2194562e7a4e_3958x2438.png 848w, https://substackcdn.com/image/fetch/$s_!IUyu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2edbd534-97ba-45a2-a53a-2194562e7a4e_3958x2438.png 1272w, https://substackcdn.com/image/fetch/$s_!IUyu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2edbd534-97ba-45a2-a53a-2194562e7a4e_3958x2438.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The sequence of actions resulting in the creation of a new memory</figcaption></figure></div><p>You didn&#8217;t ask Claude to remember anything. Claude autonomously decided this information was worth preserving. It even made an architectural decision. It created a new project file rather than appending to a general profile. These are judgment calls the LLM now makes without any explicit rules from us beyond guidance in the system prompt.</p><h4><strong>Self-Correction</strong></h4><p>What happens when the LLM makes a mistake? In traditional systems, errors bubble up to users. Here&#8217;s how autonomous authority changes that dynamic:</p><pre><code><code>[You]: &#8220;Let&#8217;s add these MVP features: client profiles, task tracking, time logging&#8221;

~Claude internally~: Tries to update `solo_entrepreneur.txt`,
gets FileNotFoundError, checks memory folder, finds correct
filename `project_solo_entrepreneur_app.txt`, successfully updates

[Claude]: &#8220;Got it! I&#8217;ve noted those MVP features for your project.&#8221;</code></code></pre><p>Claude made a mistake with the filename, detected the error, diagnosed the issue, and self-corrected. All autonomously. No error messages to the user, no manual intervention required.</p><p>Our code deliberately re-raises exceptions to Claude rather than hiding them. This design turns errors into recovery opportunities. Claude receives the FileNotFoundError, understands what went wrong, and adapts its strategy. This resilience emerges naturally from giving the LLM authority rather than rigid rules.</p><h4><strong>Context-Aware Retrieval</strong></h4><p>The LLM decides <em>when</em> to check memories. No rules tell it to look for context on greetings, it just understands that&#8217;s useful:</p><pre><code><code>[You]: &#8220;hello&#8221;

~Claude internally~: Checks memory folder, finds and reads
`user_preferences.txt` containing &#8220;Vacationing at the beach
as of 2025-11-03&#8221;

[Claude]: &#8220;Hi! How are things going at the beach today?&#8221;</code></code></pre><p>Claude found relevant information and used it naturally in conversation.</p><p>These autonomous behaviors all emerge without us programming them explicitly. They include deciding on storage structure, recovering from errors, and retrieving contextual information.</p><div class="pullquote"><p><em><strong>We implement the hooks; Claude provides the intelligence.</strong></em></p></div><h3><strong>Code vs. Prompts: Where Control Lives</strong></h3><p>The shift to implicit memory doesn&#8217;t mean abandoning all control. It means being strategic about where that control resides. By examining what stays in code versus what moves to prompts, we can understand the architecture of trust in AI systems.</p><h4><strong>Hard Boundaries in Code</strong></h4><p>The <code>memory_tool.py</code> file shows what explicit choices we&#8217;re still making in code:</p><p><strong>Security Boundaries</strong>: The <code>_validate_path()</code> method explicitly ensures all operations stay within the <code>/memories</code> directory. This is hard-coded protection against path traversal attacks. It&#8217;s a security boundary we enforce in code, not through prompts.</p><p><strong>Logging &amp; Tracing</strong>: Every operation is explicitly logged for debugging and audit trails. We know every tool call Claude made to the memory system and what was read or written.</p><p>These coded constraints are examples of the guardrails we build to create a safe sandbox within which Claude operates autonomously. They&#8217;re guarantees enforced by our infrastructure, not suggestions in a prompt. In a production system you will expand on these guardrails until you have an acceptable risk level for your line of business.</p><h4><strong>The Power of Hooks: Beyond File Persistence</strong></h4><p>The SDK&#8217;s hook-based architecture (<strong><a href="https://github.com/anthropics/anthropic-sdk-python/blob/main/src/anthropic/lib/tools/_beta_builtin_memory_tool.py">BetaAbstractMemoryTool</a></strong>) enables remarkable flexibility. While our implementation uses a filesystem backend, you could implement these same hooks to:</p><ul><li><p>Store memories in a PostgreSQL database for multi-user applications</p></li><li><p>Use Redis for high-performance, distributed memory systems</p></li><li><p>Implement vector embeddings for semantic memory retrieval</p></li><li><p>Create hybrid systems that combine multiple storage backends</p></li></ul><p>The LLM doesn&#8217;t care about the backend. It just calls the hooks and trusts the implementation to handle the details. This separation of concerns enables powerful architectural flexibility while maintaining the same autonomous decision-making paradigm.</p><h4><strong>Guidance Through Prompts</strong></h4><p>Between the hard constraints of code and the full autonomy of the LLM lies prompt-based guidance. These are strong suggestions that shape behavior without guarantees:</p><pre><code><code>Keep your memory folder organized. Update existing files rather
than creating duplicates. Include metadata like dates when relevant.

When the memory folder exceeds 20 files, consolidate related
memories into broader topic files. Archive outdated information
with clear labels.</code></code></pre><p>This achieves implicit memory maintenance without explicit commands such as <code>!compact</code>. The LLM monitors its own memory health and performs housekeeping autonomously.</p><p>For more structure in the memory files, we could specify a frontmatter format for all new memories. This creates a sort of pseudo-schema to be leveraged by the LLM and our instrumentation code:</p><pre><code><code>All memory files should start with:
---
created: YYYY-MM-DD
relevance: current|archive
---</code></code></pre><p>This gives Claude a framework without removing its autonomy. It can still make contextual decisions within these guidelines.</p><h4><strong>Making the Implicit Explicit: Explanatory Mode</strong></h4><p>For demonstration purposes in the companion chat app, I added <strong>explanatory versions of the prompts</strong>. These make the implicit decision-making visible for learning:</p><pre><code><code># Directive in the system prompt

IMPORTANT: You are a teaching tool to help the user understand how you
process and utilize memories. After each natural conversational response,
add a concise summary of the memory actions you took and why.</code></code></pre><p>This produces illuminating results:</p><pre><code><code>[You]: &#8220;ok, I think I&#8217;ll set a goal to finish the outline today, by noon&#8221;

[Claude]: &#8220;Excellent goal! Finishing the outline by noon today (2025-11-10) gives ...&#8221;

---
Memory Actions Taken:
- Updated article status to reflect current goal: completing the outline by noon today (2025-11-10)
- This helps track progress and provides context if we discuss the article later today or in future sessions</code></code></pre><p>This explanatory mode becomes a powerful tool for understanding the LLM&#8217;s approach to memory and tuning your system prompts. It transforms the black box into a glass box, revealing the autonomous reasoning. Use it to validate that your prompt guidance is achieving the intended behaviors, then switch back to normal operation once satisfied.</p><p>The beauty of this division is that higher risk critical decisions stay in code where they&#8217;re guaranteed, while contextual decisions that benefit from intelligence and flexibility live in prompts. As models improve, the prompt-based behaviors get smarter automatically, while our security boundaries remain firm.</p><h3><strong>Conclusion: Learning from Scale</strong></h3><p>There&#8217;s a principle in AI research that keeps proving itself true. Systems built on general methods and scaled computation consistently outperform those with hand-crafted rules. Rich Sutton calls this <strong><a href="http://www.incompleteideas.net/IncIdeas/BitterLesson.html">&#8220;The Bitter Lesson&#8221;</a></strong>. Bitter because it means our clever, specialized solutions inevitably lose to simpler approaches that leverage raw intelligence.</p><p>The shift from explicit to implicit memory perfectly illustrates this principle. And it reveals what becomes possible when we stop fighting it.</p><h4><strong>The Power of Delegated Intelligence</strong></h4><p>We&#8217;ve seen the behaviors that emerge: autonomous memory creation, contextual reorganization, self-healing from errors. These weren&#8217;t programmed. They emerged from granting the LLM authority within safe boundaries.</p><p>This pattern extends beyond memory. It extends to complex decision-making in your application. Routing requests, organizing data, managing workflows. All can potentially be delegated to intelligence rather than encoded in logic. The infrastructure you build becomes a framework for capabilities you haven&#8217;t even imagined yet.</p><p><strong>Hybrid model</strong>: Codify workflows that need precise control as tools, then let the LLM autonomously decide when and how to use them. This gives you explicit control over critical operations while still leveraging the LLM&#8217;s decision-making for orchestration.</p><p><strong>As models improve, your system automatically gets better</strong>. When the next generation releases, you update one parameter. Your existing infrastructure suddenly makes smarter decisions. No refactoring. No new edge cases. The same hooks you implement today become more capable tomorrow.</p><h4><strong>Trust but Verify: Your Implementation Philosophy</strong></h4><p>This shift changes how we architect AI systems. Instead of writing decision trees, we adopt a &#8220;trust but verify&#8221; philosophy:</p><ul><li><p><strong>Trust</strong>: Grant the AI authority through system prompts</p></li><li><p><strong>Verify</strong>: Monitor the behaviors that emerge</p></li><li><p><strong>Guide</strong>: Adjust prompts based on observed patterns</p></li><li><p><strong>Iterate</strong>: Refine boundaries as models improve</p></li></ul><p>We&#8217;re reallocating the effort once spent on explicit control logic to validation and evaluation. Same total engineering effort, fundamentally better product. The interesting work moves from implementing specific behaviors to designing systems that exhibit emergent intelligence while maintaining appropriate guardrails.</p><h4><strong>The Path Forward</strong></h4><p>But here&#8217;s my challenge to you: <strong>run an experiment</strong>. The gap between what models can do and what we think they can do is often surprising. Many teams discover their explicit controls were solving problems the LLM could handle autonomously (and often better).</p><p><strong>You can test this today.</strong> The <strong><a href="https://github.com/AlteredCraft/implicit-memory-system-poc-article/tree/main">companion app</a></strong> provides a complete learning laboratory:</p><ul><li><p>Multiple prompting strategies for testing delegation</p></li><li><p>Full session tracing of every memory decision</p></li><li><p>Visual sequence diagrams exported from conversations</p></li><li><p>Real-time observation of memory folder organization</p></li></ul><p>Clone it. Run it. Watch what emerges. Add your own prompts. Test your assumptions. Even if the model isn&#8217;t ready for your use case today, you&#8217;ll have the framework when the next version drops.</p><p>The original memory post showed that LLM memory is just text management. This exploration reveals a deeper pattern: <strong>we&#8217;re moving from programming behaviors to orchestrating capabilities</strong>. The question isn&#8217;t whether to trust AI with decisions. It&#8217;s understanding which decisions, with what boundaries, and how to monitor the results.</p><p>The tools are ready. The models are capable. The only thing standing between you and implicit memory is running that first experiment.</p><div><hr></div><h3><strong>Want to explore further?</strong></h3><ul><li><p>Original approach: <a href="https://github.com/AlteredCraft/simple_llm_memory_poc">simple_llm_memory_poc</a></p></li><li><p>Implicit approach: <a href="https://github.com/AlteredCraft/implicit-memory-system-poc-article/tree/main">implicit-memory-system-poc</a></p></li><li><p>Claude Agent SDK: <a href="https://docs.claude.com/en/api/agent-sdk/overview">Documentation</a></p></li><li><p>Memory Tool: <a href="https://docs.claude.com/en/docs/agents-and-tools/tool-use/memory-tool">Official docs</a></p></li><li><p>Anthropic on Agents: <a href="https://www.anthropic.com/engineering/building-effective-agents">Building Effective Agents</a></p></li></ul><div><hr></div><h1><strong>&#128736;&#65039;Tool of the Week</strong></h1><p><strong><a href="https://mem0.ai/">Mem0 - Universal memory layer for AI agents</a></strong></p><p><strong>Mem0</strong> is an open-source &#8220;memory layer&#8221; that sits between your agents and their storage, turning unstructured conversation logs into structured, updatable memories that can be shared across tools, sessions, and even multiple agents. </p><p><strong>Highlights:</strong></p><ul><li><p><strong>Structured, editable memories instead of raw chat logs</strong> &#8211; Stores facts as atomic memory objects (with metadata like user, tags, timestamps) and supports explicit ADD / UPDATE / DELETE / NOOP operations..</p></li><li><p><strong>Backend-agnostic long-term storage</strong> &#8211; Works with multiple storage types (vector DBs, relational DBs, and other backends) behind a single API, so you can evolve from &#8220;just a vector store&#8221; to richer hybrid memory without changing your agent code.</p></li><li><p><strong>Designed for real agent ecosystems</strong> &#8211; Supports per-user / per-agent memories, shared memories across agents, and integrations into orchestration frameworks like AG2.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://mem0.ai/&quot;,&quot;text&quot;:&quot;Learn more about Mem0&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://mem0.ai/"><span>Learn more about Mem0</span></a></p><div><hr></div><h1><strong>&#128206;Tech Briefs</strong></h1><ul><li><p><strong><a href="https://www.leoniemonigatti.com/blog/memory-in-ai-agents.html">Making Sense of Memory in AI Agents</a>: </strong>Explains how AI agents handle memory&#8212;what it is, the main types and design patterns, how it&#8217;s implemented and managed across context and external storage, and why deciding what to remember, update, and forget is so challenging.</p></li><li><p><strong><a href="https://www.ibm.com/think/news/ai-inches-toward-more-human-kind-of-memory">AI inches toward a more human kind of memory</a>:</strong> Describes new research on making AI memory more human-like, focusing on Google&#8217;s &#8220;Nested Learning&#8221; and its prototype model Hope, which spread learning across fast and slow layers so models can update over time, improve long-context recall, and reduce forgetting&#8212;though challenges around stability, security, and consistency remain.</p></li><li><p><strong><a href="https://www.salesforce.com/blog/agentic-memory-agents/">Breaking the Memory Trilemma: How to Build AI Agents That Actually Remember</a>:</strong> Introduces the &#8220;<strong>memory trilemma</strong>&#8221; of accuracy, cost, and latency in AI agent memory, showing that naive long-context works best only for early interactions and then becomes too slow and expensive, and proposes a hybrid block-based extraction approach.</p></li><li><p><strong><a href="https://www.youtube.com/watch?v=qU83GzN4Q7c">AI has a memory problem, just like you do</a>: </strong>This podcast episode uses a Trackmania speedrunning AI as a jumping-off point to unpack what &#8220;learning&#8221; vs &#8220;context&#8221; really mean in modern AI&#8212;covering LLM training vs RAG, short-term vs long-term memory, personalization, security and the dream (and risk) of deeply contextual AI assistants.</p><div id="youtube2-qU83GzN4Q7c" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;qU83GzN4Q7c&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/qU83GzN4Q7c?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div></li><li><p><strong><a href="https://arxiv.org/abs/2509.26506">SCUBA: Salesforce Computer Use Benchmark</a>:</strong> SCUBA is a realistic benchmark from Salesforce that tests AI &#8220;computer-use&#8221; agents on 300 real-world Salesforce CRM. Experiments show that current agents, especially open-source and zero-shot ones, struggle badly on these enterprise workflows (often &lt;5% success), while browser-based agents with strong closed models and demonstrations can reach around 40&#8211;50% task success, highlighting both how hard real business software is and how much demos can boost agent performance.</p></li></ul><div><hr></div><p>That&#8217;s all for today. Thank you for reading this issue of <em>Deep Engineering</em>. We&#8217;re just getting started, and your feedback will help shape what comes next. Do take a moment to <strong><a href="https://forms.microsoft.com/Pages/ResponsePage.aspx?id=Dmauk5VIE0SnXsWk3kKcDhvEtilalEBEqs_8ZEM_u5xUNFAzU0pOSUQxTUhJS0U2NTJVOVczV05GNy4u">fill out this short survey</a></strong> we run monthly&#8212;as a thank-you, we&#8217;ll add <strong>one Packt credit</strong> to your account, redeemable for any book of your choice.</p><p>We&#8217;ll be back next week with more expert-led content.</p><p>Stay awesome,<br>Divya Anne Selvaraj<br><em>Editor-in-Chief, Deep Engineering</em></p><div><hr></div><p>If your company is interested in reaching an audience of developers, software engineers, and tech decision makers, you may want to <strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong>.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post&quot;,&quot;text&quot;:&quot;Refer a friend&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post"><span>Refer a friend</span></a></p>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #27: Amar Akshat on Agentic Architecture and Trustworthy AI]]></title><description><![CDATA[How Paysafe&#8217;s SVP of Architecture puts AI in the payments path&#8212;using cells, prompts-as-code, and confidence routing.]]></description><link>https://deepengineering.substack.com/p/deep-engineering-27-amar-akshat-on</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-27-amar-akshat-on</guid><dc:creator><![CDATA[Divya Anne Selvaraj]]></dc:creator><pubDate>Thu, 20 Nov 2025 13:37:37 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/1bc99d36-b06a-48b4-b7a7-c5a86c2e46db_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2><strong><a href="https://www.eventbrite.com/e/ai-agent-frontiers-innovation-and-practical-applications-tickets-1972989383357?aff=deepeng">Agentic AI Frontier Summit 2025 (Online): From Single Models to Autonomous Systems</a></strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.com/e/ai-agent-frontiers-innovation-and-practical-applications-tickets-1972989383357?aff=deepeng" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pLAu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.png 424w, https://substackcdn.com/image/fetch/$s_!pLAu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.png 848w, https://substackcdn.com/image/fetch/$s_!pLAu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.png 1272w, https://substackcdn.com/image/fetch/$s_!pLAu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pLAu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.png" width="800" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83e79300-614f-42c9-b156-bf1f81c97c89_800x450.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:51002,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.eventbrite.com/e/ai-agent-frontiers-innovation-and-practical-applications-tickets-1972989383357?aff=deepeng&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/179343308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.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_!pLAu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.png 424w, https://substackcdn.com/image/fetch/$s_!pLAu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.png 848w, https://substackcdn.com/image/fetch/$s_!pLAu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.png 1272w, https://substackcdn.com/image/fetch/$s_!pLAu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83e79300-614f-42c9-b156-bf1f81c97c89_800x450.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>Join us on <strong>Dec 13, 2025 &#183; 9am&#8211;2pm ET / 6am&#8211;11am PT </strong>to discover how AG2, autonomous research agents, and real-world multi-agent systems are reshaping science, engineering, and AI-native companies. Get <strong>40%</strong> off with code <strong>DEEPENG40</strong> and secure your spot at the frontier of agentic AI.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/ai-agent-frontiers-innovation-and-practical-applications-tickets-1972989383357?aff=deepeng&quot;,&quot;text&quot;:&quot;Unlock 40% off &#8211; Register with DEEPENG40&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eventbrite.com/e/ai-agent-frontiers-innovation-and-practical-applications-tickets-1972989383357?aff=deepeng"><span>Unlock 40% off &#8211; Register with DEEPENG40</span></a></p><div><hr></div><p><strong>&#9997;&#65039;From the editor&#8217;s desk,</strong></p><blockquote><p>&#8220;<em>You don&#8217;t need to train models; you need to design systems that can survive their uncertainty.&#8221;</em> &#8212; <strong><a href="https://www.linkedin.com/in/akshatam/">Amar Akshat</a>, SVP of Architecture</strong> at <strong>Paysafe Group</strong></p></blockquote><p>Last Friday, Bank of America told investors it will channel <strong><a href="https://www.reuters.com/business/finance/bofa-says-ai-is-boosting-bankers-productivity-revenue-2025-11-17/">$4 billion</a></strong><a href="https://www.reuters.com/business/finance/bofa-says-ai-is-boosting-bankers-productivity-revenue-2025-11-17/"> of its </a><strong><a href="https://www.reuters.com/business/finance/bofa-says-ai-is-boosting-bankers-productivity-revenue-2025-11-17/">$13 billion</a></strong><a href="https://www.reuters.com/business/finance/bofa-says-ai-is-boosting-bankers-productivity-revenue-2025-11-17/"> tech budget into AI</a>, with its &#8220;Erica&#8221; assistant already logging <strong>3 billion</strong> client interactions&#8212;work the bank says would otherwise require about <strong>11,000 employees</strong>. And nearly <strong><a href="https://www.emarketer.com/content/nearly-half-of-us-banks-have-rolled-genai-2025">47% of US banking decision-makers</a></strong> now say their institutions have fully rolled out generative AI&#8212;up from just 10% in 2023 </p><p>Against that backdrop, today&#8217;s issue narrows in on <strong>two core questions</strong> engineers and architects working in fintech and critical systems are grappling with:</p><ol><li><p><strong>How do you put AI in the critical path of payments and wallet flows </strong><em><strong>without</strong></em><strong> giving up determinism, auditability, and regulatory control?</strong></p></li><li><p><strong>What architectural patterns&#8212;cells, prompts-as-code, confidence routing, and vendor-neutral orchestration&#8212;can scale in production, instead of becoming yet another fragile AI sidecar?</strong></p></li></ol><p>To help answer these, we&#8217;ve collaborated with <strong>Amar Akshat</strong>, <strong>SVP of Architecture</strong> at <strong>Paysafe Group</strong> and author of the forthcoming book <em><strong>Decode the Compiler</strong></em> (Packt, 2026). At Paysafe, Amar leads AI-native modernization across payments, wallets, and compliance platforms. Earlier in his career, he helped shape the architectural foundations of <strong>Apple Pay</strong> and contributed to wallet and tokenization frameworks at Apple. Before that, at <strong>Morgan Stanley</strong>, he worked deep in build and integration systems and compiler workflows. His work sits exactly at the intersection our readers care about most: compiler-level thinking, distributed systems, and architecture as a living, observable system.</p><p>In today&#8217;s issue:</p><ul><li><p><strong>Feature Article &#8211; &#8220;Agentic Architecture: Designing AI Systems with Guardrails for Trust&#8221;: </strong>A focused synthesis of Amar&#8217;s approach to agentic architecture, including:</p><ul><li><p><strong>Cell-based boundaries</strong> </p></li><li><p>Treating <strong>prompts as code</strong> in CI/CD</p></li><li><p><strong>Confidence-based routing</strong> and &#8220;trust deltas&#8221;</p></li><li><p>Prompt manifests as &#8220;<strong>Dockerfiles for AI</strong>&#8221;</p></li></ul></li><li><p><strong><a href="https://deepengineering.substack.com/p/architecting-ai-native-platforms">Our complete interview with Amar Akshat</a>: </strong>You can watch the complete conversation below or read the refined Q&amp;A article <strong><a href="https://deepengineering.substack.com/p/architecting-ai-native-platforms">here</a></strong>.</p><div id="youtube2-R8xSq42-iOM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;R8xSq42-iOM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/R8xSq42-iOM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div></li></ul><p>Today&#8217;s issue is about making AI <em>structural</em> to your architecture while staying  inside the constraints that regulators, customers, and your own risk teams will require.</p><p>Let&#8217;s get started.</p><div><hr></div><h2><a href="https://www.eventbrite.com/e/ai-powered-development-with-cursor-workshop-tickets-1701001233479">AI-Powered Development with Cursor Online Workshop: Ship Production Apps Fast</a></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.com/e/ai-powered-development-with-cursor-workshop-tickets-1701001233479" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DBf_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec699b30-88db-4463-81b8-a842ff5d4ab7_800x420.png 424w, https://substackcdn.com/image/fetch/$s_!DBf_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec699b30-88db-4463-81b8-a842ff5d4ab7_800x420.png 848w, https://substackcdn.com/image/fetch/$s_!DBf_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec699b30-88db-4463-81b8-a842ff5d4ab7_800x420.png 1272w, https://substackcdn.com/image/fetch/$s_!DBf_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec699b30-88db-4463-81b8-a842ff5d4ab7_800x420.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DBf_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec699b30-88db-4463-81b8-a842ff5d4ab7_800x420.png" width="642" height="337.05" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ec699b30-88db-4463-81b8-a842ff5d4ab7_800x420.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:420,&quot;width&quot;:800,&quot;resizeWidth&quot;:642,&quot;bytes&quot;:65270,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.eventbrite.com/e/ai-powered-development-with-cursor-workshop-tickets-1701001233479&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/179343308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec699b30-88db-4463-81b8-a842ff5d4ab7_800x420.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_!DBf_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec699b30-88db-4463-81b8-a842ff5d4ab7_800x420.png 424w, https://substackcdn.com/image/fetch/$s_!DBf_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec699b30-88db-4463-81b8-a842ff5d4ab7_800x420.png 848w, https://substackcdn.com/image/fetch/$s_!DBf_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec699b30-88db-4463-81b8-a842ff5d4ab7_800x420.png 1272w, https://substackcdn.com/image/fetch/$s_!DBf_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec699b30-88db-4463-81b8-a842ff5d4ab7_800x420.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Nov 29, 2025</strong> &#183; <strong>8:30am&#8211;12:30pm ET / 5:30am&#8211;9:30am PT</strong> &#183; <strong>Online</strong>. Learn battle-tested Cursor workflows to ship production-grade full-stack apps faster. Get <strong>40%</strong> off with code <strong>CURSOR40</strong> and unlock <strong>2 free eBooks</strong> via this <strong><a href="https://forms.office.com/pages/responsepage.aspx?id=Dmauk5VIE0SnXsWk3kKcDoSlb0TbVbZDlnp1qAGce19UQkk0Mzk3RTNTRU1CVjUwOTc5VUVDRDJRVi4u&amp;route=shorturl">follow-up form</a></strong> <strong>after purchase</strong>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/ai-powered-development-with-cursor-workshop-tickets-1701001233479&quot;,&quot;text&quot;:&quot;Use CURSOR40 &#8211; Save 40%&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eventbrite.com/e/ai-powered-development-with-cursor-workshop-tickets-1701001233479"><span>Use CURSOR40 &#8211; Save 40%</span></a></p><div><hr></div><h1>Architecting AI-Native Systems: Agentic Platforms, Guardrails, and Practical Patterns with Amar Akshat</h1><p>According to <strong>Cloudera&#8217;s</strong> <a href="https://www.cloudera.com/blog/business/enterprise-ai-and-data-architecture-in-2025-from-experimentation-to-integration.html">The Evolution of AI: The State of Enterprise AI and Data Architecture</a> report, 96% of enterprises have at least some AI integrated into core processes (and 54% report &#8220;significant&#8221; integration). In domains like finance and payments, however, turning AI&#8217;s newfound capabilities into <strong>resilient, auditable, production-grade systems</strong> remains a formidable challenge. Architects must reconcile the <strong>non-deterministic</strong> nature of large models with the <strong>deterministic guarantees</strong> required for correctness, security, and compliance. </p><h2>AI in the Architectural Loop: Agentic Systems and Human Judgment</h2><p>Akshat&#8217;s current focus is what he calls: </p><blockquote><p><em>&#8220;agentic architecture&#8221; &#8211; &#8220;designing systems that can reason about themselves.&#8221; </em></p></blockquote><p>At Paysafe, this materializes in internal AI assistants (MCPX and ArchX) embedded into the development lifecycle. These agents codify architectural know-how: </p><blockquote><p><em>&#8220;We have trained internal AI agents to analyze architectural decision records (ADRs) and suggest reusable design patterns, effectively learning from the scars of every project before it,&#8221;</em> Akshat says.</p></blockquote><p>Human judgment, however, remains non-negotiable.</p><blockquote><p> <em>&#8220;Human judgment still owns context, risk appetite, regulatory nuance, and product trade-offs&#8230; The AI can propose, but humans prioritize.&#8221;</em> </p></blockquote><p>He offers a rule of thumb: </p><blockquote><p><em>&#8220;If a task mainly benefits from pattern recognition, that&#8217;s where putting AI in the loop makes sense. If it instead requires legal, financial, or compliance certainty, we keep it deterministic,&#8221;</em> Akshat notes.</p></blockquote><h2>Patterns for AI-Infused Architecture: Data, Guardrails, and &#8220;Cell&#8221; Boundaries</h2><p>Designing a reliable AI-heavy system starts with clear architectural boundaries and contracts. Akshat outlines three baseline elements his teams define up front:</p><ul><li><p><strong>Data Postulate:</strong> What is the current state of data that the AI can access?</p></li><li><p><strong>Guardrail Postulate:</strong> What is allowed or not allowed for the AI to do? &#8220;Do you want to completely ground the system? Do you want purely deterministic responses or use an existing LLM?,&#8221; he says.</p></li><li><p><strong>System Prompt Package:</strong> The system&#8217;s initial prompts and configuration &#8211; how the AI is instructed and what output format is expected. &#8220;For example, do you want more deterministic performance or do you want more accuracy? More transparency or more speed? These are the kinds of trade-offs that we encode into that system prompt package,&#8221; Akshat explains. His team creates a &#8220;prompt manifest&#8221; for each AI service &#8211; &#8220;like a Dockerfile for AI,&#8221; as Akshat describes it.</p></li></ul><p>With these elements in place, Akshat&#8217;s architecture uses a &#8220;cell-based&#8221; structure to isolate AI components. </p><blockquote><p><em>&#8220;All of our AI deployments are [like] cells &#8211; the tiniest unit of life &#8211; with their own regulatory nuances within themselves,&#8221; </em>he says.<em> &#8220;The critical path of analysis never leaves the cell boundary, and it only leaves the cell for audit and storage purposes. That keeps us safe &#8211; first of all &#8211; fast, and then deterministic.&#8221;</em></p></blockquote><h2>Guardrails and Reliability: Building Trust in Non-Deterministic Systems</h2><p>Even with good design patterns, AI systems can fail in unpredictable ways. Akshat&#8217;s approach is to engineer for reliability upfront, with multiple layers of guardrails and fallbacks:</p><ul><li><p><strong>Confidence-Based Routing:</strong> &#8220;<em>We route by confidence, really,</em>&#8221; Akshat says. If the model&#8217;s confidence is below a threshold, the system escalates to a deterministic path or human approval.</p></li><li><p><strong>Guardrails and Schema Validation:</strong> &#8220;<em>Prompt validation and schema enforcement&#8230; we use Pydantic plus semantics and sanity checks</em>,&#8221; he notes. &#8220;<em>A human only steps in for logic failures, not syntax,</em>&#8221; Akshat says.</p></li><li><p><strong>Continuous Testing for Drift:</strong> &#8220;<em>Basically, you have to look at AI prompts as code. That&#8217;s it</em>,&#8221; Akshat says.</p></li></ul><h2>Auditability and Traceability</h2><blockquote><p><em>&#8220;We log every inference as an &#8216;architectural replay,&#8217; which includes things like model ID, prompt version, and data snapshot,&#8221; </em>says Akshat.<em> </em>Auditability is<em> &#8220;incredibly important&#8221; </em>in payments because <em>&#8220;this is real data you&#8217;re dealing with&#8230; sometimes real transactions.&#8221;</em></p></blockquote><h2>Operationalizing AI Systems: Cost, Vendor Neutrality, and Skills</h2><ul><li><p><strong>Cost Control &#8211; &#8220;Cache, Batch, Distill&#8221;:</strong> Akshat&#8217;s mantra for cost-efficiency is: <em>&#8220;cache, batch, distill.&#8221;</em> Caching stores and reuses AI results wherever possible. Batching aggregates requests to process many at once. Distilling means using smaller, cheaper models for simpler tasks.</p></li><li><p><strong>Multi-Provider Strategy &#8211; Avoiding Lock-In:</strong> <em>&#8220;We try to stick to the protocols the market is standardizing on &#8211; for example, the chat completions APIs and MCP,&#8221;</em> Akshat says. His team built MCPX, an internal orchestrator that routes requests to different AI backends &#8211; OpenAI, Azure&#8217;s hosted models, Anthropic, or their own on-prem LLMs &#8211; all through the same interface.</p></li><li><p><strong>Skills and Process for the AI Era:</strong> In Akshat&#8217;s words, <em>&#8220;You don&#8217;t need to train models; you need to design systems that can survive their uncertainty.&#8221;</em> His organization introduced &#8220;<strong>AI Behavior Reviews</strong>&#8221; in their design reviews and has identified an &#8220;<strong>AI SRE</strong>&#8221; role &#8211; someone who can discern if an incident was caused by model drift versus a code bug.</p></li></ul><p>&#8220;<em>First principles still apply</em>,&#8221; Akshat reminds us. CAP theorem trade-offs, Twelve-Factor app practices, least privilege security &#8211; these remain the north star. AI can help augment the architect &#8211; even act as a junior designer or reviewer &#8211; but it doesn&#8217;t replace the need for sound architectural thinking.</p><div><hr></div><h1><strong>&#129504;Expert Insight</strong></h1><p>In the full Q&amp;A that follows Akshat walks through MCPX and ArchX, cell-based boundaries, prompts-as-code, confidence routing, and concrete payments and wallet scenarios, showing exactly how his teams operationalize these principles under real regulatory and reliability constraints.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;a9d9cba1-d867-4b1c-9c8d-90c8617ce6e3&quot;,&quot;caption&quot;:&quot;AI is already in the loop for writing code, reviewing changes, and even drafting architecture diagrams&#8212;but turning those capabilities into resilient, auditable, production-grade systems in regulated domains is still hard. In payments and financial services especially, architects have to reconcile non-deterministic models with deterministic guarantees ar&#8230;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Architecting AI-Native Platforms in the Real World: A Conversation with Amar Akshat&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:140662997,&quot;name&quot;:&quot;Divya Anne Selvaraj&quot;,&quot;bio&quot;:&quot;Content Engineer @Packt Software Engineering &amp; Architecture Vertical | Editor-in-Chief of Packt Deep Engineering and Packt PythonPro Newsletters&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/309a6f07-27a6-40bf-ab99-d042556d816b_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:41406772,&quot;name&quot;:&quot;Amar Akshat&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/037466c5-dccb-4b66-ac8b-e6d11d4c9c2a_144x144.png&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-11-19T10:52:24.424Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/R8xSq42-iOM&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/architecting-ai-native-platforms&quot;,&quot;section_name&quot;:&quot;Interviews&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:179322971,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h1><strong>&#128736;&#65039;Tool of the Week</strong></h1><p><strong><a href="https://www.guardrailsai.com/">Guardrails: Open-source guardrails for production LLM applications</a></strong></p><p>Guardrails is an open source Python framework for building reliable LLM applications by running configurable input/output guards around models and enforcing structured, validated outputs. </p><p><strong>Highlights:</strong></p><ul><li><p><strong>Production-focused architecture:</strong> Ships both a Python library and a standalone Guardrails Server, with first-class docs on deploying the client/server model to production environments (including AWS), so teams can centralize safety policies without redesigning their apps. </p></li><li><p><strong>Typed, structured outputs:</strong> Uses JSON/Pydantic-style schemas plus a library of reusable &#8220;validators&#8221; in Guardrails Hub to turn free-form LLM responses into strongly-typed, semantically validated outputs, with automatic correction and redaction when checks fail. </p></li><li><p><strong>Actively maintained and ecosystem-friendly:</strong> Apache-2.0 licensed, with multiple releases in 2025 (latest v0.6.7) and integrations for LangChain, LlamaIndex, and the OpenAI SDK, making it straightforward to drop into existing LLM stacks.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.guardrailsai.com/&quot;,&quot;text&quot;:&quot;Learn more about Guardrails&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.guardrailsai.com/"><span>Learn more about Guardrails</span></a></p><div><hr></div><h1><strong>&#128206;Tech Briefs</strong></h1><ul><li><p><strong><a href="https://ignite.microsoft.com/en-US/sessions/062de450-4fe4-417d-b7ad-98a94ca8c554">Innovation Session | Introducing Microsoft Agent 365: the Control Plane for AI Agents</a>:</strong> Focuses on how to onboard, train, and run autonomous AI agents securely at scale, with a strong emphasis on <strong><a href="https://www.microsoft.com/en-us/microsoft-365/blog/2025/11/18/microsoft-agent-365-the-control-plane-for-ai-agents/">Agent 365</a></strong> and Microsoft&#8217;s emerging &#8220;agent estate&#8221; model. It walks you through patterns for making agents adaptive to changing business needs while keeping them inside guardrails for data access, regulatory compliance, and threat protection, effectively positioning security/governance as part of the agent development lifecycle.</p></li><li><p><strong><a href="https://antigravity.google/blog/introducing-google-antigravity">Introducing Google Antigravity, a New Era in AI-Assisted Software Development</a>:</strong> Google has launched <strong>Antigravity</strong>, an AI-first IDE where multiple agents can directly operate the editor, terminal, and an embedded browser to write, test, and verify code autonomously. It&#8217;s built around Gemini 3 Pro but also supports other models like Claude Sonnet 4.5 and GPT-OSS, and introduces &#8220;Artifacts&#8221; (task lists, plans, screenshots, browser recordings) as first-class objects to audit and review what agents did. </p></li><li><p><strong><a href="https://github.blog/enterprise-software/collaboration/level-up-design-to-code-collaboration-with-githubs-open-source-annotation-toolkit/">GitHub Annotation Toolkit: open-source Figma library for accessible design handoff</a>: </strong>GitHub has open-sourced its <strong>Annotation Toolkit</strong>, a Figma library of structured annotations that lets designers embed intent and accessibility behavior directly into their design files, instead of scattering it across comments and Slack threads. Built by GitHub&#8217;s accessibility design team after they found that nearly half of their audit issues could have been prevented with better upfront documentation, the toolkit gives teams reusable &#8220;stamps&#8221; to describe interactivity, responsive behavior, and WCAG-aligned requirements, and ships with checklists, tutorials, and a GitHub repo for contributions.</p></li><li><p><strong><a href="https://www.salesforce.com/news/stories/everse-announcement/">Salesforce eVerse: Simulation environments for enterprise agents</a>: </strong><br>Salesforce AI Research has launched <strong>eVerse</strong>, a simulation environment for training voice and text agents using <strong>synthetic data generation, stress-testing, and reinforcement learning</strong> before they ever see real customers. The goal is to fix &#8220;jagged intelligence&#8221; in enterprise agents&#8212;brilliant on benchmark tasks but brittle with messy, real-world inputs like noisy calls, frustrated tone, or off-script requests&#8212;by running them through lifelike, high-variance scenarios at scale. </p></li><li><p><strong><a href="https://www.forbes.com/councils/forbestechcouncil/2025/11/20/how-mcp-gateways-can-mitigate-hidden-mcp-security-risks/">Forbes Tech Council &#8211; &#8220;How MCP Gateways Can Mitigate Hidden MCP Security Risks&#8221;</a>:</strong> Suman Sharma, Head of PAM Engineering at Ping Identity argues that <strong>MCP gateways</strong> (sitting between agents and servers) are becoming essential to defend against malicious or misconfigured MCP servers, focusing on policy enforcement, monitoring, and isolation to contain prompt injection and data-exfiltration risks.</p></li></ul><div><hr></div><p>That&#8217;s all for today. Thank you for reading this issue of <em>Deep Engineering</em>. We&#8217;re just getting started, and your feedback will help shape what comes next. Do take a moment to <strong><a href="https://forms.microsoft.com/Pages/ResponsePage.aspx?id=Dmauk5VIE0SnXsWk3kKcDhvEtilalEBEqs_8ZEM_u5xUNFAzU0pOSUQxTUhJS0U2NTJVOVczV05GNy4u">fill out this short survey</a></strong> we run monthly&#8212;as a thank-you, we&#8217;ll add <strong>one Packt credit</strong> to your account, redeemable for any book of your choice.</p><p>We&#8217;ll be back next week with more expert-led content.</p><p>Stay awesome,<br>Divya Anne Selvaraj<br><em>Editor-in-Chief, Deep Engineering</em></p><div><hr></div><p>If your company is interested in reaching an audience of developers, software engineers, and tech decision makers, you may want to <strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong>.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post&quot;,&quot;text&quot;:&quot;Refer a friend&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post"><span>Refer a friend</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #26: Pushing More Work into the Compiler with Ivo Balbaert]]></title><description><![CDATA[Mojo, metaprogramming, and squeezing more from your existing compute]]></description><link>https://deepengineering.substack.com/p/deep-engineering-26-pushing-more</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-26-pushing-more</guid><dc:creator><![CDATA[Divya Anne Selvaraj]]></dc:creator><pubDate>Thu, 13 Nov 2025 13:31:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/131c33f6-4cb9-4296-946a-9d3d3673d523_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3><a href="https://www.eventbrite.com/e/quantum-computing-for-leaders-tickets-1785432238889?aff=deepengineering">Quantum Computing for Leaders: 3-Part Masterclass</a></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.com/e/quantum-computing-for-leaders-tickets-1785432238889?aff=deepengineering" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qy7z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce65b69-bf69-4c3f-90be-41a315695dd5_2160x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Qy7z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce65b69-bf69-4c3f-90be-41a315695dd5_2160x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Qy7z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce65b69-bf69-4c3f-90be-41a315695dd5_2160x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Qy7z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce65b69-bf69-4c3f-90be-41a315695dd5_2160x1080.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qy7z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce65b69-bf69-4c3f-90be-41a315695dd5_2160x1080.jpeg" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8ce65b69-bf69-4c3f-90be-41a315695dd5_2160x1080.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:339881,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://www.eventbrite.com/e/quantum-computing-for-leaders-tickets-1785432238889?aff=deepengineering&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/178678583?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce65b69-bf69-4c3f-90be-41a315695dd5_2160x1080.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_!Qy7z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce65b69-bf69-4c3f-90be-41a315695dd5_2160x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Qy7z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce65b69-bf69-4c3f-90be-41a315695dd5_2160x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Qy7z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce65b69-bf69-4c3f-90be-41a315695dd5_2160x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Qy7z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce65b69-bf69-4c3f-90be-41a315695dd5_2160x1080.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></figure></div><p>Build your team&#8217;s quantum readiness in just three sessions. Join <strong>Robert Loredo</strong> and <strong>IBM </strong>guest experts <strong>Travis Scholten </strong>and<strong> John Buselli </strong>to learn how to evaluate quantum bets, design quantum-ready architecture, and secure your org against future quantum threats. Use code <strong>QUANTUM30</strong> for 30% off.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/quantum-computing-for-leaders-tickets-1785432238889?aff=deepengineering&quot;,&quot;text&quot;:&quot;Get you pass&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eventbrite.com/e/quantum-computing-for-leaders-tickets-1785432238889?aff=deepengineering"><span>Get you pass</span></a></p><div><hr></div><p><strong>&#9997;&#65039;From the editor&#8217;s desk,</strong></p><p>Anthropic just announced it plans to spend <strong><a href="https://www.reuters.com/technology/anthropic-invest-50-billion-build-data-centers-us-2025-11-12/">$50 billion</a></strong><a href="https://www.reuters.com/technology/anthropic-invest-50-billion-build-data-centers-us-2025-11-12/"> </a><strong><a href="https://www.reuters.com/technology/anthropic-invest-50-billion-build-data-centers-us-2025-11-12/">on custom AI data centers</a></strong> in Texas and New York, aiming to bring them online from 2026 onwards. That sits on top of a <a href="https://www.datacenterdynamics.com/en/news/us-data-center-capacity-leasing-in-q3-exceeds-entirety-of-2024/">Q3 report from TD Cowen</a> showing US hyperscalers leased <strong>7.4 GW</strong> of data center capacity in a single quarter&#8212;more than in all of 2024, with another ~10.2 GW in the pipeline. But, that much steel and silicon only pays off if the software running on it is fast, predictable, and safe to operate at scale.</p><p><strong>So, what does it look like in practice to push more work into the compiler so our systems run faster and fail less often in production?</strong> Our feature, <em>Compile-Time Code: Writing Faster, Safer Software Before It Runs</em>, looks at how C++26, Rust, Swift, Zig, and Mojo are each moving computation, code generation, and safety checks into the compile step&#8212;using metaprogramming, static analysis, and hardware-aware specialization to trade a bit more build time for significantly better runtime behavior.</p><p>We then turn to <strong>Ivo Balbaert&#8217;s <a href="https://deepengineering.substack.com/p/building-with-mojo-part-4-compile">fourth article</a> </strong>in our ongoing<strong> <a href="https://deepengineering.substack.com/s/mojo">Building with Mojo</a> </strong>series, which walks you through Mojo&#8217;s compile-time metaprogramming toolkit&#8212;aliases, <code>@parameter</code> loops and conditionals, constrained functions, parametric closures, and parameterized structs&#8212;and shows how to use these features.</p><p><strong>Balbaert</strong> is a lecturer in web programming and databases at CVO Antwerpen and a long-time Packt author of introductions to new languages&#8212;including Dart, Julia, Rust, and Red.</p><p>Rounding out today&#8217;s theme, our <strong>Tool of the Week</strong>, <a href="https://pyrefly.org/">Pyrefly</a>, shows the same &#8220;do more before it runs&#8221; philosophy applied to large Python codebases, and this issue&#8217;s <strong>Tech Briefs</strong> track the surrounding ecosystem shifts&#8212;from <a href="https://visualstudiomagazine.com/articles/2025/11/12/vs-code-1-106-adds-agent-hq-new-security-controls.aspx">VS Code&#8217;s new Agent HQ</a>, <a href="https://discourse.llvm.org/t/llvm-21-1-5-released/88776">LLVM 21.1.5</a>, and <a href="https://www.youtube.com/watch?v=lQHK61IDFH4">NVIDIA&#8217;s GTC DC keynote on AI factories and extreme co-design</a>, to <a href="https://www.kubernetes.dev/resources/release/">Kubernetes 1.35&#8217;s</a> release cycle and a recent Pragmatic Engineer <a href="https://newsletter.pragmaticengineer.com/p/from-swift-to-mojo-and-high-performance">conversation with Chris Lattner</a> on Swift, Mojo, and high-performance AI engineering.</p><p>Let&#8217;s get started!</p><div><hr></div><h3><a href="https://www.eventbrite.com/e/c-memory-management-masterclass-cohort-2-tickets-1962865917799?aff=deepeng">C++ Memory Management Masterclass (Cohort 2)</a></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.com/e/c-memory-management-masterclass-cohort-2-tickets-1962865917799?aff=deepeng" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YBKr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfdca4d0-7cf6-41e0-a311-0e29ad5a8143_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!YBKr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfdca4d0-7cf6-41e0-a311-0e29ad5a8143_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!YBKr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfdca4d0-7cf6-41e0-a311-0e29ad5a8143_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!YBKr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfdca4d0-7cf6-41e0-a311-0e29ad5a8143_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YBKr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfdca4d0-7cf6-41e0-a311-0e29ad5a8143_2160x1080.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cfdca4d0-7cf6-41e0-a311-0e29ad5a8143_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:522051,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.eventbrite.com/e/c-memory-management-masterclass-cohort-2-tickets-1962865917799?aff=deepeng&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/178678583?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfdca4d0-7cf6-41e0-a311-0e29ad5a8143_2160x1080.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_!YBKr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfdca4d0-7cf6-41e0-a311-0e29ad5a8143_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!YBKr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfdca4d0-7cf6-41e0-a311-0e29ad5a8143_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!YBKr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfdca4d0-7cf6-41e0-a311-0e29ad5a8143_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!YBKr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfdca4d0-7cf6-41e0-a311-0e29ad5a8143_2160x1080.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>Stop chasing C++ memory leaks. In this 2-day live masterclass, <strong>Patrice Roy</strong> (<strong>ISO C++ committee member</strong> and author of <em><strong>C++ Memory Management</strong></em>) walks you through RAII, smart pointers, and modern techniques to write fast, safe, leak-free C++ code.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/c-memory-management-masterclass-cohort-2-tickets-1962865917799?aff=deepeng&quot;,&quot;text&quot;:&quot;Reserve your seat&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eventbrite.com/e/c-memory-management-masterclass-cohort-2-tickets-1962865917799?aff=deepeng"><span>Reserve your seat</span></a></p><div><hr></div><h1><strong>Compile-Time Code: Writing Faster, Safer Software Before It Runs with Ivo Balbaert</strong></h1><p>In the last year, mainstream and emerging languages have pushed more work into the compiler, letting us &#8220;write code that writes code&#8221; before programs ever run. <a href="https://www.infoq.com/news/2025/06/cpp-26-feature-complete/">C++26 has frozen its feature set</a> with static reflection, so C++ code can inspect types at compile time and generate helpers such as enum-to-string mappers or bindings to other languages.</p><p><a href="https://blog.duolingo.com/ios-mvvm-swift-macros/">Swift&#8217;s macro system</a> lets engineers attach tags to existing code that generate new code at compile time by operating on the abstract syntax tree, and the generated code is fully integrated into the compiler so it is treated exactly like manually written Swift and benefits from the same optimizations. <strong>Mojo</strong>, a new language for AI systems, goes further by allowing many functions and loops to run at compile time via aliases and <code>@parameter</code> decorators, in <a href="https://verdagon.dev/blog/impossible-optimization">a style similar to Zig&#8217;s </a><code>comptime</code>. Across these ecosystems, the goal is the same: shift work into the compiler so the resulting binaries are faster, safer, and more predictable.</p><h3>Performance Wins: Code Generation Ahead of Time</h3><p>The most visible payoff is raw speed. In Mojo, any expression bound to an alias is evaluated at compile time, so the final binary just reads a constant instead of recomputing a value. For example, the following Mojo snippet from Balbaert&#8217;s article shows how an alias precomputes a sum at compile time, while the same function can still be called at runtime:</p><pre><code>alias SUM = sum(10, 20, 2)

fn sum(lb: Int, ub: Int, step: Int) -&gt; Int:
    var total = 0
    for i in range(lb, ub, step):
        total += i
    return total

fn main():
    print(SUM)           # =&gt; 70
    print(sum(10, 20, 2))  # =&gt; 70</code></pre><p>In his recent &#8220;impossible optimization,&#8221; <a href="https://verdagon.dev/blog/impossible-optimization">Evan Ovadia</a> who is part of the Mojo Compiler Team shows a regex engine that parses a pattern and unrolls it entirely during compilation, generating a specialized matcher for each regex node. The compiler emits roughly twenty-eight times more inlined code, but the resulting email-matching regex runs about ten times faster than a conventional implementation and within roughly three percent of a hand-tuned C version . Metaprogramming effectively turns a generic algorithm into bespoke machine code.</p><p>Rust and Swift are converging on similar patterns. Rust and Swift are converging on similar patterns. Recent <a href="https://www.opensourceforu.com/2025/07/macros-in-rust-vs-lisp-a-comparison-of-their-metaprogramming-power/">overviews</a> describe Rust&#8217;s macro system as &#8220;structural&#8221; metaprogramming that operates on the abstract syntax tree rather than on raw text, integrating closely with the compiler&#8217;s hygiene and type-checking so that <a href="https://calmops.com/rust/procedural-macros-in-rust/">macros</a> transform code safely at compile time. Swift macros, meanwhile, are described by <a href="https://blog.duolingo.com/ios-mvvm-swift-macros/">Duolingo&#8217;s iOS architecture team</a> as tags attached to declarations that operate on the Swift AST and generate additional code during compilation, with the expanded code treated exactly like handwritten Swift and benefiting from the same type checking and optimizations. In all three languages, the compiler effectively becomes a code generator that specializes logic ahead of time instead of relying on runtime indirection.</p><p>The trade-off is build cost. In the regex case study, the Mojo compiler had to generate around five times more code and spent noticeably longer compiling to achieve the speed-up. Rust developers report similar pain: the <a href="https://blog.rust-lang.org/2025/09/10/rust-compiler-performance-survey-2025-results/">2025 Rust compiler performance survey</a> highlights procedural macros, deep generic code, and large dependency graphs as key reasons builds feel slow, and the compiler team has prioritized changes to reduce this overhead. Practically, aggressive metaprogramming needs to be reserved for performance-critical hotspots where the runtime gains justify extra compile time.</p><h3>Safety by Static Analysis: Fewer Bugs at Runtime</h3><p>Compile-time mechanisms are also being used to strengthen correctness. Rust&#8217;s borrow checker uses static analysis to enforce ownership and borrowing rules before the program runs. As Sunil Kumar, Principle Solution Architect at ailoitte <a href="https://www.ailoitte.com/blog/rust-memory-safety/">explains</a>, each value has a single owner and, when the owner goes out of scope, Rust frees the memory automatically, eliminating classes of bugs such as dangling pointers and double frees. The compiler also enforces that code can have many readers or exactly one writer, but never both at the same time, which prevents data races at compile time. These checks are purely static, so once the code passes, it runs at native speed with no runtime overhead.</p><p>Mojo adopts a similar philosophy, combining high-level syntax with Rust-like safety and systems-level control, and leaning on compile-time analysis to drive memory management rather than relying on a garbage collector. Tooling follows the same pattern. <a href="https://engineering.fb.com/2025/05/15/developer-tools/open-sourcing-pyrefly-a-faster-python-type-checker-written-in-rust/">Meta&#8217;s Pyrefly</a>, a new open-source Python type checker written in Rust, is designed to provide fast, incremental analysis so very large Python codebases can catch errors before runtime while still giving near-instant feedback in the editor. Together, these trends show static analysis moving into the compilation and tooling pipeline, improving safety without sacrificing performance.</p><h3>One Language, Many Targets</h3><p>Modern systems increasingly span CPUs, GPUs, and accelerators, and compile-time metaprogramming is becoming a key technique for targeting all of them efficiently. <a href="https://www.linkedin.com/pulse/automated-equality-checks-c-reflection-c26-daniel-lemire-pwjie/">C++26&#8217;s static reflection</a> is explicitly described as a building block for generating bindings to other languages and synthesizing code that adapts to platform-specific details at build time. Zig&#8217;s <code>comptime</code>, as Aleksey Kladov <a href="https://matklad.github.io/2025/04/19/things-zig-comptime-wont-do.html">shows</a>, supports partial evaluation and specialisation: marking a parameter as <code>comptime</code> forces the compiler to evaluate that dimension up front, leaving only the truly dynamic parts for runtime and enabling patterns like specialised serializers without separate code-generation steps. Mojo, built on MLIR and LLVM, is designed so that the same high-level kernel can be compiled into different low-level representations depending on the target CPU or accelerator, with loop unrolling and layout choices made at compile time rather than in hand-written device code. In each case, compile-time facilities let one codebase stretch across architectures while still producing optimized binaries.</p><h3>Metaprogramming as a Design Tool</h3><p>Compile-time metaprogramming is moving from niche trick to first-class design tool. Teams no longer have to choose strictly between productivity and performance; with the right language support, they can write generic, high-level code and let the compiler specialize it. </p><p>The <strong>emerging best practice</strong> is to treat compile-time facilities as a scarce, high-leverage resource: use them to pre-compute expensive decisions, encode invariants, and adapt to hardware, while keeping a close eye on build-time cost and complexity. <strong>For teams evaluating Mojo alongside Rust, Swift, C++, and Zig:</strong> structured macros, strong static analysis, and disciplined compile-time execution can deliver faster, safer systems without degenerating into unmaintainable metaprogramming hacks.</p><div><hr></div><h1><strong>&#129504;Expert Insight</strong></h1><p>If you want to move from the architectural view back down into concrete syntax, the following article by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Ivo Balbaert&quot;,&quot;id&quot;:121154596,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/33f3918d-d13b-4a6a-9761-1d2b5353c581_144x144.png&quot;,&quot;uuid&quot;:&quot;751ad9c0-cfe2-43da-8fca-12aefa522ed8&quot;}" data-component-name="MentionToDOM"></span> walks you through Mojo&#8217;s compile-time model step by step&#8212;from aliases and comptime execution to parametric functions, decorators like <code>@parameter for</code> and <code>@parameter if</code>, constraints, and closures. It&#8217;s a focused tour of the language features behind the trends discussed above, illustrated with small, targeted examples.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;066b3f7f-1ea2-4aa6-be3c-7b97586e70cf&quot;,&quot;caption&quot;:&quot;This article is Part 4 of our ongoing series on the Mojo programming language. Part 1 introduced Mojo&#8217;s origins, design goals, and its promise to unify Pythonic ergonomics with systems-level performance.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;md&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Building with Mojo (Part 4): Compile-Time Metaprogramming in Mojo&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:121154596,&quot;name&quot;:&quot;Ivo Balbaert&quot;,&quot;bio&quot;:&quot;I worked for 30 years in the software industry as a developer, project manager and programming teacher. Emerging programming languages have my main interest. I authored a number of books (Go, Rust, Julia and others) for Packt and other publishers. &quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/33f3918d-d13b-4a6a-9761-1d2b5353c581_144x144.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-11-12T08:40:30.383Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0a36e862-d55c-4c0c-b4b3-f1621b2cdc2b_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/building-with-mojo-part-4-compile&quot;,&quot;section_name&quot;:&quot;Building with Mojo&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:178671265,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:1,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h1><strong>&#128736;&#65039;Tool of the Week</strong></h1><p><strong><a href="https://pyrefly.org/">Pyrefly: Meta&#8217;s high-performance Python type checker</a></strong></p><p>Pyrefly is an open source, Rust-based type checker and language server for Python. It powers lightning-fast IDE feedback and static typing over very large codebases and is intended to replace their previous internal checker in production. </p><p><strong>Highlights:</strong></p><ul><li><p><strong>Scale + speed:</strong> Pyrefly can type-check over <strong>1.85 million lines of code per second</strong> on Meta&#8217;s infra, and the entire Instagram codebase in <strong>13.4 seconds</strong> vs 100+ seconds with the previous checker. </p></li><li><p><strong>&#8220;Invisible&#8221; safety:</strong> Designed for instant IDE feedback, so teams can push more correctness checks earlier without slowing down developers. </p></li><li><p><strong>Gradual adoption:</strong> It supports large, partially-typed Python codebases and can infer many types automatically, making it realistic for real-world migration rather than greenfield only.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://pyrefly.org/&quot;,&quot;text&quot;:&quot;Learn more about Pyrefly&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://pyrefly.org/"><span>Learn more about Pyrefly</span></a></p><div><hr></div><h1><strong>&#128206;Tech Briefs</strong></h1><ul><li><p><strong><a href="https://visualstudiomagazine.com/articles/2025/11/12/vs-code-1-106-adds-agent-hq-new-security-controls.aspx">VS Code 1.106&#8212;Agent HQ and MCP Security Controls for AI-Heavy Workflows</a>:</strong> The October 2025 Visual Studio Code release doubles down on AI-assisted development with a new &#8220;Agent HQ&#8221; experience that centralizes Copilot and other agents into a single dashboard, plus improved Model Context Protocol (MCP) authentication and governance. Teams can define custom agents, control which MCP servers are allowed in a workspace, and require pre-/post-approval for tools, which matters if you&#8217;re letting agents run commands or touch internal systems. </p></li><li><p><strong><a href="https://discourse.llvm.org/t/llvm-21-1-5-released/88776">LLVM 21.1.5&#8212;Toolchain Stability for Compilers, Runtimes, and Browsers</a>:</strong> </p><p>This is a point update but relevant for anyone shipping code on top of LLVM (including Clang, lld, libc++, MLIR, and a long tail of language runtimes and tools). The release bundles targeted fixes across x86 codegen, sanitizers, linkers, and build infrastructure, and is already being packaged by major distros like Arch Linux. </p></li><li><p><strong><a href="https://www.youtube.com/watch?v=lQHK61IDFH4">NVIDIA GTC Washington, D.C. Keynote with CEO Jensen Huang</a>:</strong> NVIDIA&#8217;s GTC DC keynote frames AI and accelerated computing as <strong>America&#8217;s &#8220;next Apollo moment,&#8221;</strong> arguing that <strong>GPUs</strong>, <strong>AI factories</strong>, and <strong>extreme co-design</strong> across chips, systems, software, and data centers are the new essential infrastructure for science, industry, and national competitiveness. Jensen Huang walks through how this model underpins everything from 6G networks and quantum error correction to humanoid robots, autonomous vehicles, and U.S. re-industrialization via NVIDIA&#8217;s expanding hardware, software, and partner ecosystem.</p><div id="youtube2-lQHK61IDFH4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;lQHK61IDFH4&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/lQHK61IDFH4?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div></li><li><p><strong><a href="https://www.kubernetes.dev/resources/release/">Kubernetes v1.35 Release Cycle&#8212;Alpha Builds Landing Ahead of December GA</a>:</strong> Kubernetes v1.35 is now deep into its release cycle, with alpha.3 tagged in late October and code freeze scheduled for early November ahead of a planned GA on 17 December 2025. The release team&#8217;s schedule highlights ongoing work on enhancements, production-readiness reviews, and test freezes, while the alpha builds are already available via the main kubernetes/kubernetes <a href="https://github.com/kubernetes/kubernetes/releases">GitHub releases page</a>.</p></li><li><p><strong><a href="https://newsletter.pragmaticengineer.com/p/from-swift-to-mojo-and-high-performance">From Swift to Mojo and High-Performance AI Engineering (podcast)</a>: </strong>Gergely Orosz sits down with Chris Lattner (LLVM, Swift, Mojo) to unpack how language and compiler design can lower the barrier to AI development while still hitting systems-level performance. The episode covers why Lattner thinks readability matters more than &#8220;AI-native&#8221; languages in an LLM world, how Mojo layers Python-like ergonomics on top of features like compressed floating-point formats and compile-time metaprogramming.</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:177931485,&quot;url&quot;:&quot;https://newsletter.pragmaticengineer.com/p/from-swift-to-mojo-and-high-performance&quot;,&quot;publication_id&quot;:458709,&quot;publication_name&quot;:&quot;The Pragmatic Engineer&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!6TJt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5ecbf7ac-260b-423b-8493-26783bf01f06_600x600.png&quot;,&quot;title&quot;:&quot;From Swift to Mojo and high-performance AI Engineering with Chris Lattner&quot;,&quot;truncated_body_text&quot;:&quot;Stream the latest episode&quot;,&quot;date&quot;:&quot;2025-11-05T16:02:14.664Z&quot;,&quot;like_count&quot;:73,&quot;comment_count&quot;:0,&quot;bylines&quot;:[{&quot;id&quot;:30107029,&quot;name&quot;:&quot;Gergely Orosz&quot;,&quot;handle&quot;:&quot;pragmaticengineer&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58fed27c-f331-4ff3-ba47-135c5a0be0ba_400x400.png&quot;,&quot;bio&quot;:&quot;Writing The Pragmatic Engineer. Previously at Uber, Skype, Microsoft. Author of The Software Engineer's Guidebook.&quot;,&quot;profile_set_up_at&quot;:&quot;2021-09-06T16:08:47.417Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-03-04T20:04:29.381Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:385140,&quot;user_id&quot;:30107029,&quot;publication_id&quot;:458709,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:458709,&quot;name&quot;:&quot;The Pragmatic Engineer&quot;,&quot;subdomain&quot;:&quot;pragmaticengineer&quot;,&quot;custom_domain&quot;:&quot;newsletter.pragmaticengineer.com&quot;,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Big Tech and startups, from the inside. Highly relevant for software engineers and managers, useful for those working in tech.&quot;,&quot;logo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/5ecbf7ac-260b-423b-8493-26783bf01f06_600x600.png&quot;,&quot;author_id&quot;:30107029,&quot;primary_user_id&quot;:30107029,&quot;theme_var_background_pop&quot;:&quot;#FF6B00&quot;,&quot;created_at&quot;:&quot;2021-08-25T13:08:12.798Z&quot;,&quot;email_from_name&quot;:&quot;The Pragmatic Engineer&quot;,&quot;copyright&quot;:&quot;Gergely Orosz&quot;,&quot;founding_plan_name&quot;:null,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:null,&quot;is_personal_mode&quot;:false}}],&quot;twitter_screen_name&quot;:&quot;GergelyOrosz&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:10000,&quot;status&quot;:{&quot;bestsellerTier&quot;:10000,&quot;subscriberTier&quot;:1,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:10000},&quot;paidPublicationIds&quot;:[817132,256838,10845,1282781],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;podcast&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://newsletter.pragmaticengineer.com/p/from-swift-to-mojo-and-high-performance?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!6TJt!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5ecbf7ac-260b-423b-8493-26783bf01f06_600x600.png" loading="lazy"><span class="embedded-post-publication-name">The Pragmatic Engineer</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title-icon"><svg width="19" height="19" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
  <path d="M3 18V12C3 9.61305 3.94821 7.32387 5.63604 5.63604C7.32387 3.94821 9.61305 3 12 3C14.3869 3 16.6761 3.94821 18.364 5.63604C20.0518 7.32387 21 9.61305 21 12V18" stroke-linecap="round" stroke-linejoin="round"></path>
  <path d="M21 19C21 19.5304 20.7893 20.0391 20.4142 20.4142C20.0391 20.7893 19.5304 21 19 21H18C17.4696 21 16.9609 20.7893 16.5858 20.4142C16.2107 20.0391 16 19.5304 16 19V16C16 15.4696 16.2107 14.9609 16.5858 14.5858C16.9609 14.2107 17.4696 14 18 14H21V19ZM3 19C3 19.5304 3.21071 20.0391 3.58579 20.4142C3.96086 20.7893 4.46957 21 5 21H6C6.53043 21 7.03914 20.7893 7.41421 20.4142C7.78929 20.0391 8 19.5304 8 19V16C8 15.4696 7.78929 14.9609 7.41421 14.5858C7.03914 14.2107 6.53043 14 6 14H3V19Z" stroke-linecap="round" stroke-linejoin="round"></path>
</svg></div><div class="embedded-post-title">From Swift to Mojo and high-performance AI Engineering with Chris Lattner</div></div><div class="embedded-post-body">Stream the latest episode&#8230;</div><div class="embedded-post-cta-wrapper"><div class="embedded-post-cta-icon"><svg width="32" height="32" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
  <path classname="inner-triangle" d="M10 8L16 12L10 16V8Z" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg></div><span class="embedded-post-cta">Listen now</span></div><div class="embedded-post-meta">5 months ago &#183; 73 likes &#183; Gergely Orosz</div></a></div></li></ul><div><hr></div><p>That&#8217;s all for today. Thank you for reading this issue of <em>Deep Engineering</em>. We&#8217;re just getting started, and your feedback will help shape what comes next. Do take a moment to <strong><a href="https://forms.microsoft.com/Pages/ResponsePage.aspx?id=Dmauk5VIE0SnXsWk3kKcDhvEtilalEBEqs_8ZEM_u5xUNFAzU0pOSUQxTUhJS0U2NTJVOVczV05GNy4u">fill out this short survey</a></strong> we run monthly&#8212;as a thank-you, we&#8217;ll add <strong>one Packt credit</strong> to your account, redeemable for any book of your choice.</p><p>We&#8217;ll be back next week with more expert-led content.</p><p>Stay awesome,<br>Divya Anne Selvaraj<br><em>Editor-in-Chief, Deep Engineering</em></p><div><hr></div><p>If your company is interested in reaching an audience of developers, software engineers, and tech decision makers, you may want to <strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong>.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post&quot;,&quot;text&quot;:&quot;Refer a friend&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post"><span>Refer a friend</span></a></p>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #25: Ayodeji Ayodele on Leading with GitHub—Collaboration, CI/CD, and AI]]></title><description><![CDATA[From branch protections to dependable AI: practical steps to ship faster, safer, and smarter with GitHub.]]></description><link>https://deepengineering.substack.com/p/deep-engineering-25-ayodeji-ayodele</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-25-ayodeji-ayodele</guid><dc:creator><![CDATA[Divya Anne Selvaraj]]></dc:creator><pubDate>Thu, 06 Nov 2025 13:31:11 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/0303ff86-68df-4536-b1f2-14fd83ca594d_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3><strong><a href="https://www.eventbrite.com/e/systems-engineering-masterclass-tickets-1699878515399?aff=NL">Systems Engineering Masterclass: SysML 2 in a Day</a></strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://Sysengineeringclass.eventbrite.com/?aff=NL" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BNyE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa2c886-1362-4944-b2f8-6d4b43d71aac_2160x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!BNyE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa2c886-1362-4944-b2f8-6d4b43d71aac_2160x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!BNyE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa2c886-1362-4944-b2f8-6d4b43d71aac_2160x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!BNyE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa2c886-1362-4944-b2f8-6d4b43d71aac_2160x1080.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BNyE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa2c886-1362-4944-b2f8-6d4b43d71aac_2160x1080.jpeg" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9fa2c886-1362-4944-b2f8-6d4b43d71aac_2160x1080.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:260262,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://Sysengineeringclass.eventbrite.com/?aff=NL&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/178161791?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa2c886-1362-4944-b2f8-6d4b43d71aac_2160x1080.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_!BNyE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa2c886-1362-4944-b2f8-6d4b43d71aac_2160x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!BNyE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa2c886-1362-4944-b2f8-6d4b43d71aac_2160x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!BNyE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa2c886-1362-4944-b2f8-6d4b43d71aac_2160x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!BNyE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa2c886-1362-4944-b2f8-6d4b43d71aac_2160x1080.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></figure></div><p><strong>Just two days left!</strong> In <strong>3 high-energy hours</strong>, <strong>Dr. Bruce Douglass</strong> and <strong>Brian Moberley</strong> fast-track your shift to SysML 2&#8212;live demos, toolchain patterns, Q&amp;A, and a certificate. Online this Saturday. I hope to see you there.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/systems-engineering-masterclass-tickets-1699878515399?aff=NL&quot;,&quot;text&quot;:&quot;Last few seats remaining &#8212; book now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eventbrite.com/e/systems-engineering-masterclass-tickets-1699878515399?aff=NL"><span>Last few seats remaining &#8212; book now</span></a></p><div><hr></div><p><strong>&#9997;&#65039;</strong><em><strong>From the editor&#8217;s desk,</strong></em></p><p><strong><a href="https://www.linkedin.com/pulse/octoverse-2025-typescript-takes-1-ai-reshapes-stack-p3hac/">Octoverse 2025</a></strong> just set a new baseline for how fast teams can move: developers merged <strong>~43.2 million pull requests per month</strong> this year (up ~23% year over year), closed a record <strong>5.5 million issues in July</strong>, and, for the first time, <strong>TypeScript</strong> became the most-used language on GitHub&#8212;clear signals of tighter feedback loops, heavier automation, and a shift toward typed, AI-assisted workflows.</p><p><strong>This issue asks&#8212;and answers&#8212;four core questions:</strong></p><ol><li><p>How do you convert that velocity into <strong>governed, repeatable delivery</strong>?</p></li><li><p>What are the <strong>least-regret guardrails</strong> for CI/CD and software supply chain security on GitHub right now?</p></li><li><p>How do you use <strong>Copilot and emerging agents responsibly</strong>&#8212;accelerating output while maintaining review rigor and code quality?</p></li><li><p>Which collaboration patterns&#8212;<strong>inner source, docs-first habits, rule sets</strong>&#8212;have the most impact in busy repos?</p></li></ol><p>To find the answers, we sat down with <strong><a href="https://www.linkedin.com/in/ayodeji-ayodele/">Ayodeji (&#8220;Ayo&#8221;) Ayodele</a></strong>&#8212;<strong>Senior Customer Success Architect at GitHub</strong>, DevOps evangelist, and Agile coach with <strong>18+ years</strong> across Financial Services, Tech, FMCG, Manufacturing, and the Public Sector. Ayo partners with CIOs and engineering leaders across <strong>Asia, Oceania, and Africa</strong> to translate platform capabilities into outcomes: <strong>developer velocity, stronger security posture, and healthier cross-team collaboration</strong>. He&#8217;s also the author of the <em><strong><a href="https://www.packtpub.com/en-us/product/github-foundations-certification-guide-9781836206040">GitHub Foundations Certification Guide</a></strong></em> (Packt, 2025).</p><p>In this issue:</p><ul><li><p>Our complete interview with Ayo on moving from &#8220;using Git&#8221; to <strong>leading with GitHub. </strong>You can <strong>watch</strong> the complete interview below, <strong><a href="https://deepengineering.substack.com/p/mastering-github-in-the-real-world">read the complete Q&amp;A</a></strong>, or listen to/download the audio only version <strong><a href="https://deepengineering.substack.com/p/mastering-github-at-scale-ayodeji">here</a></strong>.</p><div id="youtube2-qfZWQg4AnV4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;qfZWQg4AnV4&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/qfZWQg4AnV4?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div></li><li><p>The complete <strong><a href="https://deepengineering.substack.com/p/security-practices-and-user-management">Chapter 15: &#8220;Security Practices and User Management&#8221;</a></strong> from Ayodele&#8217;s book as an immediately applicable checklist (2FA, roles/teams, scanning, audit logs, incident playbooks).</p></li><li><p>Feature Article: <strong>Leading with GitHub: Scalable Collaboration, CI/CD, and AI with Ayodeji Ayodele </strong>distilling insights from our conversation.</p></li><li><p>Tool of the Week: <strong><a href="https://trivy.dev/latest/">Trivy</a></strong></p></li><li><p>A breakdown of <strong><a href="https://www.linkedin.com/pulse/octoverse-2025-typescript-takes-1-ai-reshapes-stack-p3hac/">Octoverse 2025: TypeScript takes #1 as AI reshapes the stack</a></strong></p></li></ul><div><hr></div><p><em>Sponsored:</em></p><p><strong><a href="https://www.vpdae.com/redirect/wozsv6i35vnpvwtmri6zjcnkat7">Securing the Autonomous Enterprise&#8212;From Observability to Resilience</a>:</strong> Current security stops at passive observation. <strong>Rubrik Agent Operations</strong> is the enterprise platform that unifies observability, governance, and recoverability for AI. Join us on <strong>November 12th</strong> to discover how <strong>Rubrik</strong> is leveraging its leadership in cyber resilience to protect your autonomous future. <strong><a href="http://Save My Spot">Save my spot</a></strong></p><div><hr></div><h1>Leading with GitHub: Scalable Collaboration, CI/CD, and AI with Ayodeji Ayodele</h1><p>GitHub now sits at the center of modern software delivery. In a conversation with Deep Engineering, Ayodeji Ayodele &#8211; a Senior Customer Success Architect at GitHub with nearly two decades in DevOps &#8211; shared how to move from simply <em>using Git</em> to truly <em>leading with GitHub</em>. He outlines ways to scale collaboration, automation, and security practices without slowing down delivery.</p><h2>Open Ways of Working, Inside the Firewall</h2><p>According to <strong><a href="https://www.blackduck.com/content/dam/black-duck/en-us/reports/rep-ossra.pdf">Black Duck&#8217;s 2025 Open Source Security and Risk Analysis Report</a></strong>, <strong>97% of applications contain open-source components (averaging 70% of the codebase)</strong>. </p><p>Ayodele emphasizes using GitHub&#8217;s collaboration features to break down silos, both in open source and within enterprises. </p><blockquote><p><em>&#8220;Open source is the backbone of modern software,&#8221;</em> he notes. </p></blockquote><p>With an estimated 50&#8211;60% of all software now built on open-source components, he encourages engineers to contribute to public projects to sharpen their skills. Equally, Ayodele advocates bringing open practices inside companies through <strong>inner source</strong>. </p><blockquote><p><em>&#8220;Bringing open-source practices inside companies&#8212;what we call inner source&#8212;breaks down silos and accelerates innovation,&#8221;</em> he says. </p></blockquote><blockquote><p><em>&#8220;Transparency, forking and pulling workflows, and opening discussions all drive better code and teamwork,&#8221;</em> </p></blockquote><p>Ayodele explains, adding that a blame-free, well-communicated rollout and strong executive buy-in can overcome cultural resistance. At <strong>Microsoft</strong>, the <strong><a href="https://innersourcecommons.org/stories/microsoft/">DevOps Dojo&#8217;s InnerSource program</a></strong> created a single source of truth and drove &#8220;IP reuse,&#8221; cutting redundancy and enabling collaboration across 36 countries. At <strong>IBM</strong>, the enterprise <strong><a href="https://innersourcecommons.org/events/isc-2025/#Micaela_D_Eller:~:text=At%20IBM%2C%20we,and%20reuse%20easy.">InnerSource program</a></strong>&#8212;led by IBM Research&#8212;explicitly targets open collaboration and <strong>reuse at scale</strong> across teams.</p><p>To make inner source work, teams need clear contribution guidelines, leadership support, and a documentation-first culture. Because any change can face resistance, Ayodele suggests over-communicating plans and having leadership visibly back the inner source initiative. GitHub&#8217;s features (Issues, Discussions, project boards, etc.) enable asynchronous teamwork across time zones, but only if context is well documented so colleagues can work without a meeting. By embracing open collaboration patterns internally, organizations unlock their developers&#8217; collective potential.</p><h2>CI/CD: Shipping Fast Without Pipeline Overload</h2><p>Ayodele defines CI/CD as: </p><blockquote><p><em>&#8220;a practice and a set of standards that helps you automate all of the very tedious, boring, repetitive tasks that you would ordinarily have to do by hand.&#8221;</em> </p></blockquote><p>Done right, pipelines eliminate human error, enforce consistency, and allow teams to &#8220;build with confidence&#8221; while shipping updates far more frequently. In Ayodele&#8217;s view, CI/CD is <strong>integral</strong> to modern software development &#8211; but it must be implemented wisely. </p><p>He cautions against letting &#8220;pipeline bloat&#8221; slow engineers down. Instead, teams should keep pipelines lean and purposeful: break large processes into smaller parallel steps, cache dependencies to avoid needless rebuilds, and introduce automated quality gates at key points. </p><p>For example, a GitHub Actions workflow can block a pull request from merging if tests fail or a code scan finds critical vulnerabilities. Automating early and often &#8211; while cutting superfluous steps &#8211; lets organizations accelerate delivery. With reusable workflows and built-in checks, the release process becomes repeatable and reliable. The payoff is not just speed but confidence that every change is vetted before production. This design prevents one long serial pipeline from blocking everyone&#8217;s work. </p><h2>Security by Design: Protecting the Software Supply Chain</h2><p>Even as teams move faster and adopt open collaboration practices, Ayodele underscores that <strong>security is everyone&#8217;s job</strong>. Modern software relies on myriad open-source dependencies and automated workflows, so guarding the software supply chain is critical. Fortunately, GitHub provides multiple layers of defense that teams can enable. </p><blockquote><p><em>&#8220;Use the built-in tools you have on GitHub to protect your code at every stage,&#8221;</em> he urges.</p></blockquote><p>For example, <strong>secret scanning</strong> can catch credentials before they leak, while branch protection rules and required reviews prevent risky merges. Enabling Dependabot alerts keeps dependencies up to date, and turning on code scanning flags flaws in the codebase. Ayodele also advises verifying builds: using GitHub Actions to generate SLSA provenance attestations ensures artifacts haven&#8217;t been tampered with. He recommends enforcing two-factor authentication for all contributors and mandating signed commits, so every change is traceable to a verified identity. By weaving security into every step, teams can move quickly <strong>without compromising on safety</strong>.</p><h2>AI as the New Pair Programmer</h2><p>Perhaps the most game-changing trend in the GitHub ecosystem is the integration of AI assistance directly into the developer workflow. Ayodele, with 20 years in the industry, says </p><blockquote><p><em>&#8220;I&#8217;ve never seen anything like this before&#8221;</em>. </p></blockquote><p>Tools like <strong>GitHub Copilot</strong> have evolved from autocomplete-style helpers to capable &#8220;co-developers&#8221; that can generate code, explain it, write tests, and even autonomously create pull requests. </p><p>The impact on productivity is tangible: <strong><a href="https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typescript-to-1/">GitHub&#8217;s Octoverse 2025 report</a></strong> shows that the preview of Copilot&#8217;s new coding agent in early 2025 coincided with a significant jump in output &#8211; <em>&#8220;developers closed 1.4 million more issues [in March] than the prior month&#8221;</em>, reaching an all-time high of 5.5 million issues closed in a single month by mid-2025. </p><p>And it&#8217;s not just quantity of work; quality is getting a boost as well. AI-powered features are catching and fixing common bugs and security issues at scale. For example, <strong>Copilot&#8217;s &#8220;Autofix&#8221;</strong> feature is now automatically resolving thousands of OWASP Top 10 security flaws in code each month, contributing to that drop in critical alerts. These advances support Ayodele&#8217;s observation that teams using AI are seeing higher test coverage and fewer vulnerabilities.</p><p>That said, Ayodele and industry surveys alike urge a balanced, responsible adoption of AI. Developers are rapidly embracing these tools. According to <strong><a href="https://survey.stackoverflow.co/2025/ai#sentiment-and-usage">StackOverflow&#8217;s 2025 Developer Survey</a></strong>, <strong>46% of developers don&#8217;t trust the accuracy of AI outputs</strong>, and only a tiny fraction (around 3%) &#8220;highly trust&#8221; the answers from AI. The vast majority prefer to double-check with a human colleague when unsure, and about <strong>75% say they would turn to a co-worker if they don&#8217;t fully trust an AI&#8217;s answer</strong>. Ayodele acknowledges this skepticism: </p><blockquote><p><em>&#8220;It&#8217;s difficult to trust what you don&#8217;t know&#8230; you may need to understand what&#8217;s going on under the hood.&#8221;</em> </p></blockquote><p>He advocates using AI as a learning tool and accelerant, not a crutch or replacement for human insight. For junior engineers especially, Copilot can help explain code and suggest solutions, but it&#8217;s vital that they still <strong>practice critical thinking and code review</strong>. </p><h2>Leading into the Future</h2><p>The role of a software engineer is evolving. Mastering GitHub in 2025 means mastering a blend of <strong>technical tools and human skills</strong>. On the technical side, that&#8217;s proficiency in collaborative workflows, automation pipelines, security practices, and AI-augmented coding. On the human side, it&#8217;s creativity, problem-solving, communication, and adaptability. Ayodele says that creativity and empathy remain uniquely human strengths:</p><blockquote><p><em>AI can help with complex tasks, but AI can&#8217;t replace creativity. AI cannot replace empathy. It cannot replace problem-solving. These are innate skills for humans. &#8230;So I don&#8217;t think AI will replace human beings, you know. So you want to <strong>focus on creativity, on communication, on design thinking, and, &#8230; adaptability as well.</strong></em></p></blockquote><p>Engineers should focus on the skills that never go out of style: <strong>learning how to learn, and learning how to work with others (including our AI tools)</strong>. In the next 5&#8211;10 years, successful developers and tech leaders will be those who continuously adopt new technologies like Copilot <strong>while upholding high standards and mentoring others</strong>. As Ayodele puts it, </p><p>Armed with a learning mindset and the platform knowledge to take advantage of GitHub&#8217;s capabilities, today&#8217;s developers can confidently navigate a world where software delivery is faster, more open, and more intelligent than ever. </p><div><hr></div><h1><strong>&#129504;Expert Insight</strong></h1><ol><li><p><strong>The complete &#8220;<a href="https://deepengineering.substack.com/p/security-practices-and-user-management">Chapter 15: Security Practices and User Management</a>&#8221; from the book, </strong><em><strong>GitHub Foundations Certification Guide</strong></em><strong> (Packt, 2025), by Ayodeji Ayodele</strong></p></li></ol><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;2bd0f785-3a76-4ced-902b-ce529b3cb494&quot;,&quot;caption&quot;:&quot;Welcome to Chapter 15, where we explore the essentials of GitHub security and user management! By now, you&#8217;re familiar with the essentials, you have collaborated effectively, and you&#8217;ve started leveraging GitHub for your career. Now, it&#8217;s time to focus on protecting your work. In this chapter, we&#8217;ll explore GitHub&#8217;s built-in security features &#8211; such as &#8230;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Security Practices and User Management&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:411419869,&quot;name&quot;:&quot;Ayodeji Ayodele&quot;,&quot;bio&quot;:&quot;DevOps whisperer &#129497;&#127998;&#8205;&#9794;&#65039;, GitHub guru &#128025;, cloud wrangler &#9729;&#65039;. I help teams ship smarter software &#128640;. 18+ years in tech, from banks &#127974; to chocolate factories &#127851;. Sydney-based &#127759;. Good code, good vibes &#10024;. Sydney-based, globally-minded. &#127462;&#127482;&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3881f977-58fb-4176-b930-1140aeb3a72c_3024x3024.jpeg&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-11-06T08:39:40.559Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!c1C4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d177e6d-10ef-4e8d-9954-776efd177ad7_2250x2775&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/security-practices-and-user-management&quot;,&quot;section_name&quot;:&quot;Practical Deep-Dives&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:178160677,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><ol start="2"><li><p><strong><a href="https://deepengineering.substack.com/p/mastering-github-in-the-real-world">Deep Engineering&#8217;s complete conversation with Ayodeji Ayodele</a></strong></p></li></ol><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;0f67e6f3-f6ad-4cf8-ac73-26573098ef9d&quot;,&quot;caption&quot;:&quot;From secure collaboration and branch protections to reusable workflows and AI-assisted development, GitHub now sits at the center of how software gets built&#8212;and scaled&#8212;inside modern organizations. In this conversation, we speak with Ayodeji Ayodele&#8212;author of the&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Mastering GitHub in the Real World: A Conversation with Ayodeji Ayodele&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:140662997,&quot;name&quot;:&quot;Divya Anne Selvaraj&quot;,&quot;bio&quot;:&quot;Content Engineer @Packt Software Engineering &amp; Architecture Vertical | Editor-in-Chief of Packt Deep Engineering and Packt PythonPro Newsletters&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/309a6f07-27a6-40bf-ab99-d042556d816b_400x400.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null},{&quot;id&quot;:411419869,&quot;name&quot;:&quot;Ayodeji Ayodele&quot;,&quot;bio&quot;:&quot;DevOps whisperer &#129497;&#127998;&#8205;&#9794;&#65039;, GitHub guru &#128025;, cloud wrangler &#9729;&#65039;. I help teams ship smarter software &#128640;. 18+ years in tech, from banks &#127974; to chocolate factories &#127851;. Sydney-based &#127759;. Good code, good vibes &#10024;. Sydney-based, globally-minded. &#127462;&#127482;&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3881f977-58fb-4176-b930-1140aeb3a72c_3024x3024.jpeg&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-11-06T07:43:57.514Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/youtube/w_728,c_limit/qfZWQg4AnV4&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/mastering-github-in-the-real-world&quot;,&quot;section_name&quot;:&quot;Interviews&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:178064311,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h1><strong>&#128736;&#65039;Tool of the Week</strong></h1><p><strong><a href="https://trivy.dev/latest/">Trivy (Aqua Security)</a></strong></p><p>A fast, all-in-one open-source scanner that finds vulnerabilities, misconfigurations (IaC), exposed secrets, and generates SBOMs across containers, OS packages, repos, and Kubernetes. Apache-2.0 licensed.</p><p>Highlights:</p><ul><li><p><strong>Coverage in one tool</strong> reduces pipeline sprawl (CVE scan, IaC misconfig, secrets, SBOM). </p></li><li><p><strong>Low friction</strong> to adopt org-wide via reusable workflows in GitHub Actions. </p></li><li><p><strong>Proven at scale</strong> in a commercial artifact platform, signaling maturity for enterprise use.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://trivy.dev/latest/&quot;,&quot;text&quot;:&quot;Learn more about Trivy&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://trivy.dev/latest/"><span>Learn more about Trivy</span></a></p><div><hr></div><p><em>Sponsored:</em></p><p><strong><a href="https://www.vpdae.com/redirect/1wldkv6hit7v6i79l3jgfg6yx7s">82% of data breaches happen in the cloud</a></strong>: The reality is you can&#8217;t stop every single attack so survival depends on how fast you can recover. Join Rubrik for the <strong><a href="https://www.vpdae.com/redirect/1wldkv6hit7v6i79l3jgfg6yx7s">Cloud Resilience Summit</a></strong> on <strong>December 10th</strong> to build true cyber resilience by shifting to an &#8220;assume breach&#8221; strategy, gain practical, real-world cloud insights, ensure rapid business recovery and minimal financial impact with a cloud restoration strategy. <strong><a href="https://www.vpdae.com/redirect/1wldkv6hit7v6i79l3jgfg6yx7s">Save my spot</a></strong></p><div><hr></div><h1><strong>&#128206;Tech Briefs</strong></h1><ul><li><p><strong><a href="https://www.linkedin.com/pulse/octoverse-2025-typescript-takes-1-ai-reshapes-stack-p3hac/">Octoverse 2025 lands with fresh benchmarks for engineering leaders</a>: </strong>GitHub&#8217;s annual report highlights growth (e.g., developer sign-ups, pull requests merged, issues closed) and trends like typed languages and AI&#8212;use it to calibrate team throughput and tooling choices. Here is a <strong><a href="https://www.linkedin.com/pulse/octoverse-2025-typescript-takes-1-ai-reshapes-stack-p3hac/">concise breakdown.</a></strong></p></li><li><p><strong><a href="https://nodejs.org/en/blog/release/v24.11.0">Node.js 24 enters LTS (&#8220;Krypton&#8221;)</a>:</strong> The project promoted v24.x to Long-Term Support on Oct 28, 2025 (v24.11.0), making this the recommended production line through April 2028&#8212;plan upgrades and CI matrices accordingly.</p></li><li><p><strong><a href="https://github.blog/changelog/2025-10-28-assign-code-scanning-alerts-to-copilot-for-automated-fixes-in-public-preview/">You can now assign code-scanning alerts to Copilot for automated fixes (public preview)</a>:</strong> From the alert or via security campaigns, Copilot creates a remediation plan and opens a draft PR&#8212;tightening MTTR and turning findings into actionable changes.</p></li><li><p><strong><a href="https://www.imperva.com/blog/cve-2025-62725-from-docker-compose-ps-to-system-compromise/">Docker Compose patched a high-severity path traversal (CVE-2025-62725)</a>:</strong> The flaw could allow arbitrary writes on the host when resolving malicious OCI Compose artifacts; upgrade to Docker Compose v2.40.2 or later.</p></li><li><p><strong><a href="https://react.dev/blog/2025/10/01/react-19-2">React 19.2 ships with new primitives and SSR improvements</a>:</strong> The Oct 1 release introduces features like <code>&lt;Activity /&gt;</code>, <code>useEffectEvent</code>, and <code>cacheSignal</code>, plus partial pre-rendering enhancements&#8212;worth evaluating for performance and DX wins.</p></li></ul><div><hr></div><p>That&#8217;s all for today. Thank you for reading this issue of <em>Deep Engineering</em>. We&#8217;re just getting started, and your feedback will help shape what comes next. Do take a moment to <strong><a href="https://forms.microsoft.com/Pages/ResponsePage.aspx?id=Dmauk5VIE0SnXsWk3kKcDhvEtilalEBEqs_8ZEM_u5xUNFAzU0pOSUQxTUhJS0U2NTJVOVczV05GNy4u">fill out this short survey</a></strong> we run monthly&#8212;as a thank-you, we&#8217;ll add <strong>one Packt credit</strong> to your account, redeemable for any book of your choice.</p><p>We&#8217;ll be back next week with more expert-led content.</p><p>Stay awesome,<br>Divya Anne Selvaraj<br><em>Editor-in-Chief, Deep Engineering</em></p><div><hr></div><p>If your company is interested in reaching an audience of developers, software engineers, and tech decision makers, you may want to <strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong>.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post&quot;,&quot;text&quot;:&quot;Refer a friend&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://deepengineering.substack.com/leaderboard?&amp;referrer_token=2bqw9h&amp;utm_source=post"><span>Refer a friend</span></a></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Deep Engineering #24: Scott Millett on why IT strategy is business strategy]]></title><description><![CDATA[Forrester flags CIO rescue missions; BCG shows only 5% capture AI value&#8212;see how Define &#8594; Shape &#8594; Deliver links intent, architecture, and outcomes.]]></description><link>https://deepengineering.substack.com/p/deep-engineering-24-scott-millett</link><guid isPermaLink="false">https://deepengineering.substack.com/p/deep-engineering-24-scott-millett</guid><dc:creator><![CDATA[Divya Anne Selvaraj]]></dc:creator><pubDate>Thu, 30 Oct 2025 13:30:55 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c3ec52cc-71ad-48d2-850c-417237d93294_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3><strong><a href="https://www.vpdae.com/redirect/pp46o2dnwlesl086bxvh5cyyo9p">Build your next app on HubSpot with the flexibility of an all-new Developer Platform</a></strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.vpdae.com/redirect/pp46o2dnwlesl086bxvh5cyyo9p" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iwfJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F876f7a5a-2cd4-43c6-94d1-a7a803543c84_1320x660.jpeg 424w, https://substackcdn.com/image/fetch/$s_!iwfJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F876f7a5a-2cd4-43c6-94d1-a7a803543c84_1320x660.jpeg 848w, https://substackcdn.com/image/fetch/$s_!iwfJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F876f7a5a-2cd4-43c6-94d1-a7a803543c84_1320x660.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!iwfJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F876f7a5a-2cd4-43c6-94d1-a7a803543c84_1320x660.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iwfJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F876f7a5a-2cd4-43c6-94d1-a7a803543c84_1320x660.jpeg" width="1320" height="660" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/876f7a5a-2cd4-43c6-94d1-a7a803543c84_1320x660.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:660,&quot;width&quot;:1320,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.vpdae.com/redirect/pp46o2dnwlesl086bxvh5cyyo9p&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!iwfJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F876f7a5a-2cd4-43c6-94d1-a7a803543c84_1320x660.jpeg 424w, https://substackcdn.com/image/fetch/$s_!iwfJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F876f7a5a-2cd4-43c6-94d1-a7a803543c84_1320x660.jpeg 848w, https://substackcdn.com/image/fetch/$s_!iwfJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F876f7a5a-2cd4-43c6-94d1-a7a803543c84_1320x660.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!iwfJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F876f7a5a-2cd4-43c6-94d1-a7a803543c84_1320x660.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></figure></div><blockquote><p>The HubSpot Developer Platform gives you the tools to build, extend, and scale with confidence. Create AI-ready apps, integrations, and workflows faster with a unified platform designed to grow alongside your business.</p></blockquote><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.vpdae.com/redirect/pp46o2dnwlesl086bxvh5cyyo9p&quot;,&quot;text&quot;:&quot;Start Building Today&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.vpdae.com/redirect/pp46o2dnwlesl086bxvh5cyyo9p"><span>Start Building Today</span></a></p><div><hr></div><p><strong>&#9997;&#65039;From the editor&#8217;s desk,</strong></p><p>According to <strong><a href="https://investor.forrester.com/news-releases/news-release-details/forresters-2026-technology-security-predictions-ais-hype-fades">Forrester&#8217;s 2026 Technology &amp; Security Predictions</a></strong>, <strong>one-quarter of CIOs will be asked to bail out business-led AI failures in 2026 and two-thirds will need to justify spend explicitly in business-value terms</strong>. <strong><a href="http://The Widening AI Value Gap">BCG&#8217;s</a></strong><a href="http://The Widening AI Value Gap"> </a><strong><a href="http://The Widening AI Value Gap">The Widening AI Value Gap report</a>,</strong> on the other hand, finds that <strong>only 5% of companies&#8212;the &#8220;future-built&#8221;&#8212;are reliably capturing AI value, with agents already delivering ~17% of 2025 AI impact</strong>.</p><p><strong>So what gaps are the remaining 95% failing to fill? And how can senior technologists bridge these gaps to align IT strategy with business outcomes?</strong></p><p>To answer these questions, today we are kicking off the much anticipated <strong><a href="https://deepengineering.substack.com/s/it-strategy-scott-millett">IT Strategy Playbook series</a></strong> in collaboration with <strong><a href="https://www.linkedin.com/in/scottmillett/">Scott Millett</a>.</strong> He starts the series with a strong claim: &#8220;<strong>IT strategy is business strategy</strong>.&#8221; Millett is an IT leader, strategist, and author with 25+ years as CIO, CTO, and architect across large-scale transformations. Articles in the series are adapted from his forthcoming book, <em><strong><a href="https://www.packtpub.com/en-us/product/the-it-strategy-playbook-9781806109623">The IT Strategy Playbook</a></strong></em> (Packt, May 2026) and <strong><a href="https://deepengineering.substack.com/p/the-it-strategy-playbook-part-1-define">Part 1</a></strong> introduces his <strong>Define &#8594; Shape &#8594; Deliver</strong> loop for closing the gaps between strategy, architecture, and execution. Deep Engineering readers are going to get an exclusive preview of the book&#8217;s content in development over the next few months and we invite you to leave constructive feedback as you follow along in the comments. </p><p>In today&#8217;s issue:</p><ul><li><p>Editorial Feature: <strong>From Outputs to Outcomes: Closing the IT Strategy&#8211;Business Gap with Scott Millett</strong></p></li><li><p><strong><a href="https://deepengineering.substack.com/p/the-it-strategy-playbook-part-1-define">The IT Strategy Playbook (Part 1): Define, Shape, Deliver by Scott Millett</a></strong></p></li><li><p>Tech Briefs including <a href="https://investor.forrester.com/news-releases/news-release-details/forresters-2026-technology-security-predictions-ais-hype-fades">Forrester&#8217;s 2026 predictions</a>, <a href="https://media-publications.bcg.com/The-Widening-AI-Value-Gap-October-2025.pdf">BCG&#8217;s report</a>, the 32nd edition of the <strong><a href="https://www.ibm.com/downloads/documents/us-en/12f5a711174dc2ac">IBM CEO study</a></strong>, and more</p></li><li><p>Tool of the Week: <strong><a href="https://huggingface.co/docs/text-generation-inference/index">Hugging Face Text Generation Inference (TGI)</a></strong></p></li></ul><p>Let&#8217;s get started.</p><div><hr></div><h4><a href="https://www.eventbrite.com/e/quantum-computing-for-leaders-tickets-1785432238889?aff=deepengineering">Quantum Readiness, Now: Executive Masterclass (Nov 29&#8211;30)</a></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.eventbrite.com/e/quantum-computing-for-leaders-tickets-1785432238889?aff=deepengineering" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FGQS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfd65b2e-2ef9-4dae-b91c-732e44819bfd_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!FGQS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfd65b2e-2ef9-4dae-b91c-732e44819bfd_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!FGQS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfd65b2e-2ef9-4dae-b91c-732e44819bfd_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!FGQS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfd65b2e-2ef9-4dae-b91c-732e44819bfd_2160x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FGQS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfd65b2e-2ef9-4dae-b91c-732e44819bfd_2160x1080.png" width="718" height="359" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bfd65b2e-2ef9-4dae-b91c-732e44819bfd_2160x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:718,&quot;bytes&quot;:282495,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.eventbrite.com/e/quantum-computing-for-leaders-tickets-1785432238889?aff=deepengineering&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://deepengineering.substack.com/i/177538808?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfd65b2e-2ef9-4dae-b91c-732e44819bfd_2160x1080.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_!FGQS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfd65b2e-2ef9-4dae-b91c-732e44819bfd_2160x1080.png 424w, https://substackcdn.com/image/fetch/$s_!FGQS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfd65b2e-2ef9-4dae-b91c-732e44819bfd_2160x1080.png 848w, https://substackcdn.com/image/fetch/$s_!FGQS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfd65b2e-2ef9-4dae-b91c-732e44819bfd_2160x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!FGQS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfd65b2e-2ef9-4dae-b91c-732e44819bfd_2160x1080.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><blockquote><p>Quantum Computing for Leaders&#8212;2-day executive masterclass, Nov 29&#8211;30 (US ET). Build quantum-ready roadmaps, pilot hybrid workflows, and plan quantum-safe security. Live online with <strong>Robert Loredo</strong>. Early bird 30% off with code <strong>QUANTUM30</strong> (ends today).</p></blockquote><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eventbrite.com/e/quantum-computing-for-leaders-tickets-1785432238889?aff=deepengineering&quot;,&quot;text&quot;:&quot;Reserve your spot &#8594;&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eventbrite.com/e/quantum-computing-for-leaders-tickets-1785432238889?aff=deepengineering"><span>Reserve your spot &#8594;</span></a></p><p></p><div><hr></div><h1>From Outputs to Outcomes: Closing the IT Strategy&#8211;Business Gap with Scott Millett</h1><p>If you&#8217;re a senior technology leader, you&#8217;ve likely heard the refrain: <em>&#8220;be more strategic&#8221;</em> and <em>&#8220;align IT with the business.&#8221;</em> Yet moving from technological activity to business outcomes is easier said than done. In <strong><a href="https://deepengineering.substack.com/p/the-it-strategy-playbook-part-1-define">part 1</a></strong> of the series adapted from Scott Millett&#8217;s upcoming book, <em><strong>The IT Strategy Playbook</strong></em>, a simple boardroom question &#8211; <em><strong>&#8220;What problem are we trying to solve?&#8221;</strong></em> &#8211; exposes how even a polished IT plan can fall flat when it&#8217;s all outputs and no outcomes.</p><h2>Four Gaps Between Tech Effort and Business Impact</h2><p>In his first article in the series, Millett identifies four recurring &#8220;gaps&#8221; that hinder IT leaders from delivering strategic value. These are not technical failures, but <strong>disconnects in understanding and execution</strong>:</p><ul><li><p><strong>The Understanding Gap:</strong> When IT initiatives aren&#8217;t clearly tied to business goals. This gap is apparent if IT cannot articulate <em>why</em> a tech project matters for competitive advantage. It&#8217;s no surprise that when the <strong>IBM Institute for Business Value</strong> and <strong>Oxford Economics</strong> surveyed 2,000 CEOs from 33 countries and 24 industries for the <strong><a href="https://www.ibm.com/downloads/documents/us-en/12f5a711174dc2ac">IBM CEO study</a></strong> they found that only <strong>25% of AI initiatives have delivered their expected ROI</strong>.</p></li><li><p><strong>The Translation Gap:</strong> The disconnect between high-level strategy and the enabling architecture. It&#8217;s one thing to declare a cloud or AI strategy, and another to design coherent systems and data architectures for it. Rushed investments often lead to fragmented systems. In the same study, it was found that <strong>half of CEOs admit tech adoptions have left them with disconnected, &#8220;piecemeal&#8221; technology</strong>.</p></li><li><p><strong>The Focus Gap:</strong> Failing to prioritize for impact. When everything is a priority, nothing delivers value. Too often the IT project portfolio becomes a sprawl of low-value initiatives lacking clear prioritization. This gap leads to IT organizations that are <em>busy</em> but not <em>effective</em> in moving the business needle. In an <a href="https://hbr.org/2025/08/your-company-needs-to-focus-on-fewer-projects-heres-how">HBR article</a>, Antonio Nieto-Rodriguez, CEO of Projects &amp; Company, writes: <em>&#8220;<strong>Many organizations are aware that they are suffering from project overload, slowing execution and obscuring strategic priorities. Yet even with this knowledge they struggle to kill projects to release resources and energy to focus on their most important priorities.</strong>&#8221;</em></p></li><li><p><strong>The Communication Gap:</strong> Inability to communicate strategy in clear, business terms. This amplifies all the other gaps &#8211; if executives don&#8217;t understand the <em>why</em> and <em>what</em> of IT&#8217;s plans, buy-in evaporates. According to <strong><a href="https://investor.forrester.com/news-releases/news-release-details/forresters-2026-technology-security-predictions-ais-hype-fades">Forrester&#8217;s 2026 Technology &amp; Security Predictions</a></strong>, CIOs must <em>&#8220;speak fluent &#8216;business value&#8217;&#8221;</em> to win executive buy-in.  IT plans must be explained in terms of tangible business outcomes rather than technical outputs.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dnzH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c8ae975-ef8a-4bf0-a2c9-445510c3d873_1648x1184.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dnzH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c8ae975-ef8a-4bf0-a2c9-445510c3d873_1648x1184.jpeg 424w, https://substackcdn.com/image/fetch/$s_!dnzH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c8ae975-ef8a-4bf0-a2c9-445510c3d873_1648x1184.jpeg 848w, https://substackcdn.com/image/fetch/$s_!dnzH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c8ae975-ef8a-4bf0-a2c9-445510c3d873_1648x1184.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!dnzH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c8ae975-ef8a-4bf0-a2c9-445510c3d873_1648x1184.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dnzH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c8ae975-ef8a-4bf0-a2c9-445510c3d873_1648x1184.jpeg" width="1456" height="1046" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c8ae975-ef8a-4bf0-a2c9-445510c3d873_1648x1184.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1046,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dnzH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c8ae975-ef8a-4bf0-a2c9-445510c3d873_1648x1184.jpeg 424w, https://substackcdn.com/image/fetch/$s_!dnzH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c8ae975-ef8a-4bf0-a2c9-445510c3d873_1648x1184.jpeg 848w, https://substackcdn.com/image/fetch/$s_!dnzH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c8ae975-ef8a-4bf0-a2c9-445510c3d873_1648x1184.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!dnzH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c8ae975-ef8a-4bf0-a2c9-445510c3d873_1648x1184.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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">Figure 0.2 &#8212; The four gaps that lead to a lack of business impact | Source: <strong>The IT Strategy Playbook (Part 1): Define, Shape, Deliver by Scott Millett </strong></figcaption></figure></div><p>These gaps are showing up quite starkly when it comes to enterprise AI adoption. In fact here is what Forrester has predicted regarding AI spend in the coming year:</p><blockquote><p><em><strong>&#8220;With fewer than one-third of decision-makers able to tie the value of AI to their organization&#8217;s financial growth, CEOs will lean more on their CFOs to approve AI investments based on their ROI in 2026. As financial rigor slows production deployments and wipes out proofs of concept, enterprises will defer a quarter of their planned AI spend into 2027.&#8221;</strong></em> </p></blockquote><p>Additionally , according to <strong><a href="http://The Widening AI Value Gap">BCG&#8217;s The Widening AI Value Gap report</a>:</strong></p><blockquote><p><em><strong>&#8220;Future built companies </strong></em><strong>(which make up only 5% of the sample)</strong><em><strong> prioritize AI opportunities through a clear, sequenced roadmap rather than switching on all enterprise applications at once </strong></em><strong>(like the remaining 95%)</strong><em><strong>.&#8221;</strong></em></p></blockquote><h2>Define &#8594; Shape &#8594; Deliver: A Playbook for Strategic IT</h2><p><strong>How can IT leaders close these gaps?</strong> Millett proposes a simple but powerful mental model called the <strong>DSD Loop &#8211; Define, Shape, Deliver</strong>. Its philosophy: <em>intent first, design second, implementation last</em>. By <strong>defining</strong> the business objectives clearly, <strong>shaping</strong> the architecture accordingly, and then <strong>delivering</strong> focused initiatives, CTOs/CIOs can ensure every technical choice ties back to a business outcome.</p><p>This approach turns the typical &#8220;technology-first&#8221; mindset on its head. Too often, organizations chase shiny objects &#8211; implementing technology for its own sake without a defined problem to solve. The DSD playbook instead begins with the outcome in mind. Each phase informs the next: Define the <strong>why</strong> and <strong>what</strong>, Shape the <strong>how</strong> (technology, teams, architecture), and then Deliver the <strong>when</strong> through a concrete roadmap.</p><p>Interestingly, <em>delivery comes last</em> in this loop. Starting with coding or tool selection before nailing the &#8220;why&#8221; guarantees a disconnect. The DSD framework provides discipline to link every project (&#8220;output&#8221;) to a strategic outcome.</p><h2>Keeping Technology Tied to Business Value</h2><p>Boards and CEOs now demand clear returns on technology &#8211; CIOs are expected to be innovation enablers driving growth, not just IT operators. Technology leadership must translate into tangible business results.</p><p>Yet rising scrutiny comes with challenges. Forrester has predicted that in 2026:</p><blockquote><p><em><strong>&#8220;One-quarter of CIOs will be asked to bail out business-led AI failures in their organization</strong>.</em>&#8221;</p></blockquote><p>When business units bypass IT, CIOs often end up fixing the mess. Avoiding that scenario means jointly defining initiatives from the start and enforcing good governance. As <a href="https://cfotech.asia/story/forrester-ai-spending-slows-as-tech-leaders-face-scrutiny-in-2026">Frederic Giron, VP and senior research director at Forrester said</a>:</p><blockquote><p>In 2026<em><strong> &#8220;Success will be defined not by the sophistication of their (CIOs&#8217;) AI models, but by how seamlessly those models are integrated into end-to-end processes to drive both efficiency and growth. The CIOs who thrive will be those who can balance these complex priorities, acting as strategic partners who connect technology investment directly to business outcomes.&#8221;</strong></em></p></blockquote><p>At the moment, According to <a href="http://The Widening AI Value Gap">BCG&#8217;s report</a>, <strong>only about 5% of companies are &#8220;future-built&#8221;</strong> to fully capture AI&#8217;s benefits, while the rest lag behind. Those top performers succeed by tightly aligning tech initiatives to business strategy and continuously refining that alignment.</p><p>Bridging the gap from IT output to business outcome isn&#8217;t a trivial endeavor &#8211; but it&#8217;s a core part of the CTO/CIO role. By addressing the understanding, translation, focus, and communication gaps, technology leaders can reorient their teams from doing things right to doing the right things. The DSD loop offers a pragmatic way to ensure that the main thing (business value) indeed stays the main thing. <strong>In the end, an IT strategy only matters if it delivers tangible business results.</strong></p><div><hr></div><p>From here, it&#8217;s about turning alignment into action. Scott Millett&#8217;s first article kicks off the <strong><a href="https://deepengineering.substack.com/s/it-strategy-scott-millett">IT Strategy Playbook series</a></strong> with the Define &#8594; Shape &#8594; Deliver loop and the concrete artifacts and checkpoints to carry strategy into delivery.</p><h1><strong>&#129504;Expert Insight</strong></h1><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;f2701d8d-79f2-4b06-9638-482e49ddacc4&quot;,&quot;caption&quot;:&quot;This article is Part 1 of Deep Engineering&#8217;s exclusive ongoing series adapted from The IT Strategy Playbook: How CIOs and CTOs can drive business growth through focused action, architecture, and execution by Scott Millett (Packt; publishing May 2026). Millett is an IT leader, strategist, and author with 25+ years&#8217; experience, having served as a CIO, CTO, and archite&#8230;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The IT Strategy Playbook (Part 1): Define, Shape, Deliver &quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:49430582,&quot;name&quot;:&quot;Scott Millett&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!gt3L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb37d1c66-6fe0-4fcc-b196-a539a4cf2ab5_144x144.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-10-29T09:22:31.808Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!6aia!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318241a1-5076-4d65-b0a0-33ab5bbc6060_1586x1120.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://deepengineering.substack.com/p/the-it-strategy-playbook-part-1-define&quot;,&quot;section_name&quot;:&quot;The IT Strategy Playbook&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:177442666,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1729053,&quot;publication_name&quot;:&quot;Packt Deep Engineering&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H5BJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F736bc1ee-d689-497e-83a8-7d9bf9022eb9_600x600.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h1><strong>&#128736;&#65039;Tool of the Week</strong></h1><p><strong><a href="https://huggingface.co/docs/text-generation-inference/index">Hugging Face Text Generation Inference (TGI)</a></strong></p><p>TGI is an open-source, production-grade LLM serving stack (Rust + Python + gRPC) that powers Hugging Face&#8217;s own Inference API, Inference Endpoints, and HuggingChat. If you want a battle-tested way to serve open-source LLMs with streaming, batching, tracing, and metrics&#8212;without building your own server&#8212;it&#8217;s a strong default.</p><p><strong>Key capabilities:</strong></p><ul><li><p><strong>Throughput &amp; latency features:</strong> continuous batching, tensor parallelism, SSE streaming, FlashAttention, and PagedAttention. </p></li><li><p><strong>Ops hooks:</strong> OpenTelemetry tracing and Prometheus metrics out of the box. </p></li><li><p><strong>Structured outputs &amp; tool use:</strong> &#8220;Guidance&#8221;/JSON-style constrained generation for function calling. </p></li><li><p><strong>Multi-backend support:</strong> NVIDIA, AMD ROCm, Intel Gaudi, AWS Trainium/Inferentia, and even TensorRT-LLM.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://github.com/huggingface/text-generation-inference&quot;,&quot;text&quot;:&quot;Learn more about Hugging Face TGI&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://github.com/huggingface/text-generation-inference"><span>Learn more about Hugging Face TGI</span></a></p><div><hr></div><h1><strong>&#128206;Tech Briefs</strong></h1><ul><li><p><strong><a href="https://investor.forrester.com/news-releases/news-release-details/forresters-2026-technology-security-predictions-ais-hype-fades">Forrester&#8217;s 2026 Technology &amp; Security Predictions</a>:</strong> Forrester flags five pressure points for tech leaders: <strong>a quarter of CIOs will be asked to bail out business-led AI failures; enterprises will push 25% of planned AI spending into 2027; &#8220;neoclouds&#8221; will seize $20B in genAI revenue, chipping away at hyperscaler dominance; the time to fill developer roles will double amid shifting talent dynamics; and quantum security will command &gt;5% of the overall IT security budget</strong>&#8212;together signaling bigger budgets, tighter scrutiny, and a premium on translating strategy into measurable business outcomes.</p></li><li><p><strong><a href="https://www.ibm.com/downloads/documents/us-en/12f5a711174dc2ac">IBM Institute for Business Value&#8217;s &#8220;2025 CEO Study: 5 mindshifts to supercharge business growth&#8221;</a></strong>: Based on a Q1-2025 survey of 2,000 CEOs across 33 geographies and 24 industries, IBM outlines five leadership &#8220;mindshifts&#8221; &#8212; <strong>Make courage your core; Embrace AI-fueled creative destruction; Cultivate a vibrant data environment; Ignore the FOMO, lean into ROI; Borrow the talent you can&#8217;t buy</strong> &#8212; as a roadmap to move from productivity to performance with agentic AI. The study reports that <strong>61% of CEOs say their organizations are actively adopting AI agents and preparing to implement them at scale</strong>, and leading CEOs expect AI to have significant to transformational impact on objectives from decision-making and customer experience to productivity and growth.</p></li><li><p><strong><a href="https://media-publications.bcg.com/The-Widening-AI-Value-Gap-October-2025.pdf">BCG&#8217;s &#8220;The Widening AI Value Gap: Build for the Future 2025&#8221; report</a></strong>: BCG&#8217;s October-2025 study (n=1,250) finds only <strong>5%</strong> of companies&#8212;&#8220;future-built&#8221; firms&#8212;are achieving AI value at scale, while <strong>60%</strong> report minimal value despite substantial spend; these leaders are widening the gap, delivering <strong>1.7&#215; revenue growth</strong> and <strong>1.6&#215; higher EBIT margins</strong> than laggards and expecting faster gains as <strong>agentic AI</strong> rises from <strong>17% of total AI value in 2025</strong> to <strong>29% by 2028</strong>; BCG attributes lagging performance to diffuse efforts and weak top-management commitment, urging end-to-end workflow reinvention over scattered pilots and disconnected initiatives.</p></li><li><p><strong><a href="https://www.cio.com/article/4070513/why-cios-need-to-master-the-art-of-adaptation.html">CIO.com | &#8220;Why CIOs need to master the art of adaptation&#8221; by Andrada Fiscutean</a>:</strong> With gen-AI reshaping work, the article recommends CIOs should <strong>couple adaptability with structured decision criteria</strong> (security, ROI, scalability, compliance), <strong>favor modular systems,</strong> and <strong>pilot-then-scale approaches over &#8220;fail fast&#8221; fads</strong>, and <strong>build cultures that support experimentation and learning</strong>; the piece also cites <strong><a href="https://foundryco.com/research/state-of-the-cio/">Foundry&#8217;s 2025 State of the CIO</a></strong> showing the role&#8217;s shift toward innovation and transformation. </p></li><li><p><strong>&#127909;<a href="https://www.ibm.com/think/videos/think-keynotes/ai-agents-enterprise">IBM Think 2025 Keynote &#8220;Usher in the future of work with AI agents built for the enterprise&#8221;</a>:</strong> Ritika Gunnar, General Manager, Data &amp; AI, Software, IBM, frames AI agents as the next enterprise step&#8212;autonomous, proactive, and adaptive &#8220;systems of intelligence&#8221;&#8212;and cites <strong>early adoption (agents in &gt;85% of environments this year; &gt;50% expanding into essential production next year) alongside real gains</strong> (HR handling 94% of requests, sales reclaiming a quarter of the week, procurement cycle times down ~70%) <strong>and real challenges (silos, weak integration, agent sprawl, enterprise &#8220;-ilities&#8221;</strong>). </p></li></ul><div><hr></div><p>That&#8217;s all for today. Thank you for reading this issue of <em>Deep Engineering</em>. We&#8217;re just getting started, and your feedback will help shape what comes next. Do take a moment to <strong><a href="https://forms.microsoft.com/Pages/ResponsePage.aspx?id=Dmauk5VIE0SnXsWk3kKcDhvEtilalEBEqs_8ZEM_u5xUQ0pSU1dNTUw3RDdDS0NHRlpNT0MwRVhNRS4u">fill out this short survey</a></strong> we run monthly&#8212;as a thank-you, we&#8217;ll add <strong>one Packt credit</strong> to your account, redeemable for any book of your choice.</p><p>We&#8217;ll be back next week with more expert-led content.</p><p>Stay awesome,<br>Divya Anne Selvaraj<br><em>Editor-in-Chief, Deep Engineering</em></p><div><hr></div><p>If your company is interested in reaching an audience of developers, software engineers, and tech decision makers, you may want to <strong><a href="https://packt.omeclk.com/portal/wts/uc%5EcnN2dfNaqmD-kB-mo66%7C7g%5Ef%7Cb">advertise with us</a></strong>.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://deepengineering.substack.com/p/deep-engineering-22-richard-d-avila/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://deepengineering.substack.com/p/deep-engineering-22-richard-d-avila/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item></channel></rss>