Blog

Writing about code, life at the wannabee farm, and whatever else is on my mind.

Nubrixy 2.4: A New Look, Same Game

Glass menus, glossy neon blocks, a glowing board and an original soundtrack. How every screen of Nubrixy got a new look without moving a single button, with one set of design tokens shared by SwiftUI and SpriteKit.

Neon Swarm 2.0: The Mainframe, Endless Mode and Game Center

A fourth world that doubles the campaign, an endless mode with a map per world, achievements and leaderboards, and a phone that folds in half. Five more weeks on the tower defence game.

Neon Swarm: From Concept Art to a Playable Game

The tower defence game has a name, eighteen levels in three worlds and a soundtrack written in code. A progress update on where it stands and what's next.

New Project: Designing a Synthwave Tower Defence Game

The start of my next game: a synthwave tower defence for iPhone and iPad. The design pillars, the look, and the architecture decisions made before the real building starts.

Building Nubrixy: Designing, Architecting, and Shipping a Block Puzzle Game

Nubrixy started as a web prototype and became a native iOS block puzzle game. The architecture decisions — SwiftUI + SpriteKit, one scoring system, data-driven content — that let it survive feature creep.

mongo-cli — A TUI for MongoDB Snapshots

I needed a way to snapshot and restore MongoDB databases without mongodump. So I built a terminal UI tool in Node.js. Here's how it works.

Using Claude to Move Faster with Node.js, MongoDB, and RabbitMQ

Experimenting with Claude as a day-to-day tool on a familiar stack. Where it actually saves time, why proof of concepts are the sweet spot, and what to watch out for.

It's Time to Upgrade!

Seven years on a 2018 MacBook Pro i7. The fans are loud, the battery is gone, and the patience has worn thin. Time to move to a Mac Studio M4 Max.

Deploying beefone.dev with CircleCI

This site is plain HTML and CSS — no build step, no bundler. So the deployment pipeline is equally simple. Here's how a push to master ends up live on the server.

Duckie — An Update

She's doing well. Really well, actually. Duckie arrives every morning without fail for her breakfast. An update on our little duck with the broken bill.

Duckie Arrives

A wild duck turned up at the property with the top half of her bill missing. We started feeding her a warm porridge mix each morning. This is how it started.

Today I learned: How to use .env files natively with Node.js

Today I learned: How to use .env files natively with Node.js. This is so useful!

Rust, I am interested. Sort of...

Learning a new language, when life is, well, busy...

Mongoose Transactions, the Basics

Transactions ensure that a series of operations execute as a single unit, maintaining consistency and enabling rollback in case of errors.

Adventures in Java and JDownloader

I found myself wanting to mess around with Java again, to be fair I haven't touched Java in a long time, a really long time. Well let's jump into it!

Why Computer Science is More Important Than Ever in 2025

In 2025, technology is no longer just a part of our lives - it shapes them. From how we communicate to how we work, learn, and even make decisions, computer science is the invisible engine driving modern society forward.

Getting Started with Node.js and Express.js: A Beginner's Guide

When you're stepping into the world of web development, it's easy to feel overwhelmed by the number of tools and frameworks available.