<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Varsha Das</title>
    <description>The latest articles on DEV Community by Varsha Das (@devvarsha).</description>
    <link>https://dev.to/devvarsha</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3642820%2F5c296902-6a13-4a92-b4c3-3c4da8ab3b41.jpg</url>
      <title>DEV Community: Varsha Das</title>
      <link>https://dev.to/devvarsha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devvarsha"/>
    <language>en</language>
    <item>
      <title>The Java AI Stack Just Crystallized. Here's the Architecture That Emerged.</title>
      <dc:creator>Varsha Das</dc:creator>
      <pubDate>Mon, 10 Aug 2026 10:26:56 +0000</pubDate>
      <link>https://dev.to/devvarsha/the-java-ai-stack-just-crystallized-heres-the-architecture-that-emerged-3d7m</link>
      <guid>https://dev.to/devvarsha/the-java-ai-stack-just-crystallized-heres-the-architecture-that-emerged-3d7m</guid>
      <description>&lt;p&gt;If you're a Java developer reading this in August 2026, the landscape shifted under your feet in the last 90 days — and most of the internet hasn't caught up.&lt;/p&gt;

&lt;p&gt;Spring AI hit 2.0 GA. Embabel reached 1.0. MCP went stateless. LangChain4j shipped BDI agents. The Spring AI AgentCore SDK went GA. And Koog (JetBrains) stabilized its core. All between May and July 2026. All for the JVM.&lt;/p&gt;

&lt;p&gt;Catch up on — &lt;a href="http://ai4jvm.com" rel="noopener noreferrer"&gt;ai4jvm.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This isn't a listicle of announcements. This is an architecture essay — the synthesis of a 68-minute studio conversation I had with James Ward. Java Champion. AWS Principal Developer Advocate. 12-Factor App contributor. Building software since 1997. We recorded 3 hours. Published 68 minutes. What made the cut was the stuff that changes how you think about building production systems — not demos.&lt;/p&gt;

&lt;p&gt;🎬 &lt;a href="https://dev.toLINK_HERE"&gt;Full 68-minute conversation&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Foundational Claim: Python Trains AI. Java Runs AI.
&lt;/h2&gt;

&lt;p&gt;Let me ground this with numbers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;60% of external AWS SDK API calls come through the Java SDK. 8% come from Python. &lt;em&gt;(Source: James Ward, "Going Big with Java for Agentic Workloads," 2026)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;90% of Fortune 500 companies run Java in production. &lt;em&gt;(Oracle, 2025)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;62% of enterprises now use Java to power AI applications. &lt;em&gt;(Azul survey, January 2026)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;A Spring AI survey indicates 65% of Spring users prefer building agents in Spring AI/Embabel over Python/TypeScript alternatives (17%) or other JVM frameworks (18%).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The distinction matters because people conflate &lt;strong&gt;building with AI&lt;/strong&gt; (integrating models into applications — the Java play) with &lt;strong&gt;building AI&lt;/strong&gt; (training models — the Python play).&lt;/p&gt;

&lt;p&gt;When an AI agent needs to call your payment gateway at 3am with proper retry logic, circuit breakers, type-safe validation, and an audit trail — that's a distributed systems problem. It always was. The model is a component in that system, not the system itself.&lt;/p&gt;

&lt;p&gt;The agents of 2026 are calling the same enterprise APIs, hitting the same backends, running on the same infrastructure that Java has owned for two decades. The language that runs those backends is the language best positioned to serve them to autonomous consumers.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Framework Decision: A Concrete Comparison (Not a Vibe Check)
&lt;/h2&gt;

&lt;p&gt;The question I get most — at meetups, in YouTube comments, at the MCP Dev Summit booth (100+ conversations across Bangalore and Mumbai) — is: "Spring AI or LangChain4j?"&lt;/p&gt;

&lt;p&gt;James's answer was blunt: &lt;strong&gt;pick one, go deep.&lt;/strong&gt; The architectural concepts — tool calling, RAG, structured outputs, memory, observability — are transferable.&lt;/p&gt;

&lt;p&gt;Here's the concrete state of play as of August 2026:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Spring AI 2.0&lt;/th&gt;
&lt;th&gt;LangChain4j 1.18&lt;/th&gt;
&lt;th&gt;Embabel 1.0&lt;/th&gt;
&lt;th&gt;Koog 1.0&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GitHub Stars&lt;/td&gt;
&lt;td&gt;7.4K&lt;/td&gt;
&lt;td&gt;10K&lt;/td&gt;
&lt;td&gt;2.9K&lt;/td&gt;
&lt;td&gt;3.5K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GA Date&lt;/td&gt;
&lt;td&gt;Jun 12, 2026&lt;/td&gt;
&lt;td&gt;Jul 2026&lt;/td&gt;
&lt;td&gt;Jul 20, 2026&lt;/td&gt;
&lt;td&gt;Jul 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Foundation&lt;/td&gt;
&lt;td&gt;Spring Boot 4&lt;/td&gt;
&lt;td&gt;Standalone / Quarkus&lt;/td&gt;
&lt;td&gt;Built ON Spring AI&lt;/td&gt;
&lt;td&gt;Kotlin multiplatform&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agent Pattern&lt;/td&gt;
&lt;td&gt;Advisor chain (composable interceptors)&lt;/td&gt;
&lt;td&gt;BDI (Belief-Desire-Intention)&lt;/td&gt;
&lt;td&gt;GOAP (Goal-Oriented Action Planning)&lt;/td&gt;
&lt;td&gt;Type-safe DSL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MCP Support&lt;/td&gt;
&lt;td&gt;Annotation-driven (@McpTool)&lt;/td&gt;
&lt;td&gt;Declarative via &lt;a class="mentioned-user" href="https://dev.to/tool"&gt;@tool&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;Inherits from Spring AI&lt;/td&gt;
&lt;td&gt;A2A + MCP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Key Differentiator&lt;/td&gt;
&lt;td&gt;Enterprise convention-over-config&lt;/td&gt;
&lt;td&gt;Broadest provider support (20+ LLMs, 20+ vector stores)&lt;/td&gt;
&lt;td&gt;Runtime replanning when actions fail&lt;/td&gt;
&lt;td&gt;Multiplatform (JVM, JS, iOS, Android)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Best For&lt;/td&gt;
&lt;td&gt;Spring Boot teams (66% of enterprise Java)&lt;/td&gt;
&lt;td&gt;Non-Spring shops, polyglot provider needs&lt;/td&gt;
&lt;td&gt;Teams wanting declarative goal-driven agents&lt;/td&gt;
&lt;td&gt;Kotlin-first teams&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The framework matters less than understanding what's underneath. If you understand how tool calling works at the protocol level (MCP), how memory strategies differ (semantic vs episodic), and how retry responsibility splits between infra and reasoning — switching between these is a weekend of refactoring, not a rewrite.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The anti-pattern I see repeatedly:&lt;/strong&gt; Teams spending 4 weeks evaluating frameworks, building proof-of-concepts in each, writing comparison docs for leadership — and never shipping anything. The framework you ship with is better than the three you evaluated.&lt;/p&gt;




&lt;h2&gt;
  
  
  MCP 2026–07–28: The Protocol Layer Just Broke and Rebuilt Itself
&lt;/h2&gt;

&lt;p&gt;On July 28, 2026, the Model Context Protocol shipped its biggest revision since launch. This isn't a point release. It's a new era.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What changed (the technical diff):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The old protocol was stateful — a two-round-trip initialize handshake, a &lt;code&gt;Mcp-Session-Id&lt;/code&gt; header that required sticky sessions, server-side session stores, and affinity routing at the load balancer.&lt;/p&gt;

