My experience on implementing tracing at scale
Tracing is a telemetry concept that gives us the big picture of what happens when a request is made on a distributed system. Several solutions exist to add “automated” tracing. Abstracting and hiding things away from you does indeed make it easier to use, but as soon as you need to adapt something to your specific needs, it will start to be a pain. If you have the human resources and the will to have a proper tracing, my advice is to understand the concepts and implement parts of it yourself....
Unsafe read beyond of death
While developing GxHash over my spare time during my last parent leave (babies sleep a lot, I swear I’m a good father 😇), I went down the rabbit hole and came up with increasingly low-level optimizations. In this article, I want to talk about one of the nastiest ones, but to whom GxHash is owed to be the fastest non-cryptographic hashing algorithm up to this date. I called this optimization 🥁🥁🥁 “Unsafe Read Beyond of Death” (or URBD)....
When to care about performance
Many languages and frameworks have been designed to make developers more productive. This is a good thing, but it has a side effect: it makes developers less aware of the performance implications of their code. While hardware has been getting faster and faster over the years, the place software has taken in our lives has also been growing. In the end, the performance of the code we write is still important, and it’s important to know when to care about it (and when not to)....