About Me
Hello, I'm Mark and I develop stuff.
I spend a lot of time thinking about how to organise and structure code to keep it neat, readable, and easy to extend.
I spend even more time (probably) automating tooling to keep the neatness baked in and make sure nothing breaks after every change. This is why I'm a big fan of TDD and CI/CD automation, and I'm sure I've got the time back by not having to manually test for regressions after every tweak.
The best is the enemy of good.
— Voltaire, Questions sur l'Encyclopédie
Ok, sometimes I may have spent a bit too long automating a thing, and maybe I've tested a few too many edge cases - but at some point I'll break even (probably).
So this is my corner of the web. I want to share what I've learned building software professionally and help others avoid the mistakes I've made. It's a place for projects and notes, with deep dives on how I approach building things and how I automate the repetitive bits.
I work mainly in C# these days, and I love the compiler and the strong static typing. I also really like TypeScript and the tooling around it, especially Vite, Vitest, and recently Astro.
Automation is my secret weapon though. I use local scripts to validate (formatting, linting, compiling), build, and then test my projects locally, with automated pipelines to do the same automatically on code merges before finally deploying to staging and production environments.