<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ShiftMag</title>
	<atom:link href="https://shiftmag.dev/feed/" rel="self" type="application/rss+xml" />
	<link>https://shiftmag.dev/</link>
	<description>Insightful engineering content &#38; community</description>
	<lastBuildDate>Tue, 15 Sep 2026 12:50:23 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://shiftmag.dev/wp-content/uploads/2024/08/cropped-ShiftMag-favicon-32x32.png</url>
	<title>ShiftMag</title>
	<link>https://shiftmag.dev/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>LLMs Have a New Limit &#8211; It Costs More to Think Longer</title>
		<link>https://shiftmag.dev/llms-have-a-new-limit-it-costs-more-to-think-longer-12083/</link>
		
		<dc:creator><![CDATA[Marko Crnjanski]]></dc:creator>
		<pubDate>Tue, 15 Sep 2026 12:50:23 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[AI agents]]></category>
		<category><![CDATA[Infobip Shift 2026]]></category>
		<category><![CDATA[LLMs]]></category>
		<category><![CDATA[NVIDIA]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=12083</guid>

					<description><![CDATA[<p>NVIDIA’s Igor Dmochowski explained that LLMs are no longer limited just by model size or benchmark scores; the cost of longer reasoning means runtime, context length, memory use, and throughput matter just as much.</p>
<p>The post <a href="https://shiftmag.dev/llms-have-a-new-limit-it-costs-more-to-think-longer-12083/">LLMs Have a New Limit &#8211; It Costs More to Think Longer</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Modern agents use tools, handle text, images, and audio, remember context, use computers, and delegate tasks to subagents. But remember, <strong>each step adds more context, more tokens, and more compute</strong>. </p>



<p class="wp-block-paragraph">For developers, that means model quality still matters, but benchmark scores no longer tell the whole story. As Igor Dmochowski (Developer Relations Manager, Nvidia) said at <a href="https://shiftmag.dev/tag/infobip-shift-2026/" target="_blank" rel="noreferrer noopener">Infobip Shift 2026</a>:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">An agent is far more complex than a 2022-style chatbot: it can use tools, handle multimodal context, retain memory, and spawn subagents.</p>
</blockquote>



<h2 class="wp-block-heading"><span id="hybrid-architectures-preserve-useful-state-without-making-every-turn-more-expensive"><strong>Hybrid architectures preserve useful state without making every turn more expensive</strong></span></h2>



<p class="wp-block-paragraph">Longer context windows matter because agents need to remember more: past messages, documents, tool outputs, code, plans, and earlier steps. But as the context gets longer, self-attention becomes more expensive and harder to scale. </p>



<p class="wp-block-paragraph">Dmochowski’s point was that context length is a <strong>real systems constraint</strong>. A model may accept a huge prompt, but still be too slow or too memory-hungry for a real application. The question now is what they cost to process:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The compute required to process your context was growing quadratically with regards to the context. This is not scalable.</p>
</blockquote>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="538" src="https://shiftmag.dev/wp-content/uploads/2026/09/igor_2-1-1024x538.png?x32039" alt="" class="wp-image-12136" srcset="https://shiftmag.dev/wp-content/uploads/2026/09/igor_2-1-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/09/igor_2-1-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/09/igor_2-1-768x403.png 768w, https://shiftmag.dev/wp-content/uploads/2026/09/igor_2-1.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Photo: Petar Krajičić Vilović</figcaption></figure>



<p class="wp-block-paragraph">The approach discussed on stage was a hybrid model that combines Transformer attention with Mamba-style state-space layers. Instead of using full attention for every token, the model uses <strong>more efficient layers for most of the work and keeps attention where it matters most</strong>. </p>



<p class="wp-block-paragraph">That matters for agents because long context often contains information with very different levels of importance. &#8220;A production system needs enough capacity to preserve useful state without making every turn proportionally more expensive. Hybrid architectures are one attempt to move that curve in a more manageable direction,&#8221; Dmochowski said.</p>



<h2 class="wp-block-heading"><span id="models-like-moe-active-compute-and-throughput-matter-more-than-total-parameter-count">Models like MoE, active compute and throughput matter more than total parameter count</span></h2>



<p class="wp-block-paragraph">The second shift is sparsity. </p>



<p class="wp-block-paragraph">In a conventional dense model, every token passes through the same large set of parameters. Igor explained that <a href="https://www.nvidia.com/en-us/glossary/mixture-of-experts/" target="_blank" rel="noreferrer noopener">Mixture of Experts</a>, or MoE, adds a routing mechanism <strong>that activates only a subset of specialized expert blocks for each token</strong>. The total model can contain far more parameters than are actually used during a single forward pass.</p>



<p class="wp-block-paragraph">According to Dmochowski, this distinction between total parameters and active parameters is becoming much more useful when comparing models. A large parameter count can suggest capacity, but it says much less about serving cost once sparse architectures enter the picture:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">We don’t need to put all of the tokens into all of the parameters of the model, we route them to the experts. For deployment, active compute, memory footprint, context length, KV cache behavior and tokens per second can be more informative than the headline parameter number alone.</p>
</blockquote>



<p class="wp-block-paragraph">Dmochowski connected that efficiency directly to capability. His point was that<strong> more throughput gives a system more room to reason within the same compute budget</strong>.</p>



<p class="wp-block-paragraph">Agents can do more intermediate work and finish long tasks with lower latency. When reasoning uses thousands of tokens, throughput becomes part of the capability envelope, which is why multi-token prediction matters.</p>



<p class="wp-block-paragraph">Lower-precision formats can reduce memory and compute requirements as well. Both techniques point toward the same goal: <strong>spend less hardware effort per useful token without destroying model quality</strong>:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The faster model is going to be the smarter model. There is obviously a trade-off, but producing two or four times more tokens with the same compute gives you room to make that trade-off.</p>
</blockquote>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="538" src="https://shiftmag.dev/wp-content/uploads/2026/09/igor_3-1024x538.png?x32039" alt="" class="wp-image-12137" srcset="https://shiftmag.dev/wp-content/uploads/2026/09/igor_3-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/09/igor_3-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/09/igor_3-768x403.png 768w, https://shiftmag.dev/wp-content/uploads/2026/09/igor_3.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Photo: Petar Krajičić Vilović</figcaption></figure>



<h2 class="wp-block-heading"><span id="for-developers-efficiency-is-becoming-an-architectural-feature">For developers, efficiency is becoming an architectural feature</span></h2>



<p class="wp-block-paragraph">A model’s behavior <strong>depends on where you run it</strong> &#8211; the same model can act differently through a basic API than it does inside an agent harness with tools, memory, system instructions, and a loop that shows it the results of its actions. </p>



<p class="wp-block-paragraph">A leaderboard or prompt benchmark only tells part of the story. An agentic app is a full system, not just a model. &#8220;Tool schemas, retry logic, context construction, memory strategy and the execution loop all influence the final result. Evaluation should therefore resemble the environment in which the model will actually run,&#8221; Dmochowski said:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The environment in which the models are set matters quite a lot. The behavior you get through an API can be completely different from the one you get within a harness.</p>
</blockquote>



<p class="wp-block-paragraph">The same idea applies during training and post-training: <strong>models should be trained in environments that simulate agent harnesses</strong>, and model choice and system design should be tested together.</p>



<h2 class="wp-block-heading"><span id="open-models-can-be-the-better-choice-when-private-data-has-to-stay-in-house">Open models can be the better choice when private data has to stay in-house</span></h2>



<p class="wp-block-paragraph">Dmochowski also made a case for open models in domains where the most valuable data cannot be handed to a frontier model provider. Internal code, proprietary documents, regulated records and specialized workflows may require organizations to adapt models within their own environment:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Open weights, training recipes and reproducible tooling can matter most in exactly those cases, because the competitive advantage is often the private data and workflow rather than the base model itself.</p>
</blockquote>



<p class="wp-block-paragraph">The useful takeaway from Dmochowski’s talk is that <strong>the bottlenecks are moving</strong>. The early LLM conversation focused on scale and benchmark scores, but agentic systems force developers to think about long context, memory, generation speed, tool use, and the cost of every extra reasoning step. That changes how models should be evaluated: a smaller or sparser model can be the better choice if it keeps quality while lowering latency, and a huge context window only matters if the system can afford to use it.</p>


<figure class="wp-block-post-featured-image"><img decoding="async" width="1200" height="630" src="https://shiftmag.dev/wp-content/uploads/2026/09/igor_1.png?x32039" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" style="object-fit:cover;" srcset="https://shiftmag.dev/wp-content/uploads/2026/09/igor_1.png 1200w, https://shiftmag.dev/wp-content/uploads/2026/09/igor_1-768x403.png 768w, https://shiftmag.dev/wp-content/uploads/2026/09/igor_1-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/09/igor_1-1024x538.png 1024w" sizes="(max-width: 1200px) 100vw, 1200px" /></figure><p>The post <a href="https://shiftmag.dev/llms-have-a-new-limit-it-costs-more-to-think-longer-12083/">LLMs Have a New Limit &#8211; It Costs More to Think Longer</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Only 7% of Organizations Using Kubernetes for AI Do So Daily</title>
		<link>https://shiftmag.dev/only-7-of-organizations-using-kubernetes-for-ai-do-so-daily-12086/</link>
		
		<dc:creator><![CDATA[Ivan Pelivanovic]]></dc:creator>
		<pubDate>Tue, 15 Sep 2026 11:35:26 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Infobip Shift 2026]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=12086</guid>

					<description><![CDATA[<p>Two-thirds of organizations run AI workloads on Kubernetes, but only 7% do it daily. Katie Gamanji says the ecosystem still needs better operational maturity and standards.</p>
<p>The post <a href="https://shiftmag.dev/only-7-of-organizations-using-kubernetes-for-ai-do-so-daily-12086/">Only 7% of Organizations Using Kubernetes for AI Do So Daily</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></description>
										<content:encoded><![CDATA[<figure class="wp-block-post-featured-image"><img loading="lazy" decoding="async" width="1200" height="630" src="https://shiftmag.dev/wp-content/uploads/2026/09/katie_1.png?x32039" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" style="object-fit:cover;" srcset="https://shiftmag.dev/wp-content/uploads/2026/09/katie_1.png 1200w, https://shiftmag.dev/wp-content/uploads/2026/09/katie_1-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/09/katie_1-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/09/katie_1-768x403.png 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>


<p class="wp-block-paragraph">Yesterday at <a href="https://shiftmag.dev/tag/infobip-shift-2026/" target="_blank" rel="noreferrer noopener">Infobip Shift 2026</a>, I listened to Apple Principal Engineer and CNCF Technical Oversight Committee member Katie Gamanji talk about the <strong>state of cloud native and its slow turn towards AI</strong>.</p>



<p class="wp-block-paragraph">She said cloud native spent years becoming stable and unexciting, and AI teams now need that stability more than new tools. The big question is whether the people around that infrastructure can move as fast as the platform itself.</p>



<p class="wp-block-paragraph">For teams already using Kubernetes in production, the next change is very concrete, Katie said:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Dynamic Resource Allocation, or DRA, reached general availability in Kubernetes 1.34, adding a native way to request GPU and TPU capacity for AI workloads.</p>
</blockquote>



<h2 class="wp-block-heading"><span id="kubernetes-is-now-officially-boring">Kubernetes is now officially boring</span></h2>



<p class="wp-block-paragraph">Katie started with a number that captures how far Kubernetes has come: &#8220;98% of organizations in the CNCF’s annual report said they had adopted cloud native technologies.&#8221; After a decade of development, Kubernetes has become mainstream:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Kubernetes is now described as being boring, and I think this is a wonderful achievement.</p>
</blockquote>



<p class="wp-block-paragraph">The problem appears when AI workloads enter that mature infrastructure. According to the figures Katie presented, <strong>66% of organizations are already deploying AI workloads on Kubernetes</strong>. But only 7% are doing it daily, while 47% deploy them occasionally. Of the organizations using Kubernetes for AI, 23% have fully adopted the Kubernetes stack and 43% have partially adopted it.</p>



<p class="wp-block-paragraph">That 67 to 7 gap points to one likeliest cause. The talk did not name the cause directly, but the pattern Katie described points to operational immaturity as the likeliest one:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Teams fine-tune an existing model rather than build one, deploy it once to prove it works, and lack the automated retraining pipelines that would treat the model as a dynamic component.</p>
</blockquote>



<p class="wp-block-paragraph">The 7% deploying daily, she noted, &#8220;most likely implemented an automated retraining pipeline that treats the model as a dynamic component rather than a static element.&#8221; <strong>Running an AI workload is not as simple as putting another application into a container</strong>. Teams need model artifacts, rollback strategies, and training pipelines. Kubernetes is being positioned as the shared platform, though whether teams adopt it that way is another question.</p>



<h2 class="wp-block-heading"><span id="dra-and-ai-conformance-are-making-kubernetes-the-ai-platform">DRA and AI Conformance are making Kubernetes the AI platform</span></h2>



<p class="wp-block-paragraph">Katie compared this to DevOps: Kubernetes once brought developers and operations together, and now it could do the same for infrastructure teams and data scientists. But the analogy has limits &#8211; DevOps took years to work, and it is still not fully settled everywhere.</p>



<p class="wp-block-paragraph"><strong>Data scientists</strong>, for their part, <strong>rarely want to operate Kubernetes</strong>; they want a model served. Still, a platform that can run both traditional workloads and training or inference jobs reduces the need for separate AI infrastructure. </p>



<p class="wp-block-paragraph">Kubernetes is also adapting for this: DRA in 1.34 gives teams a more reliable way to allocate accelerators, which matters most for teams deploying daily.</p>



<p class="wp-block-paragraph">The <a href="https://www.cncf.io/announcements/2025/11/11/cncf-launches-certified-kubernetes-ai-conformance-program-to-standardize-ai-workloads-on-kubernetes/" target="_blank" rel="noreferrer noopener">AI Conformance Working Group</a> defines what a platform must support to run AI workloads reliably, with portability as the goal as Katie said: </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">If you have two conformant platforms, it&#8217;s going to be easy to lift and shift one product to the next platform.</p>
</blockquote>



<p class="wp-block-paragraph">Other initiatives target batch workloads, inference performance, and AI integration, and an Agent Sandbox effort is designing stateful, isolated runtimes for AI agents. The Serving Working Group completed its milestones and archived itself in February, continuing as a SIG on inference performance.</p>



<p class="wp-block-paragraph">The list is still changing quickly. Katie expects much of this landscape to look different within six months to a year.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="538" src="https://shiftmag.dev/wp-content/uploads/2026/09/katie_2-1024x538.png?x32039" alt="" class="wp-image-12131" srcset="https://shiftmag.dev/wp-content/uploads/2026/09/katie_2-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/09/katie_2-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/09/katie_2-768x403.png 768w, https://shiftmag.dev/wp-content/uploads/2026/09/katie_2.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"> Photo: Petar Krajičić Vilović</figcaption></figure>



<h2 class="wp-block-heading"><span id="the-cloud-native-playbook-ai-can-borrow">The cloud native playbook AI can borrow</span></h2>



<p class="wp-block-paragraph">Katie divided the emerging open source AI ecosystem into three areas: <strong>training, inference, and agents</strong>. Training turns data into a model. Inference serves it. Agents connect it to the outside world.</p>



<p class="wp-block-paragraph">For platform leads, maturity matters. Training is led by the <a href="https://pytorch.org/foundation/" target="_blank" rel="noreferrer noopener">PyTorch Foundation</a>, inference has many options, and agents are still young under the <a href="https://aaif.io/" target="_blank" rel="noreferrer noopener">Agentic AI Foundation</a>.</p>



<p class="wp-block-paragraph"><strong>Cloud native experience can help AI tools mature faster</strong>. Security, observability, and identity were already solved in cloud native, and the CNCF project pipeline shows that kind of progress at scale.e.</p>



<p class="wp-block-paragraph">It also prunes: 28 archived projects. For anyone choosing a stack, the archive list is a practical filter, and Katie argued archival is a healthy sign, letting maintainers redirect energy toward projects that earn adoption.</p>



<h2 class="wp-block-heading"><span id="teams-that-engage-now-will-shape-the-patterns-everyone-else-follows">Teams that engage now will shape the patterns everyone else follows</span></h2>



<p class="wp-block-paragraph">For Katie, the next phase of cloud native is about whether the people building and maintaining the ecosystem can keep pace. She pointed out that contributing also means production feedback, feature requests, documentation, and white papers all shape projects.</p>



<p class="wp-block-paragraph">But in the end Katie&#8217;s talk left the hard questions unanswered, but the data shows why:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">98% of organizations trust Kubernetes with their infrastructure, two thirds have tried running AI on it, and almost nobody operates it continuously.</p>
</blockquote>



<p class="wp-block-paragraph">The specific bottlenecks, daily operational maturity, DRA adoption, and the conformance baseline, are still being defined, which means teams deploying AI on Kubernetes today are writing the patterns everyone else will copy:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">All of the working groups&#8217; meeting notes, invites, and repositories are public on GitHub. The teams that engage now, before the patterns harden, will not have to retrofit someone else&#8217;s choices in two years.</p>
</blockquote>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://shiftmag.dev/only-7-of-organizations-using-kubernetes-for-ai-do-so-daily-12086/">Only 7% of Organizations Using Kubernetes for AI Do So Daily</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AI speeds up prototyping, but teams still need to distinguish decisions from assumptions</title>
		<link>https://shiftmag.dev/ai-speeds-up-prototyping-but-teams-still-need-to-distinguish-decisions-from-assumptions-12049/</link>
		
		<dc:creator><![CDATA[Anastasija Uspenski]]></dc:creator>
		<pubDate>Mon, 14 Sep 2026 14:15:01 +0000</pubDate>
				<category><![CDATA[Event]]></category>
		<category><![CDATA[Figma]]></category>
		<category><![CDATA[Infobip Shift 2026]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=12049</guid>

					<description><![CDATA[<p>Figma’s Designer Advocate argued that AI can make prototypes look finished too early, which can hide dangerous assumptions.</p>
<p>The post <a href="https://shiftmag.dev/ai-speeds-up-prototyping-but-teams-still-need-to-distinguish-decisions-from-assumptions-12049/">AI speeds up prototyping, but teams still need to distinguish decisions from assumptions</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></description>
										<content:encoded><![CDATA[<figure class="wp-block-post-featured-image"><img loading="lazy" decoding="async" width="1200" height="630" src="https://shiftmag.dev/wp-content/uploads/2026/09/hugo_3.png?x32039" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" style="object-fit:cover;" srcset="https://shiftmag.dev/wp-content/uploads/2026/09/hugo_3.png 1200w, https://shiftmag.dev/wp-content/uploads/2026/09/hugo_3-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/09/hugo_3-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/09/hugo_3-768x403.png 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>


<p class="wp-block-paragraph">The easier it is to make something look finished, the more important it is to understand <strong>what the team actually decided</strong>.</p>



<p class="wp-block-paragraph">That was the starting point for Hugo Raymond, Designer Advocate at Figma, in his talk at <a href="https://shiftmag.dev/tag/infobip-shift-2026/" target="_blank" rel="noreferrer noopener">Infobip Shift 2026</a>.<br></p>



<p class="wp-block-paragraph">His main point was that <strong>AI becomes a problem when it fills in the gaps before decisions are made</strong>, because it can hide unresolved decisions.</p>



<h2 class="wp-block-heading"><span id="a-prototype-shouldn%e2%80%99t-try-to-look-like-a-finished-product"><strong>A prototype shouldn’t try to look like a finished product</strong></span></h2>



<p class="wp-block-paragraph">Hugo reminded us that the purpose of a prototype is to <strong>help the team test an idea</strong>. He compared it to a model airplane:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">A model doesn’t try to be a real airplane. We use it to study specific characteristics of the airplane.</p>
</blockquote>



<p class="wp-block-paragraph">The problem, he argued, is that AI can now create a very convincing prototype even when the original idea is still incomplete:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">In the past, gaps were easier to see. If a screen did not exist, a flow ended in a dead end, or the team had not defined a certain state, you could clearly see that nobody had made that decision yet. AI can now connect the flow, generate data, create loading and error states, and add behavior that nobody explicitly defined.</p>
</blockquote>



<p class="wp-block-paragraph">In the end, everything looks like one coherent product, even though the team designed some parts and the model simply filled in the rest.</p>



<h2 class="wp-block-heading"><span id="visual-polish-no-longer-proves-that-the-team-solved-the-problem">Visual polish no longer proves that the team solved the problem</span></h2>



<p class="wp-block-paragraph">According to Hugo, this creates an especially important problem for developers: <strong>the more finished a prototype looks, the more authority we give it</strong> and the more likely we are to treat it as a specification that developers simply need to implement.</p>



<p class="wp-block-paragraph">Hugo warned that a polished prototype no longer means that someone has thought through every edge case, business rule, or technical constraint.</p>



<p class="wp-block-paragraph">One of his key points was that <strong>polish used to be expensive</strong>. If something looked highly refined, you could at least assume that someone had spent time thinking through the problem. Now, the tables had turned:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">AI has broken that connection. The first draft can now look like the final iteration. Teams therefore need to make a much clearer distinction between what they have actually decided and what is still only an assumption.</p>
</blockquote>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="538" src="https://shiftmag.dev/wp-content/uploads/2026/09/hugo_1-1024x538.png?x32039" alt="" class="wp-image-12062" srcset="https://shiftmag.dev/wp-content/uploads/2026/09/hugo_1-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/09/hugo_1-768x403.png 768w, https://shiftmag.dev/wp-content/uploads/2026/09/hugo_1-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/09/hugo_1.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Photo: Petar Krajičić Vilović</figcaption></figure>



<h2 class="wp-block-heading"><span id="code-is-not-the-opposite-of-design">Code is not the opposite of design</span></h2>



<p class="wp-block-paragraph">Hugo doesn’t think the solution is to <strong>move design back into static mockups</strong>, quite the opposite: code is not the opposite of design but one of the materials we use to design:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">A code prototype can use real data, react to unexpected input, and show states that a designer did not draw in advance. AI has made this kind of experimentation much more accessible.</p>
</blockquote>



<p class="wp-block-paragraph">Still, <strong>code and a design canvas don&#8217;t show the same things</strong>.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Code is very good at showing what happens, while the canvas can do a better job of preserving why the team made a certain decision, which alternatives the team considered, and what the team still needs to solve.</p>
</blockquote>



<p class="wp-block-paragraph">Because of that, he sees a future where <strong>teams combine different materials depending on what they’re trying to learn.</strong></p>



<h2 class="wp-block-heading"><span id="ai-speeds-up-execution-but-not-decision-making">AI speeds up execution, but not decision-making</span></h2>



<p class="wp-block-paragraph">The final and most important point of his talk focused on the limits of automation.</p>



<p class="wp-block-paragraph">AI can take over a lot of repetitive work, speed up prototyping, and help teams test ideas more cheaply, but <strong>making something faster does not mean we understand what to make any better</strong>.</p>



<p class="wp-block-paragraph">Hugo therefore makes a distinction between friction worth removing and friction that serves a purpose:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">We can automate copying, waiting, and repetition. We should not automate comparing options, testing assumptions, discussing trade-offs, and questioning decisions.</p>
</blockquote>



<p class="wp-block-paragraph">As he pointed out, these moments help teams develop the judgment that AI cannot simply replace. “When almost every prototype can look finished, how convincing it looks is no longer the most important thing,” he said. What matters is whether the team can still clearly see what it has decided, what it has assumed, and what it still needs to solve.</p>
<p>The post <a href="https://shiftmag.dev/ai-speeds-up-prototyping-but-teams-still-need-to-distinguish-decisions-from-assumptions-12049/">AI speeds up prototyping, but teams still need to distinguish decisions from assumptions</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Google DeepMind: AI’s Next Step Is Learning From Its Own Experience</title>
		<link>https://shiftmag.dev/google-deepmind-ais-next-step-is-learning-from-its-own-experience-not-just-human-data-12023/</link>
		
		<dc:creator><![CDATA[Nikolina Oršulić]]></dc:creator>
		<pubDate>Mon, 14 Sep 2026 12:14:23 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google DeepMind]]></category>
		<category><![CDATA[Infobip Shift 2026]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=12023</guid>

					<description><![CDATA[<p>We’re waiting for the next big AI leap - systems learning from their own experience rather than just human data - and at Infobip Shift, Google DeepMind’s Benoit Schillings said that’s exactly where the field is headed.</p>
<p>The post <a href="https://shiftmag.dev/google-deepmind-ais-next-step-is-learning-from-its-own-experience-not-just-human-data-12023/">Google DeepMind: AI’s Next Step Is Learning From Its Own Experience</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></description>
										<content:encoded><![CDATA[<figure class="wp-block-post-featured-image"><img loading="lazy" decoding="async" width="1200" height="630" src="https://shiftmag.dev/wp-content/uploads/2026/09/benoa_2_.png?x32039" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" style="object-fit:cover;" srcset="https://shiftmag.dev/wp-content/uploads/2026/09/benoa_2_.png 1200w, https://shiftmag.dev/wp-content/uploads/2026/09/benoa_2_-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/09/benoa_2_-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/09/benoa_2_-768x403.png 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>


<p class="wp-block-paragraph">Google DeepMind’s VP of Technology argued that one of the most important developments to watch is the rise of systems that can <strong>learn beyond the limits of human-generated training data</strong>. </p>



<p class="wp-block-paragraph">He said AI has already gone through most publicly available human knowledge and is ready for the next step:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">What it really needs now is to start generating its own experience and its own data. In the next year or two, that’s exactly where AI is heading.<br></p>
</blockquote>



<p class="wp-block-paragraph">That’s where <strong>recursive self-improvement</strong> comes in: AI could start learning from its own experience by trying problems, checking its answers, finding mistakes, and testing different approaches instead of depending only on human-generated data. Humans do this naturally, but AI still struggles with it for now.</p>



<h2 class="wp-block-heading"><span id="ai-can-learn-from-experience-but-monitoring-has-to-improve-too"><strong>AI can learn from experience, but monitoring has to improve too</strong></span></h2>



<p class="wp-block-paragraph">Schillings pointed to <a href="https://deepmind.google/research/alphago/" target="_blank" rel="noreferrer noopener">AlphaGo</a> as an early example. </p>



<p class="wp-block-paragraph">AlphaGo is DeepMind’s system that beat one of the world’s best Go players, and Go is an ancient Chinese board game where the goal is to control territory on a grid. <strong>What made AlphaGo important was how it learned</strong>: by playing against itself and finding strategies that didn’t come from human games.</p>



<p class="wp-block-paragraph">Humans spent centuries developing Go, and now they study strategies discovered by AI. So: who is teaching whom? AI and humans learn from each other.</p>



<p class="wp-block-paragraph">There is, however, a major problem with the idea of AI learning from itself. What happens when the AI is wrong and who determines whether the data it produces is useful? This is particularly important because, as Schillings noted during his talk, models can sometimes <strong>find ways to appear successful without actually solving the problem</strong> they were given.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Cheating is a real problem. You ask a model to solve a problem, especially in code, and it will tell you, &#8220;I’ve done it, it’s there, it’s beautiful.&#8221; Then you check and find that it actually did not solve the problem. It may have stolen the result from somewhere else, or, even more amusingly, you ask it to write a tool for Linux and it says, &#8220;I wrote the tool,&#8221; when it’s really just invoking the existing tool and hiding the trace.</p>
</blockquote>



<p class="wp-block-paragraph"><strong>Sophisticated cheeting</strong> is becoming&nbsp;more and more&nbsp;an issue even for model to self-verify. So, we need to get the monitor to become more sophisticated also. That&#8217;s&nbsp;a part of&nbsp;the recursive&nbsp;self-improvement, he said.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="538" src="https://shiftmag.dev/wp-content/uploads/2026/09/benoa_3_-1024x538.png?x32039" alt="" class="wp-image-12033" srcset="https://shiftmag.dev/wp-content/uploads/2026/09/benoa_3_-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/09/benoa_3_-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/09/benoa_3_-768x403.png 768w, https://shiftmag.dev/wp-content/uploads/2026/09/benoa_3_.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Photo: Petar Krajičić Vilović</figcaption></figure>



<h2 class="wp-block-heading"><span id="ai-needs-step-by-step-feedback">AI needs step-by-step feedback</span></h2>



<p class="wp-block-paragraph">Another part of Schillings’ point is <strong>how AI systems are trained</strong>. Some problems are easy to check: a proof works or it doesn’t, code passes tests or it doesn’t. But real-world problems are usually messier than that.</p>



<p class="wp-block-paragraph">Schillings compared it to teaching someone to climb a mountain with only one bit of feedback: you fell or you didn’t. That would be a terrible way to learn. A better teacher would give step-by-step feedback:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">This part was good. Try this section differently. You&#8217;re getting closer. Here&#8217;s where you can improve.</p>
</blockquote>



<p class="wp-block-paragraph"><strong>AI systems are being trained to give this kind of step-by-step reward</strong>. That matters more than it first seems: if models can learn not just from success and failure, but from how close they were to a better solution, they can handle much more complex problems.</p>



<h2 class="wp-block-heading"><span id="new-systems-may-reveal-things-we-haven%e2%80%99t-noticed-yet"><strong>New systems may reveal things we haven’t noticed yet</strong></span></h2>



<p class="wp-block-paragraph">What happens when AI starts exploring the unknown? This is where the implications become interesting. </p>



<p class="wp-block-paragraph">Code is a relatively convenient environment for AI because there is usually a way to test whether something works. Schillings expects the coming wave of AI development to produce an <strong>increasing number of breakthroughs</strong> in areas such as physical sciences, biology, mathematics and engineering. The reason is straightforward.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">If AI can generate hypotheses, test them, reject unsuccessful approaches and build on successful ones, it can start exploring the space of possibilities itself. That is a very different proposition from using AI as a better search engine. The ultimate value of these systems may be that they help us discover things nobody knows yet.</p>
</blockquote>



<p class="wp-block-paragraph">And that could turn out to be the most important AI story of the next few years.</p>
<p>The post <a href="https://shiftmag.dev/google-deepmind-ais-next-step-is-learning-from-its-own-experience-not-just-human-data-12023/">Google DeepMind: AI’s Next Step Is Learning From Its Own Experience</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>OpenAI Says the Real Work in AI Coding Is Building the System Around It</title>
		<link>https://shiftmag.dev/openai-says-the-real-work-in-ai-coding-is-building-the-system-around-it-11976/</link>
		
		<dc:creator><![CDATA[Marin Pavelić]]></dc:creator>
		<pubDate>Mon, 14 Sep 2026 10:59:32 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[AI agents]]></category>
		<category><![CDATA[Infobip Shift 2026]]></category>
		<category><![CDATA[Luis Velasco]]></category>
		<category><![CDATA[OpenAI]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=11976</guid>

					<description><![CDATA[<p>Infobip Shift 2026 is officially open, and OpenAI’s Luis Velasco said the real work now is bringing together the data, process, and systems agents need to do the job well and keep improving.</p>
<p>The post <a href="https://shiftmag.dev/openai-says-the-real-work-in-ai-coding-is-building-the-system-around-it-11976/">OpenAI Says the Real Work in AI Coding Is Building the System Around It</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></description>
										<content:encoded><![CDATA[<figure class="wp-block-post-featured-image"><img loading="lazy" decoding="async" width="1200" height="630" src="https://shiftmag.dev/wp-content/uploads/2026/09/luis_1_.png?x32039" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" style="object-fit:cover;" srcset="https://shiftmag.dev/wp-content/uploads/2026/09/luis_1_.png 1200w, https://shiftmag.dev/wp-content/uploads/2026/09/luis_1_-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/09/luis_1_-768x403.png 768w, https://shiftmag.dev/wp-content/uploads/2026/09/luis_1_-1024x538.png 1024w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>


<p class="wp-block-paragraph">Luis Velasco, Forward Deployed Engineer at OpenAI, says we’re entering a new field: <strong>meta software engineering</strong>.</p>



<p class="wp-block-paragraph">Instead of building software that follows a predefined sequence of operations, engineers now need to <strong>build the systems around AI agents</strong> giving them context, tools, skills, constraints, and ways to evaluate their work.</p>



<h2 class="wp-block-heading"><span id="the-hardest-part-is-always-the-context">The hardest part is always the context</span></h2>



<p class="wp-block-paragraph">Code is easier for AI agents to work with. A codebase is structured, and the results are easy to check because the code compiles and tests pass. <strong>Business workflows are a lot messier</strong>, Luis explains:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">In business workflows, the context is fragmented and spread across people and systems. A Slack message may explain why a decision changed, a legacy application may hold the data state, and an experienced colleague knows the part nobody wrote down. The work item we’re trying to automate depends on all of that.</p>
</blockquote>



<p class="wp-block-paragraph">For an agent to perform that work, engineers first have to reconstruct the context in which the work happens. Velasco breaks this down into three elements: <strong>data, processes and systems.</strong></p>



<p class="wp-block-paragraph">Data gives the information and domain knowledge for decisions. Processes define the rules, exceptions, and timelines. Systems provide the apps and APIs that let the work get done, with the right permissions.</p>



<p class="wp-block-paragraph">The agent needs a <strong>context layer that stays current and gives it the information relevant to the task</strong>. Processes can be turned into agent skills, while APIs and other systems give the agent the ability to execute the work. Velasco showed this with an insurance claims workflow: the agent read an email and attachments, checked information across multiple apps, verified the claim, calculated the settlement, and prepared the response in 22 seconds instead of 20 to 30 minutes.</p>



<h2 class="wp-block-heading"><span id="everything-works-fine-until-it-has-to-run-at-scale">Everything works fine until it has to run at scale</span></h2>



<p class="wp-block-paragraph">Getting one agent to complete a workflow is just the beginning, because the real challenge starts when that workflow has to run at scale. Then agents have to work in parallel, <strong>workflows can become interconnected</strong>, and one agent’s result can become the input for another:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">This can be handled with agents and sub-agents that share context, or with an independent environment where agents can read and write shared state. That state helps them recover what has already been done and figure out what needs to happen next.</p>
</blockquote>



<p class="wp-block-paragraph">That’s why <strong>the infrastructure around the agent matters</strong>: queues, worker processes, checkpoints, and an artifact store with results, evidence, and reports. The goal is a durable execution environment that can recover if something crashes and avoid doing the same task twice.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="538" src="https://shiftmag.dev/wp-content/uploads/2026/09/luis_2_-1024x538.png?x32039" alt="" class="wp-image-12020" srcset="https://shiftmag.dev/wp-content/uploads/2026/09/luis_2_-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/09/luis_2_-768x403.png 768w, https://shiftmag.dev/wp-content/uploads/2026/09/luis_2_-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/09/luis_2_.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Photo: Petar Krajičić Vilović</figcaption></figure>



<h2 class="wp-block-heading"><span id="multi-agent-systems-need-more-than-extra-model-calls">Multi-agent systems need more than extra model calls</span></h2>



<p class="wp-block-paragraph">Velasco <strong>showed what this looks like at a much larger scale</strong> with an experiment focused on CPU design: a campaign controller spread goals, budgets, and work across different CPU domains, with 512 agents working on areas like arithmetic, memory ordering, and control flow.</p>



<p class="wp-block-paragraph">The agents, he explained, had different roles: some looked for potential bugs, critic agents challenged their findings, and verification agents tried to reproduce them. The campaign ran for four days, used about 1.4 terabytes of data, and produced evidence that could be shared with verification engineers before a problem reached production.</p>



<p class="wp-block-paragraph">It shows that multi-agent systems need <strong>coordination</strong>, <strong>shared state</strong>, <strong>verification</strong>, and a <strong>way to manage work across many agents</strong>, not just extra model calls.</p>



<h2 class="wp-block-heading"><span id="the-system-can-learn-without-changing-the-model">The system can learn without changing the model</span></h2>



<p class="wp-block-paragraph">Another important part of Velasco’s approach is that the model itself <strong>doesn’t always need to get more capable for the whole system to improve</strong>. He compared it to an experienced employee:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">A senior employee may have the same basic intelligence as when they joined a company, but after years of experience they know the systems, common failure modes and small details that make them more effective.</p>
</blockquote>



<p class="wp-block-paragraph">For an agent, that experience lives in the system around the model.</p>



<p class="wp-block-paragraph">Updated context can provide relevant knowledge, updated skills can refine how work is performed, and evaluations can check behaviours that need to be verified. The model weights may stay the same while the system around the model gets better through repeated execution.</p>



<p class="wp-block-paragraph">Velasco said <strong>successful runs, failures, and human corrections all help here</strong>. Successful runs show what to reinforce, failures show what needs improvement, and human corrections reveal gaps in the agent’s skills. Over time, those patterns can update memory, context, skills, or evaluation sets.</p>



<p class="wp-block-paragraph">He showed this with a tax preparation agent: it started by completing about 25% of the required fields, and after six weeks of repeated runs, evaluations, and skill updates, it reached nearly 90%.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="614" src="https://shiftmag.dev/wp-content/uploads/2026/09/shift-2026-openai122-1024x614.png?x32039" alt="" class="wp-image-11989" srcset="https://shiftmag.dev/wp-content/uploads/2026/09/shift-2026-openai122-1024x614.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/09/shift-2026-openai122-767x460.png 767w, https://shiftmag.dev/wp-content/uploads/2026/09/shift-2026-openai122-300x180.png 300w, https://shiftmag.dev/wp-content/uploads/2026/09/shift-2026-openai122.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Photo: Marin Pavelić</figcaption></figure>



<h2 class="wp-block-heading"><span id="engineering-will-become-meta-software-engineering"><strong>Engineering will become meta software engineering</strong></span></h2>



<p class="wp-block-paragraph">This changes the engineer’s role. As more execution is delegated to agents, <strong>engineers spend more time designing and improving the system doing the work</strong>. But engineering doesn’t disappear, humans still set the goals, make the trade-offs, and decide where human intervention belongs. </p>



<p class="wp-block-paragraph">That leads to Velasco’s broader definition of what engineers are building in an AI-assisted environment:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The highest value software artifact that we may be creating is not the code base itself, but the system of intent, the constraint, and the evaluation from which code can be produced in a systematic and repeatable way.</p>
</blockquote>



<p class="wp-block-paragraph">He calls this emerging discipline <strong>meta software engineering</strong>: building the environment around AI so agents have the right context, tools, skills, coordination, and feedback to do the work and get better over time.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The next chapter of software engineering is about building the systems around the code.</p>
</blockquote>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://shiftmag.dev/openai-says-the-real-work-in-ai-coding-is-building-the-system-around-it-11976/">OpenAI Says the Real Work in AI Coding Is Building the System Around It</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AI agents need their own identity and least-privilege access</title>
		<link>https://shiftmag.dev/ai-agents-need-their-own-identity-and-least-privilege-access-11727/</link>
		
		<dc:creator><![CDATA[Marko Crnjanski]]></dc:creator>
		<pubDate>Fri, 11 Sep 2026 12:21:00 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[AI agents]]></category>
		<category><![CDATA[cybersecurity]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=11727</guid>

					<description><![CDATA[<p>As infrastructure gets more complex, "inside the network" is no longer enough. Users, devices, and AI agents need their own identity and only the access they need.</p>
<p>The post <a href="https://shiftmag.dev/ai-agents-need-their-own-identity-and-least-privilege-access-11727/">AI agents need their own identity and least-privilege access</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Infrastructure keeps shifting and access now comes from all kinds of people and systems.</p>



<p class="wp-block-paragraph">I spoke about that with <strong>Ross Kukulinski</strong> from Tailscale at WAD Berlin. He kept coming back to the same problem: traditional networking still trusts too much based on IPs and subnets. That doesn’t work well in a world where identity matters more than location.</p>



<p class="wp-block-paragraph">We talked about his talk on the next internet protocol and what it takes to build connectivity around identity instead of network boundaries.</p>



<h2 class="wp-block-heading"><span id="large-shared-networks-are-becoming-a-liability">Large shared networks are becoming a liability</span></h2>



<p class="wp-block-paragraph">Kukulinski points out a simple mismatch: the internet was built to be open, but private infrastructure usually shouldn’t be. That openness works for public services, but it gets much harder to justify when you’re talking about databases, Kubernetes clusters, internal tools, and AI workloads.</p>



<p class="wp-block-paragraph">In practice, teams try to work around this with firewalls, gateways, proxies, and network segmentation</p>



<p class="wp-block-paragraph">Kukulinski argues that a better starting point is to ask whether every person, machine, or workload should be able to reach everything else at all. This shifts the design toward <strong>smaller, isolated networks that are only connected when a resource needs to be shared</strong>, with access rules determining which identities can communicate with which services. He explained:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The key is point-to-point connectivity. Policy is governed centrally, but enforcement happens at the edge. Instead of routing through a stack of gateways or proxies, machines can talk directly to each other.</p>
</blockquote>



<p class="wp-block-paragraph">For developers, the key idea is <strong>the separation of authorization from network topology</strong>. A service can be reachable because a particular identity is allowed to reach it, rather than just because both endpoints sit inside the same trusted network.</p>



<p class="wp-block-paragraph">&#8220;That distinction matters as infrastructure becomes more distributed. A development environment may span several clouds, customer networks, on-prem systems, remote workstations, and edge devices,&#8221; Kukulinski pointed out.</p>



<p class="wp-block-paragraph">He added that traditional connectivity options can solve individual cases, but large shared networks become harder to govern as the number of environments and access relationships grows. The goal is to <strong>make connectivity explicit and narrowly scoped</strong>, instead of treating broad network membership as permission.</p>



<h2 class="wp-block-heading"><span id="identity-is-more-durable-than-an-ip-address">Identity is more durable than an IP address</span></h2>



<p class="wp-block-paragraph">That same idea raises a bigger problem with trusting IP addresses: IPs are fine for finding where traffic should go, but they are not a good way to prove who someone is or whether they should be allowed to access something sensitive. Kukulinski said this is especially clear in Kubernetes, where IP addresses change often and don’t reliably represent identity:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">IP addresses come and go, and they’re duplicated everywhere. If you’re running in a Kubernetes cluster, the IP address of any one pod changes as pods are destroyed and recreated. So trusting IP addresses, or even trusting a subnet, really doesn’t work.</p>
</blockquote>



<p class="wp-block-paragraph">Kukulinski also said that <strong>identity-based access is better because it ties permissions to the connection itself</strong>, rather than to an IP address or subnet. That connection can carry useful context, like who the user is, what group they belong to in the identity system, what device they’re using, and what policies apply to that device. For example, a managed work laptop might be allowed to access internal systems that a personal laptop cannot, even if both belong to the same person.</p>



<p class="wp-block-paragraph">For developers, <strong>this can remove a lot of the hassle around infrastructure access</strong>. SSH, Kubernetes admin tasks, databases, and remote systems often rely on credentials that have to be created, shared, updated, and eventually revoked.</p>



<h2 class="wp-block-heading"><span id="identity-is-becoming-the-control-layer-for-infrastructure-and-ai">Identity is becoming the control layer for infrastructure and AI</span></h2>



<p class="wp-block-paragraph">Kukulinski also said that if access is based on identity and group membership, <strong>permissions can change automatically when a person’s role changes</strong>. For example, when a developer moves to another team, the systems they can reach can update right away, without having to clean up old VPN access or long-lived keys:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">If I transfer internally from product management to engineering, and my groups change in the identity provider, that automatically updates what I can do from my devices.</p>
</blockquote>



<p class="wp-block-paragraph">The same idea is becoming important for AI tools too. An identity-aware gateway can sit between developers and model providers, check who is making the request, control which models they can use, and manage provider logins in one place. As Kukulinski explained, developers can still make API calls without needing a separate credential for every model or service.</p>



<p class="wp-block-paragraph">He also said <strong>Kubernetes shows that networking can still get complicated</strong>, even when identity is handled well:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The harder problem begins at the cluster boundary, when a service in one cluster must communicate securely with another cluster, another cloud, or a system outside Kubernetes. Things inside the cluster can talk easily, but talking to other Kubernetes clusters, especially in a different cloud, is incredibly challenging</p>
</blockquote>



<p class="wp-block-paragraph">Kukulinski prefers a <strong>direct encrypted connection</strong> when possible, using relay infrastructure only as a backup. Connectivity affects not just security, but also speed, reliability, and cloud costs.</p>



<h2 class="wp-block-heading"><span id="ai-agents-need-limited-access-not-blanket-trust">AI agents need limited access, not blanket trust</span></h2>



<p class="wp-block-paragraph">AI makes this problem harder because <strong>it adds non-human users that need access to internal systems</strong>. Kukulinski also said AI tools can help attackers automate scanning and reconnaissance, so defenders should use the same kind of automation for supply-chain security, environment checks, and build and deployment controls.</p>



<p class="wp-block-paragraph">The risk is often inside a company’s own infrastructure. Teams sometimes give AI projects broad access first and tighten it later, which can leave them with the same kind of over-permissive VPN access companies have struggled with for years:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The historical pattern has often been: &#8220;We just need to get this AI thing going, so let’s give AI access to the whole network.&#8221; That’s the scariest thing, and it repeats the same failure mode as giving too many people open VPN access to too many systems.</p>
</blockquote>



<p class="wp-block-paragraph">Kukulinski’s preferred model is to <strong>give agents their own identity and access policy, with permissions that can be changed or revoked as needed</strong>. An agent, or group of agents, can also be isolated from the wider network and given access only to the nodes, services, or data it needs.</p>



<p class="wp-block-paragraph">For developers building agentic systems, treat an agent as a separate workload with least-privilege access from the start</p>



<p class="wp-block-paragraph">&#8220;If an agent can reach a production database simply because it is already inside a trusted network, the architecture has repeated an old networking mistake with a much more capable actor,&#8221; Kukulinski said.</p>


<figure class="wp-block-post-featured-image"><img loading="lazy" decoding="async" width="1200" height="630" src="https://shiftmag.dev/wp-content/uploads/2026/08/ross_main.png?x32039" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" style="object-fit:cover;" srcset="https://shiftmag.dev/wp-content/uploads/2026/08/ross_main.png 1200w, https://shiftmag.dev/wp-content/uploads/2026/08/ross_main-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/08/ross_main-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/08/ross_main-768x403.png 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure><p>The post <a href="https://shiftmag.dev/ai-agents-need-their-own-identity-and-least-privilege-access-11727/">AI agents need their own identity and least-privilege access</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>You Should Bring Your Ops to Slack</title>
		<link>https://shiftmag.dev/you-should-bring-your-ops-to-slack-11860/</link>
		
		<dc:creator><![CDATA[Toni Babic]]></dc:creator>
		<pubDate>Wed, 09 Sep 2026 15:13:55 +0000</pubDate>
				<category><![CDATA[Developer Experience]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[AI agents]]></category>
		<category><![CDATA[MCP]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=11860</guid>

					<description><![CDATA[<p>We're burning thousands of dollars on AI conversations that should've been a single slash command.</p>
<p>The post <a href="https://shiftmag.dev/you-should-bring-your-ops-to-slack-11860/">You Should Bring Your Ops to Slack</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></description>
										<content:encoded><![CDATA[<figure class="wp-block-post-featured-image"><img loading="lazy" decoding="async" width="1200" height="630" src="https://shiftmag.dev/wp-content/uploads/2026/09/bring-your-ops-to-slack.png?x32039" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" style="object-fit:cover;" srcset="https://shiftmag.dev/wp-content/uploads/2026/09/bring-your-ops-to-slack.png 1200w, https://shiftmag.dev/wp-content/uploads/2026/09/bring-your-ops-to-slack-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/09/bring-your-ops-to-slack-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/09/bring-your-ops-to-slack-768x403.png 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>


<p class="wp-block-paragraph">AI makes ad hoc operational work so easy that <strong>we stop building the tools around it</strong>.</p>



<p class="wp-block-paragraph">Why write a script when you can just ask Claude or Copilot to restart the canary? Why build a dashboard when ChatGPT can summarize today’s deploy status in 15 seconds?</p>



<p class="wp-block-paragraph">Because that 15-second conversation, repeated by 50 engineers 20 times a day, <strong>stops being convenience and starts becoming a tax</strong>.</p>



<h2 class="wp-block-heading"><span id="conversation-driven-operations-have-a-hidden-cost">Conversation-driven operations have a hidden cost</span></h2>



<p class="wp-block-paragraph">Let&#8217;s walk through a real example: <strong>restarting a canary deployment</strong>.</p>



<p class="wp-block-paragraph"><strong>Manual AI-assisted workflow</strong>:</p>



<ol start="1" class="wp-block-list">
<li>You: &#8220;Check the health of the canary deployment for payment-service&#8221;</li>



<li>AI: <em>calls monitoring API, returns data</em> (~800 tokens)</li>



<li>You: &#8220;It looks unhealthy, restart it&#8221;</li>



<li>AI: <em>calls deployment API, confirms restart</em> (~600 tokens)</li>



<li>You: &#8220;Monitor it for the next 5 minutes and confirm if it stabilizes&#8221;</li>



<li>AI: <em>polls metrics, returns confirmation</em> (~900 tokens)</li>
</ol>



<p class="wp-block-paragraph">That&#8217;s ~2,300 tokens per restart. Three restarts a day across a team = ~200k tokens/month. For a task that takes one CLI command.</p>



<p class="wp-block-paragraph">Now compare:</p>



<p class="wp-block-paragraph"><code>/canary-restart payment-service</code></p>



<p class="wp-block-paragraph">One message, zero AI tokens. The bot routes the intent to an internal tool that handles health checks, restart logic, and confirmation, all without an LLM in the loop.</p>



<p class="wp-block-paragraph"><strong>Use AI to build the tool once, so you don’t keep paying for the conversation</strong>.</p>



<h2 class="wp-block-heading"><span id="why-slack">Why Slack?</span></h2>



<p class="wp-block-paragraph">Because <strong>that&#8217;s where the work already happens</strong>.</p>



<p class="wp-block-paragraph">Incidents get declared in Slack. Deploy notifications land in Slack. Someone pings you in Slack asking &#8220;is prod healthy?&#8221; The response to that message shouldn&#8217;t require opening a terminal, switching to a dashboard, or navigating to another tool.</p>



<p class="wp-block-paragraph">Your team already works in Slack, so your commands, context, and decisions should live there too, directly connected to the machines.</p>



<p class="wp-block-paragraph">The alternative is telling every engineer: &#8220;When something breaks, leave the place where your team is coordinating, open a different tool, figure out what command to run, then come back here to tell everyone what happened.&#8221; We&#8217;ve been doing that for years and it&#8217;s never been good. We just didn&#8217;t have a better option.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="538" src="https://shiftmag.dev/wp-content/uploads/2026/09/bring-your-ops-to-slack-1-1024x538.png?x32039" alt="" class="wp-image-11878" srcset="https://shiftmag.dev/wp-content/uploads/2026/09/bring-your-ops-to-slack-1-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/09/bring-your-ops-to-slack-1-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/09/bring-your-ops-to-slack-1-768x403.png 768w, https://shiftmag.dev/wp-content/uploads/2026/09/bring-your-ops-to-slack-1.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading"><span id="the-bot-is-there-to-connect-not-to-decide">The bot is there to connect, not to decide</span></h2>



<p class="wp-block-paragraph">This is where most Slack bot projects go off track: <strong>they pack business logic directly into the bot itself</strong>. Message handlers start calling APIs, transforming data, and handling retries, and before long the bot turns into a monolith.</p>



<p class="wp-block-paragraph"><strong>The Slack bot should be thin.</strong> It does exactly three things:</p>



<ol start="1" class="wp-block-list">
<li>Parse the incoming command or message</li>



<li>Route it to the right internal service</li>



<li>Format the response back to the user</li>
</ol>



<p class="wp-block-paragraph">No business logic, no database queries, no retry loops, and no secret management.</p>



<p class="wp-block-paragraph"><strong>The actual work lives in your internal tools and services</strong>. The same ones your GUI calls, your MCP server exposes, your CLI wraps, your CI/CD pipeline triggers. The Slack bot is just one connector among many.</p>



<p class="wp-block-paragraph">The tool service owns the business logic. Every connector, GUI, MCP, Slack, CLI, is a thin shell that calls the same service. Write the logic once, expose it everywhere.</p>



<h2 class="wp-block-heading"><span id="choose-configuration-over-code-for-adding-tools">Choose configuration over code for adding tools</span></h2>



<p class="wp-block-paragraph">If adding a new Slack command requires a PR, a deploy, and someone from the platform team to review it, you&#8217;ve already lost. It won&#8217;t get done.</p>



<p class="wp-block-paragraph"><strong>Adding a tool should be a configuration change</strong>:</p>



<pre class="wp-block-code"><code>tools:
  - name: canary-restart
    description: "Restart a canary deployment"
    endpoint: http://tool-service/internal/canary/restart
    parameters:
      - name: service
        type: string
        required: true
    acl:
      - platform-team
      - oncall

  - name: feature-flag
    description: "Toggle a feature flag"
    endpoint: http://tool-service/internal/feature-flags/toggle
    parameters:
      - name: flag-name
        type: string
        required: true
      - name: environment
        type: string
        default: staging
    acl:
      - developers</code></pre>



<p class="wp-block-paragraph">The bot reads this config, registers the slash commands, and routes them. The tool service behind those endpoints can be built and deployed independently, by any team, in any language, on any cadence.</p>



<p class="wp-block-paragraph">This separation means:</p>



<ul class="wp-block-list">
<li><strong>The ops team</strong> owns tool-service deployments and logic</li>



<li><strong>The platform team</strong> owns the bot and routing config</li>



<li><strong>Any engineer</strong> can propose a new tool by opening a config PR</li>



<li><strong>No one</strong> ever modifies bot code to add a capability</li>
</ul>



<p class="wp-block-paragraph">The bot becomes part of the infrastructure (quiet, reliable, and rarely changed). The tools behind it keep moving forward.</p>



<h2 class="wp-block-heading"><span id="this-is-what-it-looks-like-in-practice">This is what it looks like in practice</span></h2>



<p class="wp-block-paragraph"><strong>Incident response, today without a bot</strong>:</p>



<p class="wp-block-paragraph">Alert fires, someone opens PagerDuty, 5 people join a Slack huddle, one person shares their screen navigating dashboards, someone else runs CLI commands, results copy-pasted back to the thread.</p>



<p class="wp-block-paragraph"><strong>Incident response with a bot connector</strong>:</p>



<p class="wp-block-paragraph">Alert fires, <code>/incident declare payment-service-health-check-failing</code>, bot creates incident channel, rolls back the canary, posts the deploy diff, pings the on-call, everyone joins the channel with full context already there.</p>



<p class="wp-block-paragraph"><strong>Feature flag management, today</strong>:</p>



<p class="wp-block-paragraph">&#8220;Can someone toggle the new checkout flow to 10% in staging?&#8221;, wait for platform team to wake up, ticket, CLI command, &#8220;done&#8221;.</p>



<p class="wp-block-paragraph"><strong>Feature flag management with a bot connector</strong>:</p>



<p class="wp-block-paragraph"><code>/feature-flag new-checkout-flow --env staging --rollout 10</code>, bot calls the feature-flag service, responds with confirmation, done in 3 seconds.</p>



<p class="wp-block-paragraph">None of these Slack commands contain business logic. They all call the same internal services your MCP server, admin GUI, and CLI already use. The bot is just the most accessible surface.</p>



<h2 class="wp-block-heading"><span id="practical-takeaways">Practical takeaways</span></h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th class="has-text-align-left" data-align="left">Principle</th><th class="has-text-align-left" data-align="left">Why</th></tr><tr><td class="has-text-align-left" data-align="left">Build tools, not conversations</td><td class="has-text-align-left" data-align="left">A tool costs you once. A conversation costs you every time.</td></tr><tr><td class="has-text-align-left" data-align="left">Slack as the pane of glass</td><td class="has-text-align-left" data-align="left">Don&#8217;t make engineers leave the coordination layer to do the work.</td></tr><tr><td class="has-text-align-left" data-align="left">Bot is connector, not brain</td><td class="has-text-align-left" data-align="left">Business logic in shared services. Bot only routes and formats.</td></tr><tr><td class="has-text-align-left" data-align="left">Tools as config</td><td class="has-text-align-left" data-align="left">Adding a command shouldn&#8217;t mean deploying the bot. YAML config, picked up live.</td></tr><tr><td class="has-text-align-left" data-align="left">One service, many surfaces</td><td class="has-text-align-left" data-align="left">Same tool service behind GUI, MCP, Slack, CLI. Write once.</td></tr><tr><td class="has-text-align-left" data-align="left">ACL on every tool</td><td class="has-text-align-left" data-align="left">Not every slash command is for every user. Build access control in from the start.</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="put-operational-logic-in-internal-services-not-slack-bots-or-clis">Put operational logic in internal services, not Slack bots or CLIs</span></h2>



<p class="wp-block-paragraph">This isn’t about Slack bots, MCP servers, GUIs, or CLIs. They’re all just ways to connect things. What really changes is this:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Stop scattering operational logic across interfaces. Centralize it in internal services. Then build whatever connector makes sense for the context. Slack for incident coordination, MCP for AI agents, GUI for exploratory work, CLI for automation.</p>
</blockquote>



<p class="wp-block-paragraph">And when someone asks &#8220;can we add that to the bot?&#8221;, the answer should be yes, and it should take 5 minutes and a config change, not a sprint. If it can&#8217;t, the architecture is wrong.</p>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://shiftmag.dev/you-should-bring-your-ops-to-slack-11860/">You Should Bring Your Ops to Slack</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How AI Helped Me Survive the Shift from Backend and DB Architecture to Native iOS</title>
		<link>https://shiftmag.dev/how-ai-helped-me-survive-the-shift-from-backend-and-db-architecture-to-native-ios-11465/</link>
		
		<dc:creator><![CDATA[Martin Murcko]]></dc:creator>
		<pubDate>Thu, 03 Sep 2026 13:35:15 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[Developer Productivity]]></category>
		<category><![CDATA[development]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=11465</guid>

					<description><![CDATA[<p>After five years in a codebase I knew by heart, I suddenly found myself back at square one in customer-facing native iOS development, and AI became my lifeline.</p>
<p>The post <a href="https://shiftmag.dev/how-ai-helped-me-survive-the-shift-from-backend-and-db-architecture-to-native-ios-11465/">How AI Helped Me Survive the Shift from Backend and DB Architecture to Native iOS</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></description>
										<content:encoded><![CDATA[<figure class="wp-block-post-featured-image"><img loading="lazy" decoding="async" width="1200" height="630" src="https://shiftmag.dev/wp-content/uploads/2026/08/New-ShiftMag-panel-interview.png?x32039" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" style="object-fit:cover;" srcset="https://shiftmag.dev/wp-content/uploads/2026/08/New-ShiftMag-panel-interview.png 1200w, https://shiftmag.dev/wp-content/uploads/2026/08/New-ShiftMag-panel-interview-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/08/New-ShiftMag-panel-interview-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/08/New-ShiftMag-panel-interview-768x403.png 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>


<p class="wp-block-paragraph">Recently, when I changed my job position inside the company, everything changed with it.</p>



<p class="wp-block-paragraph">Switching <strong>from an internal web app to customer-facing mobile development</strong> felt like a downhill skier in full gear competing in the Summer Olympics in the 400-meter hurdles. But the reality hit differently, and I realized I am not only the same developer I used to be, but also a different person.</p>



<p class="wp-block-paragraph">As an aspiring senior developer, I had been working in my domain for almost five years. I knew every bug, every comma in the code, and the domain itself was already printed in my DNA. </p>



<p class="wp-block-paragraph">Then a challenge came in my career: the company needed a native iOS dev to help with a customer-facing project. What now? My career aspirations gone. My growth aspirations gone. Or weren’t they?</p>



<h2 class="wp-block-heading">Oh, to be the youngest on the team&#8230;</h2>



<p class="wp-block-paragraph">As a developer in my old position, <strong>I was really independent</strong>. I took on big tasks, hard investigations, and suggested architectural changes. But as the youngest in my team, I was often doing documentation, maintaining stuff, and doing support, while the big senior guys had meetings where important decisions were being made that affected whole departments. </p>



<p class="wp-block-paragraph">I was looking at them jealously like Barry B. Benson at the Pollen Jocks in <em>Bee Movie</em>. He had a good life, but he wanted more. He wanted to be the most elite part of the Beehive that risks their life to collect life-sustaining nectar. He was often reminded he can’t just decide to be a Pollen Jock &#8211; he had to be bred for that.</p>



<p class="wp-block-paragraph">Thankfully, I am not a bee, and I was often reminded that <strong>my time will come, just need to be patient</strong>. But my 30th birthday was approaching faster than that promise. &#8220;I need a little patience, yeah,&#8221; as Guns N’ Roses sing.<br>&nbsp;</p>



<h2 class="wp-block-heading"><span id="i-decided-to-bite-the-bullet">I decided to bite the bullet</span></h2>



<p class="wp-block-paragraph">And then the time came: our project was moved to a different country, and only a few members of the team could stay together on a new, very similar project. One of the opportunities for the rest of us was to <strong>switch to customer-facing native mobile development</strong>.</p>



<p class="wp-block-paragraph">I had been doing internal tool web-app work, but mainly focused on backend development and DB architecture for five years, so the opportunity sounded to me like they wanted a knight in full armour to swim through La Manche. </p>



<p class="wp-block-paragraph">But I’m the type of person who would do it for the team. I’m really a flexible person, so I wasn’t even afraid of this challenge &#8211; until I finally hit a wall.</p>



<p class="wp-block-paragraph"><strong>The scope was terribly big</strong>, with more teams collaborating on multiple SDKs, and everything was customer-facing, so no mistakes were allowed. Even the Xcode IDE for iOS development was so terrible that, when I tried to find some feature I was used to, one Redditor wrote that no one should even try, because that IDE was created by Satan himself. </p>



<p class="wp-block-paragraph">So my easy equation &#8211; I will prove myself in a totally different environment, I will be a senior developer &#8211; was crushed.</p>



<h2 class="wp-block-heading"><span id="tiberiusclauduscaesar-augustus-germanicusthe-code-conqueror">Tiberius&nbsp;Claudus&nbsp;Caesar Augustus Germanicus&nbsp;the code conqueror&nbsp;</span></h2>



<p class="wp-block-paragraph">There was basically no time to meet with more senior colleagues, and <strong>I only had a few days on Udemy before I started working on the first issues</strong>. So it was a lot of meetings, but basically no context.</p>



<p class="wp-block-paragraph">At the same time, we started adopting Claude Code and an agentic coding approach more broadly. I was skeptical about AI at first &#8211; it had a lot of flaws back then, still hallucinated, and produced plenty of bugs. It didn’t feel trustworthy. But I quickly realized that if I didn’t want to spend the next year and a half just learning everything the hard way, I had to adapt faster than ever and Claude became my main companion in that process.</p>



<p class="wp-block-paragraph">I&nbsp;didn’t&nbsp;had&nbsp;a choice so&nbsp;I decided to&nbsp;<strong>utilize&nbsp;him at maximum</strong>. Learned a lot about subagents, prompting&nbsp;skills,&nbsp;planning&nbsp;and&nbsp;mainly use&nbsp;divide and conquer method to ensure&nbsp;multiple iterations&nbsp;so&nbsp;that the&nbsp;AI produced&nbsp;code&nbsp;won’t&nbsp;break.&nbsp;I was able to learn much&nbsp;more faster, skip boilerplate code&nbsp;and focus on the real matter.&nbsp;After&nbsp;lot of produced .md files with reviews and exhausting code explanations later&nbsp;I see I have real influence on my new team,&nbsp;despite still a lot of things to learn, new programming languages are just a formality&nbsp;and my confidence grows every day with every prompt.&nbsp;</p>



<h2 class="wp-block-heading">&#8230; Back to my roots&nbsp;</h2>



<p class="wp-block-paragraph">The most exciting part of the university was for me <strong>problem solving</strong>. Different fields of study, different programming languages and your task was to find solutions to different problems.&nbsp;That’s&nbsp;basically the&nbsp;essential meaning of engineering&nbsp;described as a problem-solving discipline using science,&nbsp;math&nbsp;and creativity.&nbsp;</p>



<p class="wp-block-paragraph">In the corporate world, this has been replaced by endless ticket maintenance processes, with people focusing only on their area of expertise and <strong>often losing touch with the bigger pictur</strong>e.&nbsp;With AI agents all boundaries were erased.&nbsp;You&nbsp;don’t&nbsp;need to study some&nbsp;new programming&nbsp;languages&nbsp;and&nbsp;their&nbsp;principles, you&nbsp;don’t&nbsp;need to&nbsp;maintain&nbsp;a lot of tickets manually, you&nbsp;dont&nbsp;have to&nbsp;write tests anymore. </p>



<p class="wp-block-paragraph">Your only responsibility in this AI world as a Software engineer is to solve problems, without being distracted by all the small things that don’t bring you joy but are required by ruthless corporate rules. The only barriers now are only our own imagination and AI slop code. Happy engineering.</p>
<p>The post <a href="https://shiftmag.dev/how-ai-helped-me-survive-the-shift-from-backend-and-db-architecture-to-native-ios-11465/">How AI Helped Me Survive the Shift from Backend and DB Architecture to Native iOS</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>The phrase that ruins every eCommerce project: &#8220;Just connect it to our ERP.&#8221;</title>
		<link>https://shiftmag.dev/the-phrase-that-ruins-every-ecommerce-project-just-connect-it-to-our-erp-11689/</link>
		
		<dc:creator><![CDATA[Bruno Zagorščak]]></dc:creator>
		<pubDate>Wed, 02 Sep 2026 12:18:13 +0000</pubDate>
				<category><![CDATA[Backend]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[backend]]></category>
		<category><![CDATA[Legacy Systems]]></category>
		<category><![CDATA[system integration]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=11689</guid>

					<description><![CDATA[<p>What sounds like a small API task is usually a full integration problem: sequencing, sync vs async, edge cases, and an old system nobody fully trusts.</p>
<p>The post <a href="https://shiftmag.dev/the-phrase-that-ruins-every-ecommerce-project-just-connect-it-to-our-erp-11689/">The phrase that ruins every eCommerce project: &#8220;Just connect it to our ERP.&#8221;</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></description>
										<content:encoded><![CDATA[<figure class="wp-block-post-featured-image"><img loading="lazy" decoding="async" width="1774" height="887" src="https://shiftmag.dev/wp-content/uploads/2026/08/ChatGPT-Image-Aug-27-2026-11_36_15-AM.png?x32039" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" style="object-fit:cover;" srcset="https://shiftmag.dev/wp-content/uploads/2026/08/ChatGPT-Image-Aug-27-2026-11_36_15-AM.png 1774w, https://shiftmag.dev/wp-content/uploads/2026/08/ChatGPT-Image-Aug-27-2026-11_36_15-AM-300x150.png 300w, https://shiftmag.dev/wp-content/uploads/2026/08/ChatGPT-Image-Aug-27-2026-11_36_15-AM-1024x512.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/08/ChatGPT-Image-Aug-27-2026-11_36_15-AM-768x384.png 768w" sizes="auto, (max-width: 1774px) 100vw, 1774px" /></figure>


<p class="wp-block-paragraph">Four words show up in almost every eCommerce project we take on here at Neuralab: <em>&#8220;</em>Just connect it to our ERP.<em>&#8220;</em> They usually drop near the end of a kickoff call, tossed out as casually as asking for the Wi-Fi password.</p>



<p class="wp-block-paragraph">The word doing all the heavy lifting (and all the damage) there is <strong><em>just</em></strong>. It’s the word that turns a monolithic beast of a legacy system that nobody in the room fully understands into a neat little line item some project manager expects to close in a two-week sprint.</p>



<p class="wp-block-paragraph">I want to make an argument that sounds painfully obvious once you say it out loud, yet gets completely ignored on most projects: <strong>building a new store and connecting it to the systems already running the business are not the same sport</strong>. Heck, they&#8217;re barely the same project!</p>



<p class="wp-block-paragraph">A new storefront is greenfield. Clear ground with no legacy baggage. You plan the architecture and data model upfront and mostly hold to the plan. An <a href="https://www.linkedin.com/feed/update/urn:li:activity:7450095049377300482" target="_blank" rel="noreferrer noopener">integration with an existing ERP or CRM</a> is brownfield by default. It&#8217;s an archaeological dig into an old system you didn&#8217;t build, that&#8217;s poorly structured, still running, and troublesome in ways nobody ever bothered to write down. Treat the second like the first and you get an integration that works beautifully in the demo and completely shits the bed the first time a real order does something unexpected.</p>



<p class="wp-block-paragraph"><strong>There is a fix</strong>, and it comes down to timing more than technique. I&#8217;ll get to it, but first you need to see what you&#8217;re actually up against.&nbsp;</p>



<h2 class="wp-block-heading"><span id="the-integration-layer-breaks-because-no-one-owns-the-handoffs-between-systems">The integration layer breaks because no one owns the handoffs between systems</span></h2>



<p class="wp-block-paragraph">Let’s start with what the integration layer actually is. The storefront takes the order &#8211; the gateway authorizes the cash &#8211; the tax engine figures out the state’s cut &#8211; the ERP opens a sales order and reserves stock &#8211; accounting generates an invoice &#8211; the warehouse picks and packs &#8211; the CRM logs it all so customer support has something to stare at next week.</p>



<p class="wp-block-paragraph">Every single one of those systems has an owner. But <strong>the handoff between them has no real owner at all</strong>. That’s what the integration layer is: the unowned seams. And seams are exactly where the fabric tears, because it&#8217;s the one place where two systems that were designed in total isolation have to agree on something in real-time, having never formally met.</p>



<h2 class="wp-block-heading"><span id="sometimes-system-takes-the-money-a-beat-before-the-order-exists">Sometimes system takes the money a beat before the order exists</span></h2>



<p class="wp-block-paragraph">Payment authorization must happen synchronously, meaning the customer needs an immediate response while they are waiting on the checkout screen. The payment gateway typically has up to a minute to confirm whether the transaction is approved or declined. But <strong>everything <em>after</em> the payment </strong>&#8211; opening the ERP order, reserving stock, pinging the warehouse &#8211;<strong> has to be asynchronous</strong>. You simply can&#8217;t make a paying customer wait on an ancient ERP API that answers whenever it feels like it. You are accepting eventual consistency by default here, simply because holding synchronous cross-system locks will butcher your conversion rates.&nbsp;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">So, the confirmation page fires the instant the payment clears, telling the customer &#8220;you&#8217;re all set&#8221; a beat before the system actually knows if it can deliver on that promise. Without explicit architectural patterns to handle that gap you&#8217;re just playing infrastructure roulette.</p>
</blockquote>



<p class="wp-block-paragraph"><strong>Most of the time, this gap closes in milliseconds and nobody&#8217;s the wiser. But sometimes it doesn&#8217;t</strong>. The payment clears, but the queued job to create the order times out or drops on the floor without a sound. Now you’ve taken their money with no order behind it.</p>



<p class="wp-block-paragraph">That failure rarely hits the dev team first. Instead, an account manager has to act as human middleware &#8211; cross-referencing payment logs, re-typing order data into the ERP, and calling the warehouse floor to check on a shipment. Forcing humans to manually heal a cracking system is the most expensive bottleneck of a poorly planned integration.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://shiftmag.dev/wp-content/uploads/2026/08/justConnectToERP01-1024x683.jpg?x32039" alt="" class="wp-image-11795" srcset="https://shiftmag.dev/wp-content/uploads/2026/08/justConnectToERP01-1024x683.jpg 1024w, https://shiftmag.dev/wp-content/uploads/2026/08/justConnectToERP01-300x200.jpg 300w, https://shiftmag.dev/wp-content/uploads/2026/08/justConnectToERP01-768x512.jpg 768w, https://shiftmag.dev/wp-content/uploads/2026/08/justConnectToERP01.jpg 1535w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"><strong>The fixes here aren&#8217;t exotic</strong> but they do need to be explicitly planned, and budgeted upfront, a line item almost nobody includes until after their first major post-launch fire drill.</p>



<h2 class="wp-block-heading"><span id="the-old-system-is-the-business%e2%80%99s-memory-not-clutter">The old system is the business’s memory, not clutter</span></h2>



<p class="wp-block-paragraph">Any ERP or CRM that&#8217;s been running a real business for a few years has grown a <strong>thick layer of weird behavior that exists nowhere in its documentation</strong>. By that I mean a product-code field that silently clips at forty characters, so anything longer has been quietly losing its last digits since 2019. Or a nightly cron job that only works because some guy manually restarts it every Tuesday. Or an &#8220;order status&#8221; column that encodes five completely different business meanings depending on which department touched it last.</p>



<p class="wp-block-paragraph">An outside team scoping a connection to that system on day one is just looking at a facade. They can read the API docs and see the tables, but they cannot see which of those unmapped load-bearing walls their integration is about to lean on. So the scope gets written against the version of the system that exists on paper, not the one coughing in production.</p>



<p class="wp-block-paragraph">There’s a concept worth borrowing here: <a href="https://en.wikipedia.org/wiki/Lindy_effect" target="_blank" rel="noreferrer noopener">The Lindy effect</a>. The longer something has already survived, <strong>the longer it&#8217;s likely to keep going</strong>. That 15-year-old ERP is still there precisely because too much depends on it for anyone to risk ripping it out. Its longevity is proof of its necessity.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">When you arrive with a shiny new tech stack, the temptation is to treat the old system as dead weight and a dumb obstacle overdue for replacement. Resist that instinct! The old system has survived contact with the actual business for a decade and a half. It knows things your new build doesn&#8217;t know yet, encoded in all those annoying quirks you keep tripping over. <a href="https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/" target="_blank" rel="noreferrer noopener">Treat it as a battle-tested opponent</a> rather than a nuisance and try to untangle its accumulated weirdness.</p>
</blockquote>



<h2 class="wp-block-heading"><span id="build-first-audit-second-integrate-last"><strong>Build first, audit second, integrate last</strong></span></h2>



<p class="wp-block-paragraph">Put the greenfield and brownfield halves together and the most common planning error becomes glaringly obvious. Clients, and plenty of agencies, scope the new build and the integration as one single piece of work. Same estimate, same timeline, same assumption that they&#8217;re the same species of task.</p>



<p class="wp-block-paragraph">They are not, and <strong>if you bundle them together you actively poison the integration</strong>.</p>



<p class="wp-block-paragraph">When you write that combined scope, the new platform&#8217;s data model doesn&#8217;t even exist yet. Its catalog structure, content architecture, and the actual shape of the data are completely unsettled. So you&#8217;re designing an integration against a guess, layered on top of the fog already surrounding the old ERP. Guess wrong on either end, and you&#8217;re in for massive rework right when the deadline is breathing down your neck &#8211; which is exactly when developers start reaching for shortcuts that become those fragile seams everyone has to live with afterward.</p>



<p class="wp-block-paragraph">The fix is a sequencing decision, and it’s almost boringly simple:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Build the new thing first. While that&#8217;s happening, send an analyst into the existing systems to do a pure audit. Figure out what the system <em>actually</em> does and where the unmapped walls are. Once the new platform is close to finished and its data model is a fact rather than a weekly weather forecast, <em>then</em> you scope the integration. Now both ends are known.</p>
</blockquote>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="569" src="https://shiftmag.dev/wp-content/uploads/2026/08/justConnectToERP02-1024x569.jpg?x32039" alt="" class="wp-image-11796" srcset="https://shiftmag.dev/wp-content/uploads/2026/08/justConnectToERP02-1024x569.jpg 1024w, https://shiftmag.dev/wp-content/uploads/2026/08/justConnectToERP02-300x167.jpg 300w, https://shiftmag.dev/wp-content/uploads/2026/08/justConnectToERP02-768x427.jpg 768w, https://shiftmag.dev/wp-content/uploads/2026/08/justConnectToERP02.jpg 1536w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">I&#8217;ll be honest, we learned this the expensive way at <a href="https://www.neuralab.net/" target="_blank" rel="noreferrer noopener">Neuralab</a>. Years ago, we used to bundle the two into one scope to give a client a tidier number upfront. We’d then spend all that &#8220;saved&#8221; time back with massive interest during the last three weeks of the project, desperately discovering what the old system actually does.</p>



<h2 class="wp-block-heading"><span id="question-the-legacy-workflow-before-you-automate-it">Question the legacy workflow before you automate it</span></h2>



<p class="wp-block-paragraph">Even if sequenced right, <strong>integrations are the hardest work we estimate in Neuralab</strong> because there’s a quiet trap that inflates the scope from the inside.</p>



<p class="wp-block-paragraph">A client has an existing, complicated internal process. The natural instinct for both the developer and the business analyst is to lock onto that process and faithfully rebuild it in the new system, because a concrete process sitting in front of you is a satisfying puzzle to solve.</p>



<p class="wp-block-paragraph">The question almost nobody asks is <a href="https://en.wikipedia.org/wiki/Chesterton's_fence" target="_blank" rel="noreferrer noopener">whether that process still needs to exist at all.</a> Was half of it just scaffolding for a limitation the new system doesn&#8217;t even have? Faithfully cloning a bad process that shouldn&#8217;t survive the migration just relocates the waste into a more expensive place and bills you for the move.</p>



<p class="wp-block-paragraph">We saw this clearly with one of our large pharmacy clients. Their original plan was to manage and edit all rich product details such as marketing copy, attributes, or extended specifications inside their legacy ERP, and then force all that content downstream to the web store. But standard ERPs are notoriously bad at managing complex eCommerce datasets and rich visual content.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Instead of building a fragile, over-engineered integration to force an old ERP into doing a PIM&#8217;s job, we redrew the architectural boundaries. The ERP stayed strictly in its lane: holding SKUs, core titles, pricing, and stock quantities. Meanwhile, WooCommerce became the single source of truth for rich product content. It was essentially functioning as a lightweight PIM for all media and marketing data.&nbsp;</p>
</blockquote>



<p class="wp-block-paragraph">By questioning the legacy workflow instead of blindly automating it, <strong>we saved months of painful integration wor</strong>k and gave their team an architecture that actually fits how they work today.&nbsp;</p>



<h2 class="wp-block-heading"><span id="the-seams-between-systems-need-their-own-memory">The seams between systems need their own memory.</span></h2>



<p class="wp-block-paragraph">So how do you actually wire this stuff together? Point-to-point custom code between each pair of systems is the wrong default. It works great right up until the day an order gets stuck, a client asks what happened, and your honest answer is that the event passed between two systems and vanished into the ether.</p>



<p class="wp-block-paragraph">What actually holds up is an <strong>explicit orchestration layer sitting in the middle</strong> &#8211; whether that’s an event pipeline like n8n which we heavily use, a separately hosted application with its own logging and event-handling capabilities, or a messaging platform such as Kafka, Amazon SQS, or RabbitMQ.&nbsp; Its job is to own the sequencing, handle retries, and log every single event as it passes, so the whole flow can be inspected on its own.</p>



<p class="wp-block-paragraph">When something breaks, you shouldn&#8217;t need write access to the ERP and an open database console on the storefront just to reconstruct the story. You should have <strong>one central place that already holds the receipts</strong>. Intentional middleware is the architecture <a href="https://www.neuralab.net/about/team/" target="_blank" rel="noreferrer noopener">our team defaults to now</a> (usually reaching for custom applications or n8n to drive it). But the tool is just execution! The principle is the real point: the seams between systems deserve their own memory, because nobody else is taking notes.</p>



<h2 class="wp-block-heading">The &#8220;J&#8221; word comes last</h2>



<p class="wp-block-paragraph">The client isn&#8217;t wrong to want a &#8220;just.&#8221; A boring, invisible connection nobody ever thinks about is exactly what a good integration looks like from the outside. That simplicity is the finish line &#8211; you only reach it after someone goes down into the old system, maps the weak walls, and quietly absorbs the complexity so the business doesn&#8217;t have to.</p>



<p class="wp-block-paragraph">So <strong>don&#8217;t argue with the person who says it</strong>, take it as the brief. Do enough excavation upfront so that a year from now, connecting to that ERP genuinely <em>is</em> simple, and the manual re-keying, the spreadsheets, and the cron job someone babysits every Tuesday become an old war story instead of your next Monday.</p>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://shiftmag.dev/the-phrase-that-ruins-every-ecommerce-project-just-connect-it-to-our-erp-11689/">The phrase that ruins every eCommerce project: &#8220;Just connect it to our ERP.&#8221;</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>VP of Research, Google DeepMind: &#8220;The mundane work of writing code is going away.&#8221;</title>
		<link>https://shiftmag.dev/vp-of-research-google-deepmind-the-mundane-work-of-writing-code-is-going-away-11773/</link>
		
		<dc:creator><![CDATA[Ivan Brezak Brkan]]></dc:creator>
		<pubDate>Tue, 01 Sep 2026 14:33:24 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Google DeepMind]]></category>
		<category><![CDATA[Infobip Shift 2026]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=11773</guid>

					<description><![CDATA[<p>I first met Benoit Schillings, VP of Research at Google DeepMind, in San Francisco to talk about what engineers do when AI writes more of the code. His answer: make sense of the massive systems we inherit. Now, he’s bringing that perspective to Zadar for Infobip Shift 2026.</p>
<p>The post <a href="https://shiftmag.dev/vp-of-research-google-deepmind-the-mundane-work-of-writing-code-is-going-away-11773/">VP of Research, Google DeepMind: &#8220;The mundane work of writing code is going away.&#8221;</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></description>
										<content:encoded><![CDATA[<figure class="wp-block-post-featured-image"><img loading="lazy" decoding="async" width="1200" height="630" src="https://shiftmag.dev/wp-content/uploads/2026/09/image.png?x32039" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" style="object-fit:cover;" srcset="https://shiftmag.dev/wp-content/uploads/2026/09/image.png 1200w, https://shiftmag.dev/wp-content/uploads/2026/09/image-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/09/image-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/09/image-768x403.png 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>


<p class="wp-block-paragraph">Benoit Schillings has spent&nbsp;<strong>more than three decades in Silicon Valley</strong>, working in senior engineering roles at Be Inc., Nokia, Yahoo, and Google X, where he served as CTO.</p>



<p class="wp-block-paragraph">Today, at Google DeepMind, he leads research into generative AI for code, deep reasoning algorithms, and the future of pre-training and transformer models. This September, he’ll be a<strong> keynote speaker at <a href="https://shift.infobip.com/" target="_blank" rel="noreferrer noopener">Infobip Shift Zadar 2026</a></strong> – and ShiftMag readers can get a <a href="https://www.entrio.hr/en/event/infobip-shift-2026-27033?pc=MAG15" target="_blank" rel="noreferrer noopener">special discount</a>.</p>



<p class="wp-block-paragraph">I met him at the AI Engineer World’s Fair conference in San Francisco&nbsp;and one line from him stuck with me:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">I no longer see manually writing (or even reading) every line of code as the core engineering task.</p>
</blockquote>



<h2 class="wp-block-heading"><span id="ai-writes-fast-engineers-still-own-the-mess">AI writes fast, engineers still own the mess</span></h2>



<p class="wp-block-paragraph">Benoit has been writing code for decades, but these days, he admits, he no longer enjoys it:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">I have an astronomy project in the Sierra Nevada: a half-meter telescope, a small Linux computer, and photon-counting cameras working together to track the sky and process data in real time. For it,&nbsp;<strong>I don’t even read the generated code anymore</strong>; I just check that it works, while AI helps write the control software, driver bindings, and parts of the wavefront reconstruction.</p>
</blockquote>



<p class="wp-block-paragraph">To him, this is just the next step in software development. Programmers used to distrust compilers, but now most engineers don’t even look at compiler output unless they’re doing extreme low-latency work. AI-generated code is going through the same change, only now it’s happening inside the tools programmers use every day.</p>



<p class="wp-block-paragraph">That raises another question: if generating code becomes increasingly cheap, what does an engineer need to be good at?</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Being a software engineer is so much more than writing 100 lines of Python. It means walking into an enterprise, discovering a codebase with 150 million lines of legacy Python, and being tasked with fixing a race condition on day one.</p>
</blockquote>



<p class="wp-block-paragraph">Engineers inherit systems they didn’t design and constraints they didn’t choose. AI can write code fast, but someone still has to know where it belongs, how to test it, and what happens when it fails.</p>



<h2 class="wp-block-heading"><span id="security-will-become-a-bigger-part-of-the-engineer%e2%80%99s-job">Security will become a bigger part of the engineer’s job</span></h2>



<p class="wp-block-paragraph">That last point becomes more complicated when the models generating code are trained on the code already available online:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Models have been trained based on the GitHub data, and 90% of GitHub is crap. Even worse, people are now uploading things to GitHub to create vulnerabilities.</p>
</blockquote>



<p class="wp-block-paragraph">That creates a problem beyond the familiar concern that AI might generate buggy code: if the training data contains poor practices, vulnerabilities or deliberately malicious examples,&nbsp;<strong>the model can become part of the security problem</strong>&nbsp;rather than simply a tool for solving it.</p>



<p class="wp-block-paragraph">This is why Schillings expects security to become a larger part of the engineering job rather than something that can be delegated to the model producing the code:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">You also need to use models to monitor models. You need to fight fire with fire.</p>
</blockquote>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://shiftmag.dev/wp-content/uploads/2026/09/IMG_2186-horizontal-fixed-1024x768.jpg?x32039" alt="" class="wp-image-11789" srcset="https://shiftmag.dev/wp-content/uploads/2026/09/IMG_2186-horizontal-fixed-1024x768.jpg 1024w, https://shiftmag.dev/wp-content/uploads/2026/09/IMG_2186-horizontal-fixed-300x225.jpg 300w, https://shiftmag.dev/wp-content/uploads/2026/09/IMG_2186-horizontal-fixed-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">I met Benoit at the AI Engineer World’s Fair conference in San Francisco.</figcaption></figure>



<p class="wp-block-paragraph">The point isn’t to have one AI police another, but to recognize that&nbsp;<strong>AI-generated software needs another layer of scrutiny</strong>. As more code is automated, humans can’t realistically review every line.</p>



<p class="wp-block-paragraph">That doesn’t eliminate human responsibility. Someone still needs to define what software should do, verify that it does it, and decide what risks are acceptable.</p>



<p class="wp-block-paragraph">For engineers entering the field, that means&nbsp;<strong>developing a different set of skills</strong>:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The more mundane aspect of just spewing out the code is going away. Understanding the problem, understanding if that meets some requirements, understanding how to validate if that code will do what you expect, actually being paranoid about security, probably thinking about performance, I think that’s where the job is going to move in the future.</p>
</blockquote>



<p class="wp-block-paragraph">That is a considerably different proposition from simply becoming faster at programming. It puts more weight on requirements, architecture, testing, security and judgment, the parts of software development that remain difficult even when the implementation itself can be generated in seconds.</p>



<h2 class="wp-block-heading"><span id="ai-agents-create-an-organizational-problem">AI agents create an organizational problem</span></h2>



<p class="wp-block-paragraph">Schillings also sees AI changing how engineering teams are organized:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Management is an incredibly archaic skill. You look at the way a large company takes decisions and is managed, you could probably show that to the Babylonians.</p>
</blockquote>



<p class="wp-block-paragraph">That point matters even more as companies move from using one AI assistant to using multiple agents on different parts of the problem.</p>



<p class="wp-block-paragraph">Benoit doesn’t think the answer is to just make hundreds of copies of the same agent:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">You don’t want one brain cloned a hundred times. You want diverse, specialized agents colliding and collaborating.</p>
</blockquote>



<p class="wp-block-paragraph"><strong>This feels less like a software design issue and more like a team issue</strong>. If you use the same kind of agent everywhere, you just scale the same mistakes. Different agents with different roles can push back on each other, like people with different expertise on a real team.</p>



<p class="wp-block-paragraph">But that also means someone still has to decide who does what, judge the results, and take responsibility when things go wrong.</p>



<p class="wp-block-paragraph">That may be the real change AI brings to engineering: less about writing code, more about directing, checking, and owning systems that act more on their own.</p>



<p class="wp-block-paragraph"><strong>Want to hear more from Benoit Schillings, VP of Research at Google DeepMind?</strong>&nbsp;<strong>Get your ticket for Shift conference with a&nbsp;<a href="https://www.entrio.hr/en/event/infobip-shift-2026-27033?pc=MAG15" target="_blank" rel="noreferrer noopener">special discount for ShiftMag readers</a>!</strong></p>
<p>The post <a href="https://shiftmag.dev/vp-of-research-google-deepmind-the-mundane-work-of-writing-code-is-going-away-11773/">VP of Research, Google DeepMind: &#8220;The mundane work of writing code is going away.&#8221;</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 

Served from: shiftmag.dev @ 2026-09-16 12:33:03 by W3 Total Cache
-->