Selected Reporting
-
Millions in opioid settlement funds are still sitting idle in Mass municipalities
Of $113.7 million disbursed for opioid abatement, cities and towns spent 17%. Nearly half reported zero expenditures in FY25, during which 1,763 opioid-related deaths occurred statewide.
-
AI Hallucination? Proposed Westfield data center appears abandoned by developers
A proposed “hyper-scale” data center in Westfield would have drawn 10× more power than the state's largest existing facility, but the project appears to be abandoned. In 2021, developers refused delivery of their permit and cut off contact with the city; news outlets continued to report on the forthcoming project through 2025.
-
West Springfield police partnered with ICE division
Public records revealed that West Springfield police signed an MOU with Homeland Security Investigations, one of ICE's two divisions. The city is among the most diverse in the state, with students speaking over 50 languages.
-
Funeral home consolidation hits western Mass
A private equity-backed firm quietly acquired more than 10% of western Mass funeral homes. A quarter of the region's homes are now chains, and 46% of directors nationwide plan to retire within five years.
-
Surveillance state comes to Chicopee
A network of hundreds of cameras, accessible to police at any time for any reason, is concentrated in the city’s poorest areas. View the interactive map →
-
How the far right stifled campus activism and sent ICE after a local student
A right-wing organization publicly called for a Hampshire College student's deportation. One day later, the government revoked his visa. A federal judge later found the warrant was backdated and the arrest attempt unlawful.
-
Mass municipalities are sitting on millions meant to mitigate the opioid scourge
Massachusetts will receive around a billion dollars for opioid abatement efforts. Here is how cities and towns are spending so far.
Data Projects
Chicopee Surveillance Map
An interactive map of hundreds of surveillance cameras deployed by Chicopee Police using the Axon Fusus network, overlaid with Census income data. Built from audit logs obtained through a public records request. Accompanies reporting for The Shoestring. Camera locations were confirmed via in-person observation (see video).
Opioid Settlement Dashboard
An interactive dashboard tracking reported expenditures for Opioid Remediation and Recovery settlement funds across municipalities and the state executive branch. Includes data for FY2023 throughg FY2025, with full-text search, sortable tables, and spending breakdowns, and a choropleth map. Created for the Boston Institute for Nonprofit Journalism as part of my ongoing coverage of how this settlement money is being used. My initial reporting on this topic helped BINJ secure a grant from the Data-Driven Reporting Project. I also appeared on MuckRock's FOIA Friday series to discuss some challenges I faced in obtaining records from Care Mass, the public-private partnership that held these records last year.
Code & Tools
federal-agent
A skill for Claude Code that queries federal procurement data from FPDS, USAspending.gov, and SAM.gov. Lets you search contracts by agency, vendor, or NAICS code, analyze spending patterns, and cross-reference sources through natural language.
commbuys_cli & cthru_cli
Two command-line tools for querying state financial data in Massachusetts. commbuys_cli searches bid solicitations, contracts, and vendors on the COMMBUYS procurement portal. cthru_cli queries spending, payroll, and retirement data from CTHRUspending.mass.gov. Both support filtering, multiple output formats, and JSON export.
Mass.gov Update Bot
Scrapes mass.gov/sitemap.xml daily and posts a summary of updated pages to Bluesky. Tracks hundreds of state government website changes per day, and logs each day's changes to a csv file.
This is part of a larger pipeline for discovering potential news leads beyond agency press releases, that is still a work in progress.
reccomend_from_archive
(Personal/for fun project) A music recommender that analyzes your Spotify streaming history
against scraped Spotify
metadata for over 250 million tracks released by Anna's Archive
and finds tracks you'll like based on your listening history, using an algorithm you
control.
Note: no music is streamed or stored, only metadata.









