All work
Projects
A few years of work, organized by who I was building it for. Click through for case studies on the ones with the most behind them.
01 · Professional
Squarespace, Launch & PBS

Squarespace · Case study
Squarespace.com
Senior frontend work on Squarespace's primary acquisition channel — performance, CDN migration, experimentation, and conversion surfaces.
Core Web VitalsCDNExperimentationNext.jsLaunch by NTT Data · Case study
Launch by NTT Data
Senior full-stack role for Postlight, Axios Pro, and MIT Technology Review — client apps, dashboards, and design systems.
Next.jsReactDesign systemsGo
PBS NewsHour · Case study
PBS NewsHour Elections
Live results, calculators, and interactives running on election nights with millions watching.
Live dataHigh trafficD3
Squarespace
Squarespace SEO & AI Tools
AI-powered conversion tools and SEO vertical pages — business name generator, domain search, and scalable acquisition funnels.
OpenAISEONext.jsExperimentation
PBS NewsHour
Elections Calculator
An interactive that let viewers map their own paths to 270, syncing with live results as the night unfolded.
InteractiveData viz
PBS NewsHour
Hurricane Tracker
Real-time storm path visualization pulling from NOAA feeds — built for newsroom embedding during landfall coverage.
LeafletLive data
PBS NewsHour
Canvas Arts
A tailored WordPress destination for PBS NewsHour's arts and culture reporting.
WordPressSCSS
PBS NewsHour
Uighurs Tapstory
A scrollable, tap-driven long-form story format. Reporting and design met in the middle.
Long-formEditorial
02 · Side projects
On my own time

Side Project · Case study
Blue Moon 5 Miler
A full-stack race registration platform — Stripe payments, Supabase backend, public event site. Every layer mine.
Next.jsSupabaseStripe
Personal
NYC Trivia List
NYC's trivia hub — a searchable directory of bar trivia nights across the city.
Next.jsSanity CMSLeaflet
03 · Off-keyboard
Music
I produce records under my own name. It's the part of my work that has nothing to do with shipping software, which is exactly the point. Ask me about it if you're curious.