<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>AI on Ron's Tech Blog</title><link>https://ronveen.com/categories/ai/</link><description>Recent content in AI on Ron's Tech Blog</description><generator>Hugo -- 0.147.7</generator><language>en-us</language><lastBuildDate>Fri, 19 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://ronveen.com/categories/ai/index.xml" rel="self" type="application/rss+xml"/><item><title>Spring AI Series: 3-ChatClient</title><link>https://ronveen.com/posts/spring-ai-in-depth-03-chatclient/</link><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><guid>https://ronveen.com/posts/spring-ai-in-depth-03-chatclient/</guid><description>Learn the ChatClient fluent API inside out — prompts, defaults, model options, response metadata, and streaming — while building the first endpoint of a real support ticket system.</description></item><item><title>Claude Code - part 4: Slash Commands</title><link>https://ronveen.com/posts/claude-04-slash-commands/</link><pubDate>Wed, 17 Jun 2026 00:00:00 +0000</pubDate><guid>https://ronveen.com/posts/claude-04-slash-commands/</guid><description>Most Claude Code users only type plain prompts. The ones who get the most out of it know their slash commands. Here&amp;#39;s the ones that matter.</description></item><item><title>Spring AI Series: 2-Setup Spring AI</title><link>https://ronveen.com/posts/spring-ai-in-depth-02-project-setup/</link><pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate><guid>https://ronveen.com/posts/spring-ai-in-depth-02-project-setup/</guid><description>Learn to setup a Spring AI project and understand how it works.</description></item><item><title>Spring AI Series: 1-Introduction to Spring AI</title><link>https://ronveen.com/posts/spring-ai-in-depth-01-introduction/</link><pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate><guid>https://ronveen.com/posts/spring-ai-in-depth-01-introduction/</guid><description>Learn what Spring AI is, how it fits into the Spring ecosystem, and get your first chat response in a handful of lines of Java.</description></item><item><title>Claude Code - 03 - Skills</title><link>https://ronveen.com/posts/claude-03-skills/</link><pubDate>Fri, 22 May 2026 00:00:00 +0000</pubDate><guid>https://ronveen.com/posts/claude-03-skills/</guid><description>&lt;h1 id="claude-code--teaching-it-your-standards-with-skills">Claude Code — Teaching It Your Standards with Skills&lt;/h1>
&lt;p>In &lt;a href="https://ronveen.com/posts/claude-02-claude-md/">Part 2&lt;/a>, we turned &lt;code>CLAUDE.md&lt;/code> into a precision instrument. We wrote down our conventions, our architecture, our rules — and watched Claude Code go from producing generic boilerplate to code that could survive a code review.&lt;/p>
&lt;p>But here&amp;rsquo;s the thing I noticed after a few weeks of working this way: my &lt;code>CLAUDE.md&lt;/code> was getting fat.&lt;/p>
&lt;p>It started small. Build commands, naming conventions, a few architecture rules. Then I added a section on how to generate a complete REST slice. Then testing patterns. Then a procedure for running database migrations with Flyway. Before I knew it, the file was 300 lines long, and every single line was loaded into every single session — whether Claude needed it or not.&lt;/p></description></item><item><title>Claude Code - 02 - Configuration</title><link>https://ronveen.com/posts/claude-02-configuration/</link><pubDate>Thu, 21 May 2026 00:00:00 +0000</pubDate><guid>https://ronveen.com/posts/claude-02-configuration/</guid><description>&lt;p>In &lt;a href="https://ronveen.com/posts/claude-01-introduction/">Part 1&lt;/a>, I showed you what Claude Code is and what it can do. You saw an AI agent that reads your project, writes code, runs your build, and fixes its own mistakes. Impressive stuff.&lt;/p>
&lt;p>But here&amp;rsquo;s the thing. If you just fire up Claude Code and start prompting, the output you get is… generic. It&amp;rsquo;s &lt;em>correct&lt;/em>, sure. But it doesn&amp;rsquo;t know your team uses MapStruct instead of manual mapping. It doesn&amp;rsquo;t know your POST endpoints need authentication. It doesn&amp;rsquo;t know you measure everything with Micrometer and that a controller without metrics is considered incomplete.&lt;/p></description></item><item><title>Claude Code - 01 - Introduction</title><link>https://ronveen.com/posts/claude-01-introduction/</link><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><guid>https://ronveen.com/posts/claude-01-introduction/</guid><description>&lt;p>I remember the first time I tried a GitHub Copilot suggestion in IntelliJ IDEA. It felt like magic. You start typing a method name, and suddenly the entire implementation materialises in grey ghost text. You press Tab, and — bam — it&amp;rsquo;s there.&lt;/p>
&lt;p>That was impressive. But it was still &lt;em>you&lt;/em> doing the driving.&lt;/p>
&lt;p>In 2026, the landscape has shifted. Claude Code feels different. It&amp;rsquo;s less &amp;ldquo;autocomplete on steroids&amp;rdquo; and more &amp;ldquo;a colleague who sits next to you, holds the entire 1M token context of your codebase in their head, and then just&amp;hellip; gets to work.&amp;rdquo; Let me show you what I mean.&lt;/p></description></item></channel></rss>