martyw.dev

About

Who I am, what this site is for, and how the writing on it actually gets made.

I'm Marty. I live on the NSW Central Coast with my three kids, in a smaller, older house on a worse street that I bought on purpose and have been slowly fixing up ever since.

I write software for a living — TypeScript mostly, with enough SQL to have opinions about it. The day job is platform work at Simply Wall St; the rest is agency work through Neat. In between there's arcade2d, a 2D game engine for the browser that I spent two years describing before I wrote a line of it. Most of what I make ends up on GitHub eventually.

Away from the keyboard, or at least a different keyboard: hardware I don't strictly need, spreadsheets about money, a long-running argument with myself about how much stuff is too much, and games — survival horror and JRPGs, with a standing weakness for whatever Capcom decides to remake next. I think about how people talk to each other at work more than is probably normal for someone with "engineer" in their title.

The through-line, if there is one, is cost of ownership. An object, a dependency, a cache, a mortgage — everything asks for something back after you acquire it, and most of my thinking is some version of working out whether the return covers the bill.

What this site is

A general dump of my thoughts, not an engineering blog. Software turns up a lot because that's what I do all day, but so do hardware, money, the house, games, books, and the occasional thing I can't place in a category. Posts are the long-form end — the ones that took some working out. Notes are short: a link, a fragment, a showerthought that didn't need a thousand words. The tags are the honest map of what actually gets written about.

There's no newsletter and nothing to sign up for. There's an RSS feed, which is enough.

How the writing gets made

The posts on this site are generated by AI. The content isn't.

Everything here starts as real material I've produced somewhere else — weekly reflections, work documents, incident write-ups, the notes I keep while thinking something through, an argument I've already had once. The scenarios are ones I was actually in, the reasoning is reasoning I actually did, and the conclusions are ones I hold. Claude's job is to find the post inside that pile and put it in order, not to have opinions on my behalf. Then I go through the draft line by line. Nothing goes up that I haven't signed off on, and anything that didn't survive the fact-checking pass gets flagged in the post rather than quietly smoothed over.

The reason for the arrangement is unglamorous. I've wanted a maintained blog for years and never had one, and the blocker was never material — it was the hours between a half-formed thought and something worth publishing. That cost compounded into "next weekend" forever. This setup is the lever that finally got the queue moving. The ideas were always mine; AI is just why the site actually gets updated.

The longer version — the workflow, the fact-check step, and why I care so much about speculation being labelled as speculation — is in How this blog gets written.