Portfolio

Projects and code. More on GitHub.

kalshi-jump-detection

May 2026complete

Trade-level microstructure on Kalshi: three-class targets (down / flat / up) at 5–60 minute horizons on chronologically split data (~35M train / ~8.6M test rows), a 1D CNN baseline, six heterogeneous experts (LightGBM, LSTM, Mamba, Moirai, FT-Transformer, CTTS), and a learned PyTorch mixture-of-experts gate over expert softmaxes. Large parquet and checkpoints live on linked Drive; PDF report in repo.

PythonPyTorchpandasLightGBMMoE

travel-analyst-agent

May 2026in progress

Early-stage Python agent for travel analysis and planning workflows. Currently being built out, so the repo may move quickly.

PythonTravel analysis

FedSentinel

Feb 2026complete

Predict the Fed’s next rate decision (CUT / HOLD / HIKE) from FOMC statement text: FinBERT mean-pooled embeddings, shifted next-meeting labels, a 1541-dim feature stack (current + previous embedding, cosine drift, pre-meeting Fed Funds, hawk/dove keyword counts), and chronological train/val/test with SVM / logistic regression plus an optional 2-layer Transformer over the last eight meetings when enough data exist. Includes scraper, drift analysis, and `predict.py` for new statements.

PythonJupyterpandasFinBERTscikit-learnTransformer

SpotifyParser

Apr 2026complete

Listening pipeline that runs on a schedule: pulls recent Spotify plays, samples catalogs from your latest artists, embeds tracks with a sentence transformer, and ranks unheard songs after Spotify retired the audio-features API — text similarity instead of sonic features. Recommendations land in CSV with deduplication.

PythonSpotipypandassentence-transformers

AirTrafficLiberalization

May 2025complete

Segmented difference-in-differences on U.S.–Brazil routes (2015–2020) to estimate the 2018 Open Skies shock while isolating the 2019 Brazilian recession. BTS T-100 international data, gravity controls, hemisphere seasonality; full paper in the PDF.

RfixesttidyversernaturalearthR Markdown

OptimalCarbonPricing

Dec 2025complete

Tests whether a “green premium” shows up in domestic airfares by joining DB1B itineraries with T100 segment data and modeling price vs. CO₂ per seat-km. Log-log FE, GBDT, and GAM; notebook ships with pre-rendered outputs.

Pythonpandasscikit-learnJupyter

age-political-ideology

Dec 2023complete

ESS Round 10 analysis of age and political ideology where two countries had recently shifted right. Distill R Markdown article with interactive HTML; figures and narrative in one place.

RDistilltidyverseR Markdown