Easy, secure API keys

I needed to add API key authentication to our work environment. I needed: I was able to use JWT tokens in a slightly clever way to make this happen. The best part is, there are ...

Automatic recovery using lvm-autosnap

TL;DR: https://github.com/intentionally-left-nil/lvm-autosnap Running linux is an adventure. About a year ago, I switched from MacOS to Ubuntu (eww snaps), then Fedora (fine), then Manjaro (yeah that was a mistake) until finally landing on the final ...

Introducing Async Service

Distributed tasks with Postgres & Rabbitmq TL;DR: Check out the code here At my workplace, we needed a mechanism to: Have service A tell service B to start executing long-running tasks, with notifications upon completion ...

Initramfs with systemd & LUKS

TL;DR My old boot process looks like this: UEFI (with secure boot on) systemd-boot unified kernel.efi (initramfs + kernel params + kernel all rolled into one efi and signed) initramfs (busybox) encrypt hook: detects that ...

Oh Brothers, where art thou

Last weekend, we backpacked in the Olympics and climbed the brothers. The route itself is straightforward up to Lena lakes (where almost everyone at the trailhead was headed to). Once you cross over to the ...

Interfaces in golang

TL;DR: An interface just defines a collection of methods. When you create an instance, it’s just a wrapper around a concrete type. In addition to the concrete type, the interface contains an extra array of ...

Secure DNS

TL;DR: Use a VPN if you really care. Hey, you over there! Want to take something that works perfectly well and make it more complicated? Sure ya do! Oh, need a little more convincing? Okay ...

Larch Madness

This October, I went with my friend Erica and we set off for the Enchantments thru-hike. It appears every time I get amnesia about the hike because there are some very key details I always ...