I find the real problem. Then I remove it.

Twenty years as a designer — used wherever the problem actually is.

See the work ↓
615commits as lead developer of a nonprofit's platform
0security findings, after his own sweep closed 5
9.03:1contrast ratio, measured up from a failing 2.19:1
A human approves every AI schedulenot a policy — how the system is built

How I work

Fix the root, not the ticket

A bug report names a symptom, not a cause. I look for every other place the same mistake could hide before I patch the one someone noticed.

Read the source, not the explanation

When something's broken and someone already has a theory, I check it against the actual code and data before I accept it.

Ship the guardrail with the automation

AI drafts, checks, and proposes — a person approves. Every automated system I build keeps a human in the loop on anything with real consequences.

Range over specialization

Doing one thing for too long is its own kind of failure mode, for me. That's why I end up owning the connective tissue between design, engineering, and the team that runs both.

About

Where it started

2007. Freelance web and design work for whoever would hire him — brand systems, WordPress sites, whatever a small business needed. Some of that teaching turned into an actual beginner HTML course he still keeps running.

Learning by doing

Eight years at 92nd Street Y, watching the job get bigger than “designer” — a CMS migration, a Salesforce Marketing Cloud rollout, and in 2020, rebuilding how an entire organization delivered its programming online in a matter of weeks.

Where he is now

Senior Director of Technology at The Writing Revolution, owning the integration layer across Salesforce, QuickBooks, and half a dozen systems that disagree about the same data. His boss and colleagues have called him a natural teacher, more than once. Outside of that: Koto, Kibi, and a book designed and edited for his mother.

Off duty: dine-in movies at the Alamo Drafthouse (Resident Evil most recently), first- and third-person shooters — Destiny 2, Marvel Rivals, Arc Raiders.

Elsewhere: his freeCodeCamp profile from the teaching years, and volunteer work through Catchafire.

Leading the integration layerSalesforce, QuickBooks, and the systems that connect them, kept coherent.
Managing and growing peopleReal ownership handed over, not just tasks — a direct report is currently leading a design-system initiative he proposed and prototyped himself.
Vendor governanceHolding outside partners accountable to what they actually shipped.
AI enablementTooling, training, and hands-on onboarding, across the org.
Still hands-onWriting code and reviewing pull requests, not just directing.

Colleague feedback

“He encourages people to learn new things. I appreciate the chances to pick up skills that can make some of our work more efficient.”

— Anonymous

“He works across teams and leads the charge on helping us be more productive, while protecting us from burnout (thank you!).”

— Anonymous

Got a hard problem? I’d like to hear about it.