2025
- jj bough, a useful alias for stacked branches Oct 30, 2025
 - How not to write like a bot Aug 4, 2025
 - The solid universe of Thief: The Dark Project Jul 19, 2025
 - On being nuts Jun 9, 2025
 - Link dump 3 May 11, 2025
 - On booleans Apr 25, 2025
 - Those stars and stripes are torn in two Apr 18, 2025
 - Against PDFs Apr 13, 2025
 - Optimisation as vertical integration Apr 7, 2025
 - Nothing is too good for the poor Mar 15, 2025
 - Exploding the idea of a database Feb 5, 2025
 - Peace is the absence of fear Feb 4, 2025
 - The internet is a series of cables encircling the world Jan 20, 2025
 - A statement of intent for affordable housing in 2025 Jan 8, 2025
 - Link dump 2 Jan 7, 2025
 
2024
- Durable execution versus session backends Dec 27, 2024
 - Six months of Framework Dec 24, 2024
 - What Laravel's encrypted casts can protect you from Dec 16, 2024
 - It's a 1+n problem, not a n+1 problem Dec 12, 2024
 - De-escalate vocabulary, de-escalate hype Dec 7, 2024
 - Why there should only be 5 HTTP response codes Dec 5, 2024
 - Lightning talk on JSON:API at PHP Sydney Dec 3, 2024
 - Lessons from the JSON-RPC mailing list Nov 30, 2024
 - Somebody please clone Cloudflare Durable Objects Nov 29, 2024
 - We are all very near despair Nov 25, 2024
 - Farewell Devonshire Street, hello Pilgrim House Nov 24, 2024
 - Thoughts on git commits, branches, PRs and stacking Nov 23, 2024
 - Site repair Nov 19, 2024
 - Link dump 1 Nov 17, 2024
 - Nobody knows about Zulip Nov 14, 2024
 - Paradicms, a minimum viable CMS Nov 13, 2024
 - Rebuilding the blog Nov 12, 2024
 - Rebooting the blog Nov 9, 2024
 - Framework unboxing Jun 30, 2024
 - Attending Yearly Meeting 2024 Jun 26, 2024
 - Relational May 23, 2024
 - Exponential ideas Mar 20, 2024
 
2021
- Lego blocks are never a good analogy Dec 12, 2021
 - How I Learned OOP: A Nightmare Nov 5, 2021
 - Australian media has an RSS problem Feb 19, 2021
 
2020
- Destroy All Dependencies Nov 30, 2020
 - Lessons in object-oriented design Jul 7, 2020
 - Enemie Anonimous Jun 23, 2020
 - Wabi Concrete Box Jun 23, 2020
 - A stateless token case study: Algolia search API Jun 16, 2020
 - JavaScript's ecosystem is uniquely paranoid May 27, 2020
 
2019
- It turns everything it touches into a machine Sep 17, 2019
 
2018
- Book notes from 2018 Dec 31, 2018
 
2017
- Loyalty: a primer for my friends and family Oct 24, 2017
 
2015
- Development versus deployment: Docker and Haskell Jul 10, 2015
 
2014
- A matter of opinion: what I dislike about TorqueScript Dec 25, 2014
 - Monster Mash: entry #2 Jul 8, 2014
 - Monster Mash: entry #1 Jul 1, 2014
 - Monster Mash: entry #0 Jun 29, 2014
 - The Torque 3D shutdown sequence - a safari Jun 24, 2014
 - The Torque 3D unit testing system - a safari Jun 22, 2014
 - IO: You may say I'm a monad, but I'm not the only one! Jan 21, 2014
 
2013
- Micro-tutorial: liftM by accident Nov 28, 2013