My Projects
Experimental Design Case Studies
These studies were completed in R using formal experimental design methods including ANOVA, randomized block designs, and split-plot designs.
Paper Airplane Flight Study
A proper scientific question, tested with paper and patience: does the type of paper or the way you fold it actually change how far a plane flies?
- Tools: R, R-Markdown, Two-Factor ANOVA
- Goal: Measure whether paper type and fold design each affect flight distance, and whether the two factors interact
- Design: Completely randomized 2x2 factorial design
- Read the full report
Minecraft Weapon Comparison
This one started as a fun idea and turned into a legitimate experiment. I wanted to know which weapon in Minecraft actually performs best, controlling for session-to-session variation.
- Tools: R, R-Markdown, Randomized Complete Block Design
- Goal: Test whether sword, axe, or trident deals more effective damage when session effects are accounted for
- Design: Randomized complete block design with gaming session as the blocking variable
- Read the full report
Paper Towel Absorption Study
Does water temperature change how well a paper towel absorbs? Does the brand matter more? I ran a split-plot experiment to separate out both effects and find out.
- Tools: R, R-Markdown, Split-Plot ANOVA
- Goal: Evaluate how temperature and brand independently and jointly affect absorption
- Design: Split-plot design with temperature as the whole-plot factor and brand at the sub-plot level
- Read the full report
AI and Machine Learning
Agentic AI Bootcamp
I built a special topics course for BYU-Idaho and put together a full bootcamp for the school’s data science society, covering how to design and deploy AI agents from the ground up.
- Tools: LangChain, LangSmith, RAG, MCP
- Goal: Give students a hands-on foundation in Agentic AI, from prompt engineering through multi-step agent workflows
- View the bootcamp
Fox in the Sawdust — AI-Powered Competitive Intelligence
A small custom woodshop needed to stay competitive against bigger players with dedicated marketing teams. I built a 10-agent autonomous pipeline that runs a full competitive research brief from a single button click — collecting, extracting, analyzing, and reporting in about two minutes.
- Tools: Node.js, OpenAI (gpt-4o-mini, gpt-5.4-mini), vanilla JS, SVG visualization
- Goal: Replace ~3 hours of weekly manual competitor research with an automated, grounded intelligence pipeline
- Outcome: Pricing recommendations backed by real competitor URLs and comparable product matching, delivered through an actionable approve/dismiss/edit workflow
- Read the full case study
Heart Disease Classification
Can patient data tell us whether someone has heart disease before it becomes obvious? I explored that question by training a classification model on clinical measurements, with the goal of flagging high-risk patients early.
- Tools: Python, XGBoost, Scikit-learn, Pandas, Matplotlib, Seaborn
- Goal: Build a reliable classifier that identifies heart disease from routine clinical data
- Outcome: Achieved an F1 score of 0.84 on validation and 0.75 on the holdout set, which held up well given the class imbalance
- Read the full report
Bike Rentals Prediction
Bike rental demand does not just follow the weather, it follows the world. I built a neural network that folds COVID-era disruptions into the feature set alongside the usual time and weather signals.
- Tools: Python, Keras, Scikit-learn, Pandas, Matplotlib
- Goal: Predict hourly bike rentals by capturing pandemic-era patterns the standard features would miss
- Outcome: Achieved 89% R² with a dropout-regularized net that generalized well to unseen data
- Read the full report
Housing Price Prediction
What actually drives housing prices? I set out to answer that by running machine learning models on real estate data, testing everything from room counts to neighborhood patterns.
- Tools: Python, Jupyter, Seaborn, XGBoost, Random Forest
- Goal: Identify which features most influence sale price, then build a model worth trusting
- Outcome: Hit 91% R² by combining interpretable features with a boosted ensemble approach
- Read the full report
Data Analysis and Visualization
Tuberculosis Global Trends
I dug into WHO tuberculosis data to surface patterns that are easy to miss in raw numbers. The goal was to build something a public health team could actually use to spot at-risk populations quickly.
- Tools: Python (Pandas), MySQL, Tableau
- Goal: Identify global TB trends by country, age group, and gender using cleaned WHO data
- Outcome: Built an interactive Tableau dashboard that makes regional and demographic patterns immediately visible
- View the full report
SQL and Database Design
Pawesome Pet Services Database Redesign
The original schema had grown messy over time and was making simple queries harder than they needed to be. I redesigned it from scratch using proper normalization principles.
- Tools: MySQL Workbench, ERD modeling
- Goal: Rebuild the database structure to cleanly handle pet profiles, services, and scheduled appointments
- View the full write-up