Work

Things I've built.

01

ascii-physics

A 2D physics engine that renders to the terminal — a constraint solver over sparse matrices, pluggable ODE integrators, and composable force generators driving cloth and particle demos in pure ASCII.

  • C++
  • Numerical Methods
  • CMake
02

moodle-downloader

A CLI that bulk-downloads course files from any Moodle instance — API-token or browser-cookie SSO auth (including Shibboleth), resumable SQLite-tracked state, parallel workers, and checksum-based change detection.

  • Python
  • CLI
  • SQLite
03

Werewolf

A backend for hosting werewolf games online — Spring Boot with a hexagonal domain/ports/infrastructure split, WebSocket room events, code-based authentication, and server-driven phase timers.

  • Java
  • Spring Boot
  • WebSocket
04

Differentiation Machine

A small differentiation engine in OCaml — a hand-written parser builds expression trees that are evaluated and differentiated symbolically, with .mli interfaces throughout.

  • OCaml
  • Parsing
  • Symbolic Math
05

Market Winner

A clean-room reimplementation of Capitalism Lab — an OCaml backend driving the simulation over a WebSocket connection to a TypeScript/Vite frontend.

  • OCaml
  • TypeScript
  • WebSocket
  • Vite
06

Fossick

Semantic file search: a Python backend computing vector embeddings into Qdrant, with a lightweight HTMX frontend for querying your own filesystem by meaning rather than filename.

  • Python
  • Qdrant
  • Embeddings
  • HTMX