---
title: "Journal - Martin Hicks"
description: "Technical writing by Martin Hicks, software developer and AWS consultant. Real problems from real projects - what I tried, what broke, what worked."
canonical: https://martinhicks.dev/articles/2
---

# Journal

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

---

## Articles

  6th April 2026

### [Dynoxide 0.9.8: fixing the orphan problem](https://martinhicks.dev/articles/dynoxide-098-npm-process-lifecycle)

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 →](https://martinhicks.dev/articles/dynoxide-098-npm-process-lifecycle)

  2nd April 2026

### [Introducing Dynoxide: a fast, embeddable DynamoDB engine](https://martinhicks.dev/articles/introducing-dynoxide)

I built a DynamoDB engine in Rust that starts in 15ms, checked against real DynamoDB by its own conformance suite. Here's why, and what it's for.

[Read article →](https://martinhicks.dev/articles/introducing-dynoxide)

  21st March 2026

### [Automating my son's YouTube with Python and FFmpeg](https://martinhicks.dev/articles/automating-bens-youtube-channel)

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 →](https://martinhicks.dev/articles/automating-bens-youtube-channel)

  8th March 2026

### [Recently Played: bringing back my Last.fm component](https://martinhicks.dev/articles/recently-played-lastfm-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 →](https://martinhicks.dev/articles/recently-played-lastfm-component)

  28th July 2025

### [WireGuard for safe browsing on kids' devices](https://martinhicks.dev/articles/wireguard-safe-browsing-kids)

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

[Read article →](https://martinhicks.dev/articles/wireguard-safe-browsing-kids)

  20th July 2025

### [Running AdGuard Home and Unbound on a home server](https://martinhicks.dev/articles/adguard-unbound-dns-home)

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

[Read article →](https://martinhicks.dev/articles/adguard-unbound-dns-home)

  3rd July 2025

### [Building a tiny Intel N100 home server](https://martinhicks.dev/articles/n100-home-server-build)

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

[Read article →](https://martinhicks.dev/articles/n100-home-server-build)

  16th May 2023

### [Remove trailing slashes with CloudFront and 11ty](https://martinhicks.dev/articles/remove-trailing-slash-cloudfront-s3-11ty)

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

[Read article →](https://martinhicks.dev/articles/remove-trailing-slash-cloudfront-s3-11ty)

  15th May 2023

### [Enhance CSRF package - now supports multipart form data](https://martinhicks.dev/articles/enhance-csrf-package-update)

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

[Read article →](https://martinhicks.dev/articles/enhance-csrf-package-update)

  24th April 2023

### [DynamoDB Streams locally with arc.codes & Enhance](https://martinhicks.dev/articles/arc-sandbox-table-streams)

DynamoDB Streams don't work locally with Dynalite. I built an arc plugin that fixes that with DynamoDB Local and a polling middleware.

[Read article →](https://martinhicks.dev/articles/arc-sandbox-table-streams)

[← Newer articles](https://martinhicks.dev/articles/1)Page 3 of 4[Older articles →](https://martinhicks.dev/articles/3)

---

Source: https://martinhicks.dev/articles/2
