Twenty years in — and a lot to show for it.
Healthcare, security, privacy, food — concept to production to scale, and the long tail of maintenance most engineers never stick around for. Here's the track record, the toolkit, and how I actually work.
Where I've been
2025 — nowStaff Engineer · DevOps, CI/CD, production reliabilityLeasecake⌄
- Lead DevOps: CI/CD pipeline optimization and deployment automation.
- Primary owner of production debugging and reliability across the full stack.
2021 — 2024Staff Engineer · flagship Vue app, zero-knowledge E2E authCloaked⌄
- Led the flagship client-facing application, built in Vue.
- Major contributor to a zero-knowledge, end-to-end encrypted authentication system.
- Part of engineering leadership driving roadmap and product requirements.
2020 — 2021Senior Engineer · native→React/Electron migration, lead + UXStealthBits⌄
- Led migration of a legacy Windows app to React/Electron as lead developer and UX designer.
- Moved the team from waterfall to modern, product-led agile.
2017 — 2020Lead Senior Engineer · founding team, food-as-medicine platformTangelo⌄
- Founding team member; built a food-as-medicine platform from concept.
- Built enterprise order-management, inventory, and CRM systems.
2010 — 2017Senior Engineer · HIPAA platform, 10M+ monthly users, ETLVitals⌄
- Lead engineer of a public site serving 10M+ unique users/month on HIPAA-compliant AWS.
- Drove adoption of Laravel, Elasticsearch, Solr, and MongoDB.
- Built ETL pipelines processing millions of healthcare datapoints daily.
2005 — 2009Developer · sole developer, ad agencyEgo Id⌄
- Sole developer at an advertising agency; full-stack web across many client projects.
What I'm good at — years, and how deep
Core
Frontend & mobile
Data
Working with AI
…and how I work with it all
Everyone says they "use AI." The real question is whether they know when it's wrong. I treat it like any sharp tool — clear goals, hard constraints, judgment. Twenty years tells me where the model is confidently mistaken; architecture and tradeoffs still come from experience.
Specs before code
BDD specs first. The model executes; the thinking behind the spec — and the call on whether it's right — stays mine.
Claude Code, every day
Primary tooling, not a party trick. Multi-model orchestration where it earns its keep, plain old typing where it doesn't.
Small, honest pieces
Actions-pattern architecture — single-purpose units a model can extend without a human losing the plot.
Things I've built, completely solo, end to end.
the one I'm proudest of right now ↓
BugJar — bugjar.app
Privacy as the default.
A bug-reporting tool that records nothing until the user clicks the trigger, reproduces the bug, and consents to send it. Not a setting buried in a dashboard — the whole architecture is built around one hard constraint.
Elevated Consent Sessions
One-time consented capture, with browser-side redaction — so sensitive data never reaches a server at all.
↗ShowTell
liveDemo videos from scripts, showcase pages from URLs. AI compressing workflow, not replacing taste.
↗Paperwork
case studyThe anti-project-management tool. Tickets and standups replaced by a feed of what actually shipped.
↗Momentumm
case studyGitHub for personal goals — public plans, shared progress, calm community mechanics.
$ composer require
wonderful/wonder-ab↗WonderAB
open sourceA/B testing — Blade directives, weighted variants, nested experiments, pluggable analytics.
Notes from the bench — writing, half-thoughts, things I post.
Essays when an idea earns the long form, short posts when it doesn't. The decision is usually the story; the code is just evidence.
I think confidence is for morons. The people with actual knowledge and expertise are nuanced and cautious. It's not that smart people can't be confident, it's that it just easier to be bold when you don't care if you're right.
If you want to be different, don't do what they do. Sounds obvious. Watch what most "different" products actually ship.
The danger of building software isn't making bad decisions. It's wasting precious resources on what doesn't matter.
AI didn't give developers a new superpower. The superpower was always there. AI just took away the excuse we used to avoid the hard stuff. #buildinpublic
You cannot educate yourself to success. Every business is a version of an answer to a question you'll eventually have to sit down and answer yourself.
AI has really exposed our many contradictions around the definition of value. Some argue the finished work is the value, some argue that we do not value what didn't take effort to create. My delve into economics taught me value is subjective and has no final form, it is often
You marry the software you write.
We will value each other again... someday.But right now, web development - especially SaaS builders - are undergoing a midlife crisis right now. As AI made coding trivial, and enabled people...
Why BugJar records nothing by default
Every session-replay tool starts recording on page load and asks forgiveness later. I inverted it: BugJar captures nothing until the user reproduces the bug and explicitly consents to send it. The elevated consent session — one-time, browser-side redaction so sensitive data never reaches a server — was the hard part, and the part worth building.
Tools, Fools and AI: Why building with moral purpose might be the way forward.
TLDR: This very long post is about why I build BugJar. A tool built out of moral needs instead of technical one. Now on with the post..I wanted to start this article by saying that most user...
Everyone is building with AI but nobody's actually selling anything.
Many of you making apps with AI are hitting a wall many of us devs often find insurmountable.You have an idea, and you quickly buy a domain, and use claude code to spin up a working app, you...
AI isn't replacing developers. It's replacing the industry, and that's far worse.
caption...I am not an AI doomer. While AI has created a higher hurdle for junior developers seeking employment, but it’s been a net good for software engineers productivity and capacit...
↳ find me on X & LinkedIn
