TrailMail
A Chrome extension that predicts work emails from public company patterns and
sends personalized outreach through Gmail. Entirely client side, send-only OAuth
scope, open and click tracking, no server ever holding your data. Published on
the Chrome Web Store.
JavaScriptGmail APIHunter.ioChrome MV3OAuth2
DialDo
Give your Mac a phone number. A local-first voice agent: you call a Twilio number,
a cloud gateway routes the intent to an Electron desktop client, and it finds files,
summarizes PDFs, writes documents and sends email. Plugin-based tool registry, SQLite
task history, signed and notarized for macOS.
TypeScriptElectronTwilioLLM APIsSQLite
GitPixelPush
Draw pixel art on your GitHub contribution graph. A browser-side engine that writes
back dated commits through the Git Data API: no clone, no server, and your token
never leaves the page. Served from a Cloudflare Worker that also handles the OAuth
exchange.
Git Data APICloudflare WorkersOAuthVanilla JS
Reporun
A desktop preflight tool for public GitHub and GitLab repositories. It reads
project manifests, compares requirements with your Mac or Windows PC, and
presents setup commands for review before you run unfamiliar code.
Desktop appGitHubGitLabDeveloper tools
OutreachOS
A multi-step LinkedIn cadence engine in the browser: visit, connect, message and
follow, sequenced with delays and daily caps. Runs against the Voyager API rather
than clicking the DOM, which is the only approach that survives a redesign. 158
unit tests behind the scheduler.
Chrome MV3Voyager APIService WorkersIndexedDB
Relay
A two-lane outreach engine: emails go out up front while the LinkedIn crawl runs in
the background, so the slow lane never blocks the fast one. Includes a template studio
with attachments and live preview, plus a credit strategy that spends per company
instead of per person. 773 tests.
Chrome MV3Gmail APIJob QueuesVitest
PRIVATE BETA
Agentic Voice System
End-to-end voice agent orchestration built for an enterprise prospect. LLM reasoning,
webhooks and CRM-style data handoffs, with conversation logic that survives multi-step
tasks without losing the plot. The repeatable agentic pattern underneath it became DialDo.
PythonBland AIn8nWebhooksLLM APIs
CASE STUDY ON REQUEST
Email Research Engine
The inference backend behind TrailMail. A Flask service that resolves a company name
to its real domain, mines public pages and search snippets for example addresses,
then infers the organization's address pattern and scores its own confidence. One
paid lookup per company, never per person.
PythonFlaskBeautifulSoupSSEHunter.io
POWERS TRAILMAIL
ConnectPilot
A LinkedIn connection automation extension, and mostly an exercise in reverse
engineering: DOM clicking proved to be a dead end, so I built request-capture
tooling, found the real invitation endpoint, and drove it directly with the
correct payload shape.
Chrome MV3webRequestVoyager API
PRIVATE REPO
This Portfolio
The world you are flying over. A procedural dusk coastline in Three.js with real
planar water reflections, merged city geometry, a lathe-turned aircraft and a
generative WebAudio score. Zero downloaded assets: every texture is drawn to a
canvas at boot.
Three.jsGLSLGSAPWebAudio
LOOK DOWN ↓
Your idea
here
The next one gets built at your company. I prototype fast and ship things
that survive contact with production.
START A CONVERSATION ↗