Automating My Blog Workflow with the Pi Coding Agent

Automating My Blog Workflow with the Pi Coding Agent As a developer who maintains a technical blog, I found myself spending nearly as much time on infrastructure and process as on actual writing. Creating a new article meant: create a ticket, categorize it, create a branch, write the content, test it locally, commit, push, open a PR, update the ticket — rinse and repeat. That’s when I discovered Pi, an AI coding agent designed to work autonomously inside any project. This article walks through how I set up Pi to automate my entire blog publishing workflow, with real examples from this blog itself. ...

May 26, 2026 · 10 min · 2091 words · Ivan Béthus

Replace Your IDE with a CDE!

Cloud Development Environments (CDE) - All Aboard! In the world of software development, onboarding new developers can be a real headache. Tool installation, environment configuration, resolving incompatibilities… These are all problems that Cloud Development Environments (CDEs) promise to solve. But before diving into the world of CDEs, it’s essential to understand the technologies that underpin them: DevContainers and DevFiles. DevContainers and DevFiles What is a DevContainer? A DevContainer is a specification that formalizes the description of a containerized development environment. Initiated by Microsoft in 2022, this specification is now adopted by many IDEs like VS Code, IntelliJ, and many others. But long before the massive funding by Microsoft (via Github, VSCode, …), it was Red Hat that was the pioneer in this field with its DevFile through the Eclipse Che project (adopted by the CNCF in 2022). ...

September 25, 2025 · 6 min · 1092 words · Ivan Béthus

Devoxx France 2025

From April 16th to 18th was held the annual developers’ gathering: Devoxx France! It was an opportunity for me and a delegation of colleagues to go to Paris, more precisely to the congress center, to attend and give multiple talks. Here’s my top 3 presentations. 🔧 How to Debug in Production? - Jean-Philippe Bempel Jean-Philippe Bempel is a performance expert and Java Champion at Datadog. During his talk, we discovered advanced techniques for debugging in production environments. Leveraging the JVM’s instrumentation API, available since JDK 1.5, Jean-Philippe demonstrated how to use a Java Agent to transform bytecode on the fly. This method allows adding advanced features like OpenTelemetry metrics without restarting the application, while maintaining low overhead (though still present!). The practical example showcased the effectiveness of this approach in solving production issues in real-time. ...

April 21, 2025 · 3 min · 552 words · Ivan Béthus

Mockoon: The Mocks Strike Back!

In modern application development, interaction with web services has become essential. However, what happens when these services are unavailable, still under development, or simply unstable? This is where Mockoon comes in to save the day. What is Mockoon? Mockoon is a powerful tool for simulating web services. But before diving into its features, let’s clarify the concept: A mock is a controlled imitation of a real component. In the context of web services, it can be an HTTP response containing mock data. ...

April 14, 2025 · 5 min · 885 words · Ivan Béthus

JEP 502: Initialize Immutable Objects with StableValue

Introduction StableValue is a new feature introduced in the preview version of JDK 25, aimed at improving the handling of immutable objects in Java. This innovation allows certain dynamic values to be treated as constants, offering performance optimizations similar to final fields, while providing greater flexibility regarding when they are initialized. The JEP related to this evolution is JEP-502, with the following defined objectives: Improve Java application startup time by fragmenting the monolithic initialization of application state. Decouple the creation of stable values from their initialization, without significant performance penalties. Ensure stable values are initialized at most once, even in multi-threaded programs. Allow user code to safely benefit from constant folding1 optimizations, just like variables declared as final. What is a Stable Value? 1 public sealed interface StableValue<T> A StableValue is an object encapsulating immutable data. Unlike final fields, which must be initialized upon object or class creation, Stable Values can be initialized on demand, after their declaration. This means they are only defined when their value is needed, which can improve startup performance of Java applications by avoiding loading the application’s complete state at startup. ...

April 11, 2025 · 4 min · 819 words · Ivan Béthus

The Power of SVG for the Web

Introduction SVG images (Scalable Vector Graphics) are widely used on the web due to their ability to scale without losing quality. They are XML-based files that can be easily included and modified in a web page. In this article, we will explore how to add HTML links to these images, dynamically change their style with CSS, and finally how to make them responsive. Adding HTML Links to SVG Images Adding HTML links to an SVG image is very simple. Just wrap any SVG element with the <a> tag to make it clickable: ...

February 3, 2025 · 3 min · 579 words · Ivan Béthus

Git: update-refs in a nutshell

When working on a versioned project, it is relatively common to end up with a “stack” of branches. What could be more frustrating than having to rebase all the other branches on top of the first one when updating it? This process becomes even more tedious when the number of branches is high or when they are regularly modified. Git version 2.381 introduces a solution to this problem: the update-refs rebase option. ...

April 22, 2024 · 3 min · 532 words · Ivan Béthus