What I’m working on
What I build
Projects across four disciplines. Pick a category to explore.
Recent Activity
Caught a partial-apply incident on a security migration when smoke tests failed — 31 of 45 production functions broke under an empty search_path that the original spec assumed wouldn't matter. Reverted within the same builder session before any user impact, then redesigned the migration with full body schema-qualification before re-attempting.
Added idempotency keys to four Stripe API calls — payout transfers, wave referral credits, Connect account onboarding — so webhook retries can no longer double-pay or duplicate accounts. Built a friendly Stripe error mapper that translates raw failure codes into actionable user-facing messages instead of generic 500s.
Refactored ChurchScroll's Termly Consent Management Platform integration to match the official Next.js App Router reference component. Lifted the website UUID into an environment variable for cleaner per-environment configuration and removed a stale comment about a hydration-error workaround that the new pattern handles cleanly.
Migrated three legal policy pages — privacy, terms, cookies — from 1,300 lines of hardcoded HTML to Termly's hosted embed pattern via a reusable React component. Ends the drift problem where local copies were five months out of sync with the actual published policies, and any future policy update flows automatically.
Rewrote 85 tables of Row-Level Security policies to wrap auth.uid() and auth.jwt() calls in init-plan SELECTs and consolidate overlapping permissive policies. Cleared 244 auth_rls_initplan and 480 multiple_permissive_policies advisor findings via per-table atomic transactions, with each table's original DDL preserved as a rollback comment block.
Where This Is Heading
What's Cooking
Several things at once, as usual:
- AI systems and automation that take repetitive work off people's plates
- Websites and web apps that ship and do what they're supposed to
- Building out entertainment spaces with live sound and light systems
- There have been a bunch of tools that started as a personal experiment and ended up solving a real problem for a real client
- I've been playing in a brand-new space for me — ARGs — Stay tuned for more
On the surface, those don't have much in common. But the same instincts that make a live show run smoothly are the ones that make a software system hold together under pressure. The people I work with get the benefit of all of it, and it's a whole lot of fun.
The Endgame
Same pattern as always, just covering more ground.
Decades across sales training, military service, and enterprise technology will do that. The focus has shifted hard into AI development over the last couple of years, and it's been a hell of a ride so far.
People come back to work with me and bring friends because something got solved, something shipped, and they've got more problems worth solving.
The work itself:
- AI and automation has moved past experimentation — it's running for real clients, on real deadlines, giving people huge amounts of time back in their week
- The sound and lighting work is still a blast — years on stage before I ever stood behind a board means the people performing get someone who knows what it feels like from both sides
- My friends and clients who get things solved keep coming back with more challenges and bringing new friends along that often become new clients.
No master plan. But the pattern holds, the range keeps expanding, and something useful comes out the other side.




