Blog.
Recent Posts
Exploring garbage collection in V8 with WebGL
January 7, 2023 12 minOver the Christmas break, I’ve been working on a game engine called TSGL, using TypeScript and Web...
Can you learn to better predict the future?
November 20, 2022 7 minI spent the last weekend participating in HackX, a hackathon hosted by the Cambridge Existential Ris...
How to learn another programming language
November 14, 2022 10 minPlenty of people have already written about how to learn to program, but there are comparatively few...
All Posts
Exploring garbage collection in V8 with WebGL
January 7, 2023 • 12 minute readOver the Christmas break, I’ve been working on a game engine called TSGL, using TypeScript and Web...
Can you learn to better predict the future?
November 20, 2022 • 7 minute readI spent the last weekend participating in HackX, a hackathon hosted by the Cambridge Existential Ris...
How to learn another programming language
November 14, 2022 • 10 minute readPlenty of people have already written about how to learn to program, but there are comparatively few...
Building Stuart, a blazingly-fast static site generator
September 3, 2022 • 14 minute readA few weeks ago, I watched a video introducing me to Hugo, a static site generator written in Go tha...
How I built Equion, the mathematician's Discord
August 11, 2022 • 11 minute readLast week, I made Equion, one of my longest-running projects, open-source. Originally designed to he...
How are mutexes implemented in Rust?
July 16, 2022 • 11 minute readMutual exclusion locks, or mutexes, are a vital component of any multi-threaded program. In this pos...
Implementing atomics from scratch in Rust
July 8, 2022 • 10 minute readWhen talking about multi-threaded applications and concurrency, we often hear the term “atomic”....
Migrating TidesX to Cloudflare Workers and Workers KV
June 21, 2022 • 7 minute readThe recent heatwave here in the UK brought huge growth to TidesX, my tide times app which serves ove...
Two-factor authentication from scratch with TOTP
June 8, 2022 • 6 minute readTwo-factor authentication is a vital part of securing any account. By requiring a secondary code to ...
Dynamically generating embed images for Gatsby
May 29, 2022 • 6 minute readOne of the most important things about a blog is encouraging people to read it. A vital part of this...
Creating a blog with Gatsby
May 25, 2022 • 3 minute readWith the A-level exam season in full swing, I’ve been finding more and more creative ways to procr...