projects
-
Stay Free
2021Working with whistleblower Edward Snowden, I served as creative and technical lead on a project to create an artwork called “Stay Free,” combining an iconic portrait with the entirety of a landmark court ruling on an NSA mass surveillance program. The artwork sold at auction in 2021 for over $5 million to benefit Freedom of the Press Foundation.
-
Threatened Outlets archive
2018–2022In partnership with the Internet Archive, I led a Freedom of the Press Foundation project to create online backups of a collection of news sites that we deemed to be under threat of shutdown or tampering. At launch, I spoke with the New York Times for an article about the effort, and wrote about the project and its context for Freedom or the Press Foundation. The project’s launch was also covered by Wired, TechCrunch, the Observer, and more.
-
FOIA The Dead
2017FOIA The Dead is a transparency project that automates public records requests to the FBI for subjects of New York Times obituaries. Launched in 2017 and then operated for several years as a Special Project at the Freedom of the Press Foundation, it has released thousands of pages of documents on dozens of notable people, and received coverage in NPR’s Weekend Edition, Note to Self, Newsweek, NiemanLab and more.
-
I found the USDA’s Pomological Watercolor Collection online in 2015 and was captivated. After filing a series of FOIA requests about the paintings, I led a successful advocacy campaign to have high-resolution scans put online. I then uploaded the collection to Wikimedia Commons, and developed my first Twitter bot, @pomological to post images from the collection. (It now posts to Bluesky and Mastodon.) I spoke about this process at the National Archives during Wikicon 2015, and my work has been written up Mashable (“Twitter’s pleasant ‘old fruit pictures’ bot has a fascinating origin story”), Atlas Obscura, and elsewhere.
-
malaikahanda.com
2025I developed this interactive personal website for my friend Malaika Handa to visualize her extremely prolific publication history. The site was built from scratch in vanilla javascript, and generates static builds at regular intervals to keep the data fresh and the hosting simple.
-
Helping Friendly Bot
2022–The Helping Friendly Bot provides information about songs that the band Phish is currently playing, pulled from an online Phish.net database. The tech stack has evolved over time; at present, it monitors an official account for song updates through Bluesky’s Jetstream, posts general information as a Bluesky reply and on Mastodon, and sends personalized details through Signal.
-
Positioned as a work of “historico-cruciverbal” research, Toward A New Understanding of the Honeypot Puzzle Fragments is a print zine of crossword puzzles (with a Spelling Bee twist) created by Ross Trudeau and me. It was released on Kickstarter with over 500 copies sold to backers on 4 continents before launch.
-
Cursewords Live
2021–2023Cursewords Live was a regular Twitch stream co-hosted with Ross Trudea. On the stream, we’d solve crossword puzzles in my Cursewords software and construct crosswords live with audience participation.
-
Since 2021 I have provided technical support for Matthew Gritzmacher’s Daily Crossword Links newsletter, which compiles links to published crosswords from hundreds of mainstream and independent outlets each day. I developed an automated pre-publication workflow that cut production time significantly, allowing a team of volunteer editors to send updates to thousands of subscribers each day.
-
old roadside
2021 -
Published crosswords
2020–After years of solving, in 2020 I began constructing crossword puzzles for submission to the mainstream and independent outlets that run them. Here is a list of published puzzles, with links to solve where available.
-
This command-line tool scrapes online crossword puzzle solving interfaces to produce standard .puz files suitable for archiving, analysis, or solving locally. Originally started to scratch a personal itch, the tool has expanded to cover 20+ outlets and a number of embedded solving stacks, includes code from more than a dozen contributors, and has become a key pipeline component for cool crossword projects such as Spread the Word(list), Saul Pwanson’s xd data, and the Daily Crossword Links newsletter, and is supported as a plug-in in Gnome Crosswords.
-
Cursewords
2019–Cursewords is a full-featured Python terminal client for opening and solving crosswords puzzles, originally developed for my personal use on Linux. Its downs-only mode was featured in a Wall Street Journal article on that solving constraint, and I was interviewed for Beyond Wordplay about it. Ross and I use Cursewords to solve puzzles on our Twitch stream, Cursewords Live.
-
1923
20191923 was a year-long zine series consisting of archival material from the year 1923. It was launched on Kickstarter in January of 2019, where the 100 available subscriptions sold out in about two hours. The series was accessioned into Harvard’s Houghton Library, and the 2022 site relaunch got a nice write-up from Mathew Ingram. “god, I wish the internet were more like this” —Lili Loofbourow
-
gotham-grabber PDF archive tools
2017–2019In the wake of the abrupt 2017 shutdown of popular local news blogs Gothamist and DNAinfo, I wrote a collection of scripts that use browser automation to make high-quality portfolio-ready PDFs of articles. I wrote about the significance of the issue and the “billionaire problem” in journalism for the Freedom of the Press Foundation, and the tool and its use were written up in Nieman Lab and elsewhere. In 2019 I expanded the tool to work with more sites such as Splinter and Deadspin, and ultimately created more than 100,000 PDFs for affected journalists.
-
@78_sampler
2017–The @78_sampler Twitter bot pulls from the Internet Archive’s massive collection of digitized 78rpm records. After releasing the bot in 2017, I gave it a substantial overhaul in 2020, using OpenCV to find the actual labels in the record images and animate a spinning disk. Animation components on the record spin were drawn by the incomparable Noah Jodice, and the source code for this project is available on Github.