Available Aug 2026 · F-1, STEM-OPT · US-based

Aldrich Han.

Data analyst who builds. I turn messy business data into products decision-makers actually use — dashboards, predictive models, and internal tools shipped in days, not quarters.

Master of Science in Business Analytics at UC Irvine · Bilingual English / 中文 · Cross-border B2B/B2C experience · Open to full-time Data Science, Analytics, and Product Analytics roles.

About

I'm a business analytics graduate student at UC Irvine with a background in economics from Rutgers. My work sits at the seam between analytics and product — I use Python, SQL, and modern ML to answer real business questions, then build the interface that gets the answer in front of a stakeholder.

Currently completing a data-science capstone with Cotality (formerly CoreLogic), fusing 70K+ Salesforce records with Gong.io call transcripts to predict deal outcomes and coach sales engineers.

On the side I run a personal quantitative trading bot and lead the North-America app build for a cross-border marketplace out of Nanjing — analytics work that ships to real users on both sides of the Pacific.

I ship fast because I know the tools and I trust the process: pair with AI to compress the mechanical work, spend the saved hours on the parts that require judgment. Every project below was built end-to-end by me.

Selected work

Eight projects that show how I think, build, and ship.

Each preview is anonymized. Every card is clickable — full case studies inside cover the problem, the data, what I built, and what it changed.

Anonymized preview SOURCE A SOURCE B MODEL NLP · ML DASHBOARD
2026Data ScienceUCI Capstone

Sales Intelligence Platform

Context

The sales-engineering org couldn't quantify which behaviors actually moved deals — call insight lived in one system, deal outcomes in another, with no shared keys across 16 source tables.

What I built

An automated Python pipeline that reconciled 70,000+ records across those tables; NLP + sentiment analysis to convert raw call transcripts into quantitative engagement signals (talk-to-listen ratio, sentiment polarity, objection frequency); an XGBoost win-probability model with SHAP explainability; and an executive dashboard that surfaces the four highest-impact behaviors on each open deal.

Outcome

Delivered a formal presentation and dashboard to client leadership — the org's first evidence-based view of what closes deals. Shipped with mock datasets, an in-app AI chatbot for stakeholder Q&A, and a live upload path for future data refreshes.

Pythonpandas XGBoostSHAP NLP · Sentiment FastAPIReact · TypeScript
Full case study soonRead →
Synthetic preview EQUITY CURVE
2026PersonalPython · IB API

Aldrich Quant Bot

Context

Personal research project: test whether classical trend and momentum strategies still hold on US equities once realistic execution costs (slippage, commission) are baked in — and whether the whole loop can run unattended in production.

What I built

A clean, modular backtest engine (data loader, portfolio state, performance metrics), two live strategies (trend and momentum), a live paper-trading integration against Interactive Brokers via the OpenD gateway, and a systemd-scheduled daily runner on a cloud server. Test suite covers the engine and both strategies.

Outcome

Runs automatically each trading day with no manual input. Backtests validated across a decade of daily data with cost modeling. Open source on GitHub, in active development — the project I use to keep my engineering muscles honest.

Pythonpandas · NumPy Interactive Brokers API pytest systemd · Ubuntu
Full case study soonRead →
Flow preview 1 2 3 4 REGISTER VERIFY TRAIN LIVE SUPPORT TICKETS
2025 – presentAI ProductHuarui Cloud

Merchant Onboarding Portal

Context

Cross-border B2B/B2C marketplace launching into the US market. Overseas merchants unfamiliar with the platform were flooding support with the same registration, verification, and go-live questions.

What I built

Led the North America app-build team through pre-launch QA (surfaced 15+ blocking bugs). Built an AI-powered onboarding portal with generated interactive video tutorials that walk merchants through each stage (register → verify → train → live). Added a Python + SQL automated order-tracking dashboard that resolved the most common status inquiries without human intervention.

Outcome

Post-launch support tickets down ~30%. Cross-team status-inquiry time cut materially. Onboarding scaled cleanly into new US regions.

PythonSQL AI content generation Video UX Product analytics
Full case study soonRead →
Illustrative preview Q1 Q2 Q3 Q4 Premium New
2025Retail AnalyticsUCI

IKEA Consumer Seasonality

Context

US promotional calendar and inventory decisions were made against blended customer behavior — no clear read on which segments actually shift spend across seasons and which stay flat.

What I built

Extracted and cleaned 5,200 US-specific observations from a 302K-record retail dataset. Segmented customers into three tiers (New, Regular, Premium) by spend and cadence. Built multivariate regression models with tier × quarter interactions to isolate seasonal effects by segment.

Outcome

