Skip to content

Developer Diaries

Journey through Lines of Code </>

Building a Rust Statistical Arbitrage Portfolio Bot

A pairs trading bot is not interesting because it computes a z-score. It gets interesting when you make multi-leg execution, research hygiene, and runtime honesty part of the strategy rather than cleanup work.

Systems

#rust#trading#statistical-arbitrage#backtesting#portfolio#bybit
6 Sept 2026 10 min read

Can ICT and SMT Actually Work in Crypto?

Crypto does show timing effects, liquidity dislocations, and short-horizon mean reversion. That still does not prove the retail version of ICT and SMT survives fees, out-of-sample testing, or live execution.

Trading

#crypto#trading#ict#smt#market-microstructure#backtesting
6 Sept 2026 10 min read

Prerendering a Blog With Shiki

How this blog turns a folder of markdown into static HTML with build-time syntax highlighting, and the three things I had wrong when I first wrote it up.

Tooling

#sveltekit#markdown#shiki#prerendering#marked
14 Aug 2026 13 min read

Automating the Booking.com Extranet

Booking.com has a rates API that a single property cannot get at, so I drove the extranet with Playwright instead — a session I log into by hand, bulk edits instead of per-date writes, and a journal that makes an interrupted run resumable.

Automation

#playwright#typescript#python#automation#browser-automation
3 Aug 2025 12 min read

What a Go Scaffold Should Look Like

Keytide is an IAM service that doesn't exist yet, and revisiting it I found a layout I wrongly called standard, an auth middleware that validates nothing and admits it, and no wiring between the two.

Backend

#go#architecture#security
26 Jun 2025 13 min read

Modelling Traffic Fines in Postgres

A fines system where the hard part wasn't the CRUD — it was deciding what an offence is, what a penalty was worth on the day it was issued, and who is allowed to say either.

Backend

#typescript#postgres#sequelize#data-modelling#temporal-data
9 Jun 2024 12 min read

Writing a unified Plugin for Code Blocks

How to wrap markdown code blocks in a language label and a copy button by rewriting the HTML syntax tree with a rehype plugin, and what the inline onclick actually costs you.

Tooling

#typescript#unified#rehype#markdown
18 Mar 2024 11 min read

An E-commerce Site With No Framework

A shoe shop built from two HTML documents, three scripts and a JSON array, and what building a catalogue by hand teaches you that a component model would have hidden.

Frontend

#javascript#jquery#css#dom#html
12 Apr 2023 12 min read

Audio State Is Not React State

An audio element owns playback state that React thinks it owns too, and since React 18 there has been a first-class hook for exactly that problem.

Frontend

#react#javascript#audio#hooks
20 Jan 2023 13 min read

Reading Matrices From Files in Python

How to read a whitespace-delimited matrix from a text file and fail with an error that names the line number, and why that is most of the program.

Python

#python#parsing#validation#numpy#linear-algebra
5 Nov 2022 12 min read