Frontend engineer who likes the hard parts of the browser: real-time voice, apps that host other apps, and design systems people can actually use. Lately I've been building the tooling that lets AI agents ship code alongside us.
Last 3 years, roughly in order:
- 📞 Real-time voice in the browser
- a WebRTC softphone and its SDK: call controls, ringing and device handling, headset button support (hold/unhold), disconnect/reconnect recovery, and running inside Citrix/VDI
- 🧩 Micro-frontends at scale
- Nx monorepo plus a module-federated shell that hosts dozens of apps in one workspace; later moved the SDK to a Vite/ESM build and prototyped scoped SDK connections per module
- 🎨 Design systems & accessibility
- contributing to a React Aria–based component library, with a focus on WCAG-compliant components
- 🖥️ Desktop & notifications
- Electron app releases, OS notifications with click-to-focus, a headless agent status bar
- 📈 Observability
- Dynatrace dashboards and custom metrics, so production issues show up on a graph before they show up in a ticket
- 🚢 Release & CI hygiene
- release-please, Dependabot guardrails, Node 18 → 22 migrations, Snyk, faster pipelines
- 🤖 Agentic engineering
- a multi-agent workflow platform (spec → plan → implement → PR) and reusable agent skills, like automated merge-risk assessment
Currently exploring: agent skills as a team baseline, LLM-maintained docs, and how to tell whether an AI-generated PR is actually safe to merge.
- Not an option, but a necessity: How organizations are adopting and implementing AI internally
- Remixing Shopify's Admin: How We Made It 30% Faster and AI-Ready
- Agentic Engineering in Action
- ChatGPT May Be Eroding Critical Thinking Skills
- Proof of Human. Creating the invisible Turing Test for the Internet