blog archive

Like these posts? Subscribe to my email list or my RSS feed.

The technology behind a web app with 200,000 monthly visits September 2020

An overview of the frontend and backend technology and infrastructure I use to run a web application that is visited 200,000 times a month.

Testing command-line applications July 2020

How to write end-to-end tests for console applications

A subtle garbage collector bug July 2020

My most memorable bug: a memory error in a hand-written mark-and-sweep garbage collector.

A tool to manage git pre-commit hooks June 2020

How I wrote a simple, configurable and extensible tool to manage pre-commit hooks in git.

Type-safe generic data structures in C June 2020

Techniques for writing generic data structures in C using pointer casts and code generation through macros.

Writing an interpreter and debugger for an assembly language May 2020

The design and implementation of a toolkit for a pedagogical assembly language that included an interpreter, debugger and assembler and disassembler.