Skip to main content
INDEX / PROJECTS / 2015–2025

Selected Work

Updated 2025-12-29 · sources: project frontmatter + API
19 projects 4 featured3,296 words12 images49 links76 technologies17min read
Room 302 Studio (internal)AI/ML · Creative Tools

The Challenge

Creative studios need coordination—scheduling, task tracking, knowledge management. But traditional tools fragment workflows. What if the studio assistant was an AI that could remember context, use tools, and evolve with the team?

What I Built

Coach Artie—a Discord-native AI assistant with persistent memory, tool usage, and multi-modal capabilities. Not a chatbot; a team member.

Key capabilities:

  • Persistent memory via PostgreSQL/Supabase
  • MCP tool integration for real-world actions
  • Multi-channel awareness (Discord, SMS, email)
  • Evolving personality through interaction

Technical Architecture

Built on Node.js with Discord.js for real-time interaction. Uses both OpenAI and Anthropic APIs depending on task. Memory system stores conversation context and can recall relevant history. MCP integration allows Coach Artie to take actions—scheduling, file operations, API calls.

Current State

V2 in active development with expanded MCP tooling. The memory system now spans 2+ years of context—enough that Coach Artie remembers project decisions from months ago and can reference them appropriately.

Why This Matters

This is the future of creative work. Not AI replacing humans, but AI that accumulates context and history alongside the team. Coach Artie remembers what we tried, what worked, what failed. He's become institutional memory.

And the research angle: when an AI system has persistent memory over years, what emerges? I'm documenting everything—applying scientific rigor to questions most people wave away.

Gothamist / WNYCPolice Accountability · Investigative Journalism
Clusters of NYPD Misconduct
NBC News / MSNBCBroadcast Media · Elections
NBC News Big Board

The Challenge

NBC News needed a way for anchors to explore election results live on air—zooming into counties, comparing historical data, and explaining vote margins in real-time. The existing tools couldn't handle the speed and flexibility required for live broadcast.

What I Built

I proposed and led development of the Big Board—the touchscreen election visualization system Steve Kornacki uses on MSNBC. Built entirely with web technologies (HTML, CSS, JavaScript, D3), which NBC believes was an industry first for broadcast election graphics.

Key capabilities:

  • Multi-touch zoom to view any district, no matter how small
  • Historical data for any race in the past decade
  • Real-time data integration with election feeds
  • Smooth enough for live TV (no lag, no crashes)

Technical Details

The system runs as an HTML5 web app in Chrome kiosk mode on a commodity gaming PC (Intel i7, ATI Radeon GPU), paired with large Planar touchscreen displays. D3.js handles all visualizations and animations.

Same codebase works on-air and embedded on NBC's web properties.

Results

  • 19M+ viewers on election night 2018
  • Zero crashes across multiple election cycles
  • Featured in The New York Times: "A newly juiced-up model of the board that can zoom in on the most obscure House districts"
  • Vulture: "Kornacki, eli5-ing races with sleeves rolled up and an 82-inch vertical touchscreen... looked amazing with the board, panning and zooming"

2016 NBC News County-Level Election Maps

https://res.cloudinary.com/ejf/image/upload/v1755101273/IMG_6264_ubgaak.jpg

https://res.cloudinary.com/ejf/image/upload/v1755101285/IMG_5444_mn2u7z.jpg

Vocativ / Knight FoundationJournalism · Data Quality

The Challenge

Newsrooms get messy data. Before you can analyze it, you need to know: Are there duplicates? Missing values? Outliers that might be errors? Journalists were spending hours manually checking spreadsheets—or worse, not checking at all.

What We Built

Dataproofer—a "spellcheck for data." Drop in a CSV, get an instant report on data quality issues. Open source, runs locally, no data leaves your machine.

Checks for:

  • Missing/duplicate column headers
  • Empty cells and missing rows
  • Outliers from mean and median
  • Values at SQL integer limits
  • Invalid coordinates
  • Character encoding issues

How It Happened

Gerald Rich and I pitched the idea to the Knight Prototype Fund while at Vocativ. We received a $35,000 grant and built it over 6 months with human-centered design training from Knight.

Results

  • Open source with community contributions
  • Used by newsrooms, researchers, and data analysts
  • Part of a broader effort at Vocativ that took graphics output from 5-6/month to 5-6/day
 dataproofer data.csv
 
total rows 5035
rows sampled 1259
 
Missing or duplicate column headers: passed
Empty Cells: warn
Duplicate Rows: passed
Outliers from the median: info
Invalid coordinates: passed
 
75%
9 tests passed out of 12
 
### PROOFED ###
Personal Project

Vulpes Browser

The Hypothesis What if a web browser was designed purely for reading? No JavaScript, no CSS layout, no images—just text …

165w935c1min4tech
SwiftZigMetal +1
Open Source (with Colin)

Subway Builder Mods

The Context Subway Builder is Colin Rothfels' indie transit sim—think Mini Metro meets real-world transit planning. I've…

166w1004c1min3links4tech
JavaScriptGame ModdingData Visualization +1
Open Source

Vulpes Theme Lab

The Problem Terminal theme builders are everywhere, but they show you one thing: a fake terminal preview. Meanwhile, you…

170w973c1min2links5tech
Vue 3NuxtTypeScript +2
Personal Project

TownTuner

The Problem Harmontown ran for 360 episodes over 7 years. I've been falling asleep to it for a decade. But podcast apps …

195w1072c1min5tech
SwiftUIiOSCloudKit +2
Personal Project

MorningRadio

The Problem The first thing most people do when they wake up is grab their phone and doom-scroll. News apps are designed…

120w721c1min2img4tech
SwiftiOSAudio Streaming +1
Open Source

Smallbot MCP

The Problem You have an idea for a website. Maybe it's a visualization, a tool, a quick demo. But between "idea" and "de…

145w731c1min4links4tech
MCPTypeScriptDeno +1
Open Source

EXIF Photo Printer

The Problem Photo prints hide the technical details that matter to photographers. Every print I order from CVS or Walgre…

Open Source

Cloudinary Backup Tool

The Problem Cloudinary's admin panel lets you download files one at a time. I had 15,000+ photos stored there. The CLI t…

CLI Tools Collection

I've always believed that if you're going to spend half your life in a terminal, it might as well feel like a cyberpunk …

171w1037c1min8links5tech
Node.jsCLIASCII Art +2

Creative Interfaces & Digital Art

These are my attempts to make computers that respond to the way humans actually move and gesture—exploring the design sp…

164w997c1min4links6tech
Computer VisionMIDIWebGL +3

Data Visualization & Analysis Suite

After years of making data visualizations for major newsrooms and clients, I kept running into the same problem: how do …

258w1607c2min7links6tech
Data VisualizationMachine LearningJavaScript +3

Developer Tools & Deployment

I've deployed way too many projects to way too many different platforms, and somewhere along the way I realized that mos…

128w744c1min3links7tech
DockerDeploymentGitHub +4

Photography & Visual Creation

I love being able to reference the technical details when editing photography—aperture, shutter speed, ISO, all the litt…

106w515c1min1img1links5tech
PhotographyEXIFPrint Design +2
Carnegie Mellon University

CMU COVIDcast

The Challenge In April 2020, the public needed to understand COVID-19 spread at the local level—but existing dashboards …

153w970c1min1img3links5tech
D3.jsJavaScriptObservable +2
NBC News

NBC News Specials

The Work On NBC News' Foundry team, I created bespoke longform articles—each one a unique approach to video, data visual…

131w770c1min3img4links5tech
JavaScriptD3.jsVideo +2