Engineering — Newton, MA
Most of what I know, I learned because problems needed to be solved.
I'm a designer who kept picking up ways to build interfaces and then apps, and now a group of agents running a business. Mentored along the way by engineers I recruited by describing something and asking whether it was possible. At Xbox and T-Mobile I delivered production front-end instead of design files. At Bose I also wrote the iOS onboarding app for the AR sunglasses, reading the head-tracking IMU directly. Then I built a business, and that meant learning the back half — Python, FastAPI, a VPS, DNS, deploys at eleven at night when the booking form is down.
customer │ photo + symptoms ▼ POST /chat — FastAPI, HTMX partial response │ ▼ intake agent "Lloyd" — front desk, holds conversation state │ ├─ mechanical? ──▶ Ruth drivetrain, brakes, wheels ├─ electrical? ──▶ Hazel e-bike controllers, sensors, batteries └─ pricing? ──▶ Karl quotes, membership plans │ ▼ mode gate ├─ customer can fix it ──▶ DIY walkthrough └─ needs a visit ──▶ triage + quote + ETA │ ▼ wake-word handoff — mechanic named in thread (in development) │ ▼ signed JWT join link ──▶ human takes the same conversation
Why HTMX
Chat turns are server-rendered partials. No client framework, no build step, no state duplicated between Python and JavaScript.
Why separate personas
Narrow scope per agent means shorter prompts, fewer wrong confident answers, and a clear place to fix things when one specialist misbehaves.
Why JWT on handoff
The join link lands a mechanic in a live customer thread. It's short-lived and signed so a leaked URL doesn't become an open door.
What's next
Repackaging our customer intake for integration in bike shop POS systems as a third-party subscription.
doortodoorrepair.com
The customer intake desk. Four specialist personas take photos and symptoms at any hour, price the job, and get it on the calendar — so the mechanics only ever touch bikes, not phones. Full rewrite from a PHP stack.
Figma Layout Automation Tool
Published plugin on the Figma Community. Automates repetitive layout operations that eat a design team's afternoon.
Bike Repair Tracker
Wear-state dispatch engine. Models component life against ride data and triggers a service visit on actual condition instead of a calendar.
Coverage Map prototypes
Interactive front-end prototypes built against T-Mobile's CSS design system and merged into production rather than redrawn by engineers.
No-code prototyping tool
Let T-Mobile designers assemble working prototypes without writing code. Built pre-LLM, and adopted across the design team.
Some work from Best Buy, Bose, and Owl Labs is under NDA — happy to talk through it.