Live Fire Alerts

This application allows users to sign up to receive text alerts about nearby fires.

The front-end is composed of react + mapbox and the back-end is managed by a combination of github actions, various AWS services, and twilio.

Automated Shakemaps

This twitter bot automatically tweets out the most recent shakemap data and runs off of automated github actions.

I continually poll for new earthquake shakemap data, upload it to AWS, and then create a map of the data using mapbox and playwright. As soon as the map is created, it gets tweeted.

Red Flag Warnings

This project pulls the most recent red flag warning data from the National Weather Service, determines which CA counties are affected, and tweets out a corresponding map and text listing the affected counties.

I also created a similar bot using data from the NWS that tweets out maps about a variety of weather related events.

Mask Tracker

This project tracks the percentage of people in the great Los Angeles area wearing masks.

I set up an entry form for my teammates to track the people they saw and hooked it up to a database (using dynamoDB and lambda). Once the experiment was completed, I analyzed the data and created this graphic.

Learn more →

Live Wildfires Map

I created and maintain the live wildfires map for the Los Angeles Times.

While the map itself is the top layer of this project, I also wrote a number of open source packages to help gather our data from various sources, our data service, as well as helped to write the layer that sits in-between, the geoprocessor, that aggregates our data and cleans it up for our map.

Learn more →

Men Who Don't Move

This project was borne out of my frustration with people not wearing masks at the beginning of the pandemic. It relies heavily on the Mapbox dataset and static maps APIs.

Voting Locations

A tool for folks living in and around Los Angeles to find their nearest voting centers and drop boxes.

The map allows the user to view various routes (walking, biking, and driving) to the locations generated using the Mapbox directions API.

Stevie at 70

My labor of ❤️ to celebrate Stevie on her 70th birthday. All data was collected from Spotify using the Python client, Spotipy, formatted the data with Python, and used D3 to render the charts and interactions.

Super Bowl Traffic

This project used the Mapbox routes API and a few Amazon lambda functions to track the estimated traffic time between points in Minneapolis the month before and during the Super Bowl to determine how much the influx of people adds to travel times around the city.

Solar Eclipse

This graphic allows users to view an approximation of what the 2017 solar eclipse looked like from their (or any given) zip code. The visualization also included the start, peak, and end times of the eclipse. This graphic received 9.2 million page views.

Learn more →


This project aims to show the relationships between investors and ride-hailing companies in various countries and markets around the world.

Healthcare Dashboard

My team created this tool for Vox reporters to help track and report on the status of health care in counties throughout the United States.

I built the map and all of it’s versions, constructed the user-facing dashboard for interacting with the map, and integrated the “save image” ability which saves the map currently in view to a .png that the reporter can then use in stories.

Treasure Hunt

"In search of Forrest Fenn’s treasure" was a true collaboration between Vox Media's Storytelling Studio and the Vox video team. We worked together to create the most immersive experience that we could for the user both on and off-platform (AMP).

Marriage Mosaic

"Marriage Mosaic: Evolution of Gay Unions in the U.S." depicts the changes in legislation regarding same-sex marriage laws throughout the U.S. over the past 20 years.