
Price Monitoring System
I created a web scraper that collects pricing data for self-storage units then visualizes them in an interactive dashboard.

I created a web scraper that collects pricing data for self-storage units then visualizes them in an interactive dashboard.

A friend asked, "Why not use a static website for your portfolio? Isn't React a bit overkill?" They were right, but I wanted to be a little extra ✨

I introduce the concept of discourse through large language models, outline how each stage of the model's training process shapes its discourse, and evaluate the effects of bias on different stakeholders.
Conducted a formative focus group and survery instrument, then analyzed quantitative and qualitative data to evaluate academic advising program performance.
Conducted semi-structured interviews to investigate student moral-development and perceptions of the institutional culture.

How well can we predict an online purchase based on the way a user browses the site?
I replicated Loftus & Palmer's (1974) classic study on the impact of leading questions on memory reconstruction.
With a partner, I built a Shiny app exploring where Americans lack access to museums. I handled the spatial work, dynamic analyses, and an interactive Minnesota map, merging IMLS, TripAdvisor, and shapefile data.

Compared 10+ CNN architectures on a 4,253-image digit dataset our class collected by hand, plus dropout, augmentation, and hyperparameter tests. Best model: 57% test accuracy vs. a 50.65% baseline.
An A* 8-puzzle solver with two heuristics, a Connect 4 minimax agent with alpha-beta pruning that competed in a class tournament, k-NN/decision trees/random forests, and a PyTorch MLP on MNIST.
With a partner, I tested whether a country's colonial history (Ziltener dataset) predicts its UNDP Human Development Index, using correlation tests and nested F-tests.
A Quarto site with a choropleth of state housing inventory, a Monte Carlo test for spatial autocorrelation, and a regex-based text analysis of articles.

I wrote insertion, merge, quick, and stooge sort from scratch and timed them over 1,000 trials per input size, then implemented a max heap, BFS, DFS, connected components, and Ford-Fulkerson max flow.
I implemented the shoelace polygon-area formula, a naive convex hull, and a Graham scan, then wrote a paper on the Crust and Cocone 3D surface reconstruction algorithms.