Builds and ships AI products. Sydney, Australia.
- fy.studio — Feisty Agency. Voice AI, automation, edge infrastructure.
- Sayla — language tutor on the App Store. Live conversation with a voice model, not flashcards.
- will@feistyagency.com · x · linkedin
- Real-time audio capture on iOS — ReplayKit broadcast extensions,
AVAudioConverter, streaming to speech models from inside an app extension. - Live speech translation for low-resource languages. Albanian, specifically Kosovar Gheg, where the best open ASR sits at 55.7% WER and roughly eleven hours of public audio exist.
- Agent memory and orchestration — temporal recall, multi-agent workflows, tool infrastructure.
- vapi-property-caller-cookie-cutter — real estate AI voice agent toolkit.
- UpworkLeet — continuous job-feed monitoring and scoring.
- openclaw-graphiti — drop-in temporal memory for OpenClaw. Auto-recall, auto-capture.
- SonosTap — Mac system audio to Sonos via Core Audio Taps.
- voice-agent-rag — retrieval for voice agents.
- ahead-business-dashboard — custom analytics platform.
ios-audio-capture-findings — measured on device, published because they weren't written down anywhere else.
- ReplayKit
.audioAppon iOS 26.6 — does carry third-party app audio; the widely-cited 2019 claim thatAVPlayeroutput cannot be captured no longer holds. Format is 44.1 kHz stereo big-endian, and.audioMicis little-endian, so byte order has to be read per stream. A broadcast extension can hold an outbound WebSocket at under 5 MB. - Gemini live translate —
systemInstructionpins the source language, despite documentation stating the model supports no instructions.speechConfig.languageCodeis accepted and silently ignored, so a successful setup proves nothing. Without a pin, Albanian is transcribed as Portuguese or Romanian and then translated fluently from speech nobody uttered. - Testing — assert RMS, never buffer arrival. ReplayKit delivers continuous silence when audio is unavailable, so a dead pipeline has the correct cadence and format and captures nothing. Five of six harness bugs in that project produced false negatives indistinguishable from a platform limitation.

