TTS Quality Has No Single Number YetOriginalTTS quality has no single metric. MOS scores cluster, Elo only tests short English clips, and TTS WER measures a different thing than STT. Here is how to actually evaluate.TTS
Pipecat vs LiveKit Agents: The Trade-offs That Lock You InOriginalTwo open-source frameworks dominate production voice agents. They solve different stack layers and picking wrong means a rewrite. Here is how to decide.Voice AI
Building a writing routine that actually sticksOriginalAfter years of inconsistent publishing, a daily writing habit finally clicked. Here is what changed.Developer Experience
Finding the rhythm: first impressions of a new role in a new corner of AIOriginalTwo weeks in, the patterns are becoming visible. What surprised me, what I was right about, and what I'm still figuring out about developer relations in a new AI domain.Developer Experience
Lessons from my first two weeks in a new corner of AIOriginalSwitching from speech-to-text to text-to-speech meant learning a new community, a new set of constraints, and a new definition of quality.Developer Experience
Onboarding at a new company: what I wish I had knownOriginalStarting a new DevRel role after years at the same company comes with a specific set of challenges nobody warns you about.Developer Experience
Working in public vs working in privateOriginalDeveloper relations means producing content in public while the product is being built in private. That tension is harder to manage than I expected.Developer Experience
Notes from my first week at SpeechifyOriginalFirst week as Speechify's Head of DevRel: a TTS cookbook, two developer guides, and watching AI shift to government-gated releases.Developer Experience
Voice AI's Real Competition Shifted From Models to PlatformsOriginalTTS model quality converged by June 2026. The real competitive moat shifted to developer experience, platform integration, and compliance tooling.Voice AI
TTS Latency: How Time to First Audio Actually WorksOriginalA deep dive into Time to First Audio, the metric that defines voice agent responsiveness, and what happens in the latency pipeline from text to speech.Voice AI
TIL: Read speech marks from the Speechify API responseOriginalEvery Speechify TTS response includes word-level timing data alongside the audio. Here is how to read speech marks and what you can do with them.TIL
When speech-to-text hears something else entirelyOriginalThe funniest and weirdest STT transcriptions from real Deepgram API usage. Some are bugs, some are features, and every single one made me laugh.Developer Experience
Streaming TTS: Rethinking the Voice Audio PipelineOriginalStreaming TTS changes what voice applications expect from audio APIs. Time-to-first-byte drops, complexity moves into buffer management and chunk boundaries, and knowing when streaming isn't the answer matters just as much.Voice AI
When Your Drive-Thru AI Can't Understand an AccentOriginalMcDonald's pulled its AI drive-thru pilot in 2024 because it couldn't handle regional accents. By mid-2026, the industry was still figuring out why.Voice AI
Inside the Voice Agent Pipeline: STT, LLM, and Streaming TTSOriginalHow STT transcribes audio, an LLM generates responses, and streaming TTS speaks them back. A technical breakdown of the real-time pipeline behind voice agents in 2026.Voice AI
Sunday roundup: afterthoughts on productivity and paceOriginalA short Sunday roundup reflecting on this week's post about ADHD and productivity, what Deepgram shipped, and what's coming next week on lukeocodes.dev.Developer Experience
Six tools that power production voice agentsOriginalBuilding a production voice agent takes more than an API key. Here are six tools I reached for daily at Deepgram, from streaming STT to async Python.Developer Experience
Testing Voice AI Means Talking to Yourself in PublicOriginalBuilding voice AI means reading test sentences aloud in coffee shops, on trains, and in meetings you forgot to mute. It looks as ridiculous as it sounds.Voice AI
When SDKs Write Themselves: Voice API Code GenerationOriginalDeepgram switched from hand-rolled SDKs to spec-first generation with Fern. Here is what that looked like across five languages and how it changed shipping voice APIs.Developer Experience
Sunday roundup: a quiet publishing week in voice AIOriginalTwo posts from late May: multilingual voice agent costs and why contribution guides exclude new contributors. Plus what else was happening in AI that week.Voice AI
5 command-line tools for shipping voice agentsOriginalBuilding voice agents means living in a terminal. Here are five CLI tools I use every day for audio debugging, API testing, and latency measurement.Developer Experience
Friday fun: my .zshrc has more aliases than I have memoryOriginalI opened my .zshrc for the first time in months and found aliases I don't remember writing, for tools I don't remember installing. This is what I found.Developer Experience
What multilingual voice agents cost: latency and complexityOriginalBuilding a voice agent that handles ten languages without falling over is harder than it sounds. Here's what the architecture actually costs.Voice AI
When AI development tools stopped being optionalOriginalGoogle I/O, Anthropic's London event, and OpenAI GPT-5.5 all landed in the same window. AI development tools crossed from experimental to essential.AI
Sunday roundup: API design, I/O, AnthropicOriginalOne post this week about voice API design. Google I/O and Anthropic's London event reshaped the AI landscape. Here is the roundup.Developer Experience
5 API design decisions that shape voice AI dev experienceOriginalError payloads, streaming edge cases, and latency limits all shape how developers interact with voice APIs. Here are five patterns I have seen matter most.Developer Experience
Five SDKs, one streaming API: a maintenance retrospectiveOriginalMaintaining five SDKs for one streaming voice API taught me things about developer experience that no spec review ever could. Here is what I learned.Developer Experience
What nobody tells you about audio in speech-to-textOriginalProduction speech-to-text needs preprocessing sample rate, encoding, and chunk sizes. The docs skip these. Years debugging production STT taught me what matters.Developer Experience
Sunday roundup: four posts on audio debugging and work cultureOriginalFour posts from the week of May 11: TIL on afinfo, speaker diarization deep dive, Slack culture in remote teams, and ffmpeg for voice AI debugging. Plus what else was happening.Developer Experience
5 SDK anti-patterns I keep fixing in voice AIOriginalMaintaining SDKs across five languages taught me the same mistakes appear every time. Here are the five patterns I'd redesign first, and why they matter for voice AI.Developer Experience
ffmpeg taught me more about voice AI than the docs didOriginalThe first time I debugged a voice AI integration, ffmpeg saved me. It is still the most useful tool in my kit, and it is not even designed for voice.Developer Experience
Why Speaker Diarization Is the Hardest Problem in Voice AIOriginalSpeaker diarization figures out who spoke when. It sounds simple. It is not. Here is why it breaks, and what it takes to get right.Voice AI
5 developer experience wins in voice AI toolingOriginalError messages, timeout behavior, and observability patterns separate great voice APIs from frustrating ones. Here are five patterns that matter.Developer Experience
What running a developer Discord taught me about voice AIOriginalFour years in a voice AI developer community showed me the same problems again and again. Audio format issues, silent failures, and the questions nobody puts in the docs.Developer Experience
How voice AI SDKs handle things REST clients never have toOriginalBuilding SDKs for streaming voice APIs means managing WebSocket state, audio buffers, reconnection, and backpressure. REST client patterns break immediately.Developer Experience
Sunday roundup: debugging habits and multilingual speechOriginalOne post this week on voice AI debugging. Around it: Flux went multilingual, AssemblyAI launched a Voice Agent API, Twilio updated Conversation Relay, and the daily cadence began.Voice AI
5 habits that reduce voice AI debuggingOriginalMost voice AI debugging time goes to problems that follow a pattern. Here are five habits I built at Deepgram that catch those patterns before they become incidents.Engineering
The invisible work of voice AI SDKsOriginalFour years of maintaining voice AI SDKs across half a dozen languages. The work that never makes the changelog.Developer Experience
Sunday roundup: starting fresh, April 26OriginalAnnouncing the start of daily publishing on lukeocodes.dev. Plus OpenAI workspace agents, Anthropic Mythos 5, and what was happening at Deepgram.Developer Experience
5 questions I ask before integrating a streaming APIOriginalConnection drops, backpressure, and wire formats. Five questions I ask every streaming API before building on it, learned from voice AI integrations.Developer Experience
What 79 TIL posts taught me about developer contentOriginalSix and a half years of publishing a TIL every month taught me about consistency and developer education in a way no course ever could.Developer Experience
AI's Release Cadence Is Now a Developer ProblemOriginalThree frontier models in two weeks. The release cadence creates evaluation churn, integration instability, and fatigue for developers building on AI.AI
Sunday roundup: two posts, a fresh startOriginalTwo posts from the first weekend of daily writing on lukeocodes.dev. Terminal STT streaming, WebSocket audio patterns, and GPT-5.4-Cyber.Developer Experience