A collection of random software engineering thoughts
Low downtime Postgres upgrade: the runbook (part II)
No one is really prepared to upgrade big Postgres instances without downtime. This second part will focus on how to do it the lowest downtime possible....
Low downtime Postgres upgrade: I want to believe (part I)
Postgres is a great database, one of developer’s favourites, but upgrades are far from easy and smooth. The journey of selecting an optimal solution and weighing its trade-offs and risks is always an exciting challenge....
ImageWand: privacy-first image conversion experiment with Golang & WASM
After my experiment with GIFSane, one thing was clear: WASM shines when we think about complex applications (eg: media manipulation), usually performing better or opening more opportunities than JavaScript. It is finally time to try to create something from scratch, using Golang WASM toolchain...
GIFs (sane) playback control using WASM and FFmpeg
Not having playback control on GIFs always annoyed me a bit. I always secretly hoped that one day browsers would support this. This day never arrived, and I decided to take matters into my own hands....
The forgotten art of HTML redirects, without either HTTP 301 or JavaScript
One of the first things API developers learn is HTTP codes. From these 3xx are special, as they redirect users from A to B. But what if I told you there is a way to do it without HTTP codes?...
Getting good code reviews from peers
Every software developer, soon after pushing code to the repository, has this urge to ping the team to ask for code review. But, I dare to say: don’t do it! Most likely the code will still have some issues, especially if this is your first push for this feature....
GRPC: A powerful way to improve your Golang APIs
Web APIs are everywhere, with REST being one of the most popular ways to distribute it. With recent technologies, there are better ways to implement them, GRPC been one of them....