I have created several courses that focus on software development for data scientists.

Python Courses

  • Building Data Apps in Python with Streamlit. Participants learn to build and deploy interactive data apps using Streamlit. Starting from a blank slate, they clone a starter repo, modify its functionality, and publish their own version. The final app allows users to select a U.S. state and a demographic statistic, then generates a time series graph showing how that metric has changed over time.

R Courses

  • Introduction to Modern R. This 1.5-day workshop introduced participants to the most widely used components of the tidyverse, alongside foundational concepts in Base R. We began with the “data science workflow,” focusing on visualization (ggplot2), data manipulation and summary statistics (dplyr), and data ingestion (readr, readxl). From there, we explored tidyverse tools for working with specific data types, including strings (stringr) and dates (lubridate). The workshop concluded with an overview of data types and structures in Base R, providing context for how tidyverse conventions build on R’s core language features.
  • R Package Development with RStudio. This 1/2 day workshop introduced participants to the process of building and distributing R packages. We began by examining the structure of a typical package, with emphasis on the DESCRIPTION and NAMESPACE files, as well as the /R and /man directories. Participants learned to document exported functions using roxygen2, and to build packages using RStudio’s Build pane. We concluded with best practices for checking packages, hosting them on GitHub, and submitting them to CRAN.
  • Interactive Web Apps with Shiny. This workshop introduced participants to building interactive web applications using the Shiny package in R. We explored the basic structure of a Shiny app—including the ui and server components—and demonstrated how reactive programming enables dynamic user interfaces. Participants built simple apps from scratch, added interactive widgets, and learned how to deploy their apps using shinyapps.io. The session emphasized hands-on experimentation and gave learners a foundation for creating data-driven tools with R.

Choroplethr Course Series

This four-part series introduced participants to Choroplethr, a suite of R packages I developed for mapping demographic statistics. The courses covered a range of topics, from basic map creation to advanced customization and integration with external data sources:

  • Learn to Map Census Data in R. A free introductory course that walked over 10,000 students through the basics of mapping U.S. Census data with Choroplethr.
  • Mapmaking in R with Choroplethr. A comprehensive guide to Choroplethr’s mapping functionality, including exploratory data analysis and customization of built-in maps.
  • Shapefiles for R Programmers. This course explained how to extend Choroplethr to work with user-provided shapefiles, enabling support for custom geographies.
  • Mapping Census Bureau Data in R with Choroplethr. Commissioned by the U.S. Census Bureau, this course helped launch Census Academy and taught participants how to visualize American Community Survey (ACS) data using Choroplethr.

Together, these courses helped thousands of learners explore geographic data in R and build reproducible, visually compelling maps. You can learn more about the package here.

Ari Lamstein

Ari Lamstein

I’m a software engineer who focuses on data projects.

I most recently worked as a Staff Data Science Engineer at a marketing analytics consultancy. While there I developed internal tools for our data scientists, ran workshops on data science and mentored data scientists on software engineering.

I have also created several open source projects.