Projects

Selected work in mechanistic interpretability, document intelligence, data engineering, distributed systems, model evaluation, behavioral machine learning, LLM agent design, and simulation. Each project has a short case study. Most also have a technical report with the experiment history, metrics, and steps to reproduce the results.

Content review: 6 November 2026. Test totals and benchmarks belong to the snapshots named on each page; they are not live status counters. Some older reports retain historical results and are labeled where newer releases supersede them.

Mechanistic interpretability

Neuron Atlas

Live browser model · steering & random-direction controls

An interactive map of all 8,192 TinyStories neurons, with live steering and ablation, matched random controls, and replayable findings. Larger Qwen models are explored as offline recordings, not live browser inference.

TypeScript Three.js PyTorch Interpretability

Document intelligence

Four connected projects about one question: how do you sort and read business documents accurately, at a cost you can defend?

Digital-Mailroom

Capstone · American Family Insurance

The capstone design: five Python packages and one LangGraph pipeline for document routing, prompt experiments, deterministic scoring, and deployment, trained and tested on a dataset I assembled from public sources.

LangGraph Docker Dataset design

Mailroom-ML

Training, evaluation & calibration

A ModernBERT classifier that handles the easy documents quickly. It calibrates its own confidence, so it knows when to pass a document to an LLM.

PyTorch Calibration ONNX Modal

Mailroom Reloaded

Agentic pipeline · deployable rebuild

The mailroom as one service you can deploy. A deterministic driver runs CrewAI agents in a fixed order, escalates hard cases by fixed rules, and records every decision in an audit log.

CrewAI Flows FastAPI OpenTelemetry

RVL-CDIP-Classifier

Vision LLMs & prompt engineering

A study of zero-shot document classification with vision LLMs. It covers 29 tracked prompt versions, accuracy checked on larger slices than the tuning set, cost per page, and Monte Carlo analysis of ensembles and routing.

OpenRouter Evaluation Error analysis

Data engineering & visualization

Mailroom-Corpus-EDA

Data engineering · dataset build, audit & publishing

The data work behind the mailroom projects: 3,302 documents assembled from public sources, with stable identifiers, a record of how each label was made, and labels kept out of the text a model reads. An audit pipeline checks every number it publishes, and once caught itself reporting a false failure.

Python pandas Hugging Face Hub Provenance

AeroGlobe

In active development · 3D flight data on a globe

A browser globe for flight tracking, built around a static data pipeline so that flights can be replayed without an always-on server. An early version is live: it shows a short sample of real traffic recorded when the site was built and replays recorded tracks, and full-day playback is planned.

TypeScript CesiumJS React Data pipeline

Big data & distributed systems

MapReduce-Reloaded

In active development · distributed systems · Go & Python

A from-scratch rebuild of Google’s 2004 MapReduce, with a Go cluster and a Python reference. The paper mapping now includes 24 items, including performance experiments. S3 storage, compression, a VM evaluation and the final report are built; full Python worker parity remains a stretch goal.

Go Python gRPC Docker Compose Fault tolerance

Behavioral machine learning

Psychometric Digital Twin

Behavioral ML research · UW–Madison

Can an LLM, told who a survey respondent is in the second person, predict that person’s own communication-apprehension scores? Seven classical models against LLM personas on 241 respondents, with error checked by demographic group. The personas did not beat simple baselines.

scikit-learn XGBoost SHAP vLLM

Cognitive neuroscience

The Neural Architecture of Truth and Deception

Cognitive neuroscience research · UW–Parkside

Nine participants each talked to two chatbots told either to help or to deceive. Exam scores rose after the helpful personas and fell after the deceitful ones, and almost nobody flagged the deceit.

Truth-Default Theory Chatbot personas Pilot study

LLM agent design

MORNINGSTAR

Persona framework · prompt architecture

A courtroom of LLM personas that argue, vote, and issue a written ruling on engineering decisions, plus a tamper-evident log library the runner does not call yet. One model plays every seat, and it has not yet been tested against a single-prompt baseline.

Prompt design Python Hash chains

Side projects & interests

Wave Laboratory

Simulation & graphics · runs in the browser

A real-time 3D ocean you can experiment with. Spectral wave models, rogue waves, and ships that move in all six directions run in a Web Worker and render with WebGL 2.

TypeScript Three.js Physics Accessibility

Langton’s Ant

Simulation · runs in the browser · version 0.1.0

A simulator for Langton’s ant and other turmites on an unbounded grid, with a gallery of 20 published machines. It is an early version, and the engine has a pinned determinism test.

TypeScript Canvas2D Cellular automata Testing

The Mandalay Bay

Game systems · CLI, browser & pixel RPG

A satirical casino resort simulator with one chip wallet shared by a Python command-line game, a browser terminal, and a Phaser overworld. Play chips only.

Python JavaScript Phaser Testing