Dan Vega

@danvega.dev

🍃 Spring Developer Advocate @Broadcom ☕️ Java Champion 📹 YouTuber http://bit.ly/3zJb93b 🎙️ Podcast http://bit.ly/3Tzi0CO 🤖 ByteSized AI http://bit.ly/3XYv87j

Boris, the creator of Claude Code, mapped out 5 steps of AI adoption. Find out which step you're on and what it takes to level up. https://youtu.be/g12mC2J11d0

I caught my AI making three mistakes in a Spring Boot app I know cold. An hour later it gave me Swift code I shipped without blinking. Same model. The code I should trust less felt better. Here's why that happens. https://youtu.be/UuM2-nRsLuA

Outdated dependencies are an easy target for attackers. AI can help you upgrade them the right way. This video shows when to reach for AI and how to approach the upgrade safely. https://youtu.be/MYtia9xsTrQ

A system prompt is not a security layer. I built 4 Spring AI safeguards (scope restriction, keyword blocking, output leak detection, PII masking) and show what each one catches and misses. Every one can be bypassed alone. Layer them: https://www.youtube.com/watch?v=EZ6Uh1-8Ui4

That docker-compose.yml sitting in every Java repo confuses a lot of people. It's not about putting your app in a container. It runs the stuff your app needs, like Postgres, so any project just runs when you clone it. Clone. Run. Done. https://youtu.be/0LNVXHKKJb8

Spring AI 2.0 replaces per-model tool loops with a composable ToolCallingAdvisor in the ChatClient chain. Watch it run live: stream tool-call events into a "Calling tool..." UI, then take manual control when you need it. https://youtu.be/g6IhOsFKM7c

How long does one YouTube video really take? I mapped every stage from "I have an idea" to published, repurposed, and promoted. Turns out it's 10 stages across 3 phases, and AI now handles the mechanical parts. https://www.danvega.dev/blog/content-creation-workflow

Embabel 1.0 is here. Rod Johnson's AI agent framework for the JVM hit GA: stable APIs, everything on Maven Central, RAG promoted to production, new model integrations, and better MCP citizenship. Builds on Spring AI, Spring Boot 3.5, Java 21. www.danvega.dev/blog/embabel...

Embabel 1.0 Is Here: AI Agent Framework for Java Goes GA

Embabel 1.0 is GA. What Rod Johnson's AI agent framework for the JVM means for Java developers, what changed on the road to 1.0, and how to get started.

danvega.dev

Spring AI 2.0 moved the tool calling loop into the advisor chain. That means you can hook into it and watch it run. I built a streaming chat where every tool call shows up live as a pill, "Calling getWeatherForecast...", using one small custom advisor. github.com/danvega/tool...

Bild

LLMs don't always return valid structured output. Spring AI 2.0 can now detect malformed responses and retry automatically until you get clean, parseable data. Here's how self-correcting structured output works: https://youtu.be/vxOeeNyOtZY

Can you use Java for AI? Yes. And if you're building AI into real applications instead of training models, it might be the better choice. The training era belonged to Python. The integration era looks a lot like the JVM. www.danvega.dev/blog/can-you...

Can You Use Java for AI? Why Java Is Better Positioned Than You Think

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.

danvega.dev

AI agents connecting to Slack, GitHub, Jira, and MCP servers can easily hit 50+ tools. That's 55K+ tokens gone before any conversation starts, and accuracy drops fast. Spring AI's tool search solves this. https://youtu.be/VG00DildlvY

You've seen AI generate ugly UI. The team behind Tailwind CSS and Refactoring UI built a set of agent skills that actually produce great-looking interfaces. Design, ideation, and more, all broken into focused skills. Here's a walkthrough. https://youtu.be/-B7uyMp54S4

Spring AI has two APIs for working with LLMs: ChatClient and ChatModel. They're not interchangeable, and knowing when to use each one will save you time and confusion. https://www.youtube.com/watch?v=IdIDI71sGZM

X just released their MCP Servers and you can wire them up with Spring AI. Here's a walkthrough to get you started. https://youtu.be/j4chxGtqkY8

Spring Boot 4.1 introduces @RedisListener, a much simpler way to subscribe to Redis messages. If you've dealt with the old MessageListener setup, you'll appreciate this. https://youtu.be/lMbgBYlUtfc

Episode 8 of Fundamentals of Software Engineering just dropped. Nate and I talk open source sustainability, what AI tooling actually looks like in practice, and the coming token crisis you should be thinking about now. Catch the recording here👇🏻 https://youtu.be/kaY8uvnbfis

Spring Boot 4.1 now includes built-in SSRF protection for HttpClient. No extra libraries, no custom filters. Secure by default. https://youtu.be/PDbBG_GrcwU

Spring Boot 4.1 brings lazy JDBC connections. Your app won't grab a database connection until it's actually needed. This means fewer wasted resources and better scalability out of the box. https://youtu.be/lsaBN1U2EB8

Spring Boot 4.1 brings first-class gRPC support. Here's how to get started with Spring gRPC from scratch. https://youtu.be/MPHuBNqbYPM

Most developers reach for a message broker the second they need reliable events. You might not need one. Spring Modulith ships with a durable event registry that persists events right to your database. Here's how to use it. https://youtu.be/KLX9ulb2AfM

New episode of Spring Office Hours coming up at 10:15 AM EDT! • Upgrading Spring with AI tools • How OSS is handling CVEs • What's actually working in 2026 Bring your questions. We'll be live 👇🏻 https://www.youtube.com/watch?v=zm_EmvdKwYA

🎙️Going live at 10am ET on Spring Office Hours. S5E15: Spec Driven Development with Simon Martinelli, Java Champion and Vaadin Champion. If AI is writing the code, the spec should be your source of truth. Bring your questions. https://www.youtube.com/watch?v=BZjQo0OJD_A

Stop passing null to your Java records. If you're using Spring Data JDBC with a generated id, a static factory method hides the null where it belongs. Same pattern you already use: List.of, Map.of, LocalDate.of. Worth a full video?

Bild

You might have started off with a well structured monolith but over time it turned into the classic big ball of mud. If this sounds familiar my latest video will help you create a modular monolith using Spring Modulith. #Java #SpringBoot 👇🏻 https://youtu.be/xHlDyKVyvig

Spring Modulith brings real structure to your Spring Boot applications, letting the domain drive how you organize and work with modules. If you've been wanting to keep your monolith clean and maintainable, this beginner intro covers what you need to know. https://youtu.be/xHlDyKVyvig