Programming
Ways of writing code: functional programming, currying, algebraic effects, declarative code and type checking in plain JavaScript.
Too much code to read
Managing AI agents when they write more code than you can read.
26 October 2026Maintaining a PHP framework for 25 years
From copy-pasted code in a web design company to a modular monolith, one version at a time.
7 October 2026A globally standard stylesheet
One stylesheet for plain, standards compliant HTML, instead of a sea of divs and classes.
15 July 2026Declarative programming
Write-up to come.
14 March 2022Modular monoliths in PHP
One PHP application built from small modules with strict edges, each ready to become a service.
14 December 2021How I organise Node modules
A module is one tree of names, and every name is written out in full wherever it's used.
21 August 2021Simple typechecking goes a long way
Most bugs in plain JavaScript are a value of the wrong type, so it pays to check them at the door.
29 June 2021Type safety at the boundaries
Checking data from the outside world once, as it arrives, with FromJson functions and a small assert library instead of a schema library.
17 November 2020Angular best practices for large teams
Keeping a large Angular codebase small by having one right way to do everything.
20 October 2020Declarative charts in Angular
Charts written in the template as components, instead of data objects built first.
22 July 2019DOM as data
A CSV download whose columns and rows are components: a preview in the page, and the data for the file.
19 July 2019Composable typechecking in JavaScript
Catching type errors early in plain JavaScript with small type checks that compose, including checks for objects.
9 July 2019Curried functions in JavaScript
Curried functions exists in some programming languages and they are functions which have been called without all their arguments. This yields a new function which has the remaining arguments, which can be called with those arguments to get a return value from the original function.
7 July 2019Simulating algebraic effects in JavaScript
Write-up to come.
26 September 2018SWF disassembler
A disassembler and decompiler for the ActionScript 1 and 2 in Flash SWF files, in JavaScript for Node.js.
23 September 2012