Projects

Work grouped by domain, not flattened into one undifferentiated list.

Contact Center Automation

Contact Center Automation

Dialer automation, compliance, lead prep, and real-time operational tooling for contact center teams

Python FastAPI Google Cloud Run Firestore Slack SDK Streamlit Pandas

Contact centers run on repetitive, high-stakes workflows — DNC scrubbing, lead data prep, agent availability, daily reporting — that are easy to do manually and expensive to get wrong. The work here removes that manual layer without replacing the platforms the team already depends on.

Read More

Contact Center Zoom Wallboard

Real-time agent availability inside the dialer — no second license required

Python FastAPI Google Cloud Run Docker GCP HTML CSS

A contact center operation runs two platforms simultaneously: a predictive dialer for outbound calls and Zoom Contact Center for warm transfers. Agents on the dialer floor had no visibility into which Zoom agents were available for a live handoff without switching systems. The ask was simple: put Zoom availability data somewhere dialer agents could see it without leaving the dialer.

Read More

DNC Compliance Automation Tool

Slack-driven DNC compliance automation across multiple dialer platforms

Python FastAPI Google Cloud Run Firestore Slack SDK Docker GCP

Contact center outbound operations require DNC (Do Not Call) list scrubbing before every campaign launch. Doing this manually -- across multiple dialer platforms simultaneously -- is repetitive, error-prone, and creates compliance exposure. The cost of a missed scrub is up to $500 per call under TCPA.

Read More

Real-Time Coaching Bridge (Concept)

A real-time, call-audio-based coaching concept for contact centers — built, submitted, not shipped

JavaScript Chrome API WebRTC

Contact center coaching is typically after-the-fact — reviewing call recordings later, or silently monitoring live with no way to intervene short of pulling the agent off the call entirely.

Read More

Lead Data Prep Tools

700,000 records. Under 8 minutes.

Python Streamlit Pandas Rust Integration

Data engineers and ops people watch Python scripts choke on 50,000 rows. Encoding mismatches, messy headers, mixed formats, duplicates, and memory constraints cause failures at scale. The challenge was building a system that handles 700,000+ records reliably in under 8 minutes.

Read More

Convoso Team Optimizer

Team management and visual organization for the Convoso live agent monitor

JavaScript Chrome API CSS

Convoso's real-time agent monitor shows every agent in one flat list, with no native way for a manager running multiple teams within a campaign to see just their own team at a glance.

Read More

Convoso Auto-Create Lead

Automatically creates the follow-up lead after a call is dispositioned in Convoso

JavaScript Chrome API Content Scripts

Agents using Convoso have to manually click 'Create Lead' after dispositioning a call, an extra step repeated after every relevant disposition all day.

Read More

Convoso Insight Lens

Calculated performance columns injected directly into Convoso's own reports

JavaScript Chrome API

Convoso's reports show raw contact, appointment, and transfer counts, but calculating conversion rates from them requires manual math every time a manager or agent wants to check performance.

Read More

Telesero Auto-Pauser

Automatically checks the 'PAUSE AGENT DIALING' checkbox on Telesero Suite

JavaScript Chrome API Content Scripts

Telesero agents manually check a 'PAUSE AGENT DIALING' checkbox between calls to stop new calls from routing to them — a small, easy-to-forget repeated manual action.

Read More

Telesero Admin Suite

A production automation suite that eliminated the daily manual process for an entire operations team

Python FastAPI MCP Machine Learning

An entire operations team was spending hours every day on manual data entry, report generation, and status checking. The process was repetitive, error-prone, and consumed time that could be spent on higher-value work.

Read More

Chrome Extensions

Chrome Extensions

Browser-based workflow fixes for contact center platforms and general browsing

JavaScript Chrome API Manifest V3 Content Scripts Puppeteer Jest

Browser-based platforms leave gaps that a server-side integration can't always fill — no API, no webhook, or the workflow is too UI-specific. Chrome extensions close those gaps by operating inside the browser where the work actually happens. The contact-center-specific extensions that were once here now live under Contact Center Automation, where they sit closer to the domain they actually serve.

Read More

Chrome Auto-Refresh

Per-tab auto-refresh that survives tab suspension and service worker restarts

JavaScript Chrome API Jest Puppeteer

Chrome can discard inactive tabs and kill Manifest V3 service workers at any time. A naive setInterval-based auto-refresh extension breaks under both conditions — building one that survives both reliably is a harder problem than it looks.

Read More

Infrastructure/MCP Tools

rfd-blog-engine

Atomic WordPress + YAML publishing pipeline with honest reconciliation

Python WordPress API Dev.to API SQLite YAML

Publishing the same content to multiple platforms while keeping scheduling, metadata, and canonical URLs consistent is easy to do manually and expensive to get wrong. A missed reschedule, an out-of-sync syndication, or a partial write that leaves WordPress and YAML inconsistent all create silent failures.

Read More

RFD_YT_Engine

24 MCP tools orchestrating a YouTube content pipeline across eight architectural domains

Python MCP SQLite YouTube API Architecture Decision Records

A content pipeline for a YouTube channel spans ingest, production, distribution, cataloging, scheduling, capture, streaming, and interfaces. Without explicit boundaries, a small change in one domain leaks into another and the system becomes hard to reason about, test, or extend.

Read More

Infrastructure I've Built

The real automation infrastructure running underneath this site and the work on it

Python MCP SQLite FastAPI

