Web Components Mean Less Code to Review (A Win for AI Built Business Apps)
When an AI agent builds a screen for you, the slow part is no longer writing the code. It is reviewing it. You have to read what the agent produced and decide if you trust it. The[...]
How and Why to Trace Use Cases and Tests
When you build business software, the same question keeps coming back: why does this code exist? The honest answer is almost always: because some business person needed it. A[...]
A Small App, a Complete Process: Demoing AI Unified Process with a Feedback App
When people hear about AI-assisted software development, they often imagine code generation first. I think that is the wrong place to start.
How I solved SMTP Timeouts with Mailpit and JavaMail
When I started testing email sending in my Spring Boot app with Mailpit and Testcontainers, I ran into a frustrating problem: sending mail locally to localhost often hung for[...]
A View Is Not a Table: It Is a Controlled Integration Contract
The recent article “Your Database Table is an awful API” claims that exposing database tables (or database-derived structures) as integration boundaries between systems is a[...]
Why Vaadin and jOOQ Are a Natural Fit for AI Driven Development
Over the last two years, I have been working heavily with AI-assisted and agent-based development. One observation keeps coming back: the choice of technology stack matters far[...]
Component Models Matter: Why UI Development Gets Faster with the Right Abstractions
When developing business applications, the discussion around productivity often focuses on backend frameworks, persistence, or architecture. Yet one of the biggest productivity[...]
Testing Emails in Spring Boot with Testcontainers and Mailpit
Testing email functionality is often painful. SMTP servers are external, tests become slow or flaky, and local setups differ from CI environments. As a result, many teams either[...]
One Query, Complete Object Graphs: Nested DTOs with jOOQ MULTISET
In my previous post about Open Session in View, I explored how this default Spring Boot setting can hide serious performance problems. The N+1 query problem sits behind a system[...]
The Hidden Performance Killer: Understanding Open Session in View in Spring Boot
If you’ve ever wondered why your Spring Boot application feels sluggish under load despite appearing to work perfectly during development, there’s a good chance[...]
SPAs Are the New Client/Server Applications
Single Page Applications promise modernity. But in reality, they bring back all the classic client/server problems. With Vaadin, we can avoid them.
Why Vaadin Is Perfect for AI-Driven Development
AI-driven development is changing how we build software. Instead of writing every line of code by hand, developers increasingly use AI tools and agents to generate, test, and even[...]


