I research and build telephony voice agents for healthcare at Acuity Health.
The goal is simple: every patient should feel recognized, understood, and taken care of. No phone-tree purgatory.
- How fast should a voice agent respond before silence feels broken?
- When should it interrupt—and when should it shut up?
- How do scheduling and transfer failures stay visible and recoverable?
- How do we prove the patient got what they called for?
I have strong opinions about 600 milliseconds of silence.
Realtime audio · turn-taking · telephony · tool orchestration · scheduling integrations · human handoffs · evaluation · observability
Mostly TypeScript and Bun, with Go, Python, LiveKit, and whatever boring primitive keeps the system reliable.
- my-agent — coding agent with telephony integration
- amd-cli — patient and scheduling operations in Go
- future-of-work — operating kernel for agent work, approvals, and proof
- agent-scripts — Codex skills, hooks, and guardrails
- travelblog-next — proof I occasionally leave the terminal



