I am a front-end developer. That is my main thing. JavaScript, TypeScript, component frameworks, state management, the DOM and all its quirks. I have spent years in this world and it is where I am most comfortable. If you need someone to build a reactive UI or argue about whether signals are better than virtual DOM diffing, I am your guy.
I am also a PHP developer. Have been for a long time. Back-end work, WordPress, Laravel, the lot. That is another core part of my toolkit that has served me well for years.
It is not a secret anymore. Most developers use AI tools now. If you are not using something like GitHub Copilot, Claude Code, OpenAI Codex, or even just pasting problems into ChatGPT, you are probably in the minority. The stigma has evaporated. Nobody is pretending they wrote every line by hand anymore.
Using AI to write code is just what we do now, like using Stack Overflow was ten years ago except the answers are usually better and you do not have to scroll past three people arguing about whether the question is a duplicate.
I have had more ideas than I can count. A notes folder full of app concepts, half-baked prototypes in forgotten repos, domain names I bought in a fit of optimism at 2am. Over a decade of this. Life gets in the way. Work gets in the way. Kids, mortgages, health, relationships, fatigue. The ideas pile up and the backlog grows.
If you look at my GitHub, you might think I ship a lot. Nearly 200 repositories. Aurelia plugins, blockchain games, CLI tools, a regex battle game, apps for finance tracking and tattoo previews and bedtime stories. From the outside it probably looks prolific. But I know what is missing. The projects that never left my head. The code that never got written. The things I talked about for years and never touched.
I have never been a TDD purist. The whole write-tests-first-no-exceptions religion always felt a bit much. Sometimes you are exploring. Sometimes you do not know what the code should do until you have written it. Sometimes you just need to ship the thing and circle back to tests later. I get it. I have lived it.
But AI assisted coding has changed my relationship with TDD. Not because I suddenly found religion, but because tests solve a very specific problem that AI introduces: you cannot trust the output.
I write software for a living, often as a freelancer/consultant. My faith doesn’t make me louder; it makes me clearer. It’s the thing that nudges me toward honesty, courage, and high‑quality work when nobody is watching.
I built a small app called Regex Battle. It lives at https://regexbattle.com and it turns regular expressions into a head to head game. You get a prompt, a timer starts, and your goal is to write a regex that meets the challenge before the clock hits zero. You can play against another person or against a bot if you want to practice solo.
Regex Battle is a PvP regular expression battle game with a bot and PvP mode. Each round gives you an objective and a set of example strings. Your job is to write a pattern that matches what it should and rejects what it should not. When you submit, the app checks your regex against the round tests and shows the result. Fast and correct beats slow and almost. Simple as that.
I learned early that a day job will keep you busy, but it will not always stretch you. If you want to move forward, you have to put in reps outside the clock. Not forever, not at the cost of your life, but long enough and often enough to build range.
I started in an agency. Fast pace, many clients, constant context switching. I worked late nights and some weekends because I wanted to get better. That is not a long term lifestyle and I do not recommend burning yourself out, but those seasons taught me how to ship, how to debug under pressure, and how to own the result. They also taught me to set better boundaries later. You can hold both truths: growth often requires extra effort, and health requires rest.
For the past ten years, every good opportunity in my career has come through people. Former clients who referred me. Colleagues who remembered a job I did well. Friends of friends who needed help and trusted the recommendation. In Australia especially, the circles in tech are smaller than you think and the degree of separation is tiny.
If you build real connections, you can often sidestep the mess that is interviewing and get hired for the work you actually do, not for how fast you can solve an algorithm on a whiteboard. I am genuinely grateful for that.
I have spent a lot of years writing documentation, first for Aurelia 1 and more recently for Aurelia 2 at docs.aurelia.io. The scale taught me a few things that travel beyond any framework. Good docs are not marketing. Good docs help someone ship. That is the bar I write to.
I built a new thing: Hive Ships. It lives at https://hive-ships.com and it turns the classic Battleship idea into a turn based, competitive game on the Hive blockchain. You place your fleet, you face another player, and the winner earns HIVE. Simple rules, quick rounds, real stakes.