Dave
A personal AI agent that runs my day over iMessage, voice and phone. Planner/executor that acts freely on reversible tasks and asks before anything irreversible, with a fail-closed send allowlist enforced on the wire.
I build software that has to work the first time, in real time: low-latency voice pipelines, autonomous agents with safety rails, and native iOS apps on the newest Apple frameworks.
I started behind a mixing console, where a signal chain either holds or the whole room hears it fail. I brought that standard to code: measure it, verify it, then ship it.
A personal AI agent that runs my day over iMessage, voice and phone. Planner/executor that acts freely on reversible tasks and asks before anything irreversible, with a fail-closed send allowlist enforced on the wire.
A local-first second brain: FastAPI backend, a local model that classifies and organizes everything captured, a mail engine indexing 120k messages, and a native SwiftUI iOS client with HealthKit, Location, APNs and on-device Foundation Models.
A one-page daily task app modeled on the Ugmonk Analog card system. Every day resets; open tasks trigger an end-of-day carry or let-go review. Real Liquid Glass on iOS 26, fully offline.
Production Gmail client with Apple Mail's gestures and a split inbox, snooze and scheduled send. OAuth 2.0 + PKCE straight from the device, no backend. 34 unit and 6 XCUITest cases.
A calm budgeting app: one balance, category budgets, a daily allowance and a receipt routine that learns from approved merchants. Money stored as integer cents, data never leaves the device, end-to-end UI test through relaunch persistence.
And a dozen production websites shipped for local businesses.
A calm budgeting app built around one question: how much can I spend today? Here is one purchase, start to finish.
01 / Overview
One number: what is left this month. Below it, a daily allowance and whether you are ahead of pace. Fixed bills like the mortgage are kept out of the daily math so the number stays honest.
02 / Learned prefill
Buy from Juniper Café again and the category comes pre-filled from your last approved entry. No AI, no profiling: a transparent local rule you can always override.
03 / Receipt
The expense only hits your budget once a receipt is attached and you submit. Money is stored as integer cents, so totals never drift, and everything stays on the device.
A workbench for rigorous design critique. Reviewers rate interface specs against a versioned six-criterion rubric, then compare a baseline to a candidate. The tool refuses to show a before/after score when the comparison would be misleading.
Goal: an always-on assistant with no wake word and no push-to-talk, under $25 a month. I measured every stage on an M4 Mac mini before trusting any of it.
| VAD / Silero ONNX | 7 ms |
| STT / Parakeet 0.6B on MLX | 150 ms |
| Intent gate / local Llama 3.2 | 240 ms |
| TTS / Kokoro-82M 4-bit, 5.4x realtime | 770 ms |
The local stack totals about 1.1 s. The cloud model's first token dominated turn latency, so the path under one second is a small local model for short turns, not a faster STT or TTS.
For phone-style calls I moved to realtime speech-to-speech over WebSockets, with turn-taking and barge-in server side. Measured 0.89 to 1.19 s from end of speech to first audio, tool calls at 58 to 350 ms, verified end to end with synthesized speech.
An agent that can text, schedule and act on your behalf needs guarantees, not good intentions. I designed for the failure modes first.
Every message the agent sends passes a guard on the wire that drops anything not explicitly allowed. If the guard is down, nothing goes out.
The planner executes reversible work on its own and requests approval for anything outward-facing or irreversible. It verifies its own results before reporting them done.
A boot watchdog probes every service after a power loss, repairs what drifted and alerts out of band. A regression suite pins the invariant that every inbound message always gets an answer.
Before software I was a live audio engineer: front of house, monitors and in-ear mixes, broadcast and studio. Live sound teaches you that preparation is everything, problems happen in real time in front of an audience, and there is no undo.
That is the mindset I bring to engineering. I understand the physics of the signal, I instrument before I optimize, and I build systems that degrade gracefully instead of failing silently.
Designing and shipping an autonomous agent platform, a C++ voice front end, and multiple native iOS 26 apps end to end, from architecture and benchmarks through tests and TestFlight.
Built an operations platform for an auditorium production team: role-based access, versioned readiness checklists, issue tracking with owners and workarounds, and full handoff history.
Designed and shipped production websites for local service businesses and an AV integration company, from discovery and design options through launch.
Mixed live events, broadcasts and studio sessions on Avid S6L, DiGiCo, Yamaha CL/QL, Allen & Heath dLive and SSL Live. Built systems from scratch and stepped into running tours mid-run.