A portfolio of shipped projects doesn't show the infrastructure that keeps them running — scheduling, cross-session memory, service orchestration, and the tooling that lets an AI agent act on real systems rather than just describe what to do.

Read More

PrivyBot

My AI assistant sent me my email summary, YouTube stats, and task list before I made coffee this morning

Python SQLite FastAPI MCP WAL Mode

AI assistants are powerful but disconnected from your actual life. They live in chat windows, not your infrastructure. The challenge was building an AI assistant that integrates with your real systems — email, calendar, tasks, analytics — and runs reliably on your own hardware.

Read More

Games/Engines/Systems

Legacy Projects

The honest back-catalog — everything that didn't make it into the live Arcade, sorted by how finished it actually is

TypeScript Python Dart

Two years of game exploration produces a lot of real, half-real, and barely-real work. Flattening it into one list either buries the shipped games under noise or lends prototype-stage forks more credibility than they've earned.

Read More

Games, Engines, and Systems

Shipped games, a shared engine, and an honest back-catalog of everything else

Python Rust TypeScript Lua

Two years of game development produces a lot of real work at very different stages — flattening it into one list either buries the shipped work or overstates the prototypes.

Read More

OPERATOR: A Dispatch Simulator

Command a slime crew. Deploy on missions. Wait. See what survives.

Rust egui serde Android cdylib wall-clock async timers

Simulating a multi-agent ecosystem on high-latency, resonant planetary surfaces requires more than just a game engine—it requires a technical constitution. The challenge was building a high-performance simulation that remains perfectly synchronized across wall-clock time, regardless of whether the application is active, backgrounded, or offline.

Read More

GreenGap

Educational ecological succession game teaching environmental concepts through mechanics

FastAPI Vanilla JavaScript SQLite HTML5 Canvas Game Design

Most educational games bore players with facts. GreenGap teaches ecological succession (how landscapes recover from disruption) by embedding lessons in game mechanics rather than exposition. Players must understand ecological concepts to progress—knowledge becomes prerequisite for winning.

Read More

TurboShells

Turtle racing simulation with 20-trait genetics and sacrificial breeding

Rust PyO3 Python Genetic Algorithms

Breeding simulations often oversimplify genetics to a few traits. The challenge was implementing a 20-trait genetic system with meaningful trait interactions, while maintaining frame-independent stability and performance at simulation limits.

Read More

rpgCore

The Valve Orange Box concept applied to solo indie dev — one engine, four completely different games, no duplicated systems

Python Godot 4.x C# NEAT

I've been rebuilding the same systems since middle school. Every game needs an entity system, a state machine, a resource manager, save/load logic. The challenge was extracting these patterns into a reusable engine that could power completely different games without duplicating code.

Read More

Trading/Financial Systems

Trading / Financial Systems

Real-time Solana arbitrage detection and execution infrastructure

Python TypeScript Rust FastAPI Solana SDK WebSocket JITO

Cryptocurrency arbitrage opportunities exist across Solana's decentralized exchanges, but MEV bots watch the mempool and front-run profitable transactions. Competing requires millisecond-scale detection and execution that protects the trade from being extracted before it settles.

Read More

PhantomArbiter

Solana DEX arbitrage engine with multi-strategy detection and MEV protection

Python TypeScript Rust FastAPI Solana SDK WebSocket

Cryptocurrency arbitrage opportunities exist across Solana's decentralized exchanges (Jupiter, Raydium, Orca, Meteora), but MEV (Maximal Extractable Value) bots front-run profitable trades, capturing the arbitrage before it can be executed. Detection must happen in milliseconds across multiple DEX prices.

Read More

AI Tooling

AI Tooling

Tools that make AI coding agents aware of your codebase and your intent

Python Click GitPython AST Parsing PyPI

Every AI coding session starts by re-explaining the same context. Generic prompts miss project-specific patterns, architecture decisions, and coding style. The tooling here makes AI agents actually aware of the codebase and the developer before they start writing code.

Read More

OpenAgent

Every AI coding session starts by re-explaining the same context

Python Click GitPython AST Parsing

Every AI coding session starts by re-explaining the same context. Generic prompts miss project-specific patterns, architecture decisions, and coding style. The challenge was creating a tool that understands your actual codebase and personalizes recommendations to your development approach.

Read More

Utilities

RFDInboxTriage

Gmail drain with FTS5 full-text search, freeform labels, and an analyst layer

Python SQLite FTS5 Gmail API OpenRouter

Email inboxes become unsearchable archives. The built-in Gmail labels are rigid, search is string-based, and bulk classification either requires writing filters one at a time or trusting an opaque auto-sorter. The challenge was building a system that drains the inbox, makes it full-text searchable, and lets labeling evolve from the user's own verdict history.

Read More

Utilities

Local-first desktop tools that keep your data on your machine

Python PyQt6 OpenAI Whisper FFmpeg

Useful everyday tools often force a cloud dependency — API keys, per-minute billing, and sensitive data leaving the machine. The utilities here do the same work locally, keeping the data and the control with the user.

Read More

WhisperUI

Local audio transcription. No API key. No cloud. No data leaving your machine.

Python PyQt6 OpenAI Whisper FFmpeg

Audio transcription services require API keys, send your data to the cloud, and cost money per minute. For sensitive meetings, interviews, or personal recordings, this is unacceptable. The challenge was building a local transcription tool that never leaves your machine.

Read More