A few bytes here, a few there, pretty soon you’re talking real memory

Today’s post comes from a recent Go pop quiz. Consider this benchmark fragment. A convenience wrapper around sort.Sort(sort.StringSlice(s)), sort.Strings sorts the input in place, so it isn’t expected to allocate (or at least that’s what 43% of the tweeps who re...

A little puzzle with <code>printf()</code> and C argument passing

Go modules are soon going to be the only future

macOS Command Line Tools

Today, again, I forgot the command to install Command Line Tools and had to search for it. This is post if for future me. You always forget how to install XCode Command Line Tools when a new macOS release comes out&hellip; specially because this always happens when you&rsquo;re...

The story of the one line fix

Picture yourself, an engineer working at the hottest distributed microservices de jour, assigned to fix a bug. You jump into an unfamiliar codebase and quickly locate the line where the problem occurred. The fix is simple, just return early or substitute a default value in the ca...

Building view components with gomponents and TailwindCSS in Go

Reusable components for your server-side views that look good.

Why I migrated to the Fish Shell

Back in June, I started porting my dotfiles from ZSH to Fish. Here&rsquo;s why. Initial performance Fish&rsquo;s performance is a lot better than ZSH&rsquo;s, and very similar to Bash. We can verify that by firing up a container with limited CPU and memory, like so: docker run --...

Engineering Management Books

We live in the world where there are so many offerings of information in all possible formats: podcasts, videos, blogs, etc. But reading a good book is something that you&rsquo;ll never regret.

Working with SQLite using Go and Python

Introduction I prefer to use relational (SQL) databases in general since they provide several features that are very useful when working with data. SQLite is a great choice since the database is a single file, which makes it easier to share data. Even though it&rsquo;s a single f...

Multi-platform Docker images with GoReleaser and GitHub Actions

GoReleaser v0.148.0 is out, and with it, the ability to release multi-platform Docker images, a.k.a. Docker Manifests. In this guide we&rsquo;ll explore how to use it with GitHub Actions, and how GoReleaser releases itself in this way. PS: You will need GoReleaser version 0.152.0...