Blog

Backing Up my Homelab to Backblaze B2 with Backrest
Setting up nightly encrypted off-site backups for the storage on my Raspberry Pi: what a recycle bin, a NAS and an off-site backup each protect against, why I chose Backblaze B2 and how I back up and restore with restic and Backrest.
Building Network Storage on a Raspberry Pi Before Getting a NAS
Adding a 4 TB NAS drive to my Raspberry Pi as a first step towards a real NAS: choosing the hardware, setting up the disk safely, sharing it with Samba in Docker and building a recycle bin for it.
Pointing My Career Toward Aerospace
A personal note on steering my side projects, and eventually my career, toward flight software and avionics work.
Designing and Implementing a Mail Detection System
From coming up with the idea to designing custom PCBs and firmware for Envelope, a LoRa-connected system that detects when mail is delivered to or collected from my mailbox and reports it live to my homelab.
How to Crimp JST PH Connectors With the Engineer PA-09 Tool
A step-by-step guide to crimping JST PH connectors with the Engineer PA-14 and PA-09 tools.
Building a React Dashboard to Control Matter Smart Home Devices
Building a React and TypeScript dashboard to control Matter-powered smart lamps, including the async polling flow for commissioning new devices.
Nanomatter - Building a lightweight Matter controller with matter.js and TypeScript
Building my own Matter protocol controller with matter.js and TypeScript to talk to smart lamps directly
CI/CD to a Raspberry Pi With No Public IP Using GitHub Actions and Tailscale
Building a CI/CD pipeline for a multi-container app on a Raspberry Pi: cross-platform Docker builds, GitHub Container Registry, and the Tailscale GitHub Action to reach a server that’s never publicly exposed.
A Repeatable Pattern for Adding New Docker Services Behind Traefik
A simple, repeatable pattern for adding any new Dockerized service to a homelab: a docker-compose file plus a routing YAML file for Traefik, with Portainer and Home Assistant as examples.
Free HTTPS for Private Services Using Let's Encrypt DNS-01 + Cloudflare + Traefik
Getting a trusted HTTPS certificate for a private service that’s never been on the public internet, using Let’s Encrypt’s DNS-01 challenge, Cloudflare DNS and Traefik.