Shaaf's blog

A technical blog about Java, Kubernetes and things that matter

Neovim for Java Developers: A Match is made 🚀

Are you a Java developer who is mesmerized by the power and efficiency of Vim? Do you want to try your development experience to the next level? I mean hands-off the mouse style! If so, you’re in for a treat! In this post, I am going to dive into the world of Neovim and explore how you can transform it into a Java IDE. To be honest its a learning journey. And the more I experience learning it, I feel like I really need to share how cool this thing really is!


Static Code analysis tutorial with Konveyor and Kantra part - 1

Konveyor Kantra CLI is a command-line tool for analyzing and transforming application source code to aid modernization and migration. It performs static code analysis to detect issues. Kantra can also extract metadata, generate deployment assets (e.g., Kubernetes manifests), and runs via containers or natively. It supports multiple languages e.g. Java, Go, .Net and Node.js and integrates with CI/CD pipelines. Kantra is the foundation for automated, LLM-powered app modernization workflows like Konveyor AI (Kai).


A Keycloak example - building my first MCP server Tools with Quarkus

Recently I wrote an article about “Adoption of the Model Context Protocol Within the Java Ecosystem”. Now it was also time to start experimenting with writing an MCP Server myself (well maybe not the first time). Certainly I don’t want to be left out of all the cool things being demonstrated by the community. The goal for me is to learn, and creating perhaps a more practical example. In this post I am going to choose Keycloak, and write an experimental MCP server implementation for keycloak. The post is also to spark interest around this topic. Will it be useful to have an MCP server for Keycloak?


TechTalk - Java + LLMs: A hands-on guide to building LLM Apps in Java with Jakarta

Langchain4j is my favorite framework for working with large language models and Java. In the last couple of weeks, both Bazlur and I have presented to multiple user groups and conferences. This week, we had the privilege of presenting at the Jakarta Tech Talk, which both of us were looking very much forward to.

We now have so much demo code on the topic that we cannot present all the variations in one hour. We are still building along as we learn here.


A Quarkus minio tutorial - Store and retrieve objects from Minio

Consider a web application that needs to store user-generated content, such as images, videos, and documents. Instead of storing them in a file systems or using a database, the web application can use an object store. An object store can handle objects as a single unit, providing metadata about each object and abstracting away from the underlying storage which can be local or distributed. In this blog post I will explain a local setup for minio using docker. I also use Quarkus as the framework of choice for cloud native applications. and I use the minio SDK which is pretty awesome to work with together with Quarkus. Let’s do this :)