Writing about code, life at the wannabee farm, and whatever else is on my mind.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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. This is so useful!
Transactions ensure that a series of operations execute as a single unit, maintaining consistency and enabling rollback in case of errors.
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!
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.
When you're stepping into the world of web development, it's easy to feel overwhelmed by the number of tools and frameworks available.