Data Scientist & ML Engineer
I build machine learning systems that solve real problems — from predictive models to end-to-end data pipelines. Based in San Antonio, TX.
About Me
I'm a data scientist with a passion for extracting meaningful signal from complex, messy datasets. My work spans exploratory analysis, statistical modeling, and deploying production-grade ML systems.
I believe the best models are the ones that actually get used — which means clean code, clear communication, and a relentless focus on business impact over benchmark scores.
Selected Work
Problem: Telecom companies lose significant revenue when customers cancel subscriptions. Identifying at-risk customers before they leave is critical — but without a reliable model, retention teams are left guessing.
Process: Built an end-to-end binary classification pipeline using XGBoost on 7,043 customer records. Applied SMOTE to correct a 73/27 class imbalance, used StandardScaler with strict train/test isolation to prevent data leakage, and evaluated performance using ROC AUC, precision, and recall tuned for business relevance.
Impact: Achieved a ROC AUC of 0.83, catching 64% of actual churners. At scale, the model enables proactive retention offers that can recover thousands of at-risk customers annually before they cancel.
Problem: Product teams run thousands of experiments annually, but without rigorous statistical design, results are unreliable and business decisions get made on noise — costing time, money, and credibility.
Process: Designed a full experiment framework simulating a Microsoft Teams onboarding test. Included upfront power analysis to determine sample size, a two-proportion z-test for significance testing, confidence interval estimation, and a peeking problem simulation showing how early stopping inflates false positives.
Impact: Detected a statistically significant 5.03 percentage point lift in activation rate (p = 0.0049). At 100,000 monthly new users, the analysis identified an estimated $603,671 in annual incremental revenue.
Problem: Large language models are powerful but prone to hallucination, making them unreliable for customer support without a mechanism to ground responses in verified documentation.
Process: Built a Retrieval Augmented Generation pipeline using Azure OpenAI GPT-4o and TF-IDF similarity search over a Microsoft product knowledge base. The system retrieves the top three most relevant documents per query and instructs GPT-4o to answer only from retrieved context, with multi-turn conversation support and source citation on every response.
Impact: Delivered accurate, grounded responses across all in-scope queries and correctly declined every out-of-scope question without hallucinating — demonstrating the production-ready reliability required for enterprise support automation.
Problem: Microsoft receives thousands of product reviews across eight product lines. Manually reading feedback to understand what is driving dissatisfaction is neither scalable nor fast enough for product teams to act on.
Process: Built a three-class sentiment classifier using TF-IDF feature engineering and Logistic Regression on a Microsoft product review dataset. Applied text preprocessing including lemmatization and stopword removal, then generated a product-level sentiment scorecard to surface actionable insights by product line.
Impact: Achieved 72% overall accuracy, 2x better than a random baseline. Identified Azure as the highest priority product for improvement — a near-neutral sentiment score driven by pricing transparency and documentation complaints — giving the product team a clear starting point.
Problem: Building a model in a notebook is only half the job. Without a repeatable cloud training pipeline and a live inference endpoint, models stay on a data scientist's laptop and never reach the products or teams that need them.
Process: Built a full ML pipeline using the Azure ML SDK — covering dataset registration, compute cluster provisioning, cloud training job submission, model registration, and deployment as a real-time REST API. The XGBoost churn model was retrained entirely in the cloud, end to end.
Impact: Achieved a cloud-trained ROC AUC of 0.8313, matching local results and validating pipeline integrity. The live API endpoint returns churn predictions in real time, reducing model deployment from a manual multi-day process to a repeatable, automated pipeline any team can trigger.
Get in Touch