Earlier work
Project Archive
These projects were completed during my graduate studies and represent earlier work in machine learning, statistics, visualization, and data engineering. Relics from the olden days, when code was written by hand and, BERT was the hot new language model, and if you had a question, your best option was to descend into the bowels of Stack Overflow—or worse: read the documentation. Every line, comma, and deeply nested parenthesis on this page was carefully authored by me, with no assistance from AI. Modern AI tools have rendered much of this work obsolete. Still, I look back on it fondly. Building it forced me to understand the code, the modeling decisions, and the mechanics of natural language processing in a way that is much harder to replicate when an AI assistant can generate the solution in seconds.
-
Mountain Project Sentiment Analysis
End-to-end NLP project labeling sentiment in Mountain Project forum posts to find which climbing gear users discuss most positively. Covers scraping, cleaning, model selection, and transfer learning with DistilBERT.
-
Audio Super-Resolution
Master's thesis project using GANs and autoencoders to upsample low-quality audio in real time.
-
Car Damage Detection I — Classification
Comparison of classical machine-learning approaches against convolutional neural networks for classifying vehicle images as damaged or undamaged.
-
Car Damage Detection II — Localization
Computer-vision project using Mask R-CNN to identify and outline the damaged regions of a vehicle rather than only classifying the image.
-
Digit Classification with KNN and Naive Bayes
One of my first machine-learning projects — an exploration of Naive Bayes and k-nearest-neighbours on MNIST.
-
Measuring the Effect of Difficulty Labels on Problem Solving
Designed and ran a randomized experiment testing whether telling people a problem is hard changes how well they solve it, then analyzed the results in R.
-
Determinants of Crime Rate
Regression study of a messy county-level crime dataset, asked to produce a policy recommendation. We concluded the best deterrent isn't harsher sentences or more police — it's the perception that you'll be caught.
-
Umpire Life Expectancy
Survival and regression analysis of historical data on 227 major-league umpires, testing the claim that job stress shortened their lifespans.
-
Lasso and Bootstrap Model Selection
Worked examples of lasso regularization and bootstrap resampling for model selection, using the mtcars dataset.
-
Cheating at Scrabble
Command-line program that takes a Scrabble rack (with wildcards) and prints every valid word it can make, scored and sorted.