Articles and tutorials
Notes from a decade of building software. TypeScript, AWS, Node.js, Ruby, Python and the craft around them.
Latest posts
-
Moving melbcoffee.com from Vercel to Cloudflare
Porting melbcoffee.com from Next.js on Vercel to a static Astro site on Cloudflare, splitting it into English and Japanese with machine translations, and testing how well Fable 5.2 follows a UI/UX skill
-
Moving my blog from Vercel to Cloudflare
Why this blog moved from Next.js on Vercel to a static Astro site on a Cloudflare Worker, the tools behind it, and what the move did for performance
-
Building the Matcha Byron Bay website
A rundown on the design, technology and wholesale work behind the new Matcha Byron Bay website
-
Building the Pocket Rice marketing website
A rundown on some of the designs and working behind the Pocket Rice marketing website
-
Two Pointers
Learn how to spot two-pointer problems and walk through pair sum variants with interactive visuals
-
Software Interview Guideline 2026 (Australian edition)
A collection of links, ideas and approaches to interviewing for software companies in 2026.
-
Using BuildKite with AWS CodeBuild
A working proof-of-concept for using BuildKite with AWS CodeBuild with the AWS CDK
-
Using AWS Bedrock with opencode
Setup your opencode CLI to work with AWS Bedrock foundational models
-
Interface-based functional optionals in Golang
A pattern to pass optional settings to build flexible constructors without a ton of parameters.
-
Adding Swift packages in Xcode
Learn how to add the popular Swift networking package Alamofire in a Swift Xcode project
-
Swift from the command line
An introduction to using Swift without Xcode
-
Building TUIs with Golang and tview
A practical walkthrough for your first steps on building TUIs with Golang and tview
-
Implementing more manageable transform streams in Node.js
After working through async generators and class streams, I'm sharing my conclusion on making these streams more manageable
-
Configuring Omarchy on Beelink
This walkthrough describes the steps taken to load Omarchy, an opinionated archlinux/Hyprland setup, onto my new Beelink SER5.
-
TypeScript Private Elements vs Private Modifiers
We explore private elements in classes and why you should use them over modifiers
-
Tail Recursion
Understand what tail recursion with this visual aide and example in Zig.
-
Data Classes in TypeScript
Learn how classes focused on holding data can clean up type definitions and provide discriminants for your TypeScript code.
-
Isolating PostgreSQL Tests with PGLite
Learn how to rapidly extend your test boundaries to the database without losing speed or introducing flaky tests.
-
PostgreSQL Performance
Learn more about PostgreSQL indexing practices and performance measurement in this blog post.
-
Multi-tenant testing
Exploring Uber multi-tenancy paradigms and seeing how they can impact testing in TypeScript.