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.


The teal Parity Suite logo centred on a near-black background, with the paritysuite.org wordmark in white beneath it 17th July 2026

You can't pin DynamoDB to one region

My DynamoDB conformance suite took one AWS region as ground truth. Then that region started accepting a value the rest of AWS rejected, and weeks later reverted it. AWS ships changes region by region, so one region was never a safe baseline.

Read article →
The Dynoxide hexagonal logo centred on a near-black background 5th July 2026

Dynoxide 0.11.3: closing a Windows port hijack

Issue #23 asked for a Windows socket option investigation. It found the opposite problem: dynoxide's ports could be hijacked by a same-user process. 0.11.3 closes that, and the test suite now runs on Windows for the first time.

Read article →
The Dynoxide hexagonal logo centred on a near-black background 2nd July 2026

Dynoxide 0.11.2: a stack of conformance fixes

Last week I pinned what a conditional DynamoDB transaction costs against real AWS. Dynoxide 0.11.2 makes the engine report the same numbers, fixes an UpdateTable bug that dropped your table keys, and closes a stack of projection and validation gaps.

Read article →
The teal Parity Suite logo centred on a near-black background, with the paritysuite.org wordmark in white beneath it 1st July 2026

What a conditional DynamoDB transaction actually costs

Does a conditional write inside a DynamoDB transaction cost read capacity on top of the write, or is it write all the way down? The docs aren't clear, so I ran it against real DynamoDB and pinned what it costs, re-checked on every run.

Read article →
The Dynoxide hexagonal logo centred on a near-black background 26th June 2026

Dynoxide 0.11.1: four conformance fixes

A small dynoxide patch. Four fixes where the engine evaluated an expression or validated a number a bit differently from real DynamoDB, most of them checked back against real AWS.

Read article →
A faded screenshot of the accesspatterns.dev playground console with the accesspatterns.dev wordmark overlaid, in the dark oxide theme 25th June 2026

Learn DynamoDB by running it - accesspatterns.dev

DynamoDB is a brilliant database and a hard one to learn. So I built accesspatterns.dev - a real engine in a browser tab where you learn it by running it, from your first GetItem to single-table design. No AWS account, nothing to install.

Read article →
The Dynoxide hexagonal logo centred on a near-black background 25th June 2026

Dynoxide 0.11.0: wasm on npm, plus a stack of fixes

Dynoxide 0.11.0 packages the browser engine as @dynoxide/wasm-engine - npm install and run a DynamoDB engine client-side - and a stack of correctness fixes, most of them turned up by the conformance suite.

Read article →
A thin horizontal line of amber light on a near-black background, running level then stepping up to a slightly higher position partway across, as if a baseline has shifted underneath 9th June 2026

I watched DynamoDB change under my conformance suite

The reference in my DynamoDB conformance suite went red: real AWS had reworded its validation errors. Two regions have the new wording, two still have the old - a rollout caught mid-flight, with the suite watching the reference move.

Read article →
Strands of warm amber and orange light converging from the left into a single bright point on the right, against a near-black background 3rd June 2026

Build the squad. Own the platform. The org chart will catch up.

Once the technology works, deploying AI agents becomes an organisational problem - where it lives, who owns it, who carries the risk. My answer: build a deployment squad, own the platform, and let the org chart catch up.

Read article →
Illustration of the Dynoxide logo with DynamoDB table icons on a dark background 29th May 2026

Dynoxide 0.10.0: it runs in the browser now

The same DynamoDB engine now runs in a browser tab on OPFS, there's an official ~5 MB Docker image, and a storage-backend trait sits underneath it all. The biggest dynoxide release since the engine itself, and the first that breaks things.

Read article →