Analytics Lead · Bluevine
I work on all things data, analytics, strategy, machine learning, and applied AI. I studied economics at UCLA and data science at UC Berkeley, and that intersection of economic thinking and applied ML shapes most of my work. My interests span fintech, experimentation, computer vision, and practical AI applications.
MotionCaddie is a golf swing coach for beginning and intermediate players. A golfer uploads a single phone video of their swing; the system tracks 2D body joints, lifts them into a 3D reconstruction, and lines that swing up against a professional's. An LLM then reads the structured movement indicators from that comparison and explains what differs, in plain language, so the golfer gets specific feedback instead of a highlight reel.
The pipeline runs on a single CPU container: 2D pose, a left/right identity repair pass, the 3D lift, smoothing and floor leveling, then swing-event detection and a scorecard. A parallel branch tracks the ball at subpixel resolution and fits a physics model to recover flight. Everything the golfer sees is an artifact of that run, including the joint overlay video and the 3D replay below, and the LLM is only allowed to explain those computed indicators, never to analyze the raw video or invent biomechanical claims on its own.
Model choices came out of head-to-head evaluation rather than preference. MediaPipe Lite matched the heavy variant on usable-skeleton detection across 1,400 GolfDB clips while running roughly four times faster on CPU, which is what made a serverless MVP feasible. For the 3D lift, GolfPose MixSTE cut coaching-measurement error against Vicon ground truth to about a third of MotionBERT's. A small 1D-CNN detects swing events well above the published SwingNet baseline and holds up on unseen golfers, where a vision-model prompt and a wrist-height heuristic both collapsed. Constraining the LLM to structured claims with a verifier moved the grounded-explanation rate from 0.64 to effectively 1.0. Visualization stayed in Python rather than a game engine so every frame remains tied to inspectable pose data.
This project takes the information companies generate during software onboarding (comms, including emails, Slack, Jira tickets, and support conversations) and pulls it into one place. The application ingests those signals, organizes them into workstreams, and uses them to generate structured vendor reviews that live on a review board. Over time, it builds a broader layer of onboarding intelligence, with the goal of becoming an end-to-end product for evaluating vendor reliability and surfacing onboarding pain points.
In this project, we use several computer vision techniques to explore which visual features most strongly drive art-style classification. Specifically, we incorporate edge detection, HOG, LAB color features, local binary patterns, and ResNet50 embeddings for this classification task. The model achieved up to 73% accuracy with minimal performance loss after PCA-based dimensionality reduction.
click to explore
click to explore
click to explore
Client-approved case study · Fortune 500 outdoor retailer
Designed and analyzed a two-stage randomized experiment to evaluate whether in-store signage increased co-branded credit card tender share across retail departments. Randomized treatment at the store-day level, with activities as within-day controls. Estimated intent-to-treat effects using a linear probability model with store×day and activity fixed effects, weighted least squares to address heteroskedasticity in proportion outcomes, and clustered standard errors. Conducted robustness checks including leave-one-store-out stability analysis and spillover testing across unsigned departments.
Wildfires in California have become increasingly frequent and severe, posing significant threats to communities and ecosystems. Using meteorological data from California's CIMIS weather station network—including temperature, humidity, wind speed, and solar radiation—we built and compared four models to predict wildfire occurrences: logistic regression, random forest, and two feedforward neural network variants. A core challenge was extreme class imbalance, with fire events representing only ~1% of 200k+ observations, which we addressed through class weight balancing and threshold tuning. The random forest classifier emerged as the strongest performer, with wind run ranking as the most predictive feature.
Peer-to-peer lending represents a fundamental shift in how individuals access credit, enabling them to bypass traditional financial institutions and borrow directly through online marketplaces. Using Lending Club data, this project investigates what financial factors drive credit pricing in a decentralized marketplace. We specifically built an OLS regression model to investigate which borrower characteristics and loan attributes drive interest rate pricing. A univariate model on Lending Club's internal credit grade explained over 90% of interest rate variance, revealing grade as a near-black-box pricing mechanism.
Recommendation systems are essential tools that help individuals discover content tailored to their preferences. Whether suggesting movies, music, or products, these systems analyze user interactions and feedback to provide personalized recommendations.
Built an economic analysis comparing traditional property tax and land value tax, with a focus on incentives, efficiency, and market outcomes through game theory. The project modeled how each system affects land improvement, tax burden, and deadweight loss, then applied the framework to a high-level California example.
A terminal-based two-player chess game built entirely from scratch in Python, implementing all six piece types with full legal move validation, check detection, castling, and pawn promotion.