Case studies and notes on building things for the web.

How I built a real-time voice agent for a loans and deposits desk with Gemini Live, FastAPI and Twilio Media Streams: the audio pipeline, barge-in, code-enforced authorization and a call lifecycle that never cuts off the goodbye.

How I built a hand-drawn collaborative whiteboard with Next.js, a HTTP server, a WebSocket server and Postgres: the sync model, an infinite canvas, a split between durable and ephemeral messages, and the trade-offs I made.