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.


Articles

28th July 2026

Dynoxide 0.12.0: PartiQL RETURNING, wasm conformance

RETURNING finally does something, the wasm build lands on the conformance board at 100% over three quarters of the suite, and PartiQL UPDATE stops creating rows it shouldn't.

Read article
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
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
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
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
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
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
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
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
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