<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Dan Vega</title>
    <description>Personal site of Dan Vega</description>
    <link>https://www.danvega.dev</link>
    <atom:link href="https://www.danvega.dev/rss.xml" rel="self" type="application/rss+xml"/>
    <language>en-us</language>
    <lastBuildDate>Wed, 30 Sep 2026 00:48:23 GMT</lastBuildDate>
    <managingEditor>danvega@gmail.com (Dan Vega)</managingEditor>
    <webMaster>danvega@gmail.com (Dan Vega)</webMaster>
    <item>
      <title>Spring Boot 3 to 4 Migration: Fixing Every Break</title>
      <description>A hands-on Spring Boot 3 to 4 migration: upgrade a real app, then fix Jackson 3, modular starters, the missing H2 console, test imports, and JSpecify.</description>
      <link>https://www.danvega.dev/blog/spring-boot-3-to-4-migration</link>
      <guid>https://www.danvega.dev/blog/spring-boot-3-to-4-migration</guid>
      <pubDate>Thu, 24 Sep 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Java</category>
      <category>Jackson</category>
    </item>
    <item>
      <title>Spec-Driven Development for Solo Developers: My Plan</title>
      <description>Spec-driven development without the team process. The lightweight plan I use as a solo developer, from one PRODUCT.md to a retro, on a Spring Boot Stripe store.</description>
      <link>https://www.danvega.dev/blog/spec-driven-development-solo-developers</link>
      <guid>https://www.danvega.dev/blog/spec-driven-development-solo-developers</guid>
      <pubDate>Wed, 23 Sep 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>AI</category>
      <category>Java</category>
    </item>
    <item>
      <title>Spring AI TypeSafe: Build a Model Router From Scratch</title>
      <description>Learn Spring AI TypeSafe by building a model router from an empty app. One Choice question to Jev picks the cheapest OpenAI model tier for every prompt.</description>
      <link>https://www.danvega.dev/blog/spring-ai-typesafe-model-router</link>
      <guid>https://www.danvega.dev/blog/spring-ai-typesafe-model-router</guid>
      <pubDate>Tue, 22 Sep 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
      <category>Spring Boot</category>
      <category>Java</category>
    </item>
    <item>
      <title>Jev Spring Boot Starter: One Dependency, Done</title>
      <description>Use the Jev Spring Boot Starter to call TypeSafe&apos;s Jev API with one dependency and an injected JevClient, then see how Spring Boot 4 auto-configuration works.</description>
      <link>https://www.danvega.dev/blog/jev-spring-boot-starter</link>
      <guid>https://www.danvega.dev/blog/jev-spring-boot-starter</guid>
      <pubDate>Mon, 21 Sep 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Java</category>
      <category>Jev</category>
    </item>
    <item>
      <title>Claude Code Skills for Podcast Automation</title>
      <description>Use Claude Code skills for podcast automation: edit audio, create show notes, prepare a Transistor upload, and open a spring.io PR after the episode is live.</description>
      <link>https://www.danvega.dev/blog/claude-code-skills-not-just-for-coding</link>
      <guid>https://www.danvega.dev/blog/claude-code-skills-not-just-for-coding</guid>
      <pubDate>Sun, 20 Sep 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>AI</category>
      <category>Software Development</category>
    </item>
    <item>
      <title>Java Structured Concurrency in JDK 27: A Practical Example</title>
      <description>Learn Java structured concurrency in JDK 27 with a runnable example comparing sequential calls, virtual threads, and StructuredTaskScope failure handling.</description>
      <link>https://www.danvega.dev/blog/java-structured-concurrency-jdk-27</link>
      <guid>https://www.danvega.dev/blog/java-structured-concurrency-jdk-27</guid>
      <pubDate>Sat, 19 Sep 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Java</category>
    </item>
    <item>
      <title>Getting Started with Jev in Java and Spring Boot</title>
      <description>Call TypeSafe Jev from Java and Spring Boot with RestClient. Build a complete support-ticket example with typed questions, Java records, and a mocked API test.</description>
      <link>https://www.danvega.dev/blog/getting-started-jev-java-spring-boot</link>
      <guid>https://www.danvega.dev/blog/getting-started-jev-java-spring-boot</guid>
      <pubDate>Fri, 18 Sep 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Java</category>
      <category>AI</category>
    </item>
    <item>
      <title>I Built My Own Content OS With Claude Code</title>
      <description>How I built Content OS with Claude Code and Spring Boot to manage videos, blog posts, and newsletters, and what changes when you build software for one user.</description>
      <link>https://www.danvega.dev/blog/content-os-claude-code-spring-boot</link>
      <guid>https://www.danvega.dev/blog/content-os-claude-code-spring-boot</guid>
      <pubDate>Thu, 17 Sep 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring AI</category>
      <category>Java</category>
      <category>AI</category>
    </item>
    <item>
      <title>ColdFusion Inside Spring Boot (One Property)</title>
      <description>Render real ColdFusion .cfm templates inside a Spring Boot app using the BoxLang Spring Boot starter and one undocumented boxlang.suffix property.</description>
      <link>https://www.danvega.dev/blog/coldfusion-inside-spring-boot-boxlang-starter</link>
      <guid>https://www.danvega.dev/blog/coldfusion-inside-spring-boot-boxlang-starter</guid>
      <pubDate>Tue, 15 Sep 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Java</category>
      <category>BoxLang</category>
    </item>
    <item>
      <title>The 5 Steps of AI Adoption: Which One Are You On?</title>
      <description>Learn the 5 steps of AI adoption mapped out by Boris Cherny, creator of Claude Code, and how to move from copy-pasting code to supervised autonomy.</description>
      <link>https://www.danvega.dev/blog/five-steps-of-ai-adoption</link>
      <guid>https://www.danvega.dev/blog/five-steps-of-ai-adoption</guid>
      <pubDate>Wed, 05 Aug 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>AI</category>
      <category>Spring Boot</category>
      <category>Java</category>
    </item>
    <item>
      <title>Can You Trust AI-Generated Code?</title>
      <description>Can you trust AI-generated code? It depends on what you already know. A look at why AI code feels great in unfamiliar stacks and how to verify it.</description>
      <link>https://www.danvega.dev/blog/can-you-trust-ai-generated-code</link>
      <guid>https://www.danvega.dev/blog/can-you-trust-ai-generated-code</guid>
      <pubDate>Fri, 31 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Java</category>
      <category>AI</category>
    </item>
    <item>
      <title>Upgrading Dependencies with AI: A Practical Guide</title>
      <description>Learn a practical workflow for upgrading dependencies with AI, using scope, scale, and stakes to decide when to reach for an LLM to patch your projects.</description>
      <link>https://www.danvega.dev/blog/upgrading-dependencies-with-ai</link>
      <guid>https://www.danvega.dev/blog/upgrading-dependencies-with-ai</guid>
      <pubDate>Thu, 30 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>AI</category>
      <category>Web Development</category>
      <category>Nuxt</category>
    </item>
    <item>
      <title>Spring AI: Build Real Guardrails that hold</title>
      <description>Learn how to build Spring AI guardrails with SafeGuardAdvisor, custom PII masking, and output rails to stop prompt injection and data leaks.</description>
      <link>https://www.danvega.dev/blog/spring-ai-guardrails-safeguard-advisor</link>
      <guid>https://www.danvega.dev/blog/spring-ai-guardrails-safeguard-advisor</guid>
      <pubDate>Tue, 28 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
      <category>Spring Boot</category>
      <category>Java</category>
    </item>
    <item>
      <title>Docker Compose for Java Developers, Explained</title>
      <description>Learn what that docker-compose.yml in every Java repo actually does. Spin up Postgres with one command and run any project you clone with zero setup.</description>
      <link>https://www.danvega.dev/blog/docker-compose-for-java-developers</link>
      <guid>https://www.danvega.dev/blog/docker-compose-for-java-developers</guid>
      <pubDate>Mon, 27 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Java</category>
      <category>Docker</category>
      <category>Postgres</category>
    </item>
    <item>
      <title>Spring AI 2.0 Tool Calling: Build a Live Claude-Style UI</title>
      <description>Build a Claude-style &apos;Calling tool...&apos; UI with Spring AI 2.0&apos;s ToolCallingAdvisor. Stream live tool call events over SSE from the ChatClient advisor chain.</description>
      <link>https://www.danvega.dev/blog/spring-ai-tool-calling-advisor-2-0</link>
      <guid>https://www.danvega.dev/blog/spring-ai-tool-calling-advisor-2-0</guid>
      <pubDate>Fri, 24 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
      <category>Spring Boot</category>
      <category>Java</category>
    </item>
    <item>
      <title>Embabel 1.0 Is Here: AI Agent Framework for Java Goes GA</title>
      <description>Embabel 1.0 is GA. What Rod Johnson&apos;s AI agent framework for the JVM means for Java developers, what changed on the road to 1.0, and how to get started.</description>
      <link>https://www.danvega.dev/blog/embabel-1-0-ga</link>
      <guid>https://www.danvega.dev/blog/embabel-1-0-ga</guid>
      <pubDate>Mon, 20 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>java</category>
      <category>spring-ai</category>
      <category>embabel</category>
      <category>ai-agents</category>
    </item>
    <item>
      <title>My Content Creation Workflow: 10 Stages From Idea to Published</title>
      <description>My complete 10-stage content creation workflow for YouTube: ideation, packaging, AI rough cuts, repurposing videos into blog posts, Shorts, and a newsletter.</description>
      <link>https://www.danvega.dev/blog/content-creation-workflow</link>
      <guid>https://www.danvega.dev/blog/content-creation-workflow</guid>
      <pubDate>Sat, 18 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>YouTube</category>
      <category>Blogging</category>
      <category>AI</category>
    </item>
    <item>
      <title>Self-Correcting Structured Output in Spring AI 2.0</title>
      <description>Learn how Spring AI 2.0 validates LLM JSON against your schema and automatically retries failures with self-correcting structured output. A beginner guide.</description>
      <link>https://www.danvega.dev/blog/self-correcting-structured-output</link>
      <guid>https://www.danvega.dev/blog/self-correcting-structured-output</guid>
      <pubDate>Fri, 17 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
      <category>Spring Boot</category>
      <category>Java</category>
    </item>
    <item>
      <title>Can You Use Java for AI? Why Java Is Better Positioned Than You Think</title>
      <description>Can you use Java for AI? Yes. For building real AI applications it might be the better choice. Why the JVM, Spring AI, and your existing team are enough.</description>
      <link>https://www.danvega.dev/blog/can-you-use-java-for-ai</link>
      <guid>https://www.danvega.dev/blog/can-you-use-java-for-ai</guid>
      <pubDate>Wed, 15 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Java</category>
      <category>AI</category>
      <category>Spring AI</category>
    </item>
    <item>
      <title>Spring Boot End of Life: Every 3.x Branch Is Now Unsupported</title>
      <description>Spring Boot 3.5 reached end of life in June 2026 and every 3.x branch is now unsupported. What that means, and how to plan your Spring Boot 4 upgrade.</description>
      <link>https://www.danvega.dev/blog/spring-boot-end-of-life</link>
      <guid>https://www.danvega.dev/blog/spring-boot-end-of-life</guid>
      <pubDate>Tue, 14 Jul 2026 13:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Java</category>
      <category>Spring Boot 4</category>
      <category>AI</category>
    </item>
    <item>
      <title>How to Kill a Process Running on a Port (Windows, macOS &amp; Linux)</title>
      <description>Port 8080 already in use? Learn how to find and kill the process running on a port on Windows, macOS, and Linux—with copy-paste commands for each.</description>
      <link>https://www.danvega.dev/blog/kill-process-on-port</link>
      <guid>https://www.danvega.dev/blog/kill-process-on-port</guid>
      <pubDate>Tue, 14 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Java</category>
      <category>Spring Boot</category>
    </item>
    <item>
      <title>Spring AI Tool Search: Stop Wasting Tokens on Tools You Don&apos;t Need</title>
      <description>Spring AI 2.0&apos;s tool search brings dynamic tool discovery to Spring Boot—load tools on demand instead of into every request to cut token usage and cost.</description>
      <link>https://www.danvega.dev/blog/spring-ai-tool-search</link>
      <guid>https://www.danvega.dev/blog/spring-ai-tool-search</guid>
      <pubDate>Thu, 09 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
      <category>Spring Boot</category>
    </item>
    <item>
      <title>Building Custom Spring AI Advisors for Tool Logging and Token Tracking</title>
      <description>Learn to build custom Spring AI advisors with the BaseAdvisor interface to log available tools, track tool invocations, and count token usage on every LLM call.</description>
      <link>https://www.danvega.dev/blog/spring-ai-custom-advisors-tool-logging-token-counter</link>
      <guid>https://www.danvega.dev/blog/spring-ai-custom-advisors-tool-logging-token-counter</guid>
      <pubDate>Wed, 08 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
      <category>Spring Boot</category>
      <category>Java</category>
    </item>
    <item>
      <title>UI.sh: Agent Skills That Actually Make AI-Generated UIs Look Good</title>
      <description>UI.sh is a collection of agent skills from the Tailwind CSS and Refactoring UI team that give Claude Code and Codex the polish of a senior UI designer.</description>
      <link>https://www.danvega.dev/blog/ui-dot-sh-agent-skills-for-building-beautiful-uis</link>
      <guid>https://www.danvega.dev/blog/ui-dot-sh-agent-skills-for-building-beautiful-uis</guid>
      <pubDate>Tue, 07 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>AI</category>
      <category>Tailwind CSS</category>
    </item>
    <item>
      <title>ChatClient vs ChatModel: Which Spring AI API Should You Actually Use?</title>
      <description>Spring AI gives you two ways to call an LLM. Learn the difference between ChatClient and ChatModel, when to use each, and see both in action with code examples.</description>
      <link>https://www.danvega.dev/blog/chatclient-vs-chatmodel-spring-ai</link>
      <guid>https://www.danvega.dev/blog/chatclient-vs-chatmodel-spring-ai</guid>
      <pubDate>Thu, 02 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
      <category>Spring Boot</category>
    </item>
    <item>
      <title>X (Twitter) MCP Servers with Spring AI: Search Posts and Query Docs Programmatically</title>
      <description>X released MCP servers for its API and docs. Build a Spring Boot MCP client with Spring AI 2.0 to search X posts and query the X API docs programmatically.</description>
      <link>https://www.danvega.dev/blog/x-twitter-mcp-servers-spring-ai</link>
      <guid>https://www.danvega.dev/blog/x-twitter-mcp-servers-spring-ai</guid>
      <pubDate>Wed, 01 Jul 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
      <category>MCP</category>
      <category>Spring Boot</category>
    </item>
    <item>
      <title>Type Safe Property Paths in Spring Boot 4.1</title>
      <description>Spring Boot 4.1 adds type-safe property paths to Spring Data, replacing stringly typed references in sorting, criteria queries, and composite paths.</description>
      <link>https://www.danvega.dev/blog/type-safe-property-paths-spring-boot-4-1</link>
      <guid>https://www.danvega.dev/blog/type-safe-property-paths-spring-boot-4-1</guid>
      <pubDate>Tue, 30 Jun 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Data</category>
    </item>
    <item>
      <title>The New @RedisListener Annotation in Spring Boot 4.1</title>
      <description>Spring Boot 4.1 adds @RedisListener, one annotation that brings Redis Pub/Sub in line with @KafkaListener and @RabbitListener. No container wiring needed.</description>
      <link>https://www.danvega.dev/blog/redis-listener-spring-boot-4-1</link>
      <guid>https://www.danvega.dev/blog/redis-listener-spring-boot-4-1</guid>
      <pubDate>Mon, 29 Jun 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Redis</category>
    </item>
    <item>
      <title>SSRF Protection in Spring Boot 4.1 with InetAddressFilter</title>
      <description>Learn how Spring Boot 4.1&apos;s new InetAddressFilter protects your applications against Server-Side Request Forgery (SSRF) attacks with a single bean definition.</description>
      <link>https://www.danvega.dev/blog/spring-boot-ssrf-protection-inet-address-filter</link>
      <guid>https://www.danvega.dev/blog/spring-boot-ssrf-protection-inet-address-filter</guid>
      <pubDate>Fri, 26 Jun 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Java</category>
    </item>
    <item>
      <title>Lazy JDBC Connections in Spring Boot 4.1: One Property, Massive Performance Win</title>
      <description>Spring Boot 4.1 adds lazy JDBC connection fetching via spring.datasource.connection-fetch. See how it cuts connection hold time from 2 seconds to 15ms.</description>
      <link>https://www.danvega.dev/blog/lazy-jdbc-connections-spring-boot-4-1</link>
      <guid>https://www.danvega.dev/blog/lazy-jdbc-connections-spring-boot-4-1</guid>
      <pubDate>Thu, 25 Jun 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Data</category>
    </item>
    <item>
      <title>Getting Started with Spring gRPC in Spring Boot 4.1</title>
      <description>Build a gRPC server and client in Spring Boot 4.1 with Spring gRPC — using @GrpcService, protobuf, and the new starters from start.spring.io.</description>
      <link>https://www.danvega.dev/blog/spring-grpc-spring-boot-4-1</link>
      <guid>https://www.danvega.dev/blog/spring-grpc-spring-boot-4-1</guid>
      <pubDate>Wed, 24 Jun 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>

    </item>
    <item>
      <title>Spring Modulith Externalized Events: Publishing Events to Kafka</title>
      <description>Learn how to externalize Spring Modulith application events to Apache Kafka so other systems can react to changes happening inside your modular monolith.</description>
      <link>https://www.danvega.dev/blog/spring-modulith-externalized-events</link>
      <guid>https://www.danvega.dev/blog/spring-modulith-externalized-events</guid>
      <pubDate>Wed, 20 May 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Modulith</category>
    </item>
    <item>
      <title>Spring Boot + Kafka in 10 Minutes: Sending Your First Message</title>
      <description>Produce and consume your first Apache Kafka message with Spring Boot. Covers Docker Compose, KafkaTemplate, @KafkaListener, and Embedded Kafka for tests.</description>
      <link>https://www.danvega.dev/blog/spring-boot-kafka-quick-start</link>
      <guid>https://www.danvega.dev/blog/spring-boot-kafka-quick-start</guid>
      <pubDate>Mon, 18 May 2026 08:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Apache Kafka</category>
      <category>Spring for Apache Kafka</category>
    </item>
    <item>
      <title>Spring Modulith Durable Events: Reliable Event Processing Without a Message Broker</title>
      <description>Learn how Spring Modulith&apos;s event publication registry persists and replays failed events across restarts, giving you a transactional outbox with no message broker.</description>
      <link>https://www.danvega.dev/blog/spring-modulith-durable-events</link>
      <guid>https://www.danvega.dev/blog/spring-modulith-durable-events</guid>
      <pubDate>Thu, 14 May 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Modulith</category>
    </item>
    <item>
      <title>Introduction to Spring Modulith: Building Modular Monoliths with Spring Boot</title>
      <description>Learn how Spring Modulith helps you build a modular monolith in Spring Boot with enforced module boundaries, application events, and verified architecture.</description>
      <link>https://www.danvega.dev/blog/introduction-to-spring-modulith</link>
      <guid>https://www.danvega.dev/blog/introduction-to-spring-modulith</guid>
      <pubDate>Thu, 30 Apr 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Modulith</category>
      <category>Java</category>
      <category>Modular Monolith</category>
    </item>
    <item>
      <title>Embabel MCP Servers and Tools for Agentic Flows on the JVM</title>
      <description>Add tools and MCP servers to your Embabel agents in Java. Build a blog writing agent that researches topics, calculates reading time, and generates front matter.</description>
      <link>https://www.danvega.dev/blog/embabel-mcp-servers-and-tools</link>
      <guid>https://www.danvega.dev/blog/embabel-mcp-servers-and-tools</guid>
      <pubDate>Fri, 10 Apr 2026 08:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
      <category>Embabel</category>
      <category>Java</category>
    </item>
    <item>
      <title>Embabel First Look: Building Agentic Flows on the JVM</title>
      <description>A first look at Embabel, Rod Johnson&apos;s framework for building agentic AI flows on the JVM. Build a blog writing agent using goal-oriented action planning (GOAP).</description>
      <link>https://www.danvega.dev/blog/embabel-first-look</link>
      <guid>https://www.danvega.dev/blog/embabel-first-look</guid>
      <pubDate>Thu, 02 Apr 2026 08:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
      <category>Java</category>
    </item>
    <item>
      <title>GraphQL for Java Developers with Spring Boot</title>
      <description>Build GraphQL APIs in Java with Spring Boot 4 and Spring for GraphQL. A free course covering schema-first design, batch loading, unions, and AOT repositories.</description>
      <link>https://www.danvega.dev/blog/getting-started-with-graphql-for-java-developers</link>
      <guid>https://www.danvega.dev/blog/getting-started-with-graphql-for-java-developers</guid>
      <pubDate>Wed, 01 Apr 2026 08:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Java</category>
      <category>GraphQL</category>
    </item>
    <item>
      <title>Spring, Build Me a Coding Agent</title>
      <description>Build an autonomous coding agent in Spring AI with the Spring AI Agent Utils library. This tutorial adds file system tools, shell commands, and agent skills.</description>
      <link>https://www.danvega.dev/blog/spring-building-me-a-coding-agent</link>
      <guid>https://www.danvega.dev/blog/spring-building-me-a-coding-agent</guid>
      <pubDate>Tue, 31 Mar 2026 08:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
      <category>Spring Boot</category>
      <category>Java</category>
    </item>
    <item>
      <title>Spring AI Deep Research Agent</title>
      <description>AI Agent Search</description>
      <link>https://www.danvega.dev/blog/spring-ai-deep-research-agent</link>
      <guid>https://www.danvega.dev/blog/spring-ai-deep-research-agent</guid>
      <pubDate>Fri, 27 Mar 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>AI</category>
    </item>
    <item>
      <title>Getting Started with Error Handling in the RestClient</title>
      <description>Learn best practices for error handling with Spring&apos;s RestClient, including global exception handlers, custom exceptions, Problem Detail responses, and built-in retry with resilience methods in Spring Framework 7.</description>
      <link>https://www.danvega.dev/blog/rest-client-error-handling</link>
      <guid>https://www.danvega.dev/blog/rest-client-error-handling</guid>
      <pubDate>Thu, 26 Mar 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Framework</category>
      <category>REST Client</category>
      <category>Java</category>
    </item>
    <item>
      <title>Giving Your Spring AI Agents a Real Browser with the Browserbase Spring Boot Starter</title>
      <description>Most AI agents can search the web. But what happens when they need to actually use it? I built a Spring Boot Starter for Browserbase that gives your agents a real, headless browser in three lines of configuration, plus a deep research agent to show it off.</description>
      <link>https://www.danvega.dev/blog/browserbase-spring-boot-starter</link>
      <guid>https://www.danvega.dev/blog/browserbase-spring-boot-starter</guid>
      <pubDate>Wed, 25 Mar 2026 08:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring AI</category>
    </item>
    <item>
      <title>JEP 500: Prepare to Make Final Mean Final in JDK 26</title>
      <description>JDK 26 introduces JEP 500, which warns developers when final fields are mutated through reflection. Here&apos;s what this means for your Java code and how to prepare for the future.</description>
      <link>https://www.danvega.dev/blog/jdk-26-final-means-final</link>
      <guid>https://www.danvega.dev/blog/jdk-26-final-means-final</guid>
      <pubDate>Fri, 20 Mar 2026 10:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Java</category>
    </item>
    <item>
      <title>Building a Spring Initializr Terminal UI with Java</title>
      <description>How I built a terminal user interface for the Spring Initializr using Tambu UI, a new Java TUI framework, and GraalVM native images to streamline my development workflow.</description>
      <link>https://www.danvega.dev/blog/spring-initializr-tui</link>
      <guid>https://www.danvega.dev/blog/spring-initializr-tui</guid>
      <pubDate>Sat, 14 Mar 2026 10:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Java</category>
      <category>Spring Boot</category>
    </item>
    <item>
      <title>Spring AI Prompt Caching: Stop Wasting Money on Repeated Tokens</title>
      <description>Spring AI prompt caching cuts your Anthropic Claude API costs. Use AnthropicCacheStrategy to cache system prompts and tools that don&apos;t change between requests.</description>
      <link>https://www.danvega.dev/blog/spring-ai-prompt-caching</link>
      <guid>https://www.danvega.dev/blog/spring-ai-prompt-caching</guid>
      <pubDate>Sun, 08 Feb 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring AI</category>
    </item>
    <item>
      <title>I Tried OpenAI&apos;s New Codex Agent. Here are my First Impressions (It&apos;s Really Good)</title>
      <description>OpenAI released Codex, a new GUI for their coding agent. I put it to the test by building a vending machine CLI application in Java 25 with Maven, JUnit 6, and JSpecify null safety annotations.</description>
      <link>https://www.danvega.dev/blog/openai-codex-first-look</link>
      <guid>https://www.danvega.dev/blog/openai-codex-first-look</guid>
      <pubDate>Thu, 05 Feb 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Java</category>
      <category>AI</category>
    </item>
    <item>
      <title>The Ralph Loop: Automate AI Coding Tasks in Java</title>
      <description>The Ralph Loop is a bash script that runs your AI coding agent with a fresh context every iteration. Here&apos;s how it works and how I used it to build a Java CLI.</description>
      <link>https://www.danvega.dev/blog/ralph-loop</link>
      <guid>https://www.danvega.dev/blog/ralph-loop</guid>
      <pubDate>Thu, 05 Feb 2026 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>AI</category>
      <category>Java</category>
    </item>
    <item>
      <title>OpenTelemetry with Spring Boot 4: The New Starter</title>
      <description>Learn how to use the new spring-boot-starter-opentelemetry in Spring Boot 4 to add observability with traces, metrics, and logs—no Actuator required.</description>
      <link>https://www.danvega.dev/blog/opentelemetry-spring-boot</link>
      <guid>https://www.danvega.dev/blog/opentelemetry-spring-boot</guid>
      <pubDate>Tue, 23 Dec 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Observability</category>
    </item>
    <item>
      <title>Building a Spring Boot 4 REST API the Fast Way</title>
      <description>Learn how to build a REST API with Spring Boot 4 in minutes. This tutorial shows you how to create CRUD endpoints using Java records and the @RestController annotation.</description>
      <link>https://www.danvega.dev/blog/spring-boot-4-rest-api</link>
      <guid>https://www.danvega.dev/blog/spring-boot-4-rest-api</guid>
      <pubDate>Thu, 18 Dec 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Java</category>
      <category>REST API</category>
    </item>
    <item>
      <title>Loading Resources in Spring Boot</title>
      <description>Learn how to load resources in Spring Boot using the Resource interface. This tutorial covers three approaches for loading files from the classpath, filesystem, and URLs.</description>
      <link>https://www.danvega.dev/blog/loading-spring-resources</link>
      <guid>https://www.danvega.dev/blog/loading-spring-resources</guid>
      <pubDate>Wed, 17 Dec 2025 09:00:00 GMT</pubDate>
      <author>Dan Vega</author>
      <category>Spring Boot</category>
      <category>Spring Framework</category>
    </item>
  </channel>
</rss>