Senior Full-Stack Engineer
.NET, Node.js, Swift, React, Vue
Twenty years, startups to Fortune 500s.
About Me
Full-stack: React, Vue, and TypeScript on the front end, Node.js and C#/.NET on the back, SQL Server, Postgres, and MongoDB underneath. Production workloads on Azure and AWS.
A large part of my work is architectural: service boundaries, multi-tenant data modeling, background processing, real-time updates, authentication and access control, and query performance as data grows.
Also native iOS, iPadOS, macOS, and watchOS apps in Swift 6 and SwiftUI, accessibility to WCAG 2.2 backed by a W3C certification, and enterprise CMS work on Sitecore and Umbraco, certified on both.
Technical Blog
What I'm working on and what I've figured out.
I Open-Sourced the Engine Behind AccessHawk. Meet A11yHawk.
A11yHawk is the open-source, self-hostable accessibility scan engine that powers AccessHawk. Real browser capture, Lighthouse audits, and bring-your-own-key AI analysis against every WCAG criterion. Build your own accessibility tooling without the per-scan SaaS bill.
Your Claude Prompts Are an Audit Gap. LiteLLM Closes It.
A staff engineer's case for putting LiteLLM in front of Claude to close the audit gap: PII filtering, secret detection, virtual keys per user, and a real log of every prompt. Config examples and an honest take on the tradeoffs.
84 Malicious TanStack Versions Hit npm. My Portfolio Pulled Zero.
On May 11, 2026, the Mini Shai-Hulud worm published 84 malicious versions across 42 TanStack packages in a six-minute window. My portfolio runs on TanStack Start. None of the bad versions ever touched it. Here is why, and what every project running npm should be doing right now.
That Accessibility Widget Isn't Protecting You. It's a Lawsuit Waiting to Happen.
Accessibility overlays like AudioEye and accessiBe promise WCAG compliance with a single line of JavaScript. The FTC, the courts, and the disability community all disagree. I dig into why overlays fail, what legal exposure they actually create, and what it takes to build accessibility into your source code.
Railway Is My Go-To Infrastructure. Here's Why I Recommend It to Enterprise Clients
I run several production projects on Railway, from SaaS platforms with background workers to simple marketing sites. After years on AWS and Azure, Railway cut my go-to-live time from days to minutes. Config-as-code, built-in databases, non-serverless deployments by default, and a platform that ships meaningful features weekly.
Why I Chose Nuxt Over Next.js for AccessHawk
I built AccessHawk with Nuxt instead of Next.js. Vue's reactivity model and auto-imports made me faster, and I didn't have to give up TypeScript or testing to get there.
Contact
Drop me a line. I read everything and reply within a day.



