Home Notes Research CV Projects Outside of Math

Projects

A few personal software projects, some connected to my mathematics and some not.

Number Theory & Arithmetic Geometry

Projects built on the mathematics I work with: elliptic curves, and the number theory behind modern cryptography.

Interactive · Elliptic Curves

Rank Increase Simulator

Try it live View on GitHub Technical Summary

An interactive tool for watching the rank of an elliptic curve change under quadratic twists. Enter a curve over the rationals by filling in its Weierstrass equation, and the simulator computes its minimal model, Mordell–Weil group, and generators. Then choose a target rank (0, 1, 2, 3, or at least 4), and it searches the squarefree integers d in order of |d| for the first twist E(d) with that rank, showing that twist's minimal model and generators, and then offers to keep going and find another.

Every computation runs live in your browser, using the WebAssembly build of PARI/GP spread across several parallel workers. Each rank comes from a 2-descent and is labelled with how it was certified: proven by descent, proven via Gross–Zagier–Kolyvagin, or conditional on BSD. A running tally of the ranks of all twists checked lets you watch Goldfeld's conjecture (half rank 0, half rank 1) emerge.

Web App · Cryptography

Secure Messenger

Try it live View on GitHub Technical Summary Encryption Methods

This is the final deployment of the Secure Messenger app, an end-to-end encrypted messaging web app I built during my Spring 2026 independent study in applied cryptography and encryption methods.

Messages are encrypted client-side, in the browser, before they ever reach the server, so the server only ever handles ciphertext — never plaintext messages or the keys needed to read them. The app has a Python backend and a JavaScript frontend, with a dedicated cryptography test suite (Vitest) and backend tests (pytest) that run automatically in CI on every push, plus an end-to-end browser test (Cypress). The frontend is deployed on Vercel and the backend on Render.

To try it, sign up for a free account on the live site above and send yourself (or a friend) a message.

Teaching & Machine Learning

Projects that grew out of teaching calculus.

Machine Learning · Calculus

Calculus Adaptive Assessment

Play the guessing game View on GitHub Technical Summary Lecture Notes (PDF)

A machine-learning model of how hard a calculus derivative problem is, learned from an instructor's pairwise “which of these two is harder?” judgments. It is the foundation for an adaptive placement exam, which needs a difficulty score for every problem it might ask, including ones nobody has ever labeled.

A probabilistic grammar generates derivative problems, a step-tracing differentiator works out each one, and a Bradley–Terry model on 17 structural features learns difficulty from a few hundred of my own judgments, collected in a Streamlit labeling app. From there the project compares gradient boosting, active learning, and a recursive neural network that reads the expression tree, and explains individual predictions with Shapley values. Every step is paired with a section of lecture notes on the mathematics behind it.

In the live guessing game, you judge pairs of problems yourself, then see which one the model thinks is harder and why. Your answers (saved anonymously) help study how instructors, TAs, and students see difficulty differently.

Outside of My Research

Projects I've built for fun, away from my research.

Data Pipeline · Forecasting

WNBA Analytics

View live forecast View on GitHub Technical Summary Methodology

A WNBA game-prediction pipeline and forecasting site. It pulls every game since the league's first season (1997) from the official stats API, rates every team with an Elo system adapted from FiveThirtyEight's NBA methodology, and uses those ratings to predict upcoming games and run 20,000-simulation Monte Carlo forecasts of the rest of the season and the playoffs.

The live site shows each team's title odds, semifinal and finals odds, and a full playoff-bracket table, alongside how well the model is actually doing: percentage of correct picks, log loss, and a live record of picks made before tip-off. Everything regenerates automatically every morning as new games come in. The full methodology — the Elo formula, the simulation design, and backtested accuracy on held-out seasons (2019–2026, never used for tuning) — is written up with proofs in the repository.