In my previous post Workflows everywhere pt. 1 I tried to define workflows and enumerate their functional and non-functional requirements. The post concluded with the realization that in many case we need workflow engines to power our workflows.
This post defines what a workflow engine is and lists some of the most popular engines by category. Or at least that was the original intention, but there is a twist.
Workflow engines are systems designed to simplify the creation and execution of workflows. They orchestrate the flow of information between the activities that compose the workflow based on predefined logic, conditions and dependencies.
Workflows are everywhere. From CI/CD pipelines, all system / data integration to business process automation. It wouldn’t be too far-fetched to say that even modern software build tools like make, maven or npm are in their own way workflow engines.
There are countless tools out there that help people define, execute and monitor workflows varying from simple no-code tools to complex frameworks that allow developers to define workflows in code, or even architect their software as workflows.
I recently had a discussion with two fellow engineers about secure coding practices. After the discussion I realized that I am neglecting one of the most important practices: signing my commits.
There are tons of articles on the internet explaining why and how. These are my notes on the subject that I decided to publish.
These notes actually use literate programming so they are a mix of notes and code you can actually use via org-mode.
You can find the actual notes file here.
It seems that everyone is an MCP guru these days.
I am not.
In fact, I know almost nothing about it. I am just aware of the concept.
This post describes the steps I took in order to create an MCP from scratch, resulting in the project created at:
I also recorded my journey starting from scatch with almost zero knowledge on the topic and using the Quarkus Blog as a guide:
Back in April 2020 I shared how I built a nutrition tracker in Emacs that leveraged org-capture templates and or-ql to record foods, recipes, and meals. At that time, I relied on an org-mode based database and manual updates to keep track of calories, protein, carbs, and fat. While the system worked, maintaining that data was both tedious and error-prone. Each time I needed to insert a new food, I had to do an internet search to find the nutritional information and then manually update my org-mode files.
A couple of weeks ago I came across Roberto Carratalla’s blog post on Function calling on OpenShift AI. At the time I was preparing for RedHat Summit Connect Zurich 2025 where I was meant to run a workshop on Quarkus and Langchain4j with Kyra Goud, Dimitris Andreadis and Codrin Bucur. We had an issue however, related to enabling functions on OpenShift AI.
Roberto pointed us to the blog post, but I couldn’t spot what I was doing wrong. So, I decided to port the examples in the blog post to Java to make sure that I was comparing apples to apples.
This year I decided to put some personal time in learning reactjs. While I enjoy using Javascript for the frontend, I’d say that it’s not the language of choice for me for backend use. I don’t have anything against nodejs, but I prefer use java frameworks, which is the focus of my day job. So, I wanted to combine reactjs with Quarkus. A combination that just became more fun with the Quinoa. Quinoa allows users to use their favorite javascript framework with Quarkus with no additional configuration. On top of that it allows development of both backend and fronted from via the Quarkus dev mode. Last but not least it allows for native compilation that produces a single binary containing both fronted and backend.

I am a 40+ software engineer and recreational Jiu Jitsu practitioner, struggling with vast amount of information related to the sport. I decided to make use of my `computer` skills to aid me in the process of taming this new skill.
In this post I am going to discuss about flowcharts and more specifically about:
A flowchart is a diagram of the sequences of movements or actions of people or things involved in a complex system or activity.
Kubernetes is around for almost 7 years now! Ever since the beggining there have been efforts to make consuming / binding to services simpler. And while discovering the actual service is not so much of an issue (if you employ a set of conventions), getting the credentials etc is slightly trickier.
The Service Catalog has been an effort that promised to simplify provisioning and binding to services, but it seems that it has lost its momentum. The lack of uniformity between providers, the differences in how each service communicated the binding information and the fact that people tend to favor operators for provisioning services made it pretty hard to use in practice.
I was experimenting with some Github Actions that needed to make use of Mandrel so, I thought that I should use sdkman. I run into some issues though and I thought I should document the experience
The main issue I encountered, is that no matter how I mixed sdkamn into the mix, my steps acted like it was not
It seems that there is a Github Action for sdkman available, which should allow you to manage any `candidate`. I used it like this:
These are just some personal notes, that I’ll surely forget unless I write them down.
As I am bloging for over a decade now and most of the time I am sharing code, I needed of a decent way to highlight my code and make it available to users. In the beginning I was using blogger but later on I migrated to wordpress.
So, I needed a syntax highlighting solution similar to what I was using for blogger.

