Aligning Go struct fields to save memory
A printer’s composing caseeach sort of movable type packed so no space is wasted.
~/victorpierre.dev $ ls blog/
Notes on software engineering, systems design, tools, and the occasional reflection on working and living with technology.
This is a collection of blog posts. They are mostly written to improve my writing skills and share my thoughts on various topics. They capture my thoughts at a specific point in time and may not reflect my current thinking. They are also not representative of my employer’s views, only my own.
Please take them with a grain of salt. They can be outdated, inaccurate, and I may have changed my mind since then. I hope you find them useful. Please feel free to reach out on Mastodon if you have any questions, comments, or suggestions.
Archive
A printer’s composing caseeach sort of movable type packed so no space is wasted.
Aztec obsidian bladeLouis Petich Collection, 13th–16th century. I tend to write things down a lot. I like to write notes during meeting, as I think through problems, as I need to …
The Great CourierAlois Petrak (Czech, 1811–1888). Your daily reconciliation job flags a problem: dozens of orders exist in your database, but no corresponding events ever reached …
Allegory of the 1st Partition of Polandthe European powers carving up a nation. “The greatest danger in times of turbulence is not the turbulence; it is to act with …
As we approach the end of 2025, I want to reflect once again on what I’ve experienced and learned this year, as well as my hopes and goals for the next. I’m reminded of …
Silk-throwing by handthe thread traced between two fixed points. (The Penny Magazine, 1843)
Ever find yourself working on a feature that requires either creating a massive PR, which is hard to review, or waiting for each small change to be merged before you can proceed? …
2024 As 2024 draws to a close, I want to put into words my year-end reflection. It’s been an eventful journey filled with opportunities and unexpected changes. Personal: I …
What is Nix? Nix is a powerful package manager 1 for Linux/Unix systems that offers a declarative approach to system configuration. With Nix, you define your system’s state …
Early in my career, I learned that the most successful features were those designed with the user in mind. Through regular client demos and feedback sessions, I discovered that …
The Gulf StreamWinslow Homer, 1899.
The dolphin and anchorAldus Manutius’s printer’s mark for festina lente. Legend has it that the Roman Emperor Augustus Caesar held a particular fondness for the maxim …
When you’re coding in Go, you’ll quickly come to appreciate interfaces. An interface in Go is a type that spells out a set of methods. But here’s the interesting …
Matryoshka dollseach shell wrapping the next. The decorator pattern is a structural design pattern that allows augmenting an object’s behaviour without altering its core …
Semantic Versioning (SemVer) is a versioning scheme used in software development to provide a systematic approach for managing version numbers. It’s common for developers to …
In Go, variables of basic types such as int, float64, bool, string, and others, will have a default value that is assigned by the compiler or runtime when no value is explicitly …
Towards a more decentralized and open internet
When first learning Go, my initial instinct was to find a framework that would scaffold the basic folder structure and functionality that would allow me to build my first project. …
Glass beaker with snake-thread decorationRoman, Gallia Belgica, 4th century CE. What is Venom? Venom is an Open-Source tool for writing automated end-to-end and integration tests. …
What it is and why it matters
As a software developers, the terminal is an essential tool in our workflow. It provides a powerful interface to interact with the operating system and execute various commands. …