<?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>Marin Pavelić, Author at ShiftMag</title>
	<atom:link href="https://shiftmag.dev/author/marinpavelic/feed/" rel="self" type="application/rss+xml" />
	<link>https://shiftmag.dev/author/marinpavelic/</link>
	<description>Insightful engineering content &#38; community</description>
	<lastBuildDate>Thu, 15 Oct 2026 08:11:04 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://shiftmag.dev/wp-content/uploads/2026/09/cropped-Shift-32x32.webp</url>
	<title>Marin Pavelić, Author at ShiftMag</title>
	<link>https://shiftmag.dev/author/marinpavelic/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>The Real Problem in Voice AI Is Latency</title>
		<link>https://shiftmag.dev/voice-ai-is-an-infrastructure-problem-not-just-a-model-problem-12540/</link>
		
		<dc:creator><![CDATA[Marin Pavelić]]></dc:creator>
		<pubDate>Fri, 09 Oct 2026 10:37:21 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Infobip Shift 2026]]></category>
		<category><![CDATA[Kosta Pribić]]></category>
		<category><![CDATA[Machine Learning]]></category>
		<category><![CDATA[Voice AI]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=12540</guid>

					<description><![CDATA[<p>Voice AI may be sold as a model problem, but the real bottleneck is whether the system can survive real-time demands, stay reliable, and do it at a cost that makes sense.</p>
<p>The post <a href="https://shiftmag.dev/voice-ai-is-an-infrastructure-problem-not-just-a-model-problem-12540/">The Real Problem in Voice AI Is Latency</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></description>
										<content:encoded><![CDATA[<figure class="wp-block-post-featured-image"><img fetchpriority="high" decoding="async" width="1200" height="720" src="https://shiftmag.dev/wp-content/uploads/2026/10/kosta-pribicevic-vocie-ai.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/10/kosta-pribicevic-vocie-ai.png 1200w, https://shiftmag.dev/wp-content/uploads/2026/10/kosta-pribicevic-vocie-ai-300x180.png 300w, https://shiftmag.dev/wp-content/uploads/2026/10/kosta-pribicevic-vocie-ai-767x460.png 767w, https://shiftmag.dev/wp-content/uploads/2026/10/kosta-pribicevic-vocie-ai-1024x614.png 1024w" sizes="(max-width: 1200px) 100vw, 1200px" /></figure>


<p class="wp-block-paragraph">&#8220;Voice AI is an infrastructure problem because <strong>voice itself is an infrastructure problem</strong>,&#8221; says Kosta Pribić, a Senior Principal Engineer at Infobip. </p>



<p class="wp-block-paragraph">He works with voice services &#8211; real-time communications across the globe, across multiple data centers, and for everyone reachable on the planet. Yep, it’s a lot.</p>



<p class="wp-block-paragraph">That scale makes voice AI a <strong>much more complex challenge than developers might initially expect</strong>.<br></p>



<h2 class="wp-block-heading"><span id="developers-can-take-control-of-the-call-in-real-time">Developers can take control of the call in real time</span></h2>



<p class="wp-block-paragraph">Kosta sees voice AI as a two-layer system. <strong>Smaller models built into phones can handle real-time issues</strong> like packet loss and background noise. They should do their work quietly in the background, so the device just feels like it works.</p>



<p class="wp-block-paragraph"><strong>Larger models</strong>, meanwhile, <strong>usually run in the cloud</strong> and need access to the audio being exchanged between devices. That’s where Infobip comes in: it provides the communications infrastructure developers need to process that audio in real time.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">We give you control over the call. We enable you to interject, do something smart with the media.</p>
</blockquote>



<p class="wp-block-paragraph">He says a lot of the infrastructure behind this, from global data centers to enterprise deployments, was originally built for web pages. But <strong>web pages aren’t real-time communication</strong>.</p>



<p class="wp-block-paragraph">So when teams use that infrastructure for voice AI, they end up carrying over decisions that were made decades ago. Those systems weren’t built for a live AI-assisted call, which means developers are often stuck working around constraints they probably wouldn’t choose if they were starting from scratch today.</p>



<h2 class="wp-block-heading"><span id="biggest-challenges-are-real-time-performance-and-cost">Biggest challenges are real-time performance and cost</span></h2>



<p class="wp-block-paragraph">Developers entering <a href="https://www.infobip.com/blog/ai-voice-assistants" target="_blank" rel="noreferrer noopener">voice AI</a> <strong>often expect hallucinations to be the biggest challenge</strong>. But Kosta says they usually run into a different set of problems first, like custom signaling protocols, real-time delivery, and tricky networking edge cases. Networks aren’t built for this kind of traffic by default, so for developers without a voice background, it can feel like a completely new set of problems to learn.</p>



<p class="wp-block-paragraph">&#8220;The main problem is understanding all of this. It’s completely new,&#8221; he says. That’s why Infobip’s first internally built LLM-enabled application was a voice AI troubleshooter. <strong>Kosta sees troubleshooting as a practical place to start</strong>, because teams first need to understand the communication problems they’re actually dealing with.</p>



<p class="wp-block-paragraph">From there, model choice comes down to the <strong>business case and the margins</strong>. Kosta says a large model can make sense when latency isn’t a major concern and the economics work. </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">If your business case allows for using huge LLMs and you don’t care that much about latency, great, go for it.</p>
</blockquote>



<p class="wp-block-paragraph">But <strong>in most cases</strong>, he says, <strong>latency matters</strong>. Teams may need smaller LLMs to process calls, or fast, lightweight models to handle audio. Cost matters too, especially when a model is running on every call, because a large model can become expensive fast.</p>



<h2 class="wp-block-heading"><span id="voice-ai-has-to-be-private-reliable-and-real-time">Voice AI has to be private, reliable, and real-time</span></h2>



<p class="wp-block-paragraph">People expect voice-enabled communications to be private and confidential, Kosta says. They also expect calls to be as reliable as the telecom services they already use, which he describes as operating at &#8220;five nines.&#8221; <strong>Once that trust is lost, it’s much harder to win back</strong>.</p>



<p class="wp-block-paragraph">For developers who are new to voice, understanding those expectations is part of understanding the system they’re building.</p>



<p class="wp-block-paragraph">That becomes especially clear in <strong>assistive use cases</strong>. Kosta points to an Infobip customer using a generative model to create voices for people with damaged vocal cords:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">They can speak in a whisper while the person on the other end hears the generated voice. That’s, I think, the most heartwarming implementation I’ve ever done.</p>
</blockquote>



<p class="wp-block-paragraph">In the end, before choosing a model, developers need to understand how a call works, where it can break down, and how much delay and cost the application can handle. Even the best model won’t help if its response can’t make it back to the caller in time.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Inside an AI Phone Call" width="500" height="281" src="https://www.youtube.com/embed/xEWWc0tVPjY?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>
<p>The post <a href="https://shiftmag.dev/voice-ai-is-an-infrastructure-problem-not-just-a-model-problem-12540/">The Real Problem in Voice AI Is Latency</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 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="(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 Is Making Junior Developers Faster, But Is It Making Them Better Engineers?</title>
		<link>https://shiftmag.dev/ai-is-making-junior-developers-faster-but-is-it-making-them-better-engineers-10708/</link>
		
		<dc:creator><![CDATA[Marin Pavelić]]></dc:creator>
		<pubDate>Wed, 26 Aug 2026 12:43:36 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[František Lučivjanský]]></category>
		<category><![CDATA[Kevin Antonio Moreno Melgoza]]></category>
		<category><![CDATA[Maida Barlić]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=10708</guid>

					<description><![CDATA[<p>We spoke with 3 engineers to ask the blunt question: is AI making junior developers better or just faster at shipping code?</p>
<p>The post <a href="https://shiftmag.dev/ai-is-making-junior-developers-faster-but-is-it-making-them-better-engineers-10708/">AI Is Making Junior Developers Faster, But Is It Making Them Better Engineers?</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/07/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/07/New-ShiftMag-panel-interview.png 1200w, https://shiftmag.dev/wp-content/uploads/2026/07/New-ShiftMag-panel-interview-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/07/New-ShiftMag-panel-interview-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/07/New-ShiftMag-panel-interview-768x403.png 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>


<p class="wp-block-paragraph">If AI can already draft code, fix bugs, and untangle unfamiliar systems, what’s left for junior engineers to learn the hard way?</p>



<p class="wp-block-paragraph">We spoke with three experienced engineers: <strong>František Lučivjanský</strong> (Senior Principal Engineer),<strong> Kevin Antonio Moreno Melgoza</strong> (Senior Quality Engineer) and <strong>Maida Barlić</strong> (Staff Engineer), about how AI is changing the way junior developers learn, work, and build software.</p>



<h2 class="wp-block-heading"><span id="does-speed-in-coding-translate-to-speed-in-learning">Does speed in coding translate to speed in learning?</span></h2>



<p class="wp-block-paragraph">AI can help junior developers ship working code much faster than before. But the bigger question is: does writing code faster also mean learning faster? Our panelists have different views.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="256" src="https://shiftmag.dev/wp-content/uploads/2026/07/Kevin-Antonio-Moreno-Melgoza-1024x256.png?x32039" alt="" class="wp-image-11575" srcset="https://shiftmag.dev/wp-content/uploads/2026/07/Kevin-Antonio-Moreno-Melgoza-1024x256.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/07/Kevin-Antonio-Moreno-Melgoza-300x75.png 300w, https://shiftmag.dev/wp-content/uploads/2026/07/Kevin-Antonio-Moreno-Melgoza-768x192.png 768w, https://shiftmag.dev/wp-content/uploads/2026/07/Kevin-Antonio-Moreno-Melgoza.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Kevin argues that <strong>AI does not accelerate learning</strong>. Programming, he says, is still learned through trial and error, while AI makes it easier to complete tasks without fully understanding them. Junior developers are particularly exposed because they are still building the foundations of their craft:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Developers who started before the AI era already went through that stage and learned by doing, so they already built that foundation. Juniors are still building it, so if they rely too much on AI, there is a bigger risk of skipping part of that process and ending up<strong> </strong>able to build things without fully understanding them.</p>
</blockquote>



<p class="wp-block-paragraph">František agrees that this risk exists, but believes <strong>AI can become a powerful learning tool if developers actively question its answers</strong> instead of simply accepting them:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Ask questions like: how does this work, what does this line mean, why is it done this way, what alternatives exist, can you explain it step by step, and can you quiz me about it afterwards? I would frame it like this: if we go into a meeting together and I ask you technical questions about the solution you built, can you explain it without AI? If yes, you are using AI well. If not, then you are only generating code, not really engineering the solution.</p>
</blockquote>



<p class="wp-block-paragraph">Maida also sees AI as a tool whose impact depends on how it is used. While it can encourage shallow learning, she points out that developers have long r<strong>elied on frameworks without fully understanding how they work</strong>. Used intentionally, AI can make complex concepts easier to grasp:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">I do think that AI can be very useful for learning because it can make concepts much easier to digest and help you understand them in a way that makes the most sense for you. You can also use it just to give you example of how to solve the problem, but still writing out code by hand as a part of the process of learning to be better developer.</p>
</blockquote>



<p class="wp-block-paragraph">In the end, all three agree that <strong>AI is just another tool</strong>. Whether it becomes a shortcut that weakens understanding or a tutor that accelerates learning depends entirely on how developers choose to use it.</p>



<h2 class="wp-block-heading"><span id="can-you-spot-ai-generated-code">Can you spot AI-generated code?</span></h2>



<p class="wp-block-paragraph">Experienced engineers can often tell when junior developers have leaned heavily on AI. The giveaway is code that works, but does so in a way that’s far more complex than it needs to be.</p>



<p class="wp-block-paragraph">Kevin says <strong>AI becomes obvious when a simple task turns into an overengineered solution</strong>. It can help developers get through problems they might not have solved alone, but whether they actually learn from it depends on how they use it:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">That can be very useful but the weakness is that learning becomes optional. It depends on the person, and some will use it as a way to learn, while others will just use it to finish the task and move on.</p>
</blockquote>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="256" src="https://shiftmag.dev/wp-content/uploads/2026/07/Frantisek-Lucivjansky-1024x256.png?x32039" alt="" class="wp-image-11576" srcset="https://shiftmag.dev/wp-content/uploads/2026/07/Frantisek-Lucivjansky-1024x256.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/07/Frantisek-Lucivjansky-300x75.png 300w, https://shiftmag.dev/wp-content/uploads/2026/07/Frantisek-Lucivjansky-768x192.png 768w, https://shiftmag.dev/wp-content/uploads/2026/07/Frantisek-Lucivjansky.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">František has noticed similar patterns. AI often produces code that looks polished and well-structured, but he warns that appearance can be misleading. The real challenge is that <strong>AI tends to</strong> <strong>optimize for solving the immediate problem</strong> rather than considering the broader software architecture:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">That is exactly why software engineers are still needed. Working code is not enough. We need people who can judge whether the solution is understandable, maintainable, and appropriate for the system.</p>
</blockquote>



<p class="wp-block-paragraph">Maida believes spotting AI depends on the size of the change. <strong>Small AI-assisted edits often blend in</strong>, while larger contributions can reveal familiar patterns. Like Kevin, she sees unnecessary complexity as a recurring weakness, although she also values AI for suggesting improvements and alternative approaches:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">In my experience also, one common weakness is that AI code can be overly complicated for something simple. It can also sometimes suggest outdated approaches or use parts of a framework in a way that isn’t the most current. On the other hand, one of its biggest strengths is that it can suggest improvements, point out better ways to solve a problem, or offer ideas I might already be familiar with but haven’t thought of right away.</p>
</blockquote>



<h2 class="wp-block-heading">There are skills AI can&#8217;t learn for you</h2>



<p class="wp-block-paragraph">While AI can speed up development, the panelists agree that <strong>some skills still have to be learned the traditional way</strong>. Juniors still need solid programming basics to tell when AI is giving you the right answer &#8211; and when it’s confidently giving you the wrong one.</p>



<p class="wp-block-paragraph">Kevin says junior developers should first understand the basics of the language, the framework, and the development practices they use. Without that foundation, it becomes much harder to tell whether AI is actually giving them a good solution:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">A solution can work, but still not be what was really asked for, or not fit the project well. To identify that, you need that base knowledge.</p>
</blockquote>



<p class="wp-block-paragraph">For František,<strong> debugging is one of the most valuable skills</strong> juniors can develop. Learning to trace bugs, understand unfamiliar code, and reason through problems without immediately reaching for AI builds intuition that no language model can replace:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">When I was junior, I recreated parts of frameworks just to understand how they worked internally. Today, AI can make that even more powerful. For example, try building your own small browser, framework, database, or even a simple LLM-related project. You will learn a lot, but only if you are not just letting AI do everything for you.</p>
</blockquote>



<p class="wp-block-paragraph">Maida also emphasizes <strong>reading code and debugging as essential skills</strong>. Even with AI writing parts of the implementation, developers still need to review pull requests, understand existing codebases, and verify that the final solution actually solves the problem:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">It’s also important to learn how to test and verify your work, because AI can help you write code, but you still need to know whether it actually solves the problem. In the end, you should be able to start from any part of the codebase and work your way toward the problem.</p>
</blockquote>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="256" src="https://shiftmag.dev/wp-content/uploads/2026/07/Madia-barlic-1024x256.png?x32039" alt="" class="wp-image-11577" srcset="https://shiftmag.dev/wp-content/uploads/2026/07/Madia-barlic-1024x256.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/07/Madia-barlic-300x75.png 300w, https://shiftmag.dev/wp-content/uploads/2026/07/Madia-barlic-768x192.png 768w, https://shiftmag.dev/wp-content/uploads/2026/07/Madia-barlic.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading"><span id="what-will-companies-look-for-in-junior-engineers">What will companies look for in junior engineers?</span></h2>



<p class="wp-block-paragraph">While AI is changing how software is built, the panelists agree that it is also changing what companies will expect from junior engineers. Writing code will become less of a competitive advantage, while <strong>understanding, reasoning, and sound judgment will become increasingly valuable</strong>.</p>



<p class="wp-block-paragraph">Kevin believes programming fundamentals will remain essential, but deep knowledge of a specific technology will matter less than the ability to think critically and evaluate whether a solution is actually the right one:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">An expert in one technology can solve the same task as a junior with AI. Because of that, I think companies will value more people who can think critically, understand what is being asked, and judge if a solution is actually good or not. So strong fundamentals and good judgment will become more important, while knowing very specific details of one technology will become less important.</p>
</blockquote>



<p class="wp-block-paragraph">František expects <strong>coding skills to remain important, but no longer as the primary differentiator</strong>. Instead, he believes the strongest junior engineers will be those who can use<em> AI effectively</em> while understanding the tradeoffs behind every decision they make:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The strongest juniors will be able to say: &#8220;I tried multiple approaches, compared the tradeoffs, and I think this one fits best because&#8230;&#8221; So the signal will shift from &#8220;I can write code&#8221; to &#8220;I can use AI to build faster, but I understand what I built and can defend the decisions.&#8221;</p>
</blockquote>



<p class="wp-block-paragraph">Maida agrees that AI will make <strong>technical judgment even more valuable</strong>. Faster code generation does not reduce the need to understand systems, debug problems, or recognize whether AI has produced a correct and maintainable solution.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">I don’t think technical depth becomes less important, if anything, it becomes more important to know what good code looks like and how to judge whether AI-generated code is actually correct.</p>
</blockquote>



<p class="wp-block-paragraph"><em>Special thanks to our fellow colleagues at Infobip, the publisher of ShiftMag.dev, who participated in this article.</em></p>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://shiftmag.dev/ai-is-making-junior-developers-faster-but-is-it-making-them-better-engineers-10708/">AI Is Making Junior Developers Faster, But Is It Making Them Better Engineers?</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>NVIDIA CTO Says AI is Now About Software, Networking And Power &#8211; Not Just Chips</title>
		<link>https://shiftmag.dev/nvidia-cto-says-ai-is-now-about-software-networking-and-power-not-just-chips-10784/</link>
		
		<dc:creator><![CDATA[Marin Pavelić]]></dc:creator>
		<pubDate>Thu, 30 Jul 2026 13:12:09 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Michael Kagan]]></category>
		<category><![CDATA[NVIDIA]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=10784</guid>

					<description><![CDATA[<p>The AI boom is no longer just a race to build faster machines. The real challenge now is making all the moving parts work together at scale.</p>
<p>The post <a href="https://shiftmag.dev/nvidia-cto-says-ai-is-now-about-software-networking-and-power-not-just-chips-10784/">NVIDIA CTO Says AI is Now About Software, Networking And Power &#8211; Not Just Chips</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="1024" height="702" src="https://shiftmag.dev/wp-content/uploads/2026/07/nvidia-1200w-1024x702.jpeg?x32039" class="attachment-large size-large wp-post-image" alt="" style="object-fit:cover;" srcset="https://shiftmag.dev/wp-content/uploads/2026/07/nvidia-1200w-1024x702.jpeg 1024w, https://shiftmag.dev/wp-content/uploads/2026/07/nvidia-1200w-300x206.jpeg 300w, https://shiftmag.dev/wp-content/uploads/2026/07/nvidia-1200w-768x527.jpeg 768w, https://shiftmag.dev/wp-content/uploads/2026/07/nvidia-1200w.jpeg 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>


<p class="wp-block-paragraph">For most people, NVIDIA means GPUs. But at WeAreDevelopers World Congress in Berlin, CTO <strong>Michael Kagan</strong> barely mentioned them.</p>



<p class="wp-block-paragraph">Instead, he focused on the infrastructure behind AI: networking, energy, software, data centers, robotics, and the massive engineering challenge of scaling it all. NVIDIA’s framing was clear: <strong>modern AI is no longer just hardware &#8211; it’s an &#8220;AI factory.&#8221;</strong></p>



<h2 class="wp-block-heading"><span id="ai-is-changing-how-people-interact-with-computers">AI is changing how people interact with computers</span></h2>



<p class="wp-block-paragraph">Kagan compared AI to past tech revolutions. Electricity came through a wall socket. Cloud computing put infrastructure on demand. Now AI is changing the interface again <strong>making computers accessible through natural language instead of code</strong>.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Before AI, only a few million people on Earth could operate computers by programming them. Now everybody can program the computer and run the AI, and if you don’t know how to do it, just ask AI. It will tell you.</p>
</blockquote>



<p class="wp-block-paragraph">In other words, <strong>users no longer need to understand the technical details behind computing</strong>. If they’re unsure how to do something, AI can often explain it or do it for them.</p>



<p class="wp-block-paragraph">Kagan framed AI less as a software category and more as a <strong>new computing layer </strong>that expands access to technology. The computer stays the same &#8211; the interface between people and machines is what’s getting much simpler.</p>



<h2 class="wp-block-heading"><span id="how-nvidia-linked-thousands-of-gpus">How NVIDIA linked thousands of GPUs</span></h2>



<p class="wp-block-paragraph">One of the most interesting parts of the discussion focused on Mellanox, the networking company Kagan co-founded in 1999 before NVIDIA acquired it in 2020.</p>



<p class="wp-block-paragraph">Mellanox was originally built for large-scale cloud computing, helping connect servers across massive data cent<strong>ers</strong>. But as AI workloads grew, that networking layer became even more important because the challenge was no longer just building individual processors, but <strong>making thousands of them work together efficiently</strong>.</p>



<p class="wp-block-paragraph">That’s why Kagan says modern AI systems should be viewed as single computers made up of huge numbers of GPUs spread across racks and data centers:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The computer is not a box under the table anymore.</p>
</blockquote>



<p class="wp-block-paragraph">That made the Mellanox acquisition strategically important: <strong>it gave NVIDIA the networking needed to connect GPUs and train larger AI models at scale</strong>.</p>



<h2 class="wp-block-heading"><span id="ai-factories-turn-energy-and-data-into-intelligence">AI factories turn energy and data into intelligence</span></h2>



<p class="wp-block-paragraph">Kagan repeatedly used the term <strong>AI factory</strong> because, in his opinion, it better describes the role modern AI infrastructure plays.</p>



<p class="wp-block-paragraph">Traditional data centers store data and process requests. AI infrastructure does something different: it <strong>uses huge amounts of data and power to train models and run inference across applications</strong>. &#8220;AI factories take the energy and the data and convert it to intelligence&#8221;, says Kagan.</p>



<p class="wp-block-paragraph">He compared the process to a power plant generating electricity. It’s a metaphor, but it captures how NVIDIA sees AI infrastructure: as a production system where intelligence is the output.</p>



<p class="wp-block-paragraph">When asked what an AI factory looks like, Kagan said: </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The first thing you notice when you go to the AI factory is cables.</p>
</blockquote>



<p class="wp-block-paragraph"><strong>Those cables connect hundreds, thousands, and eventually millions of GPUs into one computing environment</strong>. NVIDIA breaks that challenge into two parts: scale-up, which links GPUs with NVLink, and scale-out, which connects those systems into massive clusters.</p>



<p class="wp-block-paragraph">As those systems grow, networking becomes essential. Every processor has to stay in sync, and NVIDIA says lowering the cost of generating AI tokens remains one of its key goals.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="564" src="https://shiftmag.dev/wp-content/uploads/2026/07/Screenshot-2026-07-29-at-11.45.02-1024x564.png?x32039" alt="" class="wp-image-11217" srcset="https://shiftmag.dev/wp-content/uploads/2026/07/Screenshot-2026-07-29-at-11.45.02-1024x564.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/07/Screenshot-2026-07-29-at-11.45.02-300x165.png 300w, https://shiftmag.dev/wp-content/uploads/2026/07/Screenshot-2026-07-29-at-11.45.02-768x423.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Photo: Screenshot from conference <a href="https://www.wearedevelopers.com/videos/2133/building-the-nervous-system-of-ai-michael-kagan-nvidia-2133" target="_blank" rel="noreferrer noopener">video footage from WeAreDevelopers</a></figcaption></figure>



<h2 class="wp-block-heading"><span id="ai-is-now-limited-by-software-and-power-not-just-chips">AI is now limited by software and power, not just chips<br></span></h2>



<p class="wp-block-paragraph">AI performance used to improve mainly as hardware improved, but Kagan says the challenge is now more complex.</p>



<p class="wp-block-paragraph">A big reason is the rapid <strong>growth of inference</strong>. Traditional computing follows a simple pattern: a user sends a request, the computer processes it, returns a result, and waits for the next instruction. Agentic AI works differently, with models constantly exchanging information with software tools and other services while completing tasks. That creates far more communication inside the data center.</p>



<p class="wp-block-paragraph">Those interactions happen much faster than humans can issue requests, while Moore’s Law is slowing down. That means smaller and faster transistors alone are no longer enough to meet demand.</p>



<p class="wp-block-paragraph">That is why building larger processors alone is no longer enough to keep up with growing AI workloads. According to Kagan, <strong>CUDA has become one of NVIDIA’s biggest long-term advantages</strong> because it allows developers to fully exploit the company’s hardware:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Chips without software are just expensive sand.</p>
</blockquote>



<p class="wp-block-paragraph">He explains that NVIDIA wants to give developers a stable platform while the hardware keeps evolving. Too much general hardware can be inefficient, but<strong> too much specialization can quickly become outdated</strong>. CUDA gives developers the flexibility to support new workloads without starting from scratch.</p>



<p class="wp-block-paragraph"><strong>Power</strong> is another major limit. Kagan said electricity is now one of the biggest constraints on new AI data centers. NVIDIA is working on ways to connect multiple sites over long distances so they can act like one system, with training done where power is available and inference closer to users.</p>



<h2 class="wp-block-heading"><span id="progress-in-ai-depends-on-understanding-complex-systems">Progress in AI depends on understanding complex systems</span></h2>



<p class="wp-block-paragraph">The session concluded with advice for young engineers: rather than recommending a specific programming language or AI framework, Kagan encouraged students to develop <strong>strong foundations in mathematics, physics and chemistry before specializing.</strong></p>



<p class="wp-block-paragraph">He also reflected about his childhood curiosity, saying he used to take new toys apart just to see how they worked. If he were starting school today, he said he’d seriously consider studying digital biology, since understanding the human body is still one of the most fascinating engineering challenges:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The most complicated machine that is out there is a human.</p>
</blockquote>



<p class="wp-block-paragraph">Even though the conversation touched on GPUs, networking and AI infrastructure, <strong>Kagan kept coming back to one idea</strong>: progress in AI depends on understanding complex systems. Whether that’s millions of processors, distributed data centers or the human body, engineering starts with curiosity and a desire to figure out how things work.</p>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://shiftmag.dev/nvidia-cto-says-ai-is-now-about-software-networking-and-power-not-just-chips-10784/">NVIDIA CTO Says AI is Now About Software, Networking And Power &#8211; Not Just Chips</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Your API Is Already a Hidden MCP Server, You Just Need to Discover It</title>
		<link>https://shiftmag.dev/api-mcp-server-infobip-filip-srnec-10118/</link>
		
		<dc:creator><![CDATA[Marin Pavelić]]></dc:creator>
		<pubDate>Fri, 12 Jun 2026 10:23:11 +0000</pubDate>
				<category><![CDATA[API]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[devoxx uk]]></category>
		<category><![CDATA[filip srnec]]></category>
		<category><![CDATA[MCP]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=10118</guid>

					<description><![CDATA[<p>This team was shipping production code at the same time as the MCP specification was taking shape. That is the reality of working with a technology that was evolving in real time.</p>
<p>The post <a href="https://shiftmag.dev/api-mcp-server-infobip-filip-srnec-10118/">Your API Is Already a Hidden MCP Server, You Just Need to Discover 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="720" src="https://shiftmag.dev/wp-content/uploads/2026/05/filip-srnec.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/05/filip-srnec.png 1200w, https://shiftmag.dev/wp-content/uploads/2026/05/filip-srnec-300x180.png 300w, https://shiftmag.dev/wp-content/uploads/2026/05/filip-srnec-1024x614.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/05/filip-srnec-768x461.png 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>


<p class="wp-block-paragraph">What began as an internal hackathon project, where a small team at Infobip set out to create and launch a marketing campaign for a fictional chocolate brand using AI agents, <strong>evolved into the company&#8217;s first MCP servers running in production</strong>. </p>



<p class="wp-block-paragraph">At Devoxx UK, <strong>Filip Srnec</strong>, Principal Engineer at Infobip and lead of the company’s MCP team, <a href="https://www.youtube.com/watch?v=D1piW2IGQuk">explained how they built the OpenAPI MCP Spring Boot Starter</a>, a tool that turns any OpenAPI-documented API into a fully capable MCP server, without the need for rewrites or custom integration code.</p>



<h2 class="wp-block-heading"><span id="why-not-just-build-custom-mcp-servers">Why not just build custom MCP servers?</span></h2>



<p class="wp-block-paragraph">Filip kicked off his talk by asking the audience if anyone had an HDMI adapter so he could point out a <strong>common challenge</strong> in technology:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>Protocols evolve, and systems don’t necessarily upgrade in sync.</em></p>
</blockquote>



<p class="wp-block-paragraph">Most of the systems AI agents need to interact with today already expose REST APIs. REST APIs helped us build the world that we now today. Mobile apps, smart devices, command-line tools, and interactive user interfaces all rely on them, running on top of decades of standards, tooling, and shared knowledge.<strong> Now AI agents need a way to use that same infrastructure</strong>.</p>



<p class="wp-block-paragraph">MCP, announced by Anthropic in November 2024, was positioned as “a USB-C port for AI applications.” That immediately raised the question of whether every existing API (the HDMI cable) would now need custom glue code (an adapter) to become agent-accessible.</p>



<p class="wp-block-paragraph">Infobip’s answer was <strong>no</strong>.</p>



<h2 class="wp-block-heading"><span id="the-openapi-connection">The OpenAPI connection</span></h2>



<p class="wp-block-paragraph">The breakthrough came when the team compared the structure of an MCP tool with an OpenAPI operation.<strong> The two map directly onto each other at the field level.</strong> MCP tools define elements such as a name, title, description, input schema, and annotations, while OpenAPI operations include an operation ID, summary, description, parameters, and request body. Comparing the two side by side shows that most OpenAPI operation metadata already has a direct equivalent in MCP:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>The name can be an operation ID, because operation ID uniquely identifies an operation in the specification. For a title, we can use a summary. Description is obvious. We have a way to define the input schema by combining parameters and the request body.</em></p>
</blockquote>



<p class="wp-block-paragraph">Infobip already had OpenAPI specifications for all of its public APIs. Since those specifications were powering the company’s API platform and SDK generation process, <strong>building a bridge to MCP</strong> made more sense than creating custom servers from scratch.</p>



<p class="wp-block-paragraph">Let&#8217;s take a look at how the OpenAPI MCP Spring Boot Starter works in two phases.</p>



<h2 class="wp-block-heading"><span id="how-the-framework-works">How the framework works</span></h2>



<p class="wp-block-paragraph">The process begins by reading the OpenAPI specification and turning it into MCP-compatible tool definitions. Because the connection is dynamic, updates to the API are reflected on the MCP side as well.</p>



<p class="wp-block-paragraph">At runtime, on every tool call, the framework validates credentials, maps tool arguments to HTTP requests, enriches and forwards those requests to the downstream API, handles errors, and returns the result to the agent.</p>



<p class="wp-block-paragraph">The setup is intentionally minimalistic. It requires only the OpenAPI specification URL and the base URL of the API being exposed. As Filip explained:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>You just point it at your OpenAPI specification, and your API instantly becomes an MCP server. This is something that we’ve been running in production for months now.</em></p>
</blockquote>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="614" src="https://shiftmag.dev/wp-content/uploads/2026/05/63-1024x614.png?x32039" alt="" class="wp-image-10122" srcset="https://shiftmag.dev/wp-content/uploads/2026/05/63-1024x614.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/05/63-300x180.png 300w, https://shiftmag.dev/wp-content/uploads/2026/05/63-768x461.png 768w, https://shiftmag.dev/wp-content/uploads/2026/05/63.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Building a bridge from API to MCP makes more sense than creating new MCP servers. Credit: Devoxx UK </figcaption></figure>



<h2 class="wp-block-heading"><span id="not-every-endpoint-should-become-a-tool">Not every endpoint should become a tool</span></h2>



<p class="wp-block-paragraph">Filip pointed out that <strong>exposing an entire API surface to agents is a bad idea.</strong> Irrelevant operations add noise, increase costs, and can mislead the model. A larger surface also extends the potential attack surface for prompt injection.</p>



<p class="wp-block-paragraph">The framework tackles this through an OpenAPI filter chain. Before tools are exposed through MCP, developers can adjust the specification. That means removing endpoints, tweaking schemas, or changing how operations are presented. The good thing is that this approach works even when the API is maintained by someone else.</p>



<p class="wp-block-paragraph"><strong>One example involved OpenAPI&#8217;s discriminator feature.</strong> It is commonly used to select different schemas based on a property value, making server-side validation more flexible. The catch is that discriminators are not valid JSON Schema constructs, while MCP tool definitions require strict JSON Schema compliance. To solve the problem, the framework automatically rewrites discriminator-based schemas into oneOf structures that MCP clients can consume without issue, Filip explained. </p>



<p class="wp-block-paragraph">Unfortunately, exposing the right tools solves a part of the problem. For an AI agent to use a tool correctly it needs to understand both <strong>what the tool does</strong> and <strong>when to use it.</strong></p>



<h2 class="wp-block-heading"><span id="naming-descriptions-and-making-agents-actually-use-your-tools">Naming, descriptions, and making agents actually use your tools</span></h2>



<p class="wp-block-paragraph">LLMs select tools based on names and descriptions and both matter more than most developers realize.</p>



<p class="wp-block-paragraph">The framework gives developers<strong> </strong>several ways to name tools. They can keep <strong>the original operation ID</strong>, use a simplified version with special characters removed, or generate a name from the <strong>API endpoint</strong> itself when no operation ID is available. It also includes safeguards for clients that impose strict limits on name length.</p>



<p class="wp-block-paragraph">Tool descriptions require just as much attention because every description from every connected MCP server is loaded into the model’s context. These descriptions need to be concise and easy for AI agents to interpret. <strong>The framework can enrich them with summaries and examples</strong> from the OpenAPI specification, which Filip highlighted as especially useful when matching requests to input schemas.</p>



<p class="wp-block-paragraph">The tools, however, still need to work with existing authentication and authorization systems.</p>



<h2 class="wp-block-heading"><span id="solving-authentication-without-reinventing-it">Solving authentication without reinventing it</span></h2>



<p class="wp-block-paragraph">Authentication has been one of the more debated aspects of MCP and because of that the framework takes a pragmatic approach by relying on existing mechanisms rather than new ones. Filip explained:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>Your API already knows how to perform authentication and authorization. It knows how to reject bad credentials.</em></p>
</blockquote>



<p class="wp-block-paragraph">Instead of introducing a separate authentication layer, the framework forwards credentials to a configurable endpoint that already handles it. As a result, any method supported by the underlying API, whether API keys, basic authentication, or JWTs, works through the MCP server as well.</p>



<p class="wp-block-paragraph">For OAuth, the framework proxies OpenID configuration calls and authorization requests to a configured OAuth server, and performs automatic scope discovery from the OpenAPI security definitions:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>To have full OAuth support, you need to point it at your OAuth server. And you’ll get minimal scope discovery automatically directly from the framework.</em></p>
</blockquote>



<p class="wp-block-paragraph">It is important to mention that building the features was, once again, only part of the story. The team was also developing the framework while the MCP ecosystem itself was still taking shape.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="602" src="https://shiftmag.dev/wp-content/uploads/2026/06/55259430583_83ac60faf9_o-1024x602.jpg?x32039" alt="" class="wp-image-10334" srcset="https://shiftmag.dev/wp-content/uploads/2026/06/55259430583_83ac60faf9_o-1024x602.jpg 1024w, https://shiftmag.dev/wp-content/uploads/2026/06/55259430583_83ac60faf9_o-300x176.jpg 300w, https://shiftmag.dev/wp-content/uploads/2026/06/55259430583_83ac60faf9_o-768x451.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Best way to explain API to MCP flows is, surprisingly, with cables and adapters. Credit: Devoxx UK</figcaption></figure>



<h2 class="wp-block-heading"><span id="building-on-a-moving-train">Building on a moving train</span></h2>



<p class="wp-block-paragraph">Filip was candid about the challenges the team faced. As Infobip was building and shipping the framework, the <strong>MCP specification evolved</strong>, with changes affecting everything from transport mechanisms and authentication flows to client behavior:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>Sometimes we need to pick between features and compatibility. We decided that we wanted to move fast. We wanted to be in that space. The spec was still being written while we were shipping production code.</em></p>
</blockquote>



<p class="wp-block-paragraph">Along the way, the team had to deal with a growing list of <strong>compatibility issues.</strong> Different clients imposed different limits on tool name lengths, some sent nested objects as escaped strings instead of valid JSON, and OAuth implementations often behaved differently despite following the same specification:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>My point here is that sometimes you can’t wait for the ecosystem to mature. You ship and you adapt.</em></p>
</blockquote>



<h2 class="wp-block-heading"><span id="the-demo">The demo</span></h2>



<p class="wp-block-paragraph">Filip wrapped up the session with a demonstration. Using the framework, he connected an OpenMeteo weather forecast server and Infobip’s production SMS MCP server, then showed how an AI agent could retrieve the next day’s weather forecast for London, generate a short summary, and send it as a text message. The point was how quickly an existing API could be turned into an MCP-compatible service. As Filip put it:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>Your API may already be a hidden MCP server. Try to use this framework, point it at your specification, and ship it.</em></p>
</blockquote>



<ul class="wp-block-list">
<li>Listen to Filip&#8217;s entire talk on <a href="https://www.youtube.com/watch?v=D1piW2IGQuk">YouTube</a></li>



<li>The framework and examples are open source and available on <a href="https://github.com/infobip/infobip-openapi-mcp">GitHub</a>. </li>



<li>Infobip’s production MCP server is accessible at <a href="https://www.infobip.com/docs/mcp" id="https://www.infobip.com/docs/mcp">mcp.infobip.com.</a></li>
</ul>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://shiftmag.dev/api-mcp-server-infobip-filip-srnec-10118/">Your API Is Already a Hidden MCP Server, You Just Need to Discover It</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Killing PRs was the easy part. Now Technical Death Keeps the CTO Up.</title>
		<link>https://shiftmag.dev/killing-prs-was-the-easy-part-now-technical-death-keeps-the-cto-up-9910/</link>
		
		<dc:creator><![CDATA[Marin Pavelić]]></dc:creator>
		<pubDate>Tue, 26 May 2026 14:39:07 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[iBOOD]]></category>
		<category><![CDATA[Sander Hoogendoorn]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=9910</guid>

					<description><![CDATA[<p>Everything you think is non-negotiable in software development, Sander Hoogendoorn's team quietly dropped - and nothing broke.</p>
<p>The post <a href="https://shiftmag.dev/killing-prs-was-the-easy-part-now-technical-death-keeps-the-cto-up-9910/">Killing PRs was the easy part. Now Technical Death Keeps the CTO Up.</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/05/iBOOD-sander-.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/05/iBOOD-sander-.png 1200w, https://shiftmag.dev/wp-content/uploads/2026/05/iBOOD-sander--300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/05/iBOOD-sander--1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/05/iBOOD-sander--768x403.png 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>


<p class="wp-block-paragraph"><strong>Sander Hoogendoorn </strong>has been writing code for over 40 years and is currently CTO at iBOOD, a Dutch e-commerce company. </p>



<p class="wp-block-paragraph">His talk at <a href="https://www.devoxx.co.uk/" target="_blank" rel="noreferrer noopener">Devoxx</a>, <em>The Last Pull Request</em>, was a live report from a team that quietly dismantled most of what the industry considers non-negotiable, and then kept shipping.</p>



<p class="wp-block-paragraph">Now there&#8217;s a new concern.</p>



<h2 class="wp-block-heading">AI didn&#8217;t change everything. Change didn&#8217;t wait for AI.</h2>



<p class="wp-block-paragraph">Sander opened with a timeline: source control, IDEs, the web, mobile, the cloud, microservices. Each wave reshaped what developers could build and how. AI is just the latest.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">AI is going to change everything? No.&nbsp;Everything already changed everything. And this is not the last step.</p>
</blockquote>



<p class="wp-block-paragraph">The point wasn&#8217;t to diminish AI but to put it in context. Every major shift expanded the tooling, and the problem space alongside it. For most teams, that problem space now sits in what Sander calls <strong>complex territory</strong>: no best practices, only things that might emerge from experimentation. Dave Snowden&#8217;s Cynefin framework is blunt about this: in a complex context, there is no right answer to find. You have to invent one.</p>



<p class="wp-block-paragraph">That&#8217;s the actual job, Sander says. Not typing code. <strong>Solving problems that have never been solved before</strong>.</p>



<h2 class="wp-block-heading"><span id="selfware">Selfware</span></h2>



<p class="wp-block-paragraph">Sander introduced a concept: selfware. Software built by non-developers (marketers, finance teams, executives) using AI to <strong>solve their own problems without involving engineering</strong>. </p>



<p class="wp-block-paragraph">At iBOOD, the content director is already doing it. So is the CMO:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">We as tech are not fast enough. And I’ve seen this before. In the 80s and 90s, everyone started writing Excel spreadsheets.</p>
</blockquote>



<p class="wp-block-paragraph">The difference now is that the output isn’t a pivot table, it’s software. Unmanaged, untested, running on personal accounts with passwords nobody reviews, exporting customer data in ways that would make your compliance team cry. This is happening right now, and <strong>most engineering teams haven&#8217;t figured out what to do about it</strong>.</p>



<h2 class="wp-block-heading">No scrum, sprints, pull requests&#8230;</h2>



<p class="wp-block-paragraph">The list of things they stopped doing is long: no scrum, no sprints, no retros. Fewer standups. No scrum master, no product owner. Minimal estimates. <strong>No pull requests</strong> &#8211; because every branch is a merge waiting to happen, every review costs time, and reviewers rarely know what the code was supposed to do in the first place.</p>



<p class="wp-block-paragraph">What replaced it? <a href="https://shiftmag.dev/pair-programming-benefits-challenges-563/" target="_blank" rel="noreferrer noopener">Pair programming</a>. <a href="https://shiftmag.dev/mob-programming-why-do-it-882/" target="_blank" rel="noreferrer noopener">Mob programming</a>. Smaller changes, checked in faster, continuously. Everyone on the team is an architect. Everyone is accountable for everything, Sander says:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Perfection is achieved not when there’s nothing more to add but when there’s nothing left to take away.</p>
</blockquote>



<h2 class="wp-block-heading"><span id="pair-me-with-claude">Pair me with Claude</span></h2>



<p class="wp-block-paragraph">Today, Sander&#8217;s 13-person team <strong>pairs with AI through most of their working day</strong>. It became the natural way to work. Currently that means Claude, though that could change next week.</p>



<p class="wp-block-paragraph">AI breaks things. Two weeks before the talk, Sander pushed AI-generated changes that silently removed all dependency injections from their web page constructors. None of the pages were serving data. He didn&#8217;t catch it until later:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">I’m not saying not to use AI. I do it every day. But I do think we should check what it’s doing.</p>
</blockquote>



<p class="wp-block-paragraph">What worries him most is what he calls <strong>technical death</strong> &#8211; a state where a team spends all its time keeping existing software alive, with nothing left for anything new. Technical debt compounding under AI-generated code nobody fully reviews. Complexity accumulating faster than it gets cleaned up. That&#8217;s the real risk.</p>



<h2 class="wp-block-heading"><span id="we-asked-sander-a-few-more-things">We asked Sander a few more things</span></h2>



<h3 class="wp-block-heading"><span id="your-team-dropped-pull-requests-was-that-an-ai-decision">Your team dropped pull requests. Was that an AI decision?</span></h3>



<p class="wp-block-paragraph"><strong>Sander</strong>: No, we did that a long time ago, it has nothing to do with AI. The problem with pull requests is that <strong>they slow you down</strong>. The longer you wait with merging back into main, the harder it gets, because other people make changes too. And what you see very often is that people reviewing other people’s code tend not to know or even understand what the code was supposed to do. So they check formatting, linting, naming conventions. Which is pretty stupid, because that you can automate.</p>



<p class="wp-block-paragraph"><strong>Pull requests make sense in open source</strong>, where you have no idea who’s submitting changes or what the quality of their work is. But on your own team? I don’t see any problems with committing code from anybody automatically. We work together every day, we write code together. You just don’t need it.</p>



<h3 class="wp-block-heading"><span id="ai-is-part-of-your-team-now-what-happens-when-something-breaks">AI is part of your team now. What happens when something breaks?</span></h3>



<p class="wp-block-paragraph"><strong>Sander</strong>: We don’t track who broke it. <strong>Everybody on my team is accountable for everything, including me</strong>. If I push something and the pipeline fails and I’m not around, somebody else picks it up. I have no doubt about that. So accountability is… I don’t care too much about it, because it’s distributed. We don’t blame people. We just fix it.</p>



<h3 class="wp-block-heading"><span id="you%e2%80%99ve-been-critical-of-agile-is-ai-exposing-that-teams-never-really-understood-it">You’ve been critical of Agile. Is AI exposing that teams never really understood it?</span></h3>



<p class="wp-block-paragraph"><strong>Sander</strong>: I’m not critical about Agile. I think a lot of people misunderstand what Agile actually means. Agile does not mean Scrum. Actually, to be quite honest, Scrum is not really Agile. The Scrum Guide says Scrum is immutable, which basically means it’s not Agile, because Agile means you can improve on anything.</p>



<p class="wp-block-paragraph">There is nothing in Agile that says you need to do sprints. The key statement in the Agile Manifesto is the one at the top: <strong>we are uncovering better ways of developing software</strong>. Everything else doesn’t really matter. As long as you have that mindset, there’s always something to improve. No default way of working is going to solve the problem for you.</p>



<h3 class="wp-block-heading"><span id="where-does-this-go-in-two-or-three-years">Where does this go in two or three years?</span></h3>



<p class="wp-block-paragraph"><strong>Sander</strong>: I think we will soon realize that the <strong>English language is too ambiguous and not concise enough to specify to an AI what to do</strong>. So what will happen is that we’ll develop better ways of having conversations with AI &#8211; more precise, less ambiguous. And what those languages are called? Programming languages. We will develop programming languages that allow us to talk to an AI in a way that the AI is able to create lower-level code from it.</p>



<p class="wp-block-paragraph">Programming will be programming, except with different tools. As they always have been.</p>
<p>The post <a href="https://shiftmag.dev/killing-prs-was-the-easy-part-now-technical-death-keeps-the-cto-up-9910/">Killing PRs was the easy part. Now Technical Death Keeps the CTO Up.</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Teaching AI Agents to Test 1,000 Java Libraries – and Letting Them Run While You Sleep</title>
		<link>https://shiftmag.dev/teaching-ai-agents-to-test-1000-java-libraries-and-letting-them-run-while-you-sleep-9802/</link>
		
		<dc:creator><![CDATA[Marin Pavelić]]></dc:creator>
		<pubDate>Tue, 19 May 2026 18:39:50 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Vojin Jovanović]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=9802</guid>

					<description><![CDATA[<p>A 1,000 libraries, 90% coverage, 1,700 in API tokens. Nobody typed a single test by hand.</p>
<p>The post <a href="https://shiftmag.dev/teaching-ai-agents-to-test-1000-java-libraries-and-letting-them-run-while-you-sleep-9802/">Teaching AI Agents to Test 1,000 Java Libraries – and Letting Them Run While You Sleep</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/05/ai-agents-java-libraries-1200x630-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/05/ai-agents-java-libraries-1200x630-1.png 1200w, https://shiftmag.dev/wp-content/uploads/2026/05/ai-agents-java-libraries-1200x630-1-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/05/ai-agents-java-libraries-1200x630-1-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/05/ai-agents-java-libraries-1200x630-1-768x403.png 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>


<p class="wp-block-paragraph">When humans maintained the GraalVM native image reflection metadata repository, <strong>coverage sat at just 14%</strong>. Tests were often stubs that technically compiled but covered nothing meaningful, nobody wanted to write them for someone else&#8217;s code, and the results showed.</p>



<p class="wp-block-paragraph">At <a href="https://www.devoxx.co.uk/" target="_blank" rel="noreferrer noopener">Devoxx UK</a>, <strong>Vojin Jovanovic</strong> (Principal Researcher, Oracle Labs) and <strong>Mihailo Markovic</strong> (Software Engineer, Oracle), presented how they replaced that process with an autonomous AI agent pipeline. </p>



<p class="wp-block-paragraph">The result is <strong>90% dynamic access coverage across more than 1,000 JVM libraries</strong>, roughly 2 billion tokens spent, and a GitHub repository generating thousands of commits per week &#8211; while Vojin was at a hotel the night before the conference.</p>



<h2 class="wp-block-heading"><span id="the-problem-with-graalvm-reflection">The problem with GraalVM reflection</span></h2>



<p class="wp-block-paragraph">GraalVM Native Image takes a Java application, performs static analysis, and AOT compiles it into a single binary. The benefits are significant: <strong>startup roughly 10x faster than a standard JVM</strong>,<strong> </strong>dramatically lower memory footprint. </p>



<p class="wp-block-paragraph">But static analysis has a fundamental limitation: when a method calls Class.forName(&#8220;Foo&#8221;) with a dynamic argument, the analyser <strong>cannot determine at compile time what class will be needed</strong>. Reflection calls break the closed-world assumption.</p>



<p class="wp-block-paragraph">The solution is <strong>reachability metadata</strong> &#8211; a JSON file that tells the native image compiler which classes, methods, and fields need to be accessible at runtime. Writing this metadata requires running tests that exercise all the relevant code paths. </p>



<p class="wp-block-paragraph">For a library like Hibernate Core, that means covering 264 individual reflection call sites. For Tomcat, 205. Across the JVM ecosystem, the number is enormous, and until recently, it was almost entirely a manual process that humans were not doing well.</p>



<h2 class="wp-block-heading"><span id="start-simple-then-add-feedback">Start simple, then add feedback</span></h2>



<p class="wp-block-paragraph">The first approach was straightforward: give an LLM the library source code, tell it to generate comprehensive Java tests, collect the metadata via a JVMTI agent. </p>



<p class="wp-block-paragraph">The results were not impressive &#8211; 5.7% coverage for logback, 2.9% for H2. Vojin noted how this doesn’t feel like AGI.</p>



<p class="wp-block-paragraph">The shift came from <strong>adding GraalVM’s static analysis directly to the agent’s context</strong>. Instead of asking the LLM to guess which code paths matter, the pipeline runs a static analysis pass that identifies every dynamic access call site (the exact class, method, and line number) and feeds that report directly to the agent. With this addition, logback coverage jumped to 97%, H2 to 84.3%, in five iterations.</p>



<p class="wp-block-paragraph"><strong>The next layer was JaCoCo integration</strong>. After each generation round, the pipeline correlates coverage data with the remaining uncovered call sites and feeds only the uncovered ones back into the next iteration. The agent knows exactly what it hit and what it missed. Vojin noted:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">We always create a checkpoint in those systems so we can go back to it if something goes wrong. And in these LLM-driven workflows, something is always going wrong.</p>
</blockquote>



<p class="wp-block-paragraph">With this feedback loop: logback reached 100%, H2 reached 96.1%.</p>



<h2 class="wp-block-heading"><span id="coverage-sometimes-still-isn%e2%80%99t-enough">Coverage sometimes still isn’t enough</span></h2>



<p class="wp-block-paragraph">For larger, more complex libraries (Guava, Tomcat, MongoDB) even the feedback loop left gaps. The team added a third technique:<strong> PGO</strong> (Profile-Guided Optimization) <strong>profiling from GraalVM’s Graal compiler</strong>. The profiler samples execution and produces a call trace, which can be correlated with static analysis to identify exactly where a test nearly reached a reflection call but diverged.</p>



<p class="wp-block-paragraph">The profiling feedback tells the agent not just what’s uncovered, but <strong>where in the call stack a test went in the wrong direction</strong> and what it would need to do differently. Results: Guava went from 50% to 72%, Tomcat from 45% to 83%, MongoDB reached 100%. </p>



<p class="wp-block-paragraph">The feedback also tells the agent (and the engineers) why certain calls cannot be covered: a security service only available on Java 6, a cleaner class incompatible with the current JVM. &#8220;If you cannot reach it, tell us why,&#8221; the prompt instructs, and the agent does.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="622" src="https://shiftmag.dev/wp-content/uploads/2026/05/55258392222_e98c47ff10_k-1024x622.jpg?x32039" alt="" class="wp-image-9853" srcset="https://shiftmag.dev/wp-content/uploads/2026/05/55258392222_e98c47ff10_k-1024x622.jpg 1024w, https://shiftmag.dev/wp-content/uploads/2026/05/55258392222_e98c47ff10_k-300x182.jpg 300w, https://shiftmag.dev/wp-content/uploads/2026/05/55258392222_e98c47ff10_k-768x466.jpg 768w, https://shiftmag.dev/wp-content/uploads/2026/05/55258392222_e98c47ff10_k.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Photo: DevoxxUK / Flickr</figcaption></figure>



<h2 class="wp-block-heading"><span id="cost-agents-and-model-selection">Cost, agents and model selection</span></h2>



<p class="wp-block-paragraph"><strong>Codex</strong> was the first agent framework the team tried. For logback  (a library with 33 dynamic access calls) Codex spent $35:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">If we’re spending $35 per library for a thousand libraries, we’re not replacing humans.</p>
</blockquote>



<p class="wp-block-paragraph"><strong>The alternative was P</strong>, a minimal agent that starts with a 200-token context describing basic file operations and bash execution. Same results, roughly 10x cheaper and the lesson is straightforward:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Simple task, use a simple agent. You already give it a lot of rules, a lot of context, and you’ve grounded it enough so it can perform on the level of these big agents.</p>
</blockquote>



<p class="wp-block-paragraph">On model selection, the team compared GPT 5.5 against several open-source alternatives &#8211; GLM, Kimi K2, DeepSeek, Gemma. <strong>GPT 5.5 consistently outperformed them on coverage</strong>. The counterintuitive finding was this: a more expensive model that makes the right decision in one shot can cost less overall than a cheaper model that wastes tokens going in the wrong direction.</p>



<h2 class="wp-block-heading"><span id="the-architecture-that-lets-it-run-without-you">The architecture that lets it run without you</span></h2>



<p class="wp-block-paragraph">The pipeline now operates as a <strong>third-generation system</strong>. When a user opens an issue requesting a library, the agent fetches the issue, runs the generation workflow, verifies the output, creates a pull request, reviews it, and merges or escalates to human review &#8211; automatically. The &#8220;human intervention&#8221; label on GitHub still exists, but its queue has shrunk dramatically.</p>



<p class="wp-block-paragraph"><strong>Documentation, not smarter prompting, was what made the difference</strong>. </p>



<p class="wp-block-paragraph">Vojin outlined what he calls <em><strong>the</strong> <strong>key context layers</strong></em>: </p>



<ul class="wp-block-list">
<li>raison d’être (why does this project exist, in two sentences), </li>



<li>state of direction (where the architecture stands today), </li>



<li>functional specification (how the system behaves), </li>



<li>architectural specification (how it is built), </li>



<li>decision records (what major choices were made and why), and </li>



<li>comprehensive logs that serve as checkpoints for recovery.</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">When you do all of these things, it takes almost a few days for a very big project. You will reduce your work by 50%, 60%, 70%.</p>
</blockquote>



<p class="wp-block-paragraph">The payoff is that agents with this context can diagnose failures, trace them through logs, and fix the underlying system, not just the immediate problem.</p>



<p class="wp-block-paragraph">The RAID system (an automated issue-resolution agent) was built in four prompts on a Sunday morning. It sweeps human intervention tickets, classifies them, performs deep analysis using the project logs, and either opens a GitHub issue for humans or attempts a fix in a forked branch with review. Jovanovic added:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Never work on the problem, always work on the system. You never go and fix a ticket. You always go fix the rules.</p>
</blockquote>



<h2 class="wp-block-heading"><span id="where-things-stand">Where things stand</span></h2>



<p class="wp-block-paragraph">The repository currently supports 1,021 libraries. Without five large Hibernate libraries that predate the automated pipeline, <strong>dynamic access coverage across the ecosystem is 90%</strong>. </p>



<p class="wp-block-paragraph">The GitHub repository has accumulated roughly 2,977 branches. In the week before Devoxx, it logged approximately 8,000-9,000 commits, with agents committing every few minutes around the clock. </p>



<p class="wp-block-paragraph">Total cost for the project: approximately $1,700 in API tokens, plus personal compute on Jovanovic’s home desktop, running around the clock because the Oracle compliance process for cloud infrastructure takes time. The key point is simple:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Start with neural, simplest thing, get results, and then slowly chop off things and put them into algorithms, because they are much cheaper and faster.</p>
</blockquote>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="614" src="https://shiftmag.dev/wp-content/uploads/2026/05/55259209226_a368299446_k-1024x614.jpg?x32039" alt="" class="wp-image-9850" srcset="https://shiftmag.dev/wp-content/uploads/2026/05/55259209226_a368299446_k-1024x614.jpg 1024w, https://shiftmag.dev/wp-content/uploads/2026/05/55259209226_a368299446_k-300x180.jpg 300w, https://shiftmag.dev/wp-content/uploads/2026/05/55259209226_a368299446_k-768x460.jpg 768w, https://shiftmag.dev/wp-content/uploads/2026/05/55259209226_a368299446_k.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Photo: DevoxxUK / Flickr</figcaption></figure>



<h2 class="wp-block-heading"><span id="we-caught-vojin-jovanovic-for-a-few-more-questions">We caught Vojin Jovanovic for a few more questions!</span></h2>



<p class="wp-block-paragraph">After the talk, we sat down with Vojin for a few minutes to ask him a couple more questions. </p>



<h3 class="wp-block-heading"><span id="you-tested-over-1000-libraries-what-broke-first-when-you-tried-to-scale">You tested over 1,000 libraries. What broke first when you tried to scale?</span></h3>



<p class="wp-block-paragraph"><strong>Vojin</strong>: Basically everything broke. We had mostly infrastructure issues, all kinds of GitHub failures. When you build a system at this scale, you need to assume that everything will fail and needs to recover. We broke GitHub rate limits. My machine was broken because it was running so many things. The key takeaway is that <strong>you need to build a system in a way that you can always continue</strong>. When things fail, you always checkpoint and continue from a checkpoint. We do work in sizable chunks, and when something fails, you just restart the chunk.</p>



<h3 class="wp-block-heading"><span id="is-just-asking-the-llm-enough">Is just asking the LLM enough?</span></h3>



<p class="wp-block-paragraph"><strong>Vojin</strong>: If you had asked me four weeks ago, I would say no. Now I would say <strong>you need to know how to ask it</strong>, and it will be enough. I was like, &#8220;GitHub is failing with a 504, abstract away all GitHub calls and retry.&#8221; It did it in two minutes. With today’s models, it’s a matter of minutes, not hours.</p>



<h3 class="wp-block-heading"><span id="what-did-you-learn-about-the-trade-off-between-cost-speed-and-coverage">What did you learn about the trade-off between cost, speed, and coverage?</span></h3>



<p class="wp-block-paragraph"><strong>Vojin</strong>: I haven’t seen a situation when doing something with an LLM is more expensive than doing that by a human typing on the keyboard. Build a system that uses the most efficient LLM for the job — you’re going to get far and not cost much money at all.</p>



<h3 class="wp-block-heading"><span id="when-does-using-multiple-agents-make-sense">When does using multiple agents make sense?</span></h3>



<p class="wp-block-paragraph"><strong>Vojin</strong>: Where I use it is for <strong>decisions and research</strong>. I use Claude Opus 4.7, Gemini 3.1, and GPT 5.5. I ask them all, let them discuss, and I discuss together with them. Each brings something to the table. Before, it was always Claude who was the smartest. Now GPT 5.5 is second and close to the first. Things are changing. The most important bit is getting the system designed right. Once you do that, coding, I don’t care who does it.</p>
<p>The post <a href="https://shiftmag.dev/teaching-ai-agents-to-test-1000-java-libraries-and-letting-them-run-while-you-sleep-9802/">Teaching AI Agents to Test 1,000 Java Libraries – and Letting Them Run While You Sleep</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How Developers Should Build AI Tools &#8211; So The EU Doesn’t Lose IT</title>
		<link>https://shiftmag.dev/how-developers-should-build-ai-tools-so-the-eu-doesnt-lose-it-9482/</link>
		
		<dc:creator><![CDATA[Marin Pavelić]]></dc:creator>
		<pubDate>Fri, 15 May 2026 13:20:37 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Ervin Jagatić]]></category>
		<category><![CDATA[infobip]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=9482</guid>

					<description><![CDATA[<p>What happens when regulators ask an AI company to explain exactly how its system made a decision? </p>
<p>The post <a href="https://shiftmag.dev/how-developers-should-build-ai-tools-so-the-eu-doesnt-lose-it-9482/">How Developers Should Build AI Tools &#8211; So The EU Doesn’t Lose 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/05/eu-ai-act-compliance-1200x630-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/05/eu-ai-act-compliance-1200x630-1.png 1200w, https://shiftmag.dev/wp-content/uploads/2026/05/eu-ai-act-compliance-1200x630-1-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/05/eu-ai-act-compliance-1200x630-1-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/05/eu-ai-act-compliance-1200x630-1-768x403.png 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>


<p class="wp-block-paragraph">The August 2026 deadline for the <a href="https://artificialintelligenceact.eu/" target="_blank" rel="noreferrer noopener">EU AI Act</a> is getting close, and companies and developerds building AI products are starting to feel it. </p>



<p class="wp-block-paragraph">High-risk AI systems need to be compliant by then, and the ones doing it well aren&#8217;t treating it as a last-minute legal scramble. They&#8217;re <strong>building compliance in from the start</strong>. </p>



<p class="wp-block-paragraph">We sat down with <strong>Ervin Jagatic</strong> (AI Business Unit Director, Infobip) to talk about what that actually looks like at Infobip, and why compliance-by-design is turning into something engineers think about, not just lawyers.</p>



<h2 class="wp-block-heading"><span id="compliance-starts-in-the-design-phase">Compliance starts in the design phase</span></h2>



<p class="wp-block-paragraph">AI Act compliance doesn&#8217;t start at deployment. Ervin is clear on this: <strong>it has to enter during system architecture, before a single line of agent code is written</strong>:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Compliance enters during the design phase &#8211; system architecture, data flow planning. Every layer of our AI Agents product, from planning to memory to tool execution, needs to be designed with traceability and human oversight in mind. We can&#8217;t bolt that on after the orchestrator is already coordinating multiple sub-agents autonomously.</p>
</blockquote>



<h2 class="wp-block-heading"><span id="the-ai-act-is-changing-product-development-in-3-ways"><strong>The AI Act is changing product development in 3 ways</strong></span></h2>



<p class="wp-block-paragraph">That shift has already changed how Infobip&#8217;s teams design and ship AI-powered features. Ervin points to three major changes that came directly from the AI Act.</p>



<h3 class="wp-block-heading"><span id="1-transparency-and-auditability">1. Transparency and auditability</span></h3>



<p class="wp-block-paragraph">Transparency is the first. Infobip&#8217;s <strong>AI Agents documentation is explicit</strong>: &#8220;you cannot script exact responses&#8221; &#8211; agents &#8220;generate responses dynamically.&#8221; </p>



<p class="wp-block-paragraph">That unpredictability is exactly why the company expanded its logging and analytics infrastructure, Ervin explains:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The AI Act&#8217;s transparency obligations pushed us to build comprehensive logging into our Insights and Analytics layer. Every agent execution now produces detailed logs &#8211; requests, responses, processing steps. That&#8217;s not just good engineering, it&#8217;s a direct response to auditability requirements.</p>
</blockquote>



<h3 class="wp-block-heading"><span id="2-explicit-guardrails-instead-of-assumptions">2. Explicit guardrails instead of assumptions</span></h3>



<p class="wp-block-paragraph">The second shift relates to behavioral boundaries and guardrails. Infobip now <strong>requires customers to define capability boundaries, mandatory restrictions, and compliance rules directly inside every agent’s system prompt</strong>, Ervin points out:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Our own documentation warns that if you do not explicitly define these constraints, the agent makes assumptions. That design philosophy, forcing explicit guardrails rather than relying on implicit model behavior, comes directly from the Act’s emphasis on risk mitigation by design.</p>
</blockquote>



<h3 class="wp-block-heading"><span id="3-human-oversight-is-a-part-of-the-architecture">3. Human oversight is a part of the architecture</span></h3>



<p class="wp-block-paragraph">The third shift is human oversight &#8211; not as an external policy layer, but <strong>built directly into the product architecture</strong>. Ervin explains:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><a href="https://www.infobip.com/agentos" target="_blank" rel="noreferrer noopener">AgentOS</a> uses a human-in-the-loop model where complex issues are escalated from AI agents to human agents. We are talking about a core architectural decision that applies human oversight requirements while also improving the product.</p>
</blockquote>



<h2 class="wp-block-heading"><span id="why-compliance-by-design-is-becoming-the-standard">Why compliance-by-design is becoming the standard</span></h2>



<p class="wp-block-paragraph">Ervin believes compliance-by-design is quickly becoming <strong>the</strong> <strong>new industry standard</strong>, particularly for teams building enterprise-grade AI systems:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">For developers and ML engineers at Infobip, compliance-by-design means several practical things. It means every AI agent we build has a defined architecture where an orchestrator coordinates sub-agents, each with explicit scope, tools, and behavioral rules.</p>
</blockquote>



<p class="wp-block-paragraph">It also <strong>changes how engineering teams think about data</strong>. &#8220;It means our engineers think about data lineage and provenance from the moment they design a training pipeline, not because someone from legal asked them to, but because the architecture demands it,&#8221; Ervin points out.</p>



<p class="wp-block-paragraph">To support that approach, Infobip <strong>invested heavily in tooling and analytics infrastructure</strong> that now serves both operational and regulatory purposes, Ervin said:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Our Insights and Analytics platform is our compliance infrastructure. When a regulator asks ‘show me how this AI system made this decision,’ we need to answer that question with structured evidence, not anecdotes.</p>
</blockquote>



<h2 class="wp-block-heading"><span id="risk-assessment-depends-on-the-use-case">Risk assessment depends on the use case</span></h2>



<p class="wp-block-paragraph">Internally, the company approaches risk assessment through a framework closely aligned with the <strong>AI Act’s four-tier classification model</strong>: unacceptable, high, limited, and minimal risk. However, Ervin notes that Infobip applies this framework at the feature level rather than only at the system level:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">This is important because a platform like Infobip’s serves vastly different use cases. An AI gamification tool for lead generation on WhatsApp is a fundamentally different risk profile than an AI agent that handles authentication.</p>
</blockquote>



<p class="wp-block-paragraph">The company <strong>evaluates risk based on several factors</strong>, including the sensitivity of the data involved, the autonomy of the AI component, and the intended use case, Ervin explains:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Our internal process follows a lifecycle approach. During identification, we map known and foreseeable risks, including risks from reasonably foreseeable misuse. During estimation, we assess probability and severity. During mitigation, we implement design controls, testing procedures, and human oversight.</p>
</blockquote>



<p class="wp-block-paragraph"><strong>Monitoring continues after deployment</strong> through analytics infrastructure designed for drift detection, incident investigation, and performance tracking. For enterprise customers, risk assessment also becomes a collaborative process between Infobip and client compliance teams.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">A bank using our AI agents to automate customer support has different risk considerations than a retail brand using the same technology for product recommendations. The platform is the same; the risk profile is not.</p>
</blockquote>



<h2 class="wp-block-heading">August 2026 is approaching&#8230;</h2>



<p class="wp-block-paragraph">As August 2026 closes in, Ervin says the conversation has shifted:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The question is no longer whether to integrate compliance into product development. The question is whether you&#8217;ve built the infrastructure to do it at speed.</p>
</blockquote>
<p>The post <a href="https://shiftmag.dev/how-developers-should-build-ai-tools-so-the-eu-doesnt-lose-it-9482/">How Developers Should Build AI Tools &#8211; So The EU Doesn’t Lose IT</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Inside the AWS Hierarchy: Engineering Levels Explained</title>
		<link>https://shiftmag.dev/inside-the-aws-hierarchy-engineering-levels-explained-9174/</link>
		
		<dc:creator><![CDATA[Marin Pavelić]]></dc:creator>
		<pubDate>Fri, 17 Apr 2026 14:42:25 +0000</pubDate>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[career leader]]></category>
		<category><![CDATA[software developer career]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=9174</guid>

					<description><![CDATA[<p>Decoding the AWS system is a roadmap for developers aiming for the top tiers of Big Tech. Here’s how to climb the ladder.</p>
<p>The post <a href="https://shiftmag.dev/inside-the-aws-hierarchy-engineering-levels-explained-9174/">Inside the AWS Hierarchy: Engineering Levels Explained</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/04/1-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/04/1-3.png 1200w, https://shiftmag.dev/wp-content/uploads/2026/04/1-3-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/04/1-3-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/04/1-3-768x403.png 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>


<p class="wp-block-paragraph">Welcome to the engineering hierarchy of one of the world’s biggest tech companies, with nearly 200K employees&#8230; and I’ll be your guide.</p>



<p class="wp-block-paragraph">Since Amazon <strong>doesn’t publicly publish an official breakdown of its career levels</strong>, I reviewed various sources such as <a href="https://dev.to/alexr/amazon-software-engineer-levels-roles-and-expectations-with-salary-1017" target="_blank" rel="noreferrer noopener">Dev.to articles</a> and <a href="https://www.levels.fyi/en-gb/companies/amazon/salaries/software-engineer?country=254" target="_blank" rel="noreferrer noopener">salary websites</a>.</p>



<p class="wp-block-paragraph">To start with, AWS is famous for a decentralized, high-ownership environment where <strong>engineers don’t just write code, they must run what they build</strong>. Understanding the AWS career ladder is essential for any developer looking to enter the ecosystem that powers over a third of the cloud.</p>



<h2 class="wp-block-heading"><span id="the-aws-leveling-system">The AWS leveling system</span></h2>



<p class="wp-block-paragraph">Amazon (and by extension AWS) uses a structured leveling system that spans from L1 to L12. However, most <strong>software engineers operate between L4 and L8</strong>, with higher levels reserved for a very small number of highly influential technical leaders.</p>



<p class="wp-block-paragraph">While some companies hire engineers at lower levels, AWS typically starts its professional software engineering track at L4.</p>



<h3 class="wp-block-heading"><span id="level-4-software-development-engineer-i-sde-i">Level 4: Software Development Engineer I (SDE I)</span></h3>



<p class="wp-block-paragraph">The SDE I position at Amazon serves as the foundational entry point, typically designed for recent <strong>college graduates or engineers with limited professional experience</strong>. At this stage, the primary focus is on building a robust technical baseline. You are responsible for hands-on coding and debugging within well-defined tasks, contributing to the development of small features that integrate into larger projects.</p>



<p class="wp-block-paragraph">While you are expected to deliver high-quality code, you aren&#8217;t expected to do everything yourself. AWS has a <strong>heavy emphasis on mentorship at this level</strong>. Because of that SDE I engineers receive significant guidance from seniors to help them navigate complex systems and understand specific development tools and practices. It is a period of incremental skills development.</p>



<h3 class="wp-block-heading"><span id="level-5-software-development-engineer-ii-sde-ii">Level 5: Software Development Engineer II (SDE II) </span></h3>



<p class="wp-block-paragraph">SDE II engineers are often the backbone of the company’s engineering organization. At this stage, it’s all about being <strong>fully self-sufficient</strong>. SDE IIs are expected to manage their own workloads with minimal supervision, prioritizing tasks effectively to deliver consistent, high-quality results.</p>



<p class="wp-block-paragraph">Beyond just executing tasks, SDE IIs begin to take <strong>ownership of larger systems and components.</strong> They are responsible for designing and implementing solutions that specifically meet Amazon’s high standards for scalability, performance, and reliability. This is also the level where your influence begins to expand beyond your code, you start acting as a mentor to L4 engineers and begin coordinating on cross-functional projects.</p>



<h3 class="wp-block-heading"><span id="level-6-senior-software-development-engineer-sde-iii">Level 6: Senior Software Development Engineer (SDE III) </span></h3>



<p class="wp-block-paragraph">The Senior SDE role is an advanced position reserved for experienced engineers who have demonstrated <strong>strong technical and leadership capabilities</strong>. At this level, the scope of responsibility expands beyond individual contributions to owning larger systems and leading complex projects.</p>



<p class="wp-block-paragraph">Senior SDEs are expected to design scalable architectures, make high-impact technical decisions, and <strong>guide the work of other engineers</strong> on their team and adjacent teams. Their influence is significant, though typically focused within a team or a group of closely related teams.</p>



<h3 class="wp-block-heading"><span id="level-7-8-principal-and-senior-principal-engineer">Level 7 &amp; 8: Principal and Senior Principal Engineer</span></h3>



<p class="wp-block-paragraph">Levels 7 and 8 represent the elite tier of engineering talent at AWS. As a Level 7 (Principal Engineer), you move into a <strong>strategic role</strong>, shaping the technical direction across multiple teams<strong> </strong>or an entire organization. They work closely with senior leadership and are responsible for solving complex, high-impact problems that affect large parts of the business.</p>



<p class="wp-block-paragraph">The Senior Principal Engineer <strong>(L8) sits at the pinnacle of technical innovation</strong>. These engineers define long-term technical vision for major areas of AWS, often influencing hundreds of engineers indirectly through architecture, standards, and strategic initiatives.</p>



<h3 class="wp-block-heading"><span id="level-10-distinguished-engineer-vp">Level 10: Distinguished Engineer / VP</span></h3>



<p class="wp-block-paragraph">Beyond Level 8, the roles become <strong>extremely rare</strong>. It&#8217;s reserved for a small group of engineers with company-wide or industry-level impact. These roles focus on setting long-term technical direction, solving the most complex architectural challenges, and influencing Amazon’s strategy at the highest level.</p>



<p class="wp-block-paragraph">Level 10 is reserved for <strong>world-renowned visionaries and thought leaders</strong> who have a remarkable track record of technical excellence. They are responsible for identifying future technology trends and anticipating market shifts years before they happen. They set the architectural principles and technical standards that position Amazon as a continued leader in the industry. As mentors to the company’s highest technical leaders, they foster a culture of innovation that ensures AWS remains at the cutting edge of what is technologically possible.</p>



<h2 class="wp-block-heading"><span id="what-makes-aws-levels-different">What makes AWS levels different?</span></h2>



<h3 class="wp-block-heading"><span id="1-leadership-principles-lps-as-a-metric">1. Leadership Principles (LPs) as a metric</span></h3>



<p class="wp-block-paragraph">Technical ability alone is not enough for promotion. Engineers are evaluated against <a href="https://www.amazon.jobs/content/en/our-workplace/leadership-principles" target="_blank" rel="noreferrer noopener">Amazon’s Leadership Principles</a>, which are used as a framework to assess impact, decision-making, ownership, and long-term thinking. As engineers progress through levels, they are expected to demonstrate these principles with <strong>increasing scope and consistency.</strong> Promotion depends on how well your work maps to multiple principles, not just one.</p>



<h3 class="wp-block-heading">2. The power of the &#8220;Doc&#8221;</h3>



<p class="wp-block-paragraph">AWS is a famously &#8220;silent&#8221; company. They don&#8217;t use PowerPoints, they use 6-page memos. <strong>Your ability to move from L5 to L6 depends heavily on your writing</strong>. Can you argue your architectural choices in a structured, data-driven document? If you can&#8217;t write, you can&#8217;t lead at AWS.</p>



<h3 class="wp-block-heading"><span id="3-total-compensation-tc-structure">3. Total Compensation (TC) structure</span></h3>



<p class="wp-block-paragraph">AWS compensation is uniquely structured compared to Google or Meta. While they have recently increased base salary caps, a large portion of your wealth comes from <strong>RSUs (Stock)</strong> with a 4-year vesting schedule:</p>



<ul class="wp-block-list">
<li><strong>Year 1:</strong> 5%</li>



<li><strong>Year 2:</strong> 15%</li>



<li><strong>Year 3:</strong> 40%</li>



<li><strong>Year 4:</strong> 40%This &#8220;back-loaded&#8221; vesting is designed to reward those who stay and grow through the levels.</li>
</ul>



<h2 class="wp-block-heading"><span id="aws-salary-expectations-2026-estimates">AWS salary expectations (2026 estimates)</span></h2>



<p class="wp-block-paragraph">To provide an accurate picture of what these roles pay, we analyzed the latest 2026 data aggregates from <strong>Levels.fyi</strong> and <strong>6figr.com</strong>, which utilize verified salary stubs from engineers in major tech hubs. Compensation at AWS varies significantly depending on team, location, and negotiation, but follows a consistent structure of base salary, bonus, and stock (RSUs).</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>Level</strong></td><td><strong>Role</strong></td><td><strong>Estimated Total Comp (TC)</strong></td></tr></thead><tbody><tr><td><strong>L4</strong></td><td>SDE I</td><td>$150k &#8211; $245k</td></tr><tr><td><strong>L5</strong></td><td>SDE II</td><td>$220k &#8211; $320k+</td></tr><tr><td><strong>L6</strong></td><td>Senior SDE</td><td>$300k &#8211; $420k+</td></tr><tr><td><strong>L7</strong></td><td>Principal</td><td>$400k &#8211; $600k+</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><em><strong>Note:</strong> These figures reflect top-tier offers in high-cost US markets. For European hubs like Dublin, Luxembourg, or Berlin, expect a 15-25% reduction in base cash, though stock grants remain aggressive.</em></p>



<h2 class="wp-block-heading"><span id="is-the-climb-worth-it">Is the climb worth it?</span></h2>



<p class="wp-block-paragraph">The AWS ladder is demanding and often associated with a <strong>high-performance culture</strong>. Engineers who progress through it tend to develop strong ownership, system design skills, and operational discipline.</p>



<p class="wp-block-paragraph">While experiences vary by team, time at AWS is generally seen as a strong signal of technical capability and execution, particularly at senior levels. For those who align with its culture, the system offers a clear path for growth.</p>
<p>The post <a href="https://shiftmag.dev/inside-the-aws-hierarchy-engineering-levels-explained-9174/">Inside the AWS Hierarchy: Engineering Levels Explained</a> appeared first on <a href="https://shiftmag.dev">ShiftMag</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AI Won’t Replace Security Tools &#8211; It’s Helping Them Prioritize Biggest Threats</title>
		<link>https://shiftmag.dev/ai-wont-replace-security-tools-8760/</link>
		
		<dc:creator><![CDATA[Marin Pavelić]]></dc:creator>
		<pubDate>Fri, 20 Mar 2026 15:24:51 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[cybersecurity]]></category>
		<guid isPermaLink="false">https://shiftmag.dev/?p=8760</guid>

					<description><![CDATA[<p>Mackenzie Jackson, security researcher and advocate, told me that AI can’t catch the bugs, but it knows which ones actually matter and provides the context teams need.</p>
<p>The post <a href="https://shiftmag.dev/ai-wont-replace-security-tools-8760/">AI Won’t Replace Security Tools &#8211; It’s Helping Them Prioritize Biggest Threats</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/03/Mackenzie-Jackson-2026.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/03/Mackenzie-Jackson-2026.png 1200w, https://shiftmag.dev/wp-content/uploads/2026/03/Mackenzie-Jackson-2026-300x158.png 300w, https://shiftmag.dev/wp-content/uploads/2026/03/Mackenzie-Jackson-2026-1024x538.png 1024w, https://shiftmag.dev/wp-content/uploads/2026/03/Mackenzie-Jackson-2026-768x403.png 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>


<p class="wp-block-paragraph">For <strong>Mackenzie Jackson</strong> (Developer and Security Advocate, Aikido Security) modern security is a nonstop game of <em>whack-a-mole,</em> with alerts and vulnerabilities keeping teams busy putting out fires instead of preventing them.</p>



<p class="wp-block-paragraph">But that chaos of cybersecurity is familiar territory for him: he investigates attacks and helps teams turn those findings into actionable steps.</p>



<p class="wp-block-paragraph">But strip away the complexity, and <strong>his advice on security</strong> is surprisingly simple:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">One of the biggest areas for smaller teams to focus on is simply stopping the bleeding.</p>
</blockquote>



<p class="wp-block-paragraph">You don’t need a flawless system, <strong>you need to regain control</strong>, and by implementing proactive measures companies neutralize threats before they ever touch production. It’s not a complete solution, but it’s a necessary foundation.</p>



<h2 class="wp-block-heading"><span id="cybersecurity-rests-on-two-pillars-people-and-access">Cybersecurity rests on two pillars: people and access</span></h2>



<p class="wp-block-paragraph">From the outside, cybersecurity looks like a web of interconnected threats and technically, and it is. But when incidents are investigated, the story tends to collapse into something much more&#8230; human:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">When you actually investigate a breach, what happened? Well, someone was probably phished, their credentials stolen, and that gave access to a system.</p>
</blockquote>



<p class="wp-block-paragraph">From there, attackers escalate, finding additional credentials, uncovering secrets, moving laterally through systems. Despite all the layers of technical complexity, <strong>most breaches still come down to two variables</strong>: people and acces<strong>s.</strong> This doesn’t make security easy, but it does make it clearer.</p>



<h2 class="wp-block-heading">Brakes make race cars faster &#8211; and security works the same way</h2>



<p class="wp-block-paragraph">One of the oldest problems in cybersecurity is organizational: How do you convince leadership to invest in something that, ideally, prevents things from happening?</p>



<p class="wp-block-paragraph"><strong>Fear is the usual tactic</strong> so you talk about reputational damage, financial loss, worst-case scenarios. It works, but only to a point and that is why Jackson suggests a different framing:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Brakes make race cars go faster.</p>
</blockquote>



<p class="wp-block-paragraph">It’s a counterintuitive analogy, but an effective one: <strong>without brakes, speed becomes dangerous</strong>. With them, drivers can push harder, take sharper turns, and move faster with confidence. Security, in this sense is an enabler:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">If we build security now, we can innovate faster… establish your brakes so that you can go faster with confidence.</p>
</blockquote>



<p class="wp-block-paragraph">The alternative, adding security later, under pressure from compliance or customer demands almost always slows teams down.</p>



<h2 class="wp-block-heading"><span id="security-tools-are-here-to-stay-but-ai-gives-them-context">Security tools are here to stay, but AI gives them context</span></h2>



<p class="wp-block-paragraph">The arrival of AI introduced a pattern: <strong>urgency first, understanding later. </strong></p>



<p class="wp-block-paragraph">After tools like GPT entered the mainstream, companies rushed to integrate AI into their security products. But much of that <strong>early adoption</strong>, Jackson suggests, <strong>was surface-level</strong>. The real value of AI lies elsewhere:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">AI is a terrible scanner… but it’s great at understanding context.</p>
</blockquote>



<p class="wp-block-paragraph">Traditional security tools are deterministic and that is why they answer yes-or-no questions. Is there a vulnerability? Does this code contain a known issue? <strong>AI, by contrast, is non-deterministic</strong>. It doesn’t always give the same answer twice and that makes it unreliable for detection, but powerful for interpretation:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">If you give it vulnerabilities and ask how severe this is, how exploitable it is that’s where AI becomes incredibly useful.</p>
</blockquote>



<p class="wp-block-paragraph">In other words, AI doesn’t replace security tools. It <strong>complements</strong> them, helping teams prioritize what actually matters.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="AI Is Breaking Cybersecurity" width="500" height="281" src="https://www.youtube.com/embed/uU4D8LDWRQI?start=32&amp;feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading"><span id="ai-doesn%e2%80%99t-make-attackers-smarter-it-makes-attacks-easier">AI doesn’t make attackers smarter, it makes attacks easier</span></h2>



<p class="wp-block-paragraph">So if AI isn’t fundamentally changing how attacks work, what is it changing? <strong>Scale</strong>.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">AI has given script kiddies superpowers.</p>
</blockquote>



<p class="wp-block-paragraph">This phrase captures the shift precisely: AI doesn’t necessarily make attackers more skilled, it makes attacks easier to execute, faster to launch, and accessible to a much larger pool of people. But the core mechanics of attacks remain the same:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">It’s not moving the bar up… it’s changing the scale.</p>
</blockquote>



<p class="wp-block-paragraph">And that, perhaps, is the most important takeaway. <strong>Because if the nature of attacks hasn’t fundamentally changed, neither has the foundation of defense.</strong> Good security hygiene. Strong access control. Protecting the software development lifecycle, Jackson points out.</p>



<p class="wp-block-paragraph">The tools may evolve. The threats may accelerate. But the principles still hold</p>
<p>The post <a href="https://shiftmag.dev/ai-wont-replace-security-tools-8760/">AI Won’t Replace Security Tools &#8211; It’s Helping Them Prioritize Biggest Threats</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-10-24 05:11:27 by W3 Total Cache
-->