Writing: essays and notes on product engineering

Long-form writing by Sangeet Banerjee on realtime systems, infrastructure UX, growth engineering, and software craft.

Back to Sangeet Banerjee homepage

Redesigning Meet while people are still in calls

By Sangeet Banerjee. Published 2025-12-04. 2 min read.

We thought it was a theme pass. It became ripping out years of code, loaders, and infrastructure, mid-traffic.

Tags: realtime, ux, product

All writing

Redesigning Meet while people are still in calls: article facts

Title
Redesigning Meet while people are still in calls
Author
Sangeet Banerjee
Published
December 4, 2025
Updated
December 4, 2025
Reading time
2 min read
Summary
We thought it was a theme pass. It became ripping out years of code, loaders, and infrastructure, mid-traffic.
URL
https://sangeet.xyz/blogs/redesigning-a-live-meeting-product
Tags
realtime, ux, product
Excerpt
We redesigned Huddle Meet while it was already carrying real traffic. People were mid-call on the old chrome while we shipped the new one. We started wrong in our heads The kickoff story was color and theming. New look, fresher UI, maybe a tighter control bar. That is not what consumed the calendar. Once we opened the old shell, years of code was in the way. We pulled a lot of it out. New loaders. Better infrastructure around how the app booted and fetched. Performance work. Systematic layout and state changes that were not “pick a palette.” Theming was the visible tip. Architecture and cleanup were the bulk of the time, and they took longer than anyone had budgeted when we still thought this was a skin. Why touch it at all The app worked. It also felt stacked: inconsistent controls, weaker mobile, more hackathon survivor than work tool. So the real goal became: faster loads, clearer controls, layout that did not fight the video, and a codebase we could keep changing without fear. What “redesign” actually meant - Remove or replace old paths written years earlier - Loaders and boot sequence that did not stall first media - Infrastructure / data-fetch changes under the UI - Control c…
All posts
2 min read

Redesigning Meet while people are still in calls

we thought it was a theme pass. it became ripping out years of code, loaders, and infrastructure, mid-traffic.

realtimeuxproduct

We redesigned Huddle Meet while it was already carrying real traffic. People were mid-call on the old chrome while we shipped the new one.

We started wrong in our heads

The kickoff story was color and theming. New look, fresher UI, maybe a tighter control bar.

That is not what consumed the calendar.

Once we opened the old shell, years of code was in the way. We pulled a lot of it out. New loaders. Better infrastructure around how the app booted and fetched. Performance work. Systematic layout and state changes that were not “pick a palette.”

Theming was the visible tip. Architecture and cleanup were the bulk of the time, and they took longer than anyone had budgeted when we still thought this was a skin.

Why touch it at all

The app worked. It also felt stacked: inconsistent controls, weaker mobile, more hackathon survivor than work tool.

So the real goal became: faster loads, clearer controls, layout that did not fight the video, and a codebase we could keep changing without fear.

What “redesign” actually meant

  • Remove or replace old paths written years earlier
  • Loaders and boot sequence that did not stall first media
  • Infrastructure / data-fetch changes under the UI
  • Control chrome you could find under stress
  • Only then the visual system everyone noticed in screenshots

I started by deleting annoying parts, then rebuilt slow bits. Unglamorous. Necessary.

Shipping without a clean cutover

Flag the shell when you can. Watch join success and control usage. Do not force everyone to relearn leave overnight.

Half-migrated settings are where bugs breed. Finish one surface (lobby vs in-call vs settings) before opening three.

What surprised me

Not only WebRTC. Browser media permissions and device lists burned time.

Also the estimate miss: “theme refresh” turned into systems work. That gap is the part I would write on the kickoff doc next time.

People only notice meeting UX when it is slow or mute takes two clicks. Silence is success.

What I would insist on next time

Call the project what it is (rebuild under a live product) so scope matches reality. Wire analytics before polish. Ship mobile chrome earlier. Leave a cleaner media state machine than nested hooks if you get one honest rewrite.