Earlier this month, during its annual general assembly, the Codeberg active
members voted on many things, including: 
 
 Banning cryptocurrency projects. 
 Banning projects that primarily consist of vibecoded content. 
 
 You can read more about those decisions in the blog post Protecting our FLOSS
commons from
LLMs . 
 I happily voted yes on both proposals, and…

 This content was originally intended as a KubeCon talk. 
 Since I didn’t pass the CFP, I turned it into a blog post. 
 TL;DR : If you just prefer looking at the code, check out the
 dmathieu/collector-framework 
repository. 
 
 The OpenTelemetry Collector is a
pretty great piece of software that is meant to allow you to: 
 
 Receive telemetry data.…
When people think about open source, they often picture lines of code, clever
algorithms, or maybe a GitHub repository full of issues and pull requests. What
can be harder to see is the human side. The people who quietly keep things
moving, who make sure contributions land smoothly and help the community grow in
a healthy way. That’s the work of a maintainer. 
…
Let’s start with an opinion: Open Source software (OSS) is awesome, and better
than proprietary. 
 However, being able to call your software truly Open Source is not necessarily
that easy.
The Open Source Initiative provides a pretty
strict definition of what can be called Open Source. 
 And several OSS projects have kind of lost their “Open Source” stamp…
For a very long time, it appeared obvious to outside observers of the time flow
that Skynet would never win the war, and never annihilate humanity. 
 Despite the machine’s violent attempts to destroy every leader of the
resistance, humans always prevailed.
Millions of attempts were made, and none of them succeeded. It became obvious
the machines couldn’t win through…
This article is part of a group of articles Architecting go libraries for
semantic versioning in which I am
providing various patterns to help building Go libraries that can remain
modular, and yet abide to semver. 
 
 Let’s imagine your API has the following interface: 
 type Animal interface {
 	 Name () string 
 }
 One of the users of your library…
This article is part of a group of articles Architecting go libraries for
semantic versioning in which I am
providing various patterns to help building Go libraries that can remain
modular, and yet abide to semver. 
 
 Let’s say you have the following partial implementation of an HTTP client. 
 package client 
 
 type Option interface {
 	 applyOption…
One of the books that impacted the most my career is probably The Mikado
Method . I read it almost 10 years ago, and I don’t
practice it explicitly. But I think of the method almost every day, and it has
been impacting how I work ever since. 
 And yet, it has remained something quite obscure. Whenever folks suggest
must-read computer science books, it’s never…
Modern telemetry libraries allow easily configuring auto instrumentation, to
automatically gather observability data about frameworks and libraries. 
 There are two main approaches to architecting those auto-instrumentation
libraries. As middlewares/wrappers, or as monkey-patches.
I believe middlewares are much better, here’s why.
OpenTelemetry is making observability much easier, especially by providing the
first widely accepted vendor agnostic telemetry libraries.
The first signal the project implemented is tracing, which is now GA in most
languages.
Ever since we need to operate hardware and software in production, we have needed to
know how those behave.
For example, when I brew craft beer, I use an
 iSpindle to monitor the temperature
and the gravity of my wort.
The goal of a consensus algorithm is to allow multiple machines to work as a
coherent group which can survive the failures from some of its members.
Paxos has been the most common consensus algorithm used around, yet it is quite
hard to understand, and hard to implement.
I actually read this paper for the first time a year ago. But I found it so
good that I’ve decided to give it another ready, with a written summary.
OpenTelemetry is a quite new tool meant to
provide a standard interface to for handling metrics and traces. 
 It provides libraries in all main languages, and its
 collector 
component allows receiving data from any app in any language, and transmitting
them to any observability platform.
Incidents are inevitable. Any platform, large or small will have them. While
resiliency work will definitely be an important factor in reducing the number
of incidents, hoping to remove all of them (and therefore reach 100% uptime) is
not an achievable goal. 
 We should, however, learn as much as we can from incidents, so we can avoid
repeating them.
Prometheus is an Open-Source monitoring system and
time-series database. In this post, I am going to dissect some of the
Prometheus internals – especially, how Prometheus handles scraping other
components for their metrics data.
I recently finished reading How to Read a
Book . 
 I didn’t read this book with programming in mind. However, while reading it I kept thinking that we could apply the same approach to reading and understanding a programming project.
I have had a dream for a while now: to start brewing my own beer.
It’s not that I drink lots of beer. More that I like good beers, and those tend to be the craft ones. So I wanted to better understand how that was made, by making my own.
Kubernetes is a container orchestration system that originated at Google, and is now being maintained by the Cloud Native Computing Foundation . In this post, I am going to dissect some Kubernetes internals—especially, Deployments and how gradual rollouts of new containers are handled.
I have recently been experimenting with Kubernetes ,
starting with a managed cluster.
Quickly enough, I’ve wanted to try setting up my own cluster though.
I just got married!
You know, the thing you do once in your life, where you spend a whole year (sometimes more) preparing a single day. Well, we did it!
It is common knowledge that Heroku has a fair number of Erlang components , we even published a book .
When I joined, 3 years ago, I had barely heard about it.
But as I tried to get a better grasp on how the platform works, I wanted to learn how some of those Erlang components work.
Just like in 2015 , I’ve
kept habit of reading for an hour before I start working every weekday. 
 This year, I’m only writing about the technical books I’ve read. The fictional
ones I read in the evening are a recreation, and I’m not keeping track of what
I read this year.
For a couple years now, I’ve been starting to read a lot more.
A year ago, I wrote about what my reading habit is, and it hasn’t changed much since.
Sidekiq kind of revolutionized background job processing in ruby.
By providing very fast, threaded workers and inventing it’s own profitable Open-Source business model, it is really something to look at.
Earlier today, Heroku announced SSL
Beta ,
a way to provide SSL on your heroku-hosted app for a much lower cost than it
used to be.
This is an awesome feature, entirely in line with all the changes SSL for over
the past year.
I spend most of my time at Heroku working on our support tools and services;
 help.heroku.com is one such example. Heroku’s help
application depends on the Platform
API to, amongst
other things, authenticate users, authorize or deny access, and fetch user
data.
For the past 20 months (more or less), I have been working with the support team at heroku.
Because I am moving to something new (still at heroku), I want to share how I got there and a few things that I learned.
A bit over a year ago, I decided to try starting to read more.
This just started as a basic attempt to read one book
( engineering a safer world which happened to be very interesting but I got bored around the middle).
Designing an API is hard. You think of endpoints as you imagine them;
implement them and sometimes sooner or later, you realise things aren’t built the way they should have been.
Working with our support team, I often see customers having
 timeout problems.
Typically, their applications will start throwing
 H12 
errors.