Projects
Pass@k is Not a Property of a Model
Python, PyTorch, verl, AWS, SkyPilot
- Published first-author preprint on evaluating RL-trained LLMs & methods for training/testing; submitted to conference
- Showed central results of Limit of RLVR (Yue et al.) fall 3x (36 to 12 pts) by altering the wording of the test questions
- Evaluated that an ensemble of 3 independently trained Qwen2.5 runs beats one model by 6% at matched sample budget
- Showed the main reasoning benchmark (MATH-500) is 98.8% solved by base models it tests, leaving 6/500 trials usable
Agentic Polymarket Predictor
Python, Neo4j, Qdrant, Claude API, FastAPI, Modal
- Built a 5-stage agentic predictor for Polymarket, achieving 30.5% out-of-sample ROI on 950+ markets and 140+ trades
- Architected a hybrid RAG pipeline over Neo4j & Qdrant via Reciprocal Rank Fusion with a BGE reranker
- Beat or matched the market on Brier scores on the 53% of markets the model chose, validated across multiple evaluations
- Caught 96% of hallucinated claims via a 4-dimension LLM judge pipeline to detect priming, recency, & confirmation bias
First Person Boxing Game
Python, PyTorch, ONNX, MediaPipe, Rust, TypeScript, Docker
- Built a 2 player boxing game engine that tracks movement through your camera and simulates a boxing match, like a Wii
- Designed an ML model to classify punches into 5 types (ex. jab, hook) at 80% accuracy & compressed it to run in browser
- Architected the game engine using 33 tracked body points per player 60 times a second — works out from joint speed whether a hit landed and where, then runs damage with hit thresholds calibrated to each player's own reach and speed
CatanRL
Python, PyTorch Geometric, Gymnasium, FastAPI, AWS ECS
- Built a production multi-agent RL system for Settlers of Catan using MAPPO with self-play, served via FastAPI on AWS ECS Fargate
- Achieved a 74% win rate vs. random and 52% vs. rule-based agents (25% baseline) with a heterogeneous Graph Attention Network over a typed board graph
- Built an autonomous research agent using UCB1 bandit selection to propose & promote hyperparameter configs, closing the loop with drift-triggered retraining
Mass-Sender
JavaScript, Gmail/Outlook OAuth2
- Built an open-source bulk email sender with Gmail and Outlook OAuth2, CSV/XLSX input, rate limiting, and dry-run previews
- 13 stars on GitHub