Dynamic collections, such as the dynamic array (also known as a List in C#), are without a doubt one of the most common data structure, and not only in C# but in computer science in general. The dotnet base class library exposes plenty of dynamic collections to fulfil a wide number of usecases: (System.Collections.)List, Dictionary, HashSet, Queue, Stack, and more. But they all share one thing in common: they are based on dynamic reallocation of backing arrays, which can lead to suboptimal pe...| ogxd.github.io
The GitLab CI ecosystem is full of features and integrations that make it a powerful tool for building, testing, and deploying your applications. It comes with an integrated package registry to share and manage your packages. However, the GitLab SaaS API (gitlab.com) comes with rate-limits which can be a problem for scaling CI/CD pipelines, and quite frustrating when you hit them. In this article, I will share a solution I find odd yet very effective: implementing a caching proxy in front of ...| Articles on Olivier's Blog
In this article I’d like to share my journey learning about caching, and my research on how to make it more efficient. This article is the first in a serie of articles about caching, and here we’ll start by discussing the challenges and memory considerations when doing in-memory caching. This was done as part of my day job as a Staff backend engineer at Equativ, a leading provider of digital advertising solutions, offering a range of products and services to help businesses reach their ta...| ogxd.github.io
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).| ogxd.github.io
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).| ogxd.github.io