About Me
Hello, I'm Saiem. I work as a machine learning engineer, computer vision by trade, and I have spent most of my evenings since 2020 making public sports data easier to get at. That work grew into the SportsDataverse: a set of R, Python and JavaScript packages that share the same ideas about tidy data, the same release pipeline, and, where it matters, the same models.
What I'm building now
- The packages. The public libraries that carry my name in their metadata are listed below and on the work page, and each one has a note written from its own description. In 2026 the R side finished a long CRAN campaign — cfbfastR, hoopR, wehoop, fastRhockey, baseballr, oddsapiR and cfbseedR are all on CRAN — and the Python package was rebuilt end to end on polars.
- The data. Every loader function (
load_cfb_pbp()and its siblings) reads from automated release repositories (sportsdataverse-data and its per-sport siblings): play by play, box scores, schedules, rosters and, increasingly, fitted models — expected points, win probability, shot quality, expected goals — with the training code committed beside the data. - Game on Paper. Live college football analytics on the same expected-points and win-probability models.
- This site's lab. Small, runnable ideas: querying a release file from the browser with DuckDB, a series odds calculator that runs on the server, and a metered question-and-answer over the lab's own data sources.
Talks and writing
I presented the SportsDataverse at the Carnegie Mellon Sports Analytics Conference in 2021. The paper won the Data and Software contribution in the reproducible research competition's open track.
The notes on this site pick up where that paper left off, one package at a time.
R packages
Author and maintainer unless noted.
- cfbfastR — college football play by play, EPA and win probability (source, data)
- hoopR — men's basketball: ESPN, the NBA Stats API and KenPom (source, data)
- wehoop — women's basketball: ESPN and the WNBA Stats API (source, data)
- fastRhockey — NHL, PWHL and the HockeyTech leagues (source, data)
- baseballr — Bill Petti's baseball package; I maintain it (source, data)
- oddsapiR — sports odds from The Odds API (source)
- cfbseedR — college football season simulation and playoff seeding (source)
- cfb4th — fourth-down decisions (source)
- cfbplotR and sdvplotR — logos, colors and themes for ggplot2, gt and reactable (cfbplotR source, sdvplotR source)
- recruitR — college recruiting rankings (source)
- usfootballR — MLS and NWSL from ESPN (source)
- sportsdataverse — the meta-package that installs and loads the family (source), and sportsdataversedata, the release plumbing behind the loaders
Python
- sportsdataverse — ESPN across every league, the NBA and WNBA stats APIs, NHL, MLB and Statcast, HockeyTech, stats.ncaa.org, plus the loaders and models the R packages ship (source, PyPI)
Node.js
- sportsdataverse — ESPN, 247Sports and NCAA endpoints for Node.js (source, npm)
Projects I contribute to
- ncaascrapR — Eric Hess's NCAA scraper (source)
- The course packages for the FSU Sports Analytics Club live in the SportsDataverse org too (fsu-sac, fsu-sac-2025).
The general goal has not changed since 2020: make sports data significantly more open and accessible, and take the gathering out of the way of the research. If you want to help, reach out.
Find me
- GitHub · X · LinkedIn
- SportsDataverse on X · Join the list