Speak at The Fifth Elephant 2026 Annual Conference
Share you work with the community
Jul 2026
13 Mon
14 Tue
15 Wed
16 Thu
17 Fri 09:00 AM – 06:00 PM IST
18 Sat 09:00 AM – 06:00 PM IST
19 Sun
Share you work with the community
Jul 2026
13 Mon
14 Tue
15 Wed
16 Thu
17 Fri 09:00 AM – 06:00 PM IST
18 Sat 09:00 AM – 06:00 PM IST
19 Sun
Dhruv Nigam
@dhruvn
Submitted Jun 17, 2026
Googly Bhai was busy this IPL season. He live-streamed to an **audience of 300,000 every day **, with 1.5 million minutes of watch time and 1.1 million concurrent viewers at peak. Hundreds of other streamers called him onto their streams to discuss live scores, gossip, and make predictions (see him live jamming with another streamer). He switched to Aussie and British accents mid-conversation at the audience’s request and effortlessly switched between 80+ languages, including Bengali, Telugu, and Punjabi.
Googly Bhai, despite the name, is not a small-time Mumbai goon. He’s the world’s first real-time AI sports streaming companion - a sarcastic, street-smart half-monkey who loves Virat (and lets it show). He reacts to live match events, runs trivia mid-stream, reads audience chats in real time, and pulls up live stats - all at roughly 2-second latency.
When we started building the AI voice companion for live sports entertainment for our 5M daily users on Dream11 in 2025, conventional wisdom asked us to treat it as an extension of LLM chatbots. Unfortunately, we followed this advice, and it cost us 5 months of wasted time building and discarding 8 prototypes and rewriting our entire codebase three times before arriving at something that worked. The insights we earned are surprising, non-trivial, and until now, insider knowledge. Through this talk, I want to share them with everyone.
The chatbot extension school of thought assumes that building a voice agent means adding plumbing over an LLM-powered chatbot. Just add an STT and a TTS, sandwich the LLM in the middle, and you’ve built a voice agent, right? Right? WRONG! Nothing could be further from the truth. Voice deserves its own native components:
In addition, I’ll share how to think about scaling concurrency in a world where everyone is GPU-bound.
All of these lessons will be corroborated by real numbers in production that we will share !
A battle-tested playbook they can take back to their desk and use on Monday. A playbook that doesn’t exist in the open right now. Four specific lessons:
Engineers building voice agents or real-time AI applications where conversation quality is paramount. Product and engineering leaders deciding architecture for voice-first products. Anyone who’s hit the wall where their voice agent demo works but their production system doesn’t.
Staff ML Engineer, Dream11
Website · LinkedIn · GitHub · Twitter/X
Dhruv Nigam is a Staff ML Engineer at Dream11, India’s largest fantasy sports platform. At Dream11, he built LUMOS, a 200M-parameter foundation model trained on 1.7 trillion tokens that replaced 50+ task-specific models and lifted DAU by 3% overnight. Most recently, his team launched World’s first live sports AI influencer, a multi-agent voice system that has reached over a million users. Before Dream11, he worked as a quantitative analyst at an investment bank, building trading algorithms on billions in capital.
He has presented at KDD Barcelona, Swiggy, and MumbaiPy among other venues and writes about ML engineering at ML Trenches. His interests lie in LLM post-training, inference optimization, and agentic systems.
Other Talks · Writing · Publications
Slides(WIP) -
https://docs.google.com/presentation/d/1XFxKHhwdDqJx7EIQW53EIVxL84DEn1AOggUDI3yJpUY/edit?usp=sharing
Official Dream11 blog about the AI companion-
https://medium.com/dreamlockerroom/how-we-built-the-worlds-first-real-time-ai-sports-streaming-companion-a42273de1fca
Personal blog on lessons learned building voice agents-
https://mltrenches.substack.com/p/what-i-learned-building-voice-agents
Jul 2026
13 Mon
14 Tue
15 Wed
16 Thu
17 Fri 09:00 AM – 06:00 PM IST
18 Sat 09:00 AM – 06:00 PM IST
19 Sun
Hosted by
{{ gettext('Login to leave a comment') }}
{{ gettext('Post a comment…') }}{{ errorMsg }}
{{ gettext('No comments posted yet') }}