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

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