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.

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

Projects I contribute to

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