Portfolio

  • Simulating MLB Pitch Tracjetories

    Simulating MLB Pitch Tracjetories preview

    A short primer on my pitch visualization tool.

    Tools used: Python, pybaseball, JavaScript

  • NBA Matchup Predictor

    NBA Matchup Predictor preview

    Can a machine learning model outperform Las Vegas in predicting NBA matchups? Using team gamelog stats, I built a model to forecast game outcomes and compare its performance against the sportsbooks' predictions.

    Tools used: Python, SQLite, GLMs, requests, peewee, pandas, nba_api, statsmodels

  • Tarik Skubal is on a Historic Pace

    Tarik Skubal is on a Historic Pace preview

    Skubal is on pace to become the first pitcher in modern history to lead his league in both K/9 and BB/9. Using the pybaseball library, I explored how his season compares to some of the most dominant of all time....

    Tools used: Python, requests, pybaseball, Pillow

  • Evolution Olympic Swimming Gold Medal Times from 1912–2024

    Evolution Olympic Swimming Gold Medal Times from 1912–2024 preview

    Athletes have gotten bigger, stronger, and smarter — and the Olympics provides a perfect stage to showcase this. Plotting the gold-medal winning times in two of the most iconic swimming events, we clearly see the impact of sports science on...

    Tools used: Python, pandas

  • Evolution of the NBA Shot Chart

    Evolution of the NBA Shot Chart preview

    The rise of the three point shot in the NBA is well documented and well understood. In this post, I explore this trend in further detail using shot chart data scraped from the NBA Stats website and managed using the...

    Tools used: Python, SQLite, requests, peewee, pandas, nba_api

  • Distribution of Annual Salaries and Total Contract Values for each of the Big Four Sports Leagues

    Distribution of Annual Salaries and Total Contract Values for each of the Big Four Sports Leagues preview

    Why do the types of contracts given out in each of the big four men's sports leagues differ so much? I explored this by looking at the distribution of salaries (annual and total) across all players in each league.

    Tools used: Python, requests, BeautifulSoup, pandas

  • Phil Jackson's "40 Wns Before 20 Loses" Rule

    Phil Jackson's

    The very first sports infographic I ever made! A simple test of the concept that in the NBA, a team must win 40 games before losing 20 to be a real contender for the championship.

    Tools used: Python, requests, BeautifulSoup, pandas