Software · research · writing
I like making difficult machinery disappear.
I build software around parsing, structured generation, and machine learning—usually with an eye on the part of the system that becomes expensive, awkward, or hard to reason about.
Current work
Grammar-constrained decoding, with most of the hard work moved out of generation.
A Rust and Python library for JSON Schema and general context-free grammars. GLRMask compiles lexer, parser, and tokenizer interactions into weighted automata so the runtime can produce the next-token mask from the current parse state.
Rust · Python · parsing GLRMask Open project site →
Selected work
weighted-gss
A persistent compressed map from parser stacks to weights, extracted from GLRMask.
Python · 2022–2024einexpr
An experimental library for named tensor dimensions and Einstein-style array programming.
Web · 2023–2025ToastChat
A streamed chat client built around rich Markdown messages and an intentionally small interface.
Research · 2019Bayesian mixtures
Honours research comparing MCMC and variational inference for finite mixtures of gamma distributions.