AI-Assisted Java Development: An 18-Part Series

I’m writing a series on what it actually takes to use AI well in Java development. Not the hype version. The engineering version. This series covers the full arc: how AI is changing the economics of software work, how it reshapes workflows and prompting, how to design agents and evaluate them properly, and how to … Read more

Structured Concurrency in Java 26: API Polishing, Timeouts, and Better Joiners

Structured concurrency has reached its sixth preview in Java 26 through JEP 525, and at this point, it’s no longer experimental in spirit. The idea is simple and surprisingly powerful: if you start a few related tasks together, you should manage them together. They succeed or fail as a unit. This sounds obvious, but it’s … Read more

Zooming In: Profiling Just the Methods You Care About with JFR (JDK 25)

  Sometimes you don’t want a full JVM profile. You just want to understand a narrow slice of code: which methods are called, how long each call takes, and how time is distributed across a call chain. With JDK 25, JFR’s Method Trace and Method Timing events (introduced by JEP 520) make this possible. You … Read more

When Does Java’s Foreign Function & Memory API Actually Make Sense?

Every new Java release introduces a shiny feature. The Foreign Function & Memory (FFM) API, finalized in Java 22, is one of those headline acts: it promises safe native calls without JNI and off-heap memory you can manage. But the real question is not “can I use it?” but “should I reach for it?” The … Read more

Building Robust AI Applications with LangChain4j Guardrails and Spring Boot

As AI applications become increasingly complex, ensuring that language models behave predictably and safely is paramount. LangChain4j’s guardrails feature provides a powerful framework for validating both the inputs and outputs of your AI services. This article demonstrates how to implement comprehensive guardrails in a Spring Boot application, with practical examples that you can adapt to … Read more

Java’s Structured Concurrency: Finally Finding Its Footing

The structured concurrency API changed again after two incubations and four rounds of previews. Ideally, this scenario is unexpected. However, given its status as a preview API, such changes can occur, as was the case here. These changes lend considerable maturity to the API, and I am hopeful it will now stabilize without requiring further … Read more

Chat with Your Knowledge Base: A Hands-On Java & LangChain4j Guide

Disclaimer: This article details an experimental project built for learning and demonstration purposes. The implementation described is not intended as a production-grade solution. Some parts of the code were generated using JetBrains’ AI Agent, Junie. Large Language Models (LLMs) like GPT-4, Llama, and Gemini have revolutionized how we interact with information. However, their knowledge is … Read more

Building FormPilot: My Journey Creating an AI-Powered Form Filler with RAG, LangChain4j, and Ollama

Disclaimer: This article details an experimental project built for learning and demonstration purposes. The implementation described is not intended as production-grade solution. Some parts of the code were generated using JetBrains’ AI Agent, Junie. Have you ever found yourself filling out the same information on web forms over and over again? Name, email, address, phone … Read more

DIY JVM Part 1: Decoding the Magic – Parsing Java

It’s been about 15 years since I last touched C programming. Back in university, I remember writing a small C program for an assignment—just a simple parser that could scan a C source file and check if its structures were correctly formed. It was nothing fancy, just a mundane academic exercise, and to be honest, … Read more

SummarizingTokenWindowChatMemory: Enhancing LLM’s Conversations with Efficient Summarization

LLM chat models have become an integral part of many applications today. We are all experimenting and exploring the best ways to utilize them effectively. For Java developers, LangChain4j has been an incredible tool in this journey. By design, most available APIs, such as ChatGPT and Gemini, operate in a fire-and-forget mode. They don’t retain … Read more