June 2026 Make your habit a social one Why “accountability” is a buzzword. May 2026 Creating a test user Agile doesn't exist People on the Footpath April 2026 Code Review is Bad and Good? Justifying code review to myself. Notes on the Profitec Go My thoughts on this espresso machine after 18 months. March 2026 Your Best Manager Will Terminate You How I got fired from my first developer job. Slop I’m sick of LinkedIn. February 2026 OpenSearch Serverless at Deputy The most egregiously over-engineered solution I have ever been a part of. January 2026 I Missed Working from the Office How I felt after five years of being fully remote. October 2025 Leetcode 3186: Maximum Total Damage (in Go) I got skill gapped but I think I learned something? September 2025 Three Easily Avoidable Technical Interview Mistakes How I think candidates can leave less of the interview up to chance. When Is It Okay to Work Late? What I think about working longer hours. Dead Money I argue that the stigma around renting is unwarranted. Cataract Dam Turns out you can just visit dams, Water NSW actually encourages it! August 2025 Postmortem: Deputy Why Deputy wasn’t right for me, in the end. Three Ways to Make Your PRs (And Repos) more Readable My advice for writing human-readable code, even in the age of AI. February 2025 Redirect a file writer to a variable in PHP using Output Buffers What to do if your legacy dependency only writes to file. December 2024 Hugo Commenting Systems: A Comparison of Open-Source Options Which comment system should you use for your static site? Personalised Careers Pages Made With Generative AI How we built our hackathon project with Anthropic Claude and AWS. September 2023 Analog Photography (featuring the Yashica Electro 35) How I restored a 50 year old camera into working order. Ailo: didn't ask, don't want, don't need. My criticism of Ben White’s property management software Ailo, and how renters are the product, not the user. July 2023 Troubleshooting Reflections in Product Photography A quick article about what I learned on avoiding unsightly reflections. Thoughts on Neovim & Some Configs How I’ve customised Neovim to my personal taste. June 2023 Deputec Locking and Timesheet Concurrency Problems Notes while thinking through concurrency problems. March 2022 How to Rebase A presentation I made at Deputy to explain why we might choose rebasing over merging. January 2021 Implementing CRC-32 in Decaf The challenge of implementing bitwise arithmetic in a high-level language without bitwise abstractions. My Garry's Mod Projects Personal projects from my high school and early university years that generated my first programming income.