Premium members spend 35% more in Q4 vs Q1; New members show essentially no seasonality. Recommendation: segment-specific inventory stocking and a differentiated promotional calendar, projected to reduce overstock costs by ~12% in off-peak months.

Pythonpandas statsmodels scikit-learn Matplotlib
Full case study soonRead →
Illustrative preview TENURE RISK Likely churn Retain
2025Machine LearningUCI

Employee Churn Prediction

Context

HR wanted a systematic way to prioritize retention outreach on the highest-risk employee segments — with only a modest labeled dataset and a strong class imbalance (34% churn base rate) to work with.

What I built

End-to-end ML pipeline on 4,600+ employee records: logistic regression and decision-tree classifiers, class-weighted training to handle the imbalance, L1 (Lasso) regularization for feature selection, and an interactive Tableau dashboard showing predicted churn probability by department and tenure.

Outcome

0.79 recall on the minority (churn) class. Top two drivers isolated as education level and payment tier. Targeted retention initiatives recommended against those drivers, projected to reduce annual attrition by ~8%.

Pythonscikit-learn Logistic Regression Decision Tree L1 / Lasso Tableau
Full case study soonRead →
Recommendation flow "cozy italian date night under $40" Nonna Rosa 94% Trattoria Verde 88% Cucina Bella 78% Osteria Milano 73%
2025ML SystemPersonal

AI Restaurant Recommender

Context

Yelp and Google Maps tell you what's popular. They rarely tell you why a specific place fits your specific taste. I wanted to build a recommender that solved both problems — cold-start users AND returning users — with explanations you can actually read.

What I built

End-to-end recommender with two complementary algorithms: content-based filtering over sentence-transformer embeddings (for users with history) and LLM-semantic search over natural-language queries (for new users). A hybrid blender combines both. Every recommendation ships with a human-readable "why" citing the actual attributes that drove it.

Outcome

5-tab Streamlit UI, 300-restaurant dataset across 20 cuisines, and a proper evaluation harness — Precision@K, Recall@K, NDCG@K, Intra-List Diversity, Category Coverage. Full evaluation report and deployable to Streamlit Cloud.

PythonStreamlit sentence-transformers scikit-learnpandas Evaluation harness
Full case studyRead →
Illustrative topic tree Root Tech Sports Auto Hardware Space Baseball Hockey Football
2025NLP ResearchPersonal

Classical vs Neural NLP Pipeline

Context

Most portfolios pick one classifier and prove it works. I wanted a benchmark project that compared classical sparse-feature models against modern dense-embedding models on the exact same data — then went further into unsupervised structure most projects skip.

What I built

Three-part pipeline. Part 1: TF-IDF with four classifiers (Naive Bayes, LogReg, LinearSVM, RandomForest). Part 2: SentenceTransformer embeddings with the same four classifiers. Part 3: KMeans clustering into a two-level topic tree with LLM-generated cluster labels and a keyword-frequency fallback.

Outcome

Eight classifier configurations benchmarked head-to-head on the 20 Newsgroups corpus (up to 10K documents). Modular CLI with cached embeddings for fast re-runs. The result is a fair comparison instead of a champion-versus-nothing story.

Pythonscikit-learn sentence-transformers KMeans OpenAI API (optional)
Full case studyRead →
Illustrative leaderboard LEADERBOARD · WEEK 6 1 Player 01 1,247 2 Player 02 1,132 3 Player 03 1,089 4 Player 04 1,024 5 Player 05 987
2026Product · Full-stackPersonal

Forecast Arena

Context

My UCI forecasting-league homework was a 50-event Excel workbook — a scoring exercise trapped in a spreadsheet. I turned it into a working multi-user product with proper scoring mechanics, leaderboards, and role-separated views.

What I built

Next.js + TypeScript full-stack app with tested scoring logic — continuous ROI, binary Brier ROI, investment validation, deadline locking, and leaderboard ranking. Student and professor routes. Supabase-ready schema with row-level security. Prototype screens for forecast entry, results, leaderboards, roster, question bank, and actual-result publishing.

Outcome

Working prototype seeded with the original 50-question dataset. SQL migration and RLS policies ready for a live Supabase deployment. The full analyst-to-product jump — from static workbook to shipped app — in one codebase.

Next.jsTypeScript SupabasePostgreSQL RLS TDD (scoring)
Full case studyRead →
Toolbox
Python SQL Pandas · NumPy · scikit-learn XGBoost · SHAP Tableau FastAPI React · TypeScript Git NLP · Sentiment A/B Testing R · SPSS · MATLAB
Contact

Let's talk.

Full-time roles starting August 2026 · Data Science, Analytics, Product Analytics · F-1 international student, STEM-OPT eligible · Open to relocation across the US.