I am a 40+ software engineer and recreational Jiu Jitsu practitioner, struggling with vast amount of information related to the sport. I decided to make use of my `computer` skills to aid me in the process of taming this new skill.
In this section I am going to discuss why and how markdown is the ideal format for using for your notes. I am also going to conver how to use markdown in order to maintain wiki/second brain for your Jiu Jitsu notes.

I am a 40+ software engineer and recreational Jiu Jitsu practitioner, struggling with vast amount of information related to the sport. I decided to make use of my `computer` skills to aid me in the process of taming this new skill.
This post is going to demonstrate how to use mplayer for watching Jiu Jitsu instructionals, in order to:
This post will cover the fundamentals and will be the base for future posts that will demonstrate integrations with ohter tools.

I am a 40+ software engineer and recreational Jiu Jitsu practitioner, struggling with vast amount of information related to the sport. I decided to make use of my `computer` skills to aid me in the process of taming this new skill.
This post is going to demonstrate how to use ffmpeg in order to:
This post will cover the fundamentals and will be the base for future posts that will demonstrate integrations with ohter tools.

I am a 40+ software engineer and recreational Jiu Jitsu practitioner, strugglying with vast amount of information related to the sport. I decided to make use of my `computer` skills to aid me in the process of taming this new skill.
This is the first post in a series of posts, documenting the process.
Jiu Jitsu practitioners with decent computer skills
I used to be pretty vocal about things I work on. I used to write blogs, give conference talks or occasionally create short vlog kind of videos. If there is one topic I’ve completely missed, that is sundrio.
So, what is sundrio ?
sundrio is a code generation toolkit for generating code that no one wants to write by hand and everyone enjoys using. Besides the code generation frameworks, it also comes with modules (they are actually framework applications) for generating things like:
This is not a blog post. This is my Emacs powered nutrition tracker!
No, I mean it!
It’s the one file that contains all the code, templates and data of my tracker, exported in html.
Keep reading, to see how you can harness the power of emacs and org mode to track your nutrition and even generate cool graphs like:

For quick demo you can check this short Youtube demo: Nutrition tracking using Emacs.
ap4k is a collection of java annotations and processors for generating, customizing and testing kubernetes and openshift manifests.
The idea of using java annotations for customizing kubernetes and openshift manifests is not something entirely new. In 2015 fabric8 provided an artifact called `kubernetes-generator` (not to be confused with other generators under the fabric8 umbrella) that allowed developers to hook into the compilation process code that customized these manifests. The way the code was hooked into the compilation processors was via java annotations. The idea was nice but did required developers to write actual code, and thus was soon abandoned as in favor of the fabric8-maven-plugin which was rewritten at the same time by Rolland Huss.
As I am approaching my 40s its becoming harder and harder to get really excited with a new framework. There are of course some exception to this rule and micronaut is such an exception. I won’t get into details here, but in many ways I feel that micronaut is a framework I would like to have written myself…
So, this post is going to be a first look at micronaut. It will include:
I recently came across micronaut one of the many java micro-frameworks that gain a lot of interest lately. This particular framework was being installed locally using a tool that I haven’t come accross before: sdkman.
This will be a really short post about sdkman.
Even if you only use a computer for playing games, sooner or later you are going to have to manage multiple versions of the same piece of software. Now, if you are into development then its possible that you’ve either have a handcrafted solution or using one provided by the operating system.