Writing
Notes on mobile engineering, and a chronological series on how I ended up doing native iOS systems work.
Series · The Layer Underneath
Why iOS, why now.
Looking back at two years — React Native intern → Flutter developer → native iOS. The arc wasn't wandering between stacks; it was narrowing and going deep.
Read →Building real-time video calling on raw WebRTC.
An over-built dream app, a Reddit post that blew up, and the WebRTC calling gig it led to — and why "just connect a call" is the easy 20%.
Read →The rewrite I didn't ask for.
A senior rebuilt our calling backend on LiveKit without telling me. I was furious — and wrong. Why a media server changes everything: recording, group calls, and the TURN server that finally beat Wi-Fi.
Read →Nobody noticed. That was the point.
Four hours on a fifteen-minute tab switch — a LERP colour transition nobody ever mentioned. Why that silence was the goal, and why I'm prouder of it than the payment gateway on the same app.
Read →Building Kabootar: login-less, untraceable video calling.
A PIN-based, no-account WebRTC video call — how it works on Firebase signaling, and the honest bugs I never fully fixed (no TURN, a connection that won't fully close, earpiece-only audio).
Read →Still to come — shipping a product end to end, the call-drop-on-connect bug, and the native-iOS systems work: the error-handling rewrite, security, and the Android port.