I'm an air quality meteorologist with the Mississippi Department of Environmental Quality in Jackson. I forecast ozone and PM2.5 and prepare meteorological data for dispersion modeling. I also build the tools I wish existed for that work, mostly in R Shiny and Next.js, on public data from EPA, NOAA and the NWS.
| Project | What it does | Live |
|---|---|---|
| ms-ozone-forecast | Random Forest ozone forecasts for six Mississippi monitors, checked against NOAA's air quality model and AirNow observations. It retrains on a schedule. | app |
| mdeq_air_quality_dashboard | Real-time, historical and forecast air quality for Mississippi | app |
| Air-Monitoring-History | The history of the US air monitoring network, site by site: instruments and regulatory status | app |
| shiny_aq_met_analysis | Site-level analysis of pollutant and weather data together, including wind-normalized trends | |
| NAAQS-Annual-Data | R scripts that pull and plot annual NAAQS pollutant data from EPA AQS | |
| PM25_AQI_12ug_9ug_Comparison | How many more "Moderate" PM2.5 days the new 9 µg/m³ AQI scale produces |
| Project | What it does | Live |
|---|---|---|
| Mississippi_Prescribed_Fire_Dashboard | Burn-day decision support: NWS fire weather, smoke dispersion, air quality, drought and burn permits | app |
| Shiny-Smoke-Analysis-App | Nationwide HMS fire and smoke detections alongside PM2.5 monitor data | app |
| Project | What it does | Live |
|---|---|---|
| aermet-runner | Builds AERMOD-ready meteorology for any active US ASOS station. It runs AERSURFACE, AERMET and AERMINUTE end to end, with QA. | runs locally |
| AERMET_MetGather_RSHINY | Downloads the surface, upper-air and 1-minute data that AERMET needs | runs locally |
| emissions-dashboard | Facility emissions, stack parameters, compliance and NAAQS screening from EPA data | app |
| Project | What it does | Live |
|---|---|---|
| FX-Net-NextGen | An AWIPS-style forecasting workstation in the browser: synced map panes, NWS/SPC alerts, GOES satellite and radar | app |
| ncep-mag-viewer | A faster way to flip through NCEP model guidance charts | app |
| State_Daylight_Visualizer_RShiny_app | Sunrise, sunset and daylight for any US state, and what permanent standard time or permanent DST would change | |
| NFL_Weather_Shiny_App | Game-day weather for every NFL stadium and how it affects play. This one is just for fun 🏈 | app |
Tools I use: R · Shiny · TypeScript · Next.js · Vercel · AERMOD/AERMET Data I work with: AirNow · EPA AQS · NWS API · NOAA HMS · NCEI · IEM · GOES
These are personal projects. The views and code are my own and are not official MDEQ products. Shinyapps.io apps may take a few seconds to wake up.

