projects: mostly applied AI, market microstructure, and making mathematical objects you can poke at. all of it is on github.
measures how quickly sports prediction markets respond to live events
records events from a phone at a game and compares their timestamps with changes in the kalshi order book. uses clock synchronization to measure the delay between an event on the field and a change in market prices.
swift · python · websockets · market data
turns ut austin lecture captions into study materials
generates notes, flashcards, and practice questions from lecture captions. runs the model locally in your browser using webllm and splits long lectures into sections for processing.
next.js · webllm · rag · supabase
a journal with ai prompts based on your past entries
uses past entries to generate personalized journaling prompts. encrypts entries on your device before storing them and keeps the encryption key in the ios keychain.
react native · expo · supabase · gemini
a texas hold'em bot you can play against
trains a poker bot through self-play using counterfactual regret minimization. includes a streamlit app for playing against it and a card and chip detector for photos of poker tables.
python · cfr · game theory · yolo
backtests a trading strategy based on polynomial price bands
fits a polynomial to recent closing prices and uses bands around it to generate mean-reversion trades. compares results across stocks and parameter settings against buy-and-hold returns.
python · streamlit · backtesting
shows stockfish move suggestions over an onscreen chess board
reads chess pieces from your screen, sends the position to stockfish, and draws an arrow for the suggested move. updates as the board changes and can read games already in progress.
opencv · pyqt6 · stockfish
explore the mandelbrot set and its corresponding julia sets
click a point in the mandelbrot view to display the julia set for that parameter. also colors regions by their period. available as a desktop app and a browser app.
python · streamlit · numpy · complex dynamics
create rules for 2d cellular automata and watch them run
choose which cell patterns produce a live cell in the next generation, then run the simulation to see how the grid changes. includes python and browser versions.
javascript · python · numpy · canvas
exports captions from ut austin's lecture player
a chrome extension that collects lecture captions as they appear, removes repeated text, and exports the transcript as plain text.
chrome extension · javascript