Stuff

Writing & Thoughts

Notes on development, tools, and the occasional deep dive into stuff that interests me.

5 min read

Cheap Cold Storage Backups with AWS Glacier Deep Archive and TrueNAS

How to set up a monthly off-site backup from TrueNAS to AWS S3 Glacier Deep Archive for about $1/TB/month using Cloud Sync Tasks.

6 min read

A Simple Bash Script for Multi-Server MySQL Backups

A Bash script that automates MySQL backups across multiple servers using mysqldump, with daily and monthly snapshots, JSON configuration, retention cleanup, and simple restore workflows.

5 min read

Automated Multi-Server PostgreSQL Backups with a Simple Bash Script

A JSON-configured Bash script that backs up every database on every PostgreSQL server you own, with daily/monthly rotation and automatic retention cleanup.

4 min read

Dynamic OG Images in Laravel with Intervention Image

Generate branded social cards for your blog posts on the fly using Intervention Image v4, with caching, custom fonts, and zero external services.

5 min read

Replacing Two Legacy Systems with a Single Python Service

For years, the Mississippi Department of Archives and History relied on two separate systems to track changes on the preservation storage array: a bash script (`pres-audit.sh`) that logged file changes, and a multi-server ZFS snapshot pipeline (`pres_snap`) that involved TrueNAS cron jobs, a Redis queue, and a dedicated Ubuntu processing server. They worked, mostly, but the complexity was becoming a liability. When something broke, debugging meant jumping between three different machines and piecing together what happened.

5 min read

Process Files 4.0 — Batch File Processing for Digital Archives

How I built a modular Bash toolkit to convert messy archive collections into clean, web-ready access copies.