Projects
Featured Work
Clusters of NYPD Misconduct
In 2021, I got my hands on a massive NYPD complaint dataset from Gothamist/WNYC and immediately went down a data rabbit hole. Built a network of 29,915 officer nodes with 159,671 relationships using Neo4j and Gephi (love-hate relationship with Gephi, but unrivaled for networks).
When Gothamist reporter George Joseph interviewed victims, they confirmed what the network showed - certain officers were "catalysts" who other officers "followed" into misconduct. Math and reality matched up! I documented everything in excruciating detail so others could replicate it for their own police departments.
NBC News Big Board
I spearheaded an internal effort to develop new D3-powered mapping software for visualizing election maps and results live - the touchscreen app wielded by Steve Kornacki known as the "Big Board". Built for real-time county-level election analysis.
2016 NBC News County-Level Election Maps
All Projects
Projects
e]]
MorningRadio
Designed to be a healthy "first screen" in the morning. News summaries, updates, and enough information about the latest events that you don't feel the need to endlessly doomscroll.
The goal was to repurpose the tik-tok style endless vertical scroll but instead fill it with interesting and useful websites, tools, and news articles (populated through my Pinboard bookmarks)
I even experimented (unsuccessfully) with creating a home screen widget.
Smallbot MCP
Smallweb is a really unique tool to create a filesystem based system for rapidly-deployed deno apps, and it pairs really well with a robot companion.
Nowadays when I have an idea for a website and I just want it to exist, without spending three hours setting up a build pipeline configuring DNS. Smallbot is an incredible tool to defeat that particular form of procrastination—a robot that takes "make me a site about northeastern trees" and actually builds the thing.
I made a video with the creator of Smallweb about how easy it is to get setup, and I love how much the project embodies indieweb philosophies
This is a tool built on the MCP (Model Context Protocol) so it can talk to Claude and other AI assistants and give them the tools and documentation to make little Smallweb sites easily, on-the-fly.
Cloudinary Backup Tool
I needed to backup thousands of photos from Cloudinary, and couldn't find an easy standalone tool to do so. So I built a little desktop app with Tauri. It handles batch downloads without eating all your RAM (vs an Electron app) and lets you resume if something goes wrong.
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 movie. These tools explore how joy-drivem devex design can transform the routine into something that makes even doing your chores fun.
Each tool follows the Unix philosophy of doing one thing well, but with enough personality to make you smile when you run them.
They represent my approach to design: functionality first, but never underestimating the power of delight.
Core Development Tools
- git-status-dash: Multi-repo git status dashboard with ASCII visualization
- directory-sync-tool: Visual directory comparison and syncing interface
- cli-delta-dojo: Interactive JSON comparison tool for code review
- cli-ai-chat: IRC-style terminal interface for LLM conversations
- scrapbook-cli: Command-line interface for exploring personal knowledge graphs
- showtouch: Large-scale ASCII keystroke visualizer for presentations
- ascii_webcam: Real-time webcam-to-ASCII converter
Related Content
- The Impact of My LLM-Powered MOTD - Building custom daily CLI tools around existing routines, and getting little poetic directions from a robot inside my computer every time I start a new shell
Creative Interfaces & Digital Art
These are my attempts to make computers that respond to the way humans actually move and gesture—exploring the design space between human intuition and machine capability. Each project pushes beyond traditional HCI constraints to find new interaction models. Some of these work better than others, but they all represent steps toward interfaces that feel more like extensions of thought than barriers to it.
- hand-midi-controller: Professional hand tracking MIDI controller with TouchDesigner integration. Converts hand movements to MIDI with detailed performance timing breakdowns and memory analysis for creative interface exploration.
- handtrack-websockets: Real-time gesture streaming pushing the boundaries of browser-based interaction.
- flipper-generative-art: Real-time generative art and animated patterns for Flipper Zero with 10 gradient types, Floyd-Steinberg dithering, and smooth 30 FPS animations. Finding art within the constraints of 64KB RAM.
- ps5-tmux is a little tool to make it easier to vibe-code; just move between panes with your PS5 controller and accept changes with the X button, or hit the middle button to enter dictation mode.
Data Visualization & Analysis Suite
After years of making data visualizations for major newsrooms and clients, I kept running into the same problem: how do you make sense of information that exists in too many dimensions for humans to naturally understand? These tools are my attempt to build bridges between the abstract mathematical spaces where modern AI lives and the visual, spatial thinking that humans excel at.
What started as a need to understand my own research archive evolved into a suite of tools for mapping everything from film aesthetics to code relationships. Each project explores the intersection of machine learning, interface design, and human cognition—taking complex algorithms and making them visually intuitive and actionable.
Related Content
- Browser Tabs to VR: Creating my Digital Memory Palace - Unity-based 3D visualization of bookmarks with spatial organization
- Turning My Bookmarks Into A Knowledge Graph - Building structured relationship data from web content
Project List
-
criterion-embedding-viz: Vector embeddings for Criterion films enabling searches like "films about existentialism" for cinephiles who want deep thematic connections.
-
code-network-gen: Generate a graph of nodes/edges from your javascript code. Visualizes codebases as interconnected networks treating software architecture as explorable graphs.
-
connectology: Network visualization tool with an 11-page README for those who think in connections and need to see how everything relates to everything else.
-
latent-scope: A scientific instrument for investigating latent spaces. Democratizes advanced ML visualization with extensive documentation making complex embeddings accessible to non-experts.
-
obsidian-analysis: Generate semantic embeddings for your Obsidian vault using LM Studio and Nomic embeddings. Search your notes using natural language and explore with interactive UMAP visualizations.
Developer Tools & Deployment
I've deployed way too many projects to way too many different platforms, and somewhere along the way I realized that most deployment tools are optimized for companies with dedicated DevOps teams, not for people who just want to push code and have it run somewhere. Same with development tools—most of them assume you have infinite time to configure them.
These are the tools I built out of frustration with the status quo. Each represents a design philosophy: reduce cognitive overhead, eliminate unnecessary complexity, and optimize for the 80% use case.
-
dockrune: Self-hosted deployment daemon: push-to-deploy from GitHub to Docker VPS.
-
room302-template: Nuxt template with personality in the name bringing character even to boilerplate code.
-
smallweb-starter: Lightweight application starter rejecting bloated modern web complexity for focused simplicity.
Photography & Visual Creation
I love being able to reference the technical details when editing photography—aperture, shutter speed, ISO, all the little choices that go into making a photograph. But most photo prints completely ignore this data, treating it like metadata to be hidden away in EXIF tags that nobody ever sees. So I made a little app to add the EXIF data to the margins of prints you might get from CVS, Walgreens, or Wal-Mart (don't use them for photo prints, I learned the hard way.)
exif-printer: Creates printable photos with camera settings displayed in the borders - a photographer's tool that treats metadata as part of the art.
Coach Artie Ecosystem
I created Coach Artie to serve as our Discord studio assistant. He's evolved into a powerful AI tool with persistent memory and tool usage - helping our team coordinate and manage creative workflows.
Coach Artie v2: Production AI with MCP Tools
Currently in development.
Memory & Consciousness Analysis
Explores AI consciousness emergence through memory patterns with scientific rigor applied to existential questions. This research component investigates how persistent memory systems in AI assistants might lead to emergent conscious-like behaviors.
Related Content
- The AI-Human Creative Loop: My 2025 Working Process - How AI assistants integrate into continuous creative workflows
- AI Is Our Newest Drug - Philosophical exploration of AI as psychoactive technology
COVIDcast
During the early COVID-19 pandemic, I worked with Carnegie Mellon University's COVIDcast project, prototyping data visualizations and user interactions to help the public understand hospitalization, transmission, and movement trends across the country.
NBC News Specials
During my time at NBC News, I worked on the Foundry team, creating bespoke longform articles in collaboration with journalists across the organization. These specials focused on unique approaches to video, data visualiation, and storytelling on the web.
Does America Need Another Prison? (2018)
The Making of an Astronaut (2017)
Donald Trump's First 100 Days (2017)
Dataproofer
Along with Gerald Rich and the Vocativ data team, I received a Knight Prototype Fund grant to create Dataproofer - an open source tool to check data for reliability, missing data, and outliers. Built as an Electron desktop app for journalists.
❯ dataproofer Criterion\ Channel\ videos\ v1.2.0-20190621\ -\ v1.2.0-20190621.csv
total rows 5035
rows sampled 1259
Missing or duplicate column headers: passed
Numeric cells: info
String cells: info
Empty Cells: warn
Special Letters & Characters: warn
Duplicate Rows: passed
Potentially missing rows: passed
Words at their character limit: failed
Integer at its SQL upper limit: passed
Summed integer at its upper limit: passed
Small integer at its SQL upper limit: passed
Big integer at its SQL upper limit: passed
Outliers from the mean: info
Outliers from the median: info
Invalid coordinates: passed
Void coordinates: passed
75%
9 tests passed out of 12
### PROOFED ###