A personal library of accessible chart templates I built and use for newsroom graphics. 18 components built with Svelte 5 and D3, with screen reader support, keyboard navigation, colorblind-safe palettes, and print-ready styling.
A personal library of accessible chart templates I built and use for newsroom graphics. 18 components built with Svelte 5 and D3, with screen reader support, keyboard navigation, colorblind-safe palettes, and print-ready styling.
A personal visual investigation into how AI infrastructure is transforming American farmland and industrial sites into massive data center campuses that rival cities in power consumption.
Led the creation and reporting of data graphics, visual explainers, and data analysis for the first and second editions of Use Case, an international crypto magazine. Emphasis on building stories accessible on print, web, and mobile.
Mapped the uneven distribution of EV charging infrastructure across the U.S., highlighting the rural and low-income areas being left behind in the electric vehicle transition.
Rapidly reported on a rare earthquake felt across the New York City metro area, mapping the quake data and contextualizing seismic activity in the region.
Used R for statistical analysis and geospatial mapping to visualize neighborhood-level overdose patterns across Denver, revealing a 27% drop in emergency calls while deaths climbed. State lawmakers cited our findings in proposed amendments to the legislation. Data was gathered via FOIA requests, and maps were created using GIS and ArcGIS.
Visualized demographic data showing the sharp reversal in U.S. twin birth rates after decades of steady increase driven by fertility treatments and older maternal age.
Part of a multi-story series on gun violence among children and teens. Built custom Python scrapers to collect incident data and cross-validated against the K-12 School Shooting Database. Used statistical modeling and geospatial analysis to visualize regional patterns and the rise in school gun incidents since 2018.
Analyzed years of Georgia campaign finance records using Python and a custom-built PDF analyzing tool to trace Governor Brian Kemp's political and financial evolution, including the unprecedented $28.7 million he raised in a single quarter.
Pitched and led the Denver Gazette's first long-form investigation, analyzing health data from FOIA requests and consulting scientists studying cancer clusters in one of the nation's most polluted ZIP codes. Also collaborated with the University of Colorado to conduct independent air quality studies and have them analyzed by scientists. Conducted months of on-the-ground reporting, primarily in Spanish.
A personal project visualizing the flow of political campaign donations, tracking where money comes from and where it goes across elections.
Built a browser-based annotation tool for internal use. Used to cleanly show and systematically mark up multi-page text in any file format — color-coding and tagging headlines, fact-checking information, and linking quotes to sources. Built with React, pdf.js, and a custom SVG overlay system handling cross-page arrow routing and annotation merging. Used regularly to produce structured datasets to test AI and algorithm-focused tools. Usable in mobile or web.
Part of a series of articles updating a long-term project focused on auditing historical war and conflict news coverage using AI deep learning and generative model engineering to detect quotes and understand representation and bias in journalism through computational methods.
Breaking news story on quarterly profits for Disney. Numbers initially were reported incorrectly from the company and I caught it. Worked quickly to fact-check, recheck with the company, analyze the data and translate to the reporters on the ground, and create the visualization.
Pitched and produced one of Axios's first comic strip stories, using Adobe Illustrator animations and Svelte graphics to visualize climate data showing DC cherry blossom bloom dates shifting six days earlier over the past century.
Built a React-based interactive experience with custom Mapbox maps letting users explore U.S. towns named after foreign places. Analyzed geographic data in R to surface immigrant settlement patterns across the country.
Reported on the gap between public fear of shark attacks and the reality of overfishing decimating shark populations worldwide, using data visualization to reframe the narrative around Shark Week.
Filed FOIA requests and merged Census Bureau and BLS payroll datasets in Python to build a national database tracking public-sector employment across hundreds of cities. Led a cross-newsroom collaboration between The Marshall Project and Axios.
Traveled to Ukraine and used OSINT techniques including geolocation analysis, satellite imagery review, and social media cross-referencing to investigate conflicting accounts of the Olenivka prison attack that killed 53 POWs.
A project done to teach a mentee about how to collaborate on graphics projects, as part of my mentoring for DVS. Focus was learning how to make a story that is social first but can be read on mobile + web, and breaking news since we created it from scratch in less than a few hours. Also emphasized learning web accessibility and building for screen readers. We scraped the data, hand-drew the visuals, and made data graphics, all while reporting on the ground on the last day of the strike.
Used Python scrapers, machine learning image analysis models, and an NLP sentiment analysis system to track the White House TikTok account's engagement metrics, visual use, and text meaning to understand the strategy behind the account. Data was analyzed using descriptive and diagnostic methods. The top comment on 97 of 101 videos was negative despite 1.4 million followers.
Led the data analysis for a survey of over 54,000 incarcerated respondents across 45 states examining political preferences and voting access behind bars. Data analysis was conducted using cloud-native data pipelines and ETL tools. The survey found roughly half would vote for Trump, with 61% support among White incarcerated people, while 35% identified as independent. The project included a journalist toolkit with downloadable state-level data to help newsrooms localize the findings.
Led Axios' breaking news coverage of the pro-Palestine encampments taking place across the United States over multiple weeks. Reported multiple stories with custom data visualizations, including a map of U.S. encampments and arrests. Advised on safety for reporters on the ground while fact-checking and publishing breaking stories that regularly beat other major news outlets.
Built a custom computer vision model in Python to measure on-screen time for ASL performers across decades of Super Bowl footage. The analysis revealed most performances received just 7 seconds of airtime, which was against FCC policy, leading the NFL to implement changes.
Analyzed 70+ years of arms transfer data with Python and built an interactive Svelte visualization with custom Adobe Illustrator components to map U.S. military aid to Israel from 1950 to 2023.
Built a living, first-of-its-kind interactive national database of ~12,000 facilities storing dangerous chemicals from FOIA-obtained EPA records using SQL, Python, and interactive Mapbox mapping. Identified nearly 4,000 reported accidents since 2003. Led and produced stories across multiple Axios local and national desks. Spoke with those on the ground affected by spills that were never reported to them, nor did they have knowledge of why they were harmed.
Visualized the milestone of global population reaching 8 billion, contextualizing growth trends, regional disparities, and what the demographic shift means for the future.
Reported on Capitol Hill and spoke with veteran activists protesting Republican senators blocking healthcare legislation. Conducted on-the-ground interviews with veterans, congressional staffers, and policy experts under tight deadlines.