App developer, streamer, and photographer with over a decade of experience. I build job-search software, streaming tools, and creative applications.
| Project | What it does | |
|---|---|---|
| Pathos | Worker-side job search with source-linked roles, evidence-checked resumes, and application tracking. | |
| Markskill | A product-engineering skill for AI agents: trace behavior to its owner, fix root causes, shape interfaces around real tasks, and verify claims with evidence. | |
| Alert! Alert! | Turn a video URL or local file into a cropped, trimmed stream alert. | |
| Automated iPhone Social Media Uploads | Local-first workspace for finished clips, reviewed copy, and iPhone-native posting through SideTap. In development. | |
| Streamer Online | Build OBS scenes and browser-source overlays with connected streamer tools. | |
| ForgetMeNot | A local-first Twitch bot that remembers regulars, callbacks, and stream lore. |
The Pathos Chrome extension fills supported application fields, attaches a reviewed resume for the role, and drafts answers grounded in the candidate's information. It leaves uncertain and sensitive fields for review and lets the candidate submit the application.
Selected write-ups from engineering-notes:
| Paper | Description | Tech |
|---|---|---|
| 4K60 Native Ingest | What I found across 40+ short-form video tests of codecs, bitrates, resolutions, a Chrome extension, and native iPhone uploads. | iPhone, video encoding, short-form platforms |
| RLS silently disabled my GIN index | Why anonymous search ignored a GIN index under row-level security, and how the query plan exposed the cause. | PostgreSQL 17, RLS, GIN, tsvector, Supabase |
| Scaling streaming toolsets on Cloudflare | An event-driven overlay architecture using WebSockets for live state and KV for cold persistence. | Cloudflare Workers, KV, Durable Objects, Hibernatable WebSockets, EventSub |
| Chat bot memory | Local memory for chatters and running jokes without retaining raw chat logs. | SQLite, Gemini, Twitch |
| Building Pathos | How role discovery, resume safeguards, application tracking, and a review-first extension fit together. | React 19, Vite, Supabase, Cloudflare Workers, Chrome MV3 |
| Inbound job-status sync | Detecting job-status changes from selected forwarded emails, with uncertain matches held for review. | Supabase Edge Functions, TypeScript, Resend |
- Applications: TypeScript, JavaScript, React, Vite, Zustand, Chrome Manifest V3
- Data and infrastructure: PostgreSQL, Supabase, Cloudflare Pages and Workers, Stripe
- Media and automation: Python, C#, FFmpeg, Gemini, Twitch EventSub and Helix, Streamer.bot


