Practical lessons from what I build and learn as a software engineer, with a strong focus on AI these days.
2026
- Let the routine MintMaker PRs merge themselves
I built a Claude Code plugin that lets the routine MintMaker PRs of your Konflux repositories merge on their own, and I explain its main rules.
- Take soundings before you ship
We decide every week whether a release is safe to ship. Soundings is the Claude Code plugin I built to answer that: release, manual review, or no-go.
- Turn an AI you can’t trust into one you can
You can’t unit-test an AI. Notes from a month of building evals instead.
- Which 80% of Claude Code are you missing?
AI Mentor is a Claude Code plugin that finds the capabilities you don’t know exist and teaches them one at a time, grounded in your real repo.
- Claude Code plugins and the trust nobody talks about
The official Claude Code docs describe SHA pinning as a feature but never explain why it matters. This post does, and walks through a release pipeline built to publish Claude Code plugins safely.
- Your Claude bill called. It wants to talk.
10 practices to cut your Claude bill, ranked by impact. Score yourself as you read.
- Turn AI friction into better docs
An experiment using automated friction capture to continuously improve AI context docs, fixing both codebase drift and gaps in initially generated content.
- The docs your AI agent is missing
A Claude Code skill that builds the context docs your AI agent needs, backed by research on how LLMs process context.
- Teaching Claude Code skills to improve themselves
A simple instruction you can append to your Claude Code skills to make them suggest improvements to themselves and your project docs.
2025
- Easing the maintenance of Konflux build pipelines
Maintaining Konflux pipelines doesn’t have to be a pain. I’ve got a few tips to help you out.
- Why is my PostgreSQL query so slow?! Let’s fix it!
PostgreSQL is pretty smart at running queries, but sometimes it needs a little help to hit top speed.
- Pausing Kafka at run time with Quarkus
Learn how the PausableChannel API from SmallRye Reactive Messaging can help you pause the consumption of Kafka messages at run time in a Quarkus app.
2024
- Blogging on GitHub Pages with minimal effort
Thinking about starting a blog but worried it’s too time-consuming? Learn how to launch a fully functional blog on GitHub Pages and post with minimal effort.
- Delaying exceptions while looping in Java
Learn how to propagate exceptions thrown from a loop without breaking that loop.
- Overriding the configuration of a Quarkus app from its test code
Increase your test coverage by overriding the configuration of your Quarkus app from its test code.
- Changing the Quarkus loggers level from Unleash
Updating an environment variable to change a logger level can sometimes be slow. What if you could change that level immediately with Unleash?
2022
- Using Qute with templates from a database
We moved our Qute templates from the file storage to a database to improve the tenants experience in a multitenant Quarkus app.
