CS + Math at Vanderbilt, class of 2029. I build quant and ML systems.
neural-options-lab (live demo): deep-learning pricer for arithmetic Asian options, 1.3 bp ensemble price RMSE against 200,000-path Monte Carlo references on 600 held-out points. It also carries a rough-volatility 0DTE model whose served checkpoint holds a live SPY calibration adopted 2026-08-20, Deribit BTC surface ingestion with static-arbitrage checks, and a regionally validated neural pricing map that calibrates a live 618-quote SPY capture in about 3 s on a CPU, within 0.046 vol points of the 68 s GPU Monte Carlo fit.
hft-lob: C++20 limit order book for NASDAQ ITCH 5.0, run on NASDAQ's full historical sample day for 2019-01-30: 368M messages into 8,695 books, with no order dropped and no price rounded. A naive reference model run alongside it found zero mismatches, both in what each of the 363M order messages touched and in every book compared in full at all 76 checkpoints of the day, and the file's closing crosses equal Nasdaq's official closes for all 10 symbols checked. Each book places and re-centers its own price ladder using only the messages it has already applied, as a live feed handler would. On one P-core of a Core Ultra 7 265H laptop it applies the day at 10.4M messages/second (median of five runs), within 4% of ladders placed from a pre-scan of the same file (10.7M in the same batch, a look-ahead upper bound), and timing every message individually gives p50 178 ns and p99 1.02 us. A second NASDAQ day (2019-12-30), with the policy unchanged, also shows zero mismatches and runs at 9.5M against 10.2M. Two recorded days on one laptop, with the console output for every figure in the repository.
raft-exchange: a Raft consensus core written from the paper and verified by deterministic simulation before any networking exists, with a price-time-priority matching engine as the replicated state machine. C++20, CI on three toolchains, and a mutation gate in which all 24 hand-written defects are killed by a named assertion. The cluster runs in simulation; the networked build is not there yet.
hft-market-maker: a 500-seed paired study of Avellaneda-Stoikov market making on a synthetic mid. Against the fixed-spread benchmark, inventory risk falls 17% and max drawdown 14% at the cost of 36% fewer fills; a four-arm decomposition attributes 12.1 of those 17 points to quoting wider and 4.9 to the inventory skew, and the P&L difference is not significant. The model buys risk reduction with volume, not edge.
prediction-markets-lab: a self-recording archive of four prediction-market venues (Kalshi, Polymarket, PredictIt, Manifold), snapshotted by a two-hourly cron since 2026-08-23 at a realised median cadence of 3.5 h. The repo replays the archive on every run: over the first 163 snapshots (26.68 days, through 2026-09-18) and 1.8M adjacent Kalshi ladder pairs, 462 readings break monotonicity, and those readings are 135 distinct strike pairs; 11 readings across 6 strike pairs in 3 events survive the venue fee model. Gross incoherence is common, net incoherence is rare.
crypto-microstructure: a self-recorded L2 book and trade recorder for Coinbase and Hyperliquid, plus an order-flow-imbalance harness, measured on one free Tardis day (Coinbase BTC-USD, 2026-09-01, 43.7M messages, 86,379 one-second bars). Across four purged walk-forward folds and 69,090 out-of-sample bars, multi-level OFI predicts the next second at OOS R^2 0.0081 (block-bootstrap CI [0.0046, 0.0117]) and is indistinguishable from zero by 30 s; the top decile of |prediction| earns at most 0.26 bps against a cheapest taking cost near 7 bps, so it does not pay through the spread. One day, one venue, one pair, and a measured negative.
ssda-folio-pipeline and ssda-nlp-tools: the vision and record-linkage stages that turn a ~750,000-image colonial archive into a queryable database of people, events, and family ties. Sole developer, for Vanderbilt's Slave Societies Digital Archive.
Also built climateharbor.org, a climate-data platform with users in 35 countries.


