Interactive Greek & Latin Reader
An interactive reader for whole Greek and Latin texts — original and English aligned clause by clause, every word a clickable token with lemma, parsing, gloss and a syntax note, plus a parse trainer, form drills, generated practice questions and Anki decks. Built for an advanced Greek course at Dartmouth and kept online for other students. The TypeScript engine is verified by equivalence against its hand-written predecessor, running the original browser code headlessly over all 326 segments; readings are prepared by an AI agent against a published spec, and every token carries a provenance mark so generated analysis never presents itself as checked analysis.
TypeScriptNext.jsReactPythonMorpheusPerseus TEIAnki
QSS 20 Research Project
Tract-level analysis of the Opportunity Insights Opportunity Atlas asking what separates rural Census tracts with above-average upward mobility from otherwise similar rural tracts. Standardized OLS over 71,958 tracts with commuting-zone fixed effects and CZ-clustered standard errors, plus a precision screen and a dense-urban comparison. Single-parent household share is the largest adjusted association; local job, commute, and employment measures are indistinguishable from zero.
PythonpandasstatsmodelsmatplotlibJupyterOLS / Fixed Effects
Darts Scoring Software
Darts scoring software with configurable handicap rules applied dynamically at request time, a MongoDB-backed data model for players/matches/leagues/tournaments, and normalized stats & season analytics exposed through a REST/JSON API. Includes a touch-friendly React Native UI optimized for real-time scoring in live venues.
React NativeMongoDBREST/JSONAnalyticsMobile UI
AI-Powered Course Generator
Full-stack PDF-to-course pipeline using PyMuPDF and Azure Document Intelligence for OCR, chunking documents into structured content, then generating quizzes, flashcards, and course sections via a multi-LLM orchestration layer (GPT-4, Claude, Gemini) optimized by task and cost. Streams real-time generation with SSE in a Next.js 15 frontend backed by Supabase auth and ChromaDB vector storage.
Next.js 15SSESupabase AuthChromaDBAzure Document IntelligencePyMuPDFOpenAI/Anthropic/Google