Projects

Things built outside work, mostly to find out how something actually behaves rather than how it is described.

franklin active

A SIMD-optimised dataframe in C++

Columnar dataframe built around explicit vectorisation — the interesting part is the gap between what the compiler will auto-vectorise and what it will not, and how much layout work it takes to close it.

  • C++
  • SIMD
  • Data structures
  • Performance

pmm private

Prediction market machinery in Rust

Pricing and market-making infrastructure for prediction markets. Rust, and the reason I now reach for Rust by default on anything with real concurrency in it.

  • Rust
  • Market making
  • Quantitative

This site active

Server-rendered Rust, one round trip to first paint

Axum and Maud, no client framework. Latin-subset webfont at 10KB and inlined critical CSS put the entire above-fold render inside a single TCP initial congestion window. Written up in the blog.

  • Rust
  • Axum
  • Maud
  • Web performance
  • SEO

LinAl-Calc archived

A linear algebra calculator with variables

Vector and matrix variables, elementary operations, and the less elementary ones — basis calculation, inverses, projection, and least-squares solutions.

  • C++
  • Linear algebra
  • Parsing

AudioAnalysis archived

Live frequency distribution from the microphone

Reads audio off the system microphone and renders its frequency distribution in real time. A good excuse to actually implement an FFT rather than call one.

  • C
  • DSP
  • FFT
  • Real-time

Edge-Detection archived

Sobel edge detection from scratch

Matrix convolution with a Sobel operator to find regions of high contrast. Image processing with no library doing the interesting part.

  • Java
  • Image processing
  • Convolution