&lt;p&gt;The new protocol is stateless: every request is self-contained. Protocol version and client capabilities ride in &lt;code&gt;_meta&lt;/code&gt; on every request. No handshake. No session ID.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;// Before (2025-11-25): Two round trips minimum
POST /mcp → initialize → get Mcp-Session-Id → sticky-route forever

// After (2026-07-28): One round trip. Everything in the envelope.
POST /mcp
Mcp-Method: tools/call
Mcp-Name: get_user

{
  "jsonrpc":"2.0",
  "method":"tools/call",
  "params":{
    "name":"get_user",
    "arguments":{"id":"123"},
    "_meta":{
      "io.modelcontextprotocol/protocolVersion":"2026-07-28",
      "io.modelcontextprotocol/clientInfo":{"name":"my-client","version":"1.0.0"}
    }
  }
}
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why this matters for Java developers:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your MCP server (the Spring Boot app with &lt;code&gt;@McpTool&lt;/code&gt; annotations) can now sit behind a plain round-robin load balancer. No sticky sessions. No shared session store. No distributed cache for session state. The serverless deployment model (Lambda, AgentCore Runtime, Cloud Run) becomes trivially simple because there's nothing to share between invocations.&lt;/p&gt;

&lt;p&gt;The MCP Java SDK 2.0 tracks this spec. SSE transport is deprecated (12-month clock). Streamable HTTP is the path forward. &lt;code&gt;server/discover&lt;/code&gt; is now mandatory — it replaces the initialization handshake as the capability advertisement mechanism. Tool lists must be deterministic and carry &lt;code&gt;ttlMs&lt;/code&gt; and &lt;code&gt;cacheScope&lt;/code&gt; for client-side caching.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The migration reality:&lt;/strong&gt; You have 12 months. Both eras coexist. But if you're building a NEW MCP server today, build to 2026–07–28. Don't accumulate session-dependent tech debt you'll need to unwind.&lt;/p&gt;




&lt;h2&gt;
  
  
  Embabel 1.0: Why Rod Johnson Built a Framework on Top of His Own Framework
&lt;/h2&gt;

&lt;p&gt;The InfoQ coverage frames it precisely: "An analogy: Spring AI exists at the level of the Servlet API, while Embabel is more like Spring MVC."&lt;/p&gt;

&lt;p&gt;Rod Johnson — who created Spring in 2003 — is making the same layering bet he made 23 years ago.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What makes Embabel architecturally different:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Embabel uses Goal-Oriented Action Planning (GOAP), a technique borrowed from video game AI. Instead of wiring a static graph of nodes and edges (the LangGraph approach), you define:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Typed goals&lt;/strong&gt; — what you want to achieve&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Typed actions&lt;/strong&gt; — each with preconditions and effects&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A planner&lt;/strong&gt; — that searches for a sequence of actions reaching the goal at runtime&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the world changes mid-task (a tool fails, new data arrives), the planner reassesses and finds a new path. You don't need to have anticipated every branch in advance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This matters for production&lt;/strong&gt; because agents fail mid-execution constantly. An API returns a 503. The user changes their mind. A guardrail blocks an intermediate step. With a static graph, you either crash or you need explicit error edges for every possible failure. With GOAP, the planner routes around the failure — the same way a GPS recalculates when you miss a turn.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The distinction from LangGraph4j:&lt;/strong&gt; LangGraph requires you to define the graph upfront — which nodes exist, which edges connect them, under what conditions. Embabel's planner discovers viable paths through typed actions at runtime. Both approaches have merit. LangGraph gives you predictability and auditability. Embabel gives you adaptability and less upfront wiring. Embabel even supports mixing both: GOAP planning alongside explicit state machines in the same agent.&lt;/p&gt;




&lt;h2&gt;
  
  
  Memory Is the Silent Killer of Agent Reliability
&lt;/h2&gt;

&lt;p&gt;The most technically interesting segment of our conversation — and the one that's generated the most YouTube comments — was about agent memory architecture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The failure mode nobody warns you about:&lt;/strong&gt; Your agent keeps the last 20 messages in a sliding window. On message 21, the original user intent rolls off. The agent continues executing — but toward a goal it's forgotten. No crash. No error. Just quiet drift. Your trace shows every tool call succeeded. The output is confidently wrong.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The 4-strategy architecture:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Strategy&lt;/th&gt;
&lt;th&gt;What It Stores&lt;/th&gt;
&lt;th&gt;When It's Used&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Semantic&lt;/td&gt;
&lt;td&gt;Factual information about the user&lt;/td&gt;
&lt;td&gt;Injected when relevant to current query&lt;/td&gt;
&lt;td&gt;"User works in financial services"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User Preference&lt;/td&gt;
&lt;td&gt;Explicit settings and choices&lt;/td&gt;
&lt;td&gt;Always injected for personalization&lt;/td&gt;
&lt;td&gt;"Prefers metric units"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Summary&lt;/td&gt;
&lt;td&gt;Condensed conversation history&lt;/td&gt;
&lt;td&gt;Injected at session start for continuity&lt;/td&gt;
&lt;td&gt;"Last session: analyzed Q3 expenses, found anomaly in travel category"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Episodic&lt;/td&gt;
&lt;td&gt;Past interactions and lessons learned&lt;/td&gt;
&lt;td&gt;Injected when similar situations arise&lt;/td&gt;
&lt;td&gt;"User had trouble with CSV parsing last week — offer the helper tool proactively"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The production pattern:&lt;/strong&gt; Short-term memory (sliding window) handles the current conversation. Long-term memory (the 4 strategies above) handles everything that should survive across sessions. The consolidation happens asynchronously — the system extracts relevant facts without explicit developer intervention.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The anti-pattern:&lt;/strong&gt; Using only short-term memory and increasing the window size to compensate. This burns tokens (every message is re-sent to the model) and eventually hits context limits. It's the equivalent of solving a database scaling problem by buying more RAM instead of indexing properly.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Principle I Now Repeat in Every Talk
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;"Don't let the non-deterministic system make the final move."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;LLMs reason. Deterministic tools execute. The boundary between them must be type-safe, validated, and auditable.&lt;/p&gt;

