UC Irvine Data Science graduate building analytics tools end to end in Python and SQL, from API ingestion and relational storage to detection rules validated against labeled ground truth. Every project ships with tests, documentation, and CI.
Analytics pipelines, machine learning and statistical systems, revenue analytics tools.
I graduated from UC Irvine with a B.S. in Data Science in June 2026. My projects run end to end: ingesting public APIs and flat files into relational storage, engineering features and detection rules, and validating the output against labeled ground truth instead of eyeballing it.
Python and SQL are the core of my work, with machine learning and statistics on top: supervised models, probability modeling, A/B testing, and causal inference with propensity score matching and difference-in-differences.
I care about code other people can run. Everything I ship has tests, documentation, and CI, and states the tradeoff behind every threshold. Two of my projects are built for revenue teams, surfacing expansion and competitive displacement signals and mapping each one to a follow-up action.
The languages, methods, and tooling behind the projects below.
Daily drivers for analysis and pipelines
Modeling and analysis libraries
Ingestion, storage, and data quality
Supervised models, evaluated honestly
Testing, inference, and causal methods
Dashboards and automated reporting
Signals and workflows for revenue teams
How the code gets shipped
Five end-to-end systems. Each card shows real output, and each repo ships with tests and documented tradeoffs.
Analytics
Account usage analytics and alerting over daily telemetry (compute, seats, workspaces, feature breadth) for a 60-account portfolio. Five rule-based detectors using window medians and weekday-matched baselines separate durable change from noise, feeding composite scoring and automated HTML briefs. Validated at 0.89 precision and 0.94 recall over 10 generated datasets and 600 accounts. 116 tests, green CI.
ETL + Scoring
Competitive-intelligence signal pipeline that ingests posts and job listings from three public APIs, deduplicates into SQLite, and applies direction-aware rules to surface platform-switching signals mapped to follow-up actions. False positives cut with a skills-list dampener, staffing-firm flags, score floors, and suppression notes. 150 tests, green CI.
CLI + Reporting
Medicare Part D formulary change monitor. Loads two monthly CMS releases, roughly 1.1M formulary rows per month across 5,518 plans, into partitioned SQLite with a full audit trail, then classifies tier moves, prior authorization, step therapy, quantity limits, additions, and drops and ranks them by estimated member cost impact. Ships documented cost-impact ranges, mypy strict, ruff, a pytest coverage gate, and a self-contained HTML report.
Causal Inference
Propensity Score Matching combined with Difference-in-Differences to estimate the causal effect of mid-season manager firings across 68,404 matches, the top 20 European leagues, and six seasons (2019/20 to 2024/25). Estimated +0.292 xGD per match over 12 matchweeks, 95% CI [0.192, 0.392], p < 0.001. Pipeline built on API-Football and Transfermarkt via Selenium into a 6-table SQLite database with 2,053 firings, validated with covariate balance, event-study pre-trends, and placebo tests.
Prediction
World Cup 2026 prediction bot. A transparent Elo-style rating model computes win probabilities and passes only the computed numbers to an LLM for commentary, so the narration cannot invent scores or statistics. Renders shareable 1200x720 PNG cards with team flags, pick, probability split, and narration, plus offline fallbacks, cached assets, and a terminal card for local runs.
Six years of hospitality operations at a Choice Hotels franchise, from the front desk to supervising it.
Rodeway Inn (Choice Hotels franchise), Artesia, CA
Rodeway Inn (Choice Hotels franchise), Artesia, CA
The degree behind the projects, plus the certifications that back the BI work.
University of California, Irvine · June 2026
Microsoft
DataCamp
Thanks for reaching out.