A black and white portrait photo of Martin Hicks.

Journal

Notes from real projects - AWS, DynamoDB, Rust, home servers, and whatever open source tool I'm currently building.


DynamoDB Conformance Suite social card showing 526 tests validated against real DynamoDB with pass rates for each emulator 13th April 2026

Building a DynamoDB conformance suite

AWS doesn't ship a conformance suite for DynamoDB emulators, so I built one. 526 tests, ground-truthed against real DynamoDB. Dynoxide passes all of them. DynamoDB Local fails 42.

Read article →
The Dynoxide hexagon logo alongside the npm logo on a dark background 6th April 2026

Dynoxide 0.9.8: fixing the orphan problem

If you backgrounded dynoxide in an npm script, killing the dev server left it running. 0.9.8 fixes three root causes so the process actually dies when it should.

Read article →
Illustration of the Dynoxide logo with DynamoDB table icons on a dark background 2nd April 2026

Introducing Dynoxide: a fast, embeddable DynamoDB engine

I built a DynamoDB engine in Rust that starts in 15ms and passes 526 conformance tests. Here's why, and what it's for.

Read article →
Terminal showing automated YouTube Shorts pipeline commands with fetch-fixtures, encode-short and upload-short output 21st March 2026

Automating my son's YouTube with Python and FFmpeg

My son wanted a YouTube channel. I wanted to make sure I wasn't the bottleneck. Here's how I automated the entire weekly workflow with Python, the FPL API, Whisper, FFmpeg, and the YouTube Data API.

Read article →
Browser mockup showing the Recently Played Last.fm widget with album artwork and track listings 8th March 2026

Recently Played: bringing back my Last.fm component

I had a Last.fm widget on my site in 2010. Fifteen years later, I brought it back as an Eleventy WebC component with SSR, live polling, and localStorage caching.

Read article →
Illustration of a lock surrounded by device icons connected through a VPN tunnel 28th July 2025

WireGuard for safe browsing on kids' devices

Kids' devices leave the home network. WireGuard tunnels their DNS back through home filtering — everywhere, automatically.

Read article →
Illustration of a shield with a checkmark surrounded by DNS query flow lines 20th July 2025

Running AdGuard Home and Unbound on a home server

AdGuard Home handles the filtering, Unbound handles the resolving. Together they give you private, ad-free DNS for your whole network.

Read article →
Illustration of a small server with radiating network connections on a dark grid background 3rd July 2025

Building a tiny Intel N100 home server

I built a silent, tiny home server for £250 using an Intel N100. It runs 24/7 on about 8 watts.

Read article →
NPM package manager logo - red text, on a white background, reads - NPM 16th May 2023

Remove trailing slashes with CloudFront and 11ty

Trailing slashes and 11ty's folder structure caused redirect loops. A simple CloudFront function fixed it.

Read article →
NPM package manager logo - red text, on a white background, reads - NPM 15th May 2023

Enhance CSRF package - now supports multipart form data

My Enhance CSRF plugin now supports multipart form data - meaning file uploads work with the csrf-form component out of the box.

Read article →