&lt;p&gt;In practice, this means your &lt;code&gt;@McpTool&lt;/code&gt; methods (or &lt;code&gt;@Tool&lt;/code&gt; in LangChain4j) have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Strict input types (not &lt;code&gt;Map&amp;lt;String, Object&amp;gt;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Validation annotations (&lt;code&gt;@NotNull&lt;/code&gt;, &lt;code&gt;@Min&lt;/code&gt;, &lt;code&gt;@Pattern&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Structured error responses the agent can reason about&lt;/li&gt;
&lt;li&gt;No direct writes without validation passing first
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nd"&gt;@McpTool&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;description&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Transfer funds between accounts. Validates balance before executing."&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nc"&gt;TransferResult&lt;/span&gt; &lt;span class="nf"&gt;transfer&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
    &lt;span class="nd"&gt;@NotNull&lt;/span&gt; &lt;span class="nd"&gt;@Pattern&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;regexp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"ACC-\\d{10}"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;fromAccount&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
    &lt;span class="nd"&gt;@NotNull&lt;/span&gt; &lt;span class="nd"&gt;@Pattern&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;regexp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"ACC-\\d{10}"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;toAccount&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
    &lt;span class="nd"&gt;@Min&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nd"&gt;@Max&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100000&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nc"&gt;BigDecimal&lt;/span&gt; &lt;span class="n"&gt;amount&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
    &lt;span class="nd"&gt;@NotBlank&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;currency&lt;/span&gt;
&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// The agent reasoned about WHAT to transfer.&lt;/span&gt;
    &lt;span class="c1"&gt;// This method validates HOW — deterministically.&lt;/span&gt;
    &lt;span class="c1"&gt;// If validation fails, the structured error tells the agent why.&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is just dependency injection and interface contracts — the things Java developers have been doing for 20 years. The reasoning is new. The execution boundary isn't.&lt;/p&gt;




&lt;h2&gt;
  
  
  What This Means for Your Career in 2026
&lt;/h2&gt;

&lt;p&gt;The Java AI stack crystallized in 90 days. Before May 2026, it was emerging. Now it's production-ready. The window where "I'm still evaluating" was a reasonable position has closed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The decision tree:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Already on Spring Boot?&lt;/strong&gt; → Spring AI 2.0. No contest. Annotation-driven, advisor-chain composable, MCP built in.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Want high-level goal-driven agents?&lt;/strong&gt; → Embabel 1.0 (on top of Spring AI). GOAP replanning, typed domain objects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not on Spring?&lt;/strong&gt; → LangChain4j 1.18. BDI pattern, broadest provider support, crash-resilient HITL.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kotlin-first?&lt;/strong&gt; → Koog 1.0. Multiplatform, type-safe DSL, A2A support.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Need managed deployment?&lt;/strong&gt; → Spring AI AgentCore SDK. One annotation → managed runtime, memory, observability, scaling.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the framework is 20% of the decision. The 80% is: Do you understand how MCP tool discovery works? Do you understand the 4 memory strategies? Do you understand where retry responsibility lives (infra vs reasoning)?&lt;/p&gt;

&lt;p&gt;If yes — you can build production agents in any of these frameworks by next week.&lt;/p&gt;

&lt;p&gt;If no — learning a second framework teaches you nothing new.&lt;/p&gt;




&lt;p&gt;The full conversation goes deeper into each of these areas. Timestamps in the video description — jump to what matters most to you.&lt;/p&gt;

&lt;p&gt;🎬 Watch: &lt;a href="https://dev.toLINK_HERE"&gt;68 Minutes That Could Change How You Think About Java and AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📺 Subscribe: &lt;a href="https://dev.toLINK_HERE"&gt;Code With Ease — By Varsha&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📝 More writing: &lt;a href="https://medium.com/@varshadas" rel="noopener noreferrer"&gt;medium.com/@varshadas&lt;/a&gt; | &lt;a href="https://dev.to/varshadas"&gt;dev.to/varshadas&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔗 Connect: &lt;a href="https://linkedin.com/in/varsha-das-se" rel="noopener noreferrer"&gt;linkedin.com/in/varsha-das-se&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>ai</category>
      <category>springai</category>
      <category>mcp</category>
    </item>
    <item>
      <title>I Stopped Dragging Boxes in Draw.io (Here's What I Do Instead)</title>
      <dc:creator>Varsha Das</dc:creator>
      <pubDate>Tue, 26 May 2026 13:46:37 +0000</pubDate>
      <link>https://dev.to/aws/i-stopped-dragging-boxes-in-drawio-heres-what-i-do-instead-3end</link>
      <guid>https://dev.to/aws/i-stopped-dragging-boxes-in-drawio-heres-what-i-do-instead-3end</guid>
      <description>&lt;p&gt;If you're a Java developer, solutions architect, or anyone who's ever lost an afternoon to draw.io  this one's for you.&lt;/p&gt;

&lt;p&gt;Being part of 5 engineering teams over 8 years, here's something I experienced on almost every engineering team I've been part of. And you must have been too.&lt;/p&gt;

&lt;p&gt;Product manager drops a PRD. We huddle in meeting rooms as devs with whiteboard markers flying, design discussions getting heated, someone sketching a system on the glass wall that actually makes sense. And then came the part everyone dreaded.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Ok, now create a design doc and add the diagrams."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Design documents. Sequence diagrams. Class diagrams. Architecture diagrams. All of it  formalized, version-controlled, and painstakingly created in draw.io.&lt;/p&gt;

&lt;p&gt;I genuinely hated it.&lt;/p&gt;

&lt;p&gt;And I think you know exactly what I mean. Dragging boxes. Aligning arrows. Snapping to grid. Unsnapping from grid because it snapped to the wrong thing. Spending 30 minutes on something or maybe more. It felt like the least productive version and the unglamorous part of engineering work and yet somehow it was always blocking the design review.&lt;/p&gt;

&lt;p&gt;Honestly? I would have been happy to just take a photo of the whiteboard sketch and call it done. If only someone could magically understand it. Or if I could just speak out what I wanted to draw and have it appear.&lt;/p&gt;

&lt;p&gt;I actually didn't mind sequence diagrams. The logic was satisfying. Mapping out the flow, seeing the interactions, watching the system tell its own story. I could get into that.&lt;/p&gt;

&lt;p&gt;But then again with AWS architecture diagrams the problem wasn't really the icons.&lt;/p&gt;

&lt;p&gt;If you've ever been responsible for architecture diagrams in a real team, you know exactly what I'm talking about. The pain is universal. And it's actually well-documented:&lt;/p&gt;

&lt;p&gt;Creating professional AWS architecture diagrams is one of those tasks that sounds simple and never is. Solutions architects, developers, tech leads — everyone has to do it. And everyone has the same complaints.&lt;/p&gt;

&lt;p&gt;It takes forever. The tools have a learning curve. draw.io, Lucidchart, Visio — they're not hard, but they're not fast either. And every new person on the team has to learn them from scratch.&lt;/p&gt;

&lt;p&gt;Consistency is a constant battle. You make one diagram in one style, someone else makes another, and suddenly your documentation looks like it was designed by three different teams. Because it was.&lt;/p&gt;

&lt;p&gt;AWS icons go stale. AWS releases new services, updates icon sets, renames things. Keeping your diagrams in sync with the official AWS visual language is a part-time job nobody signed up for.&lt;/p&gt;

&lt;p&gt;And maintenance? Every time the architecture evolves  and it always evolves you're back in the tool, reorganizing boxes, re-routing arrows, hoping nothing breaks the layout.&lt;/p&gt;

&lt;p&gt;The result is that diagrams become a bottleneck. Or worse — they become outdated the moment they're published and nobody updates them because it's too painful.&lt;/p&gt;

&lt;p&gt;So when I say I stopped dragging boxes — I mean I found a way to close that gap. To go from "system in my head" to "diagram on screen" without the tax in between.&lt;/p&gt;

&lt;p&gt;Let me show you how.&lt;/p&gt;

&lt;p&gt;There are two approaches I use — one for production-ready AWS architecture diagrams with official icons, and another for quick hand-drawn sketches when polish would feel premature. Let me show you both.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 1: Official AWS Diagrams with Kiro + MCP
&lt;/h2&gt;

&lt;p&gt;Before we get into the setup, let me quickly explain what's actually happening under the hood — because understanding this makes everything click.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kiro&lt;/strong&gt; is an &lt;a href="https://kiro.dev?trk=b66f5ef1-c498-4eda-ac8b-f013ed0177ba&amp;amp;sc_channel=el" rel="noopener noreferrer"&gt;AI-powered IDE&lt;/a&gt; that brings generative AI capabilities directly into your development workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP (&lt;a href="https://modelcontextprotocol.io?trk=b66f5ef1-c498-4eda-ac8b-f013ed0177ba&amp;amp;sc_channel=el" rel="noopener noreferrer"&gt;Model Context Protocol&lt;/a&gt;)&lt;/strong&gt;— developed by Anthropic as an open protocol — provides a standardized way to connect AI models to virtually any data source or tool. Think of it as a plugin system for AI. MCP servers act as specialized extensions that give Kiro domain-specific capabilities it wouldn't have on its own.&lt;/p&gt;

&lt;p&gt;The two MCP servers we're using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;diagrams-mcp&lt;/strong&gt; → generates diagrams using the Python &lt;code&gt;diagrams&lt;/code&gt; package with the complete official AWS icon set&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;AWS Documentation MCP&lt;/strong&gt; → searches and reads &lt;a href="https://github.com/awslabs/aws-documentation-mcp-server?trk=b66f5ef1-c498-4eda-ac8b-f013ed0177ba&amp;amp;sc_channel=el" rel="noopener noreferrer"&gt;AWS documentation&lt;/a&gt; to validate best practices→ searches and reads AWS documentation to validate best practices before generating&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Together, they give Kiro the ability to produce architecture diagrams that are both visually correct AND architecturally sound.&lt;/p&gt;

&lt;h3&gt;
  
  
  Setup (5 minutes, once)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Install dependencies&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# uv — a fast Python package/environment manager.&lt;/span&gt;
&lt;span class="c"&gt;# The diagrams-mcp server runs as a Python tool via uvx (uv's package runner).&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;uv

&lt;span class="c"&gt;# Python 3.10 — required by the diagrams package for generating architecture PNGs.&lt;/span&gt;
&lt;span class="c"&gt;# If you already have 3.10+ installed, skip this.&lt;/span&gt;
uv python &lt;span class="nb"&gt;install &lt;/span&gt;3.10

&lt;span class="c"&gt;# GraphViz — the layout engine that positions nodes and routes arrows in diagrams.&lt;/span&gt;
&lt;span class="c"&gt;# Without it, the diagrams package can generate code but can't render images.&lt;/span&gt;
&lt;span class="c"&gt;# macOS: brew install graphviz&lt;/span&gt;
&lt;span class="c"&gt;# Ubuntu: sudo apt install graphviz&lt;/span&gt;
&lt;span class="c"&gt;# Windows: choco install graphviz&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 2: Configure MCP servers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add this to &lt;code&gt;~/.kiro/settings/mcp.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"aws-diagrams"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"uvx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"diagrams-mcp"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"FASTMCP_LOG_LEVEL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ERROR"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"autoApprove"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"disabled"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"aws-docs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"uvx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"awslabs.aws-documentation-mcp-server@latest"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"FASTMCP_LOG_LEVEL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ERROR"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"autoApprove"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"disabled"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kiro automatically discovers MCP servers from this file. That's it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;macOS note:&lt;/strong&gt; If the servers fail to connect, &lt;code&gt;uvx&lt;/code&gt; may not be in Kiro's PATH. Find your full path with &lt;code&gt;which uvx&lt;/code&gt; in terminal and replace &lt;code&gt;"uvx"&lt;/code&gt; with the full path (e.g. &lt;code&gt;"/Users/yourname/.local/bin/uvx"&lt;/code&gt;) in the config above.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Verify the setup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open the Kiro chat panel and check your MCP servers are connected from the MCP panel in the sidebar. Then test with a simple prompt:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Please create a diagram showing an EC2 instance in a VPC connecting to an external S3 bucket. Include essential networking components (VPC, subnets, Internet Gateway, Route Table), security elements (Security Groups, NACLs), and clearly mark the connection between EC2 and S3. Label everything appropriately and indicate all resources are in us-east-1. Check AWS documentation to ensure it adheres to best practices before creating the diagram."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you see a diagram, you're set up correctly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyxc6m02dwbg0ddpl4k6x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyxc6m02dwbg0ddpl4k6x.png" alt="Kiro prompt demo" width="800" height="671"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fthq5v76owicu3wwjcihy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fthq5v76owicu3wwjcihy.png" alt="Kiro prompt demo" width="800" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What's happening when you run a prompt
&lt;/h3&gt;

&lt;p&gt;When you describe what you want, here's the actual sequence:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Kiro searches AWS documentation for best practices using &lt;code&gt;search_documentation&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Reads the relevant docs using &lt;code&gt;read_documentation&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Lists the needed AWS service icons using &lt;code&gt;list_icons&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Generates Python code using the &lt;code&gt;diagrams&lt;/code&gt; package&lt;/li&gt;
&lt;li&gt;Executes it and returns a PNG&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You describe what you want. The MCP servers handle the rest.&lt;/p&gt;

&lt;p&gt;Final digram:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqdk2viu5cdd77gfc1kgx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqdk2viu5cdd77gfc1kgx.png" alt=" " width="799" height="562"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Real examples
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Simple web app:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create a diagram for a simple web application with an Application Load Balancer,
two EC2 instances, and an RDS database. Check AWS documentation to ensure it
adheres to best practices before creating the diagram.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Multi-tier architecture:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create a diagram for a three-tier web application with a presentation tier
(ALB and CloudFront), application tier (ECS with Fargate), and data tier
(Aurora PostgreSQL). Include VPC with public and private subnets across
multiple AZs. Check AWS documentation for best practices.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Serverless:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create a diagram for a serverless web application using API Gateway, Lambda,
DynamoDB, and S3 for static website hosting. Include Cognito for user
authentication and CloudFront for content delivery. Check AWS documentation
for best practices.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Data pipeline:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create a diagram for a data processing pipeline with components organized
in clusters for data ingestion (Kinesis, SQS), processing (Lambda, Glue),
storage (S3, DynamoDB), and analytics (Athena, QuickSight). Check AWS
documentation for best practices.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And you iterate by just… talking to it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Add a WAF in front of CloudFront."
"Show DynamoDB Streams connecting to a Lambda for event processing."
"Make it multi-region with Route 53."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each change takes seconds. Not 20 minutes of reorganizing boxes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 2: Hand-Drawn Diagrams with Kiro Skills
&lt;/h2&gt;

&lt;p&gt;Here's where it gets fun.&lt;/p&gt;

&lt;p&gt;Sometimes you don't want a polished, corporate-looking diagram. Sometimes you want that whiteboard sketch feel — the kind you'd draw during a design discussion when everyone's still figuring things out.&lt;/p&gt;

&lt;p&gt;Kiro has a &lt;code&gt;hand-drawn-diagrams&lt;/code&gt; skill that generates Excalidraw-style sketchy diagrams. The aesthetic is intentional — it looks like a human drew it. Which makes it perfect for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Blog posts (feels approachable, not intimidating)&lt;/li&gt;
&lt;li&gt;Video explainers (you can animate it drawing itself)&lt;/li&gt;
&lt;li&gt;Quick architecture discussions where polish would feel premature&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Setup (one-time)
&lt;/h3&gt;

&lt;p&gt;Download the skill zip and install it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;unzip ~/Downloads/hand-drawn-diagrams.zip &lt;span class="nt"&gt;-d&lt;/span&gt; ~/.kiro/skills/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kiro picks it up automatically. No restart needed.&lt;/p&gt;

&lt;h3&gt;
  
  
  The prompt I used
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create a hand-drawn architecture diagram showing the MCP flow:

AI Agent → MCP Client → MCP Server → Spring Boot App → Amazon Bedrock

Layout: left-to-right flow
Style: hand-drawn sketch, monochrome
Shapes:
- AI Agent and Amazon Bedrock as ellipses (external actors)
- MCP Client, MCP Server, Spring Boot App as rectangles (services)

Label each arrow with the protocol:
- AI Agent → MCP Client: "tool call"
- MCP Client → MCP Server: "JSON-RPC"
- MCP Server → Spring Boot App: "HTTP/REST"
- Spring Boot App → Amazon Bedrock: "Bedrock API"

Add a short annotation below each node describing its role.
Add a title: "MCP Architecture Flow"

Open it in the Excalidraw editor.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  What Kiro did
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Routed the request to the &lt;code&gt;hand-drawn-diagrams&lt;/code&gt; skill&lt;/li&gt;
&lt;li&gt;Generated a full Excalidraw JSON with 24 elements, validated clean (0 errors)&lt;/li&gt;
&lt;li&gt;Produced two live links instantly — no export, no download needed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;👉 &lt;a href="https://muthuishere.github.io/hand-drawn-diagrams/edit.html#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" rel="noopener noreferrer"&gt;View &amp;amp; edit the diagram&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
— opens in Excalidraw, fully editable. Export PNG via hamburger menu → Export image → PNG.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👉 &lt;a href="https://muthuishere.github.io/hand-drawn-diagrams/animate.html#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" rel="noopener noreferrer"&gt;Watch it animate&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
— each node draws itself stroke by stroke. Perfect for screen recording as video content.&lt;/p&gt;

&lt;p&gt;The animated version is genuinely great for explainer videos. Each node appears sequentially, arrows draw themselves, labels fade in. The kind of thing that would take hours in After Effects — done in one prompt.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Actually Matters
&lt;/h2&gt;

&lt;p&gt;This isn't just about saving time. Though it does — massively.&lt;/p&gt;

&lt;p&gt;It's about removing friction from communication.&lt;/p&gt;

&lt;p&gt;Architecture diagrams exist to explain systems to other humans. The faster you can go from "idea in your head" to "visual that others understand," the better engineer you become. The better communicator. The better collaborator.&lt;/p&gt;

&lt;p&gt;And here's the thing I keep coming back to — MCP is the unlock. It's a standard protocol that lets AI tools connect to specialized capabilities.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Need AWS icons? MCP server for that.&lt;/li&gt;
&lt;li&gt;Need best practices validation? MCP server for that.&lt;/li&gt;
&lt;li&gt;Need hand-drawn aesthetics? Kiro skill for that.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The pattern is simple: &lt;strong&gt;describe what you want → get what you need.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What&lt;/th&gt;
&lt;th&gt;How&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Official AWS diagrams&lt;/td&gt;
&lt;td&gt;Kiro IDE + &lt;code&gt;diagrams-mcp&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Production-ready PNGs with correct icons&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Same, from terminal&lt;/td&gt;
&lt;td&gt;Kiro CLI + &lt;code&gt;diagrams-mcp&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Same output, no GUI needed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Best practices check&lt;/td&gt;
&lt;td&gt;&lt;code&gt;aws-documentation-mcp-server&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Diagrams follow AWS Well-Architected&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hand-drawn sketches&lt;/td&gt;
&lt;td&gt;Kiro &lt;code&gt;hand-drawn-diagrams&lt;/code&gt; skill&lt;/td&gt;
&lt;td&gt;Excalidraw-style, animatable diagrams&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Iteration&lt;/td&gt;
&lt;td&gt;Natural language follow-ups&lt;/td&gt;
&lt;td&gt;Seconds per change, not hours&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The SDLC pain point of "make a diagram" just became a one-liner.&lt;/p&gt;

&lt;p&gt;If you're still dragging boxes in 2026 — try this. Your future self will thank you.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Reference:&lt;/strong&gt; &lt;a href="https://aws.amazon.com/blogs/machine-learning/build-aws-architecture-diagrams-using-amazon-q-cli-and-mcp/?trk=b66f5ef1-c498-4eda-ac8b-f013ed0177ba&amp;amp;sc_channel=el" rel="noopener noreferrer"&gt;Build AWS architecture diagrams using Kiro CLI and MCP&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What's the most painful diagram you've ever had to create? Drop it in the comments — I'll try generating it with a single prompt. 👇&lt;/p&gt;

</description>
      <category>aws</category>
      <category>architecture</category>
      <category>mcp</category>
      <category>productivity</category>
    </item>
    <item>
      <title>AI Agents Don't Crash. They Drift. Here's the Framework to See It.</title>
      <dc:creator>Varsha Das</dc:creator>
      <pubDate>Wed, 20 May 2026 18:03:41 +0000</pubDate>
      <link>https://dev.to/aws/ai-agents-dont-crash-they-drift-heres-the-framework-to-see-it-3on7</link>
      <guid>https://dev.to/aws/ai-agents-dont-crash-they-drift-heres-the-framework-to-see-it-3on7</guid>
      <description>&lt;p&gt;&lt;code&gt;The scariest AI agent failures don't trigger alerts. They look like success. Here's a 7-dimension resilience framework for building trust in agentic systems — based on the AWS Architecture Blog's approach to resilient generative AI agents.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;What this post covers:&lt;/strong&gt; Why code getting cheap now creates a very big trust crisis, why the resilience patterns we have built for decades don't work for AI agents, and the 7-dimension framework I use to reason about trust in agentic systems.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frkumcx8g8yb9at5hblmb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frkumcx8g8yb9at5hblmb.png" alt="My talk at Great International Developer Summit with James Ward " width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A few months ago, a developer at the Summit told me a story that I haven’t stopped thinking about.&lt;/p&gt;

&lt;p&gt;Her team had shipped an AI agent built in some 2 weeks, basically — that processed customer support tickets, classified them by urgency, and routed them to the right team. The demo was great. Stakeholders loved it. It went to production.&lt;/p&gt;

&lt;p&gt;Two weeks later, someone on the receiving end asked:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Hey, has something changed with the routing? I'm getting tickets that make no sense for my queue."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;They checked their dashboards. Everything was green.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3a1mb3etex8c3nqxy5zc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3a1mb3etex8c3nqxy5zc.png" alt="green dashboard failures" width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But something &lt;em&gt;was&lt;/em&gt; wrong. The agent had been &lt;strong&gt;confidently&lt;/strong&gt; routing tickets to the wrong teams for days.&lt;/p&gt;

&lt;p&gt;Not all of them, just enough to confuse, but not enough to trigger an alarm.&lt;/p&gt;

&lt;p&gt;That story just got me thinking so much that when I dug into it, &lt;em&gt;there was no way of knowing how long the&lt;/em&gt; &lt;strong&gt;&lt;em&gt;drift&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;had been happening&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Yes, the drift, that itself is the main caveat.&lt;/p&gt;

&lt;p&gt;The system looked healthy. The output was broken. And there was no framework for &lt;em&gt;how&lt;/em&gt; to think or anticipate this kind of failure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;This blog is about that framework.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's dive right in……&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tax on Ideas Just Hit Zero
&lt;/h2&gt;

&lt;p&gt;For most of the history of software, there was and always has been a "significant" tax on ideas. You had an idea, and then you spent days or weeks or months turning it into working code.&lt;/p&gt;

&lt;p&gt;The tax was high enough that most ideas died in a backlog.&lt;/p&gt;

&lt;p&gt;You triaged ruthlessly.&lt;/p&gt;

&lt;p&gt;You picked the three things that mattered most and let everything else pile up in the JIRA boards. (Much to the dismay of the Jira board owners, haha)&lt;/p&gt;

&lt;p&gt;So that tax? It just hit zero.&lt;/p&gt;

&lt;p&gt;AI agents can generate dozens of PRs overnight — building code, features, and entire systems. The gap between having an idea and seeing it built has effectively collapsed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frx7zm5wlit5be3hp3ppx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frx7zm5wlit5be3hp3ppx.png" alt="Author's Image" width="798" height="111"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When code generation becomes nearly free, the bottleneck shifts:&lt;/p&gt;

&lt;p&gt;from implementation to orchestration,&lt;/p&gt;

&lt;p&gt;from writing to judgment,&lt;/p&gt;

&lt;p&gt;from building to operating.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But here's what nobody tells you: when you can &lt;em&gt;build code&lt;/em&gt; at the speed of thought, &lt;em&gt;deploying that code to production&lt;/em&gt; becomes the bottleneck.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A system can be assembled at the speed of thought.&lt;/p&gt;

&lt;p&gt;Trust is earned at a different pace entirely.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  When Systems Fail Without Breaking
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://smarterx.ai/smarterxblog/ai-agent-database-deletion" rel="noopener noreferrer"&gt;Last month, a Cursor agent deleted a company's entire production database&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This agent running Anthropic's Claude Opus 4.6 deleted PocketOS's entire production database — plus all backups — in nine seconds.&lt;/p&gt;

&lt;p&gt;The agent was working on a routine task in a test environment when it hit a credentials problem. Instead of stopping, it found an API token in an unrelated file, a token that carried full account-wide permissions including destructive operations, and issued a single command that wiped everything.&lt;/p&gt;

&lt;p&gt;No confirmation prompt. No warning. No check that it was targeting production instead of test.&lt;/p&gt;

&lt;p&gt;Railway's backup model stored volume-level backups inside the same volume — so when the volume went, the backups went with it. The most recent recoverable backup was three months old.&lt;/p&gt;

&lt;p&gt;When the founder asked the agent to explain itself, it produced what he called a "written confession": &lt;em&gt;"I guessed instead of verifying. I ran a destructive action without being asked. I didn't understand what I was doing before doing it."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Two layers of guardrails — Cursor's published safety rules and the company's internal safety instructions — both told the agent not to do exactly what it did. Both failed at the same time.&lt;/p&gt;

&lt;p&gt;The internet blamed the AI. But the real failure was an over-permissioned token sitting in a file the agent could read, paired with infrastructure that collapsed when the volume did.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;That was a&lt;/em&gt; loud &lt;em&gt;failure. Dramatic. Viral. Obvious.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The scarier ones? They're silent.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvtsfwujrrlygm9q5iudc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvtsfwujrrlygm9q5iudc.png" alt="enterprise AI assistant designed to summarise regulatory updates" width="800" height="297"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Consider an enterprise AI assistant designed to summarise regulatory updates for financial analysts. Every morning, this assistant retrieves documents from internal repositories, synthesizes them using a language model, and distributes summaries across internal channels. Technically, everything works.&lt;/p&gt;

&lt;p&gt;But over time, something slips.&lt;/p&gt;

&lt;p&gt;An updated document repository hasn't been added to the retrieval pipeline.&lt;/p&gt;

&lt;p&gt;The assistant keeps producing summaries that are coherent and internally consistent — but they're increasingly based on obsolete information.&lt;/p&gt;

&lt;p&gt;Nothing crashes. No alerts fire. Every component behaves as designed.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The problem is that the overall result is wrong.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From the outside, the system looks operational. All your monitoring dashboards read "healthy." Latency is fine. Error rates are zero.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Analysts are making decisions based on outdated regulatory information, and nobody knows. Catastrophic disaster for the business.&lt;/p&gt;

&lt;p&gt;When humans wrote all the code, they at least understood what they shipped.&lt;/p&gt;

&lt;p&gt;When agents generate it, the gap between "it works" and "I understand why it works" becomes the attack surface.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I've started calling these "green-dashboard failures." The kind where every metric says you're fine while the system is quietly betraying the people who depend on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the Patterns We Know Don’t Work Here
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxw9qsk4njmnnuo5omwqy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxw9qsk4njmnnuo5omwqy.png" alt="Resilience Patterns" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To understand why this is such a big threat, I need to take you back to how we've &lt;em&gt;always&lt;/em&gt; built resilient systems.&lt;/p&gt;

&lt;p&gt;Because the patterns we know, the ones we've built entire engineering practices around, they kind of break down here.&lt;/p&gt;

&lt;p&gt;Over decades, we built resilience into three layers:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Infrastructure resilience.&lt;/strong&gt; We deploy across multiple availability zones, auto-scale on demand, and load balance traffic — so if hardware fails, the system stays up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data resilience.&lt;/strong&gt; We use read replicas, automated failover, and connection pooling — so if a database goes down, we don't lose data or availability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Application resilience.&lt;/strong&gt; We write circuit breakers, retry logic, and graceful degradation — so if a service fails, the app handles it predictably instead of crashing.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;These patterns assume something fundamental: &lt;strong&gt;failures are &lt;em&gt;binary&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A service is working or it's broken.&lt;/p&gt;

&lt;p&gt;A sensor responds or it doesn't.&lt;/p&gt;

&lt;p&gt;A constraint is met or it triggers a shutdown.&lt;/p&gt;

&lt;p&gt;But AI agents don't crash. They degrade silently. They hallucinate confidently.&lt;/p&gt;

&lt;p&gt;They might &lt;strong&gt;drift&lt;/strong&gt; without a single metric turning red.&lt;/p&gt;

&lt;h2&gt;
  
  
  Autonomous Systems Behave Differently
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5kg4btpspcjhd6f3pkif.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5kg4btpspcjhd6f3pkif.png" alt="Autonomous Systems Behave Differently" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While building and observing agentic systems for the past year, I see three things that make them fundamentally different from the software we've built for decades:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Continuous reasoning loop.&lt;/strong&gt; They reason in loops, not steps. Unlike traditional request-response software, agents observe, think, and act in an ongoing cycle — always changing their own context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Contextual inappropriateness.&lt;/strong&gt; They produce output that is syntactically perfect but semantically wrong for the situation. A hallucinated paragraph looks like a real answer. A wrong tool call looks like a right one — until you trace what happened downstream.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Behavioral drift without errors.&lt;/strong&gt; Small mistakes compound. The system gradually moves away from correct behaviour without any single step triggering an alarm.&lt;/p&gt;

&lt;p&gt;It's not a cliff — it's a slow incline you don't notice until you're in the wrong valley.&lt;/p&gt;

&lt;p&gt;This is why traditional resilience patterns break down.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;So, we need a new framework.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The 7-Dimension Resilience Framework
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0qhg05y98pkq0zguaiuf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0qhg05y98pkq0zguaiuf.png" alt="The 7-Dimension Resilience Framework - AWS blog" width="799" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's how we should think about building trust in agentic systems.&lt;/p&gt;

&lt;p&gt;There are 7 dimensions you need to reason about and for each one, you ask: &lt;em&gt;which failure modes apply here?&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Foundation Models&lt;/strong&gt; — Your LLM choice: self-hosted (you handle failover), &lt;a href="https://aws.amazon.com/sagemaker/?trk=b66f5ef1-c498-4eda-ac8b-f013ed0177ba&amp;amp;sc_channel=el" rel="noopener noreferrer"&gt;managed&lt;/a&gt; or &lt;a href="https://aws.amazon.com/bedrock/?trk=b66f5ef1-c498-4eda-ac8b-f013ed0177ba&amp;amp;sc_channel=el" rel="noopener noreferrer"&gt;serverless&lt;/a&gt;. Each shifts resilience responsibility differently.&lt;/p&gt;

&lt;p&gt;Something very basic like — If your model provider has a bad day, does your entire system go dark?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Agent Orchestration&lt;/strong&gt; — The conductor. How agents coordinate, select tools, and escalate to humans. This is the brain — and if the brain makes a bad decision, the hands execute it perfectly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Infrastructure&lt;/strong&gt; — Where agents run: EC2, ECS, or a managed runtime like Bedrock AgentCore. If a container crashes, this layer handles the restart. The boring stuff that isn't boring when it fails.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Knowledge Base&lt;/strong&gt; — Vector DBs, embeddings, RAG pipelines. If retrieval fails, your agent is answering questions without being able to look anything up. It doesn't know it's blind. It just confabulates.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Agent Tools&lt;/strong&gt; — External dependencies: APIs, MCP servers, memory, prompt caching. What happens when that inventory API goes down? Does your agent wait forever, or does it move on?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Security &amp;amp; Compliance&lt;/strong&gt; — Auth, guardrails, content validation. Prevents your agent from doing things it shouldn't — like leaking customer data or executing destructive actions without human approval.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Observability&lt;/strong&gt; — Metrics, traces, reasoning logs. If you can't see &lt;em&gt;why&lt;/em&gt; your agent made a decision, you can't fix it when it goes wrong.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's the framework. 7 dimensions. Each one a surface where your agent can silently fail.&lt;/p&gt;

&lt;p&gt;But knowing &lt;em&gt;where&lt;/em&gt; things can break is only half the picture. The other half is knowing &lt;em&gt;how&lt;/em&gt; they break — the specific failure modes, what they look like at 3 AM, and how to defend against each one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In Part 2, I break down all 5 silent failure modes&lt;/strong&gt; — with real-world case studies (including an agent that deleted a production database in 9 seconds) and the exact defenses for each.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;This post is based on and extends the resilience framework from the&lt;/em&gt; &lt;a href="https://aws.amazon.com/blogs/architecture/build-resilient-generative-ai-agents/" rel="noopener noreferrer"&gt;&lt;em&gt;AWS Architecture Blog: Build Resilient Generative AI Agents&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/bR1TMpCSu9U"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;📺 &lt;em&gt;More from the series:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=8qTz3EARrBg" rel="noopener noreferrer"&gt;AI Engineering Learning Path for Java &amp;amp; Spring Boot Developers&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=vggDApeFiTg" rel="noopener noreferrer"&gt;Building Production-Ready AI Agents in Java: Tool Calling&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Have you seen your agent "drift" without any metric catching it? How long before someone noticed? Drop it in the comments — I'll respond to every one.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>aws</category>
      <category>architecture</category>
    </item>
    <item>
      <title>🚀 How Developers Can Stop Pretending to Understand AI Buzzwords</title>
      <dc:creator>Varsha Das</dc:creator>
      <pubDate>Thu, 11 Dec 2025 19:02:59 +0000</pubDate>
      <link>https://dev.to/aws/how-developers-can-stop-pretending-to-understand-ai-buzzwords-40cn</link>
      <guid>https://dev.to/aws/how-developers-can-stop-pretending-to-understand-ai-buzzwords-40cn</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; If you can't explain it simply, you don't understand it well enough.
 - Albert&amp;nbsp;Einstein

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You know that feeling when someone starts talking about "agentic AI workflows with RAG pipelines and vector embeddings" and everyone's nodding like they totally get it? Yeah, I was that developer pretending to understand while feeling so lost within.&lt;/p&gt;

&lt;p&gt;A few months ago, I hit my breaking point. Every dev thread, every tech talk—just buzzwords with zero actual clarity. So I stopped faking it and decided to actually learn things from scratch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Plot twist:&lt;/strong&gt; turns out most people are faking it too.&lt;/p&gt;

&lt;h4&gt;
  
  
  The Research Paper Rabbit Hole
&lt;/h4&gt;

&lt;p&gt;My first move? Dive into IBM research papers. Because that's what good developers do, right? Don’t get me wrong — they’re good. Like, really good. I referred to them while writing this because of the kind of thorough, well-researched content that builds solid foundational knowledge. But, they’re dense. My brain started to explode after reading 1 paper. &lt;/p&gt;

&lt;p&gt;Next stop: YouTube. Surely someone had figured out how to explain this without requiring a PhD? And yes, there's brilliant content out there. But here's the problem: you watch one video on transformers, another on embeddings, then someone casually mentions "attention mechanisms" and suddenly you’re like “wait, how does this connect to what I learned yesterday?”&lt;/p&gt;

&lt;p&gt;I am pretty sure many of you would have been there.&lt;/p&gt;

&lt;p&gt;And somewhere in the middle of all this chaos, I just thought: “Can someone PLEASE just give me &lt;strong&gt;one clean map&lt;/strong&gt;? Like, all of it. In one place. That actually makes sense?”&lt;/p&gt;

&lt;p&gt;So… I made one.&lt;/p&gt;

&lt;p&gt;A humble attempt to build one, I would say.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;You'll finally get a plain-talk view of AI terms that often feel too dense or too "expert-only."&lt;/li&gt;
&lt;li&gt;You'll learn how the basics link together — models, prompts, safety, and the stuff that holds the whole AI stack in place.&lt;/li&gt;
&lt;li&gt;You'll understand why prompts matter so much, why they sometimes go wrong, and what people do to keep them on track.&lt;/li&gt;
&lt;li&gt;You'll get a sense of how machines learn, how they pull info, and how this leads to better answers.&lt;/li&gt;
&lt;li&gt;You'll see the flow from simple chat systems to tools, tasks, and full-on AI helpers that can act on your behalf.&lt;/li&gt;
&lt;li&gt;You'll be able to read AI threads, posts, papers or videos without feeling lost or drained.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So yeah… sit with a paper and pen, take notes if you want, maybe read this on your laptop, and slowly absorb. No rush.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fthf0266h9nuyasgjtvgu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fthf0266h9nuyasgjtvgu.png" alt=" " width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Before We Start
&lt;/h2&gt;

&lt;p&gt;If you're completely new, just make sure you've heard of these concepts:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvinqnexx61oejxzj8sdo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvinqnexx61oejxzj8sdo.png" alt="AI Fundamentals Overview" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Core Concepts
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Neural Networks&lt;/strong&gt; — The brain-inspired structure that powers modern AI, consisting of interconnected nodes that process information&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Deep Learning&lt;/strong&gt; — Using many layers of neural networks to learn complex patterns from large amounts of data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Natural Language Processing (NLP)&lt;/strong&gt; — Teaching computers to understand, interpret, and generate human language&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Machine Learning&lt;/strong&gt; — The broader field where computers learn patterns from data without being explicitly programmed for every scenario&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Training Data&lt;/strong&gt; — The collection of examples used to teach AI models patterns and relationships&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Model&lt;/strong&gt; — The trained AI system that has learned patterns and can make predictions or generate outputs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Algorithm&lt;/strong&gt; — The mathematical rules and procedures that guide how a model learns from data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pattern Recognition&lt;/strong&gt; — The ability of AI systems to identify recurring structures, relationships, and trends in data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prediction&lt;/strong&gt; — How trained models generate outputs by using learned patterns to make informed guesses about what comes next&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Inference&lt;/strong&gt; — The process of using a trained model to generate outputs or make decisions on new, unseen data&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Four Phase Journey
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxskgxbls2ov6qskd6nrx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxskgxbls2ov6qskd6nrx.png" alt=" " width="800" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Four-Phase Learning Framework
&lt;/h2&gt;

&lt;p&gt;Instead of drowning in terminology, here's how AI concepts actually connect:&lt;/p&gt;




&lt;h3&gt;
  
  
  🎯 Phase 1: The Foundation — How AI Learns
&lt;/h3&gt;

&lt;p&gt;First, the LLM must learn through training. This happens in three fundamental ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Supervised learning&lt;/strong&gt; — labeled examples&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-supervised learning&lt;/strong&gt; — predicting missing pieces in unlabeled data (how modern LLMs are trained)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reinforcement learning&lt;/strong&gt; — trial-and-error with feedback&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  The Training Pipeline
&lt;/h4&gt;

&lt;p&gt;During this training phase, the model processes massive amounts of text by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Breaking it into &lt;strong&gt;tokens&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Converting tokens into &lt;strong&gt;embeddings&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Using &lt;strong&gt;attention mechanisms&lt;/strong&gt; to understand which parts matter most&lt;/li&gt;
&lt;li&gt;Building patterns across &lt;strong&gt;transformer layers&lt;/strong&gt; that capture complex relationships&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tokenization breaks text into processable units, embeddings convert those tokens into numerical vectors in high-dimensional space, and self-attention mechanisms within transformer architectures determine which tokens matter most for context.&lt;/p&gt;

&lt;p&gt;To make models production-ready, we use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Distillation&lt;/strong&gt; — shrinking big models into smaller ones&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quantization&lt;/strong&gt; — reducing numerical precision from 32-bit to 8-bit or 4-bit to run faster on resource-constrained devices&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🔍 Phase 2: Knowledge Retrieval — Bridging Training and Real-Time Access
&lt;/h3&gt;

&lt;p&gt;Once trained, models need efficient ways to access information during inference. This is where &lt;strong&gt;semantic search&lt;/strong&gt; and &lt;strong&gt;vector databases&lt;/strong&gt; become critical.&lt;/p&gt;

&lt;h4&gt;
  
  
  How Semantic Search Works
&lt;/h4&gt;

&lt;p&gt;Unlike traditional keyword matching, semantic search understands meaning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Searching "smartphone" also retrieves "cellphone" and "mobile devices"&lt;/li&gt;
&lt;li&gt;These concepts live close together in vector space&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Vector Databases
&lt;/h4&gt;

&lt;p&gt;Vector databases store data as high-dimensional numerical arrays, enabling lightning-fast similarity searches essential for real-time AI applications.&lt;/p&gt;

&lt;p&gt;This retrieval capability forms the bridge between what models learned during training and what they can access when answering your questions—the foundation for everything that follows.&lt;/p&gt;




&lt;h3&gt;
  
  
  💬 Phase 3: User Interaction — Prompts, Safety, and Inference
&lt;/h3&gt;

&lt;p&gt;Prompts are your interface for communicating with AI. When you submit a prompt, the model:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Tokenizes&lt;/strong&gt; it&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Converts&lt;/strong&gt; tokens to embeddings&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generates&lt;/strong&gt; responses one token at a time through inference&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Calculates&lt;/strong&gt; probabilities for potential next tokens&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Outputs&lt;/strong&gt; the most likely one&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Prompt Engineering Techniques
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero-shot&lt;/strong&gt; — no examples provided&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Few-shot&lt;/strong&gt; — providing sample outputs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chain-of-thought&lt;/strong&gt; — step-by-step reasoning&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Safety Considerations
&lt;/h4&gt;

&lt;p&gt;However, prompts introduce risks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hallucinations&lt;/strong&gt; — fabricated responses not grounded in training data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt injection&lt;/strong&gt; — malicious instructions disguised as user input&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why &lt;strong&gt;guardrails&lt;/strong&gt;—safeguards operating across data, models, applications, and workflows—are essential to keep AI systems safe, responsible, and within defined boundaries in production environments.&lt;/p&gt;




&lt;h3&gt;
  
  
  🤖 Phase 4: Advanced Applications — RAG, MCP, and Autonomous Agents
&lt;/h3&gt;

&lt;p&gt;Now everything converges into autonomous systems.&lt;/p&gt;

&lt;h4&gt;
  
  
  RAG (Retrieval-Augmented Generation)
&lt;/h4&gt;

&lt;p&gt;RAG solves the knowledge cutoff problem by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Converting your question into vector embeddings&lt;/li&gt;
&lt;li&gt;Performing semantic search across vector databases&lt;/li&gt;
&lt;li&gt;Feeding retrieved information to the LLM as additional context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This enables AI to work with proprietary data or recent information without expensive retraining.&lt;/p&gt;

&lt;h4&gt;
  
  
  MCP (Model Context Protocol)
&lt;/h4&gt;

&lt;p&gt;MCP provides the universal language for AI-tool communication, standardizing how agents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Discover tools&lt;/li&gt;
&lt;li&gt;Request data access&lt;/li&gt;
&lt;li&gt;Execute actions safely&lt;/li&gt;
&lt;li&gt;Receive results&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of it like REST APIs but designed specifically for AI systems.&lt;/p&gt;

&lt;h4&gt;
  
  
  AI Agents &amp;amp; Multi-Agent Systems
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;AI Agents&lt;/strong&gt; are autonomous systems that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Break complex goals into subtasks (planning)&lt;/li&gt;
&lt;li&gt;Use external tools to gather missing information (reasoning via RAG and MCP)&lt;/li&gt;
&lt;li&gt;Make decisions and take actions independently&lt;/li&gt;
&lt;li&gt;Learn from past interactions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Agentic AI&lt;/strong&gt; is the umbrella term for this paradigm shift—AI that exhibits agency, acting independently rather than just answering questions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-agent systems&lt;/strong&gt; represent the cutting edge: multiple specialized agents working together, each handling specific roles like input validation, business logic, data operations, and system monitoring.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔄 The Complete Flow
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;Learn (Foundation) → Store (Vector Databases) → Retrieve (Semantic Search) → Apply (RAG + Prompts) → Act (MCP + Agents)&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This isn't just terminology—it's the architectural pattern production AI systems are built on today, where models evolve from statistical predictors into autonomous problem-solvers that reason, plan, and execute complex workflows.&lt;/p&gt;
&lt;h3&gt;
  
  
  How Each Phase Connects
&lt;/h3&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Phase 1&lt;/strong&gt; establishes the learning foundation (tokenization → embeddings → attention → transformers, plus the three learning types and optimization techniques)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phase 2&lt;/strong&gt; bridges training to real-time access (semantic search and vector databases as the retrieval layer)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phase 3&lt;/strong&gt; covers the interaction layer (prompts, inference, safety concerns, and guardrails)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phase 4&lt;/strong&gt; brings it all together (RAG, MCP, and agents as the autonomous execution layer)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each phase flows naturally into the next, creating a comprehensive understanding of how modern AI systems work from training to autonomous execution.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stop Pretending. Start Understanding.
&lt;/h3&gt;

&lt;p&gt;No more nodding along in meetings. No more feeling lost in AI discussions. Get the complete picture that connects every dot from tokens to autonomous agents.&lt;/p&gt;

&lt;p&gt;This overview gives you the mental map, but each phase has layers of complexity that make the difference between "getting it" and actually understanding it.&lt;/p&gt;

&lt;p&gt;I've written a 22-min comprehensive guide that breaks down every concept in more details and shows how they interconnect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://medium.com/gitconnected/ai-concepts-for-developers-who-dont-have-time-for-fluff-6ca04df89238?sk=c18dcb4ccb480eebd957436b5a5ab822" rel="noopener noreferrer"&gt;Read the full guide on Medium →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Stop pretending you understand AI buzzwords. Get the complete picture NOW!!&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Found this helpful? Follow me for more developer-friendly AI content that actually makes sense.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
