Projects
Things I've built, big and small.
- Label-Only Membership Inference
Reproducing Choquette-Choo, Tramèr, Carlini & Papernot (ICML 2021): recovering a confidence-like signal from hard labels alone, and using it to tell a model's training data from data it has never seen. Written up as a series, with the models built from scratch.
- Model-written evals
Reproducing Anthropic's model-written evaluations (Perez et al., 2022) against current models to see which behaviors persist.
- Invoice & Payments
A full-stack invoice and payments app (FastAPI, React, TypeScript, PostgreSQL) with a full invoice lifecycle, partial payments, and row-level locking to prevent overpayment under concurrency.
- Toronto Public Resource Density API
A FastAPI backend that ingests Toronto's open municipal data and serves neighbourhood-level resource-density analytics, with geospatial pipelines built on GeoPandas and Shapely.
- Pairs-trading system (in progress)
A statistical-arbitrage pairs-trading system I'm building with a collaborator — currently in progress.
- first-order miniKanren
A research implementation of miniKanren using a first-order representation of its search space, written in Racket. A collaboration; I contributed disequality and type constraints, reification, state simplification and rewrite rules, along with the test suite.
- Baobab
A social platform connecting entrepreneurs and mentors, built for the African Impact Challenge.
- The Joy Bot
A mental-health chatbot that helps users identify what they might be experiencing — built at the SheHacks hackathon with React and Dialogflow.
- MuKanren
A Racket implementation of MicroKanren, a minimal logic-programming language — an exercise in understanding how relational programming works under the hood.
- Subspace-inator
A Python tool (NumPy, SymPy, Tkinter) that computes the number of invariant subspaces of a linear transformation using its Jordan Canonical Form.
- This blog
A minimal, fast static site built with Astro and Markdown to document my work and learnings.