Selected Work
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.

The Challenge
Gothamist/WNYC had obtained a massive dataset of NYPD civilian complaints—years of misconduct allegations, but no way to see the patterns. The question wasn't just "which officers have complaints?" It was: do certain officers influence others to misbehave?
What I Built
A network graph connecting 29,915 officers through 159,671 relationships—shared complaints, shared precincts, shared incidents. Built with Neo4j for graph queries and Gephi for visualization.
The analysis revealed:
- Officers cluster into groups with similar complaint patterns
- Certain "catalyst" officers appear connected to spikes in misconduct among nearby officers
- Transfer patterns sometimes spread problematic behavior to new precincts
Validation
When Gothamist reporter George Joseph interviewed victims, they confirmed what the network showed—certain officers were known as "leaders" who other officers followed into misconduct. The math matched the reality on the ground.
Why This Matters
I documented the complete methodology so other journalists can replicate this analysis for their own police departments. The same techniques work anywhere you have officer complaint data—which, thanks to state transparency laws, is increasingly common.
Open-source accountability tools. That's the point.

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


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 ###Vulpes Browser
The Hypothesis What if a web browser was designed purely for reading? No JavaScript, no CSS layout, no images—just text …
Subway Builder Mods
The Context Subway Builder is Colin Rothfels' indie transit sim—think Mini Metro meets real-world transit planning. I've…
Vulpes Theme Lab
The Problem Terminal theme builders are everywhere, but they show you one thing: a fake terminal preview. Meanwhile, you…
TownTuner
The Problem Harmontown ran for 360 episodes over 7 years. I've been falling asleep to it for a decade. But podcast apps …
MorningRadio
The Problem The first thing most people do when they wake up is grab their phone and doom-scroll. News apps are designed…
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…
EXIF Photo Printer
The Problem Photo prints hide the technical details that matter to photographers. Every print I order from CVS or Walgre…
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 …
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…
Data Visualization & Analysis Suite
After years of making data visualizations for major newsrooms and clients, I kept running into the same problem: how do …
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…
Photography & Visual Creation
I love being able to reference the technical details when editing photography—aperture, shutter speed, ISO, all the litt…
CMU COVIDcast
The Challenge In April 2020, the public needed to understand COVID-19 spread at the local level—but existing dashboards …
NBC News Specials
The Work On NBC News' Foundry team, I created bespoke longform articles—each one a unique approach to video, data visual…