Latest Blog Posts

Deriving cache write tokens from OpenRouter
November 21, 2025 | 1259 words | 6 min
How to recover Anthropic cache write tokens from OpenRouter using cost-based backsolving.

Just One More Browser I Swear
October 23, 2025 | 1915 words | 9 min
A look at the browsers that shaped my workflow and where the future of browsing is headed.

Rediscovering Hypermedia in a Component-Obsessed World
May 8, 2025 | 2663 words | 12 min
Hypermedia driven interactivity with HTMX in ASP.NET Core: simple, fast, and focused.

Alexa, When's the Next Bus: Wellington Public Transport
October 29, 2024 | 2242 words | 10 min
A detailed look at building an Alexa Skill for Wellington’s public transport, focusing on performance optimization and accessibility.