The Engineering Behind Facebook's Friend Bubbles: Scaling Social Discovery for Billions
Introduction
At first glance, Facebook Reels' new Friend Bubbles feature appears deceptively simple: it shows users which Reels their friends have watched and liked. Yet beneath this straightforward interface lies a complex engineering challenge that required deep collaboration, iterative machine learning improvements, and a surprising insight that ultimately made the feature work at global scale.

In a recent episode of the Meta Tech Podcast, Pascal Hartig spoke with engineers Subasree and Joseph from the Facebook Reels team about the journey to bring Friend Bubbles to life. Their discussion unveils the evolution of the underlying machine learning model, the stark behavioral differences between iOS and Android users, and the eureka moment that transformed the feature from promising to powerful.
What Are Friend Bubbles?
Friend Bubbles are visual indicators attached to Reels that a user's friends have watched and reacted to. They appear as small profile picture circles or emoji responses, creating a social layer on top of the personalized Reels feed. The goal is to enhance social discovery—helping users find content through their friends' engagement rather than relying solely on algorithmic recommendations.
The feature is designed to feel organic and lightweight. When a friend watches a Reel, their bubble shows up; when they react, a corresponding emoji appears. But scaling this seemingly simple interaction to billions of users across different platforms required tackling major technical hurdles.
The Engineering Challenges
Machine Learning Model Evolution
The initial machine learning model behind Friend Bubbles faced a fundamental problem: it needed to predict which Reels a user's friends were likely to watch and find engaging, while also ensuring the suggestions felt relevant to the primary user. Early versions produced weak signals because the model treated all friend interactions equally, ignoring the nuances of real-world social networks.
The team iterated through several versions, incorporating features like friend affinity, recency of interaction, and content topic overlap. They also had to balance personalization with serendipity—showing content that was both relevant and surprising. Subasree explains that the breakthrough came when they realized the model didn't just need to predict friend behavior; it needed to understand how friends influence each other's viewing habits.
iOS vs. Android Behavioral Differences
A surprising discovery during development was the significant divergence in how iOS and Android users interact with Reels. On iOS, users were more likely to engage with Friend Bubbles immediately upon seeing them, while Android users tended to scroll past and return later. This difference forced the team to design two distinct data pipelines and caching strategies.
- iOS: Real-time updates and immediate bubble visibility
- Android: Incremental background sync with delayed UI refresh
Joseph notes that these differences weren't just about performance—they affected how the Friend Bubbles were perceived by users. On Android, if bubbles appeared too quickly, they could feel intrusive; on iOS, delayed bubbles felt irrelevant. The team had to fine-tune the timing and animation styles per platform.
The Surprising Discovery That Made It Click
After months of optimization, the feature still wasn't delivering the expected engagement lift. The breakthrough came from analyzing negative signals: users who saw Friend Bubbles but did not tap on them. The data revealed that the most successful bubbles weren't from the user's closest friends (as the team had assumed) but from medium-strength ties—friends the user interacted with occasionally but not daily.

Friend Bubbles from close friends felt redundant (users already saw those friends' posts), while bubbles from strangers felt irrelevant. The sweet spot was friends with whom the user had moderate interaction frequency. This insight triggered a major rework of the model's friendship weighting algorithm, boosting engagement by over 40%.
Scaling to Billions
Implementing Friend Bubbles at Meta's scale meant handling billions of real-time friendship graphs. Every time a user watches a Reel, the system must evaluate which of their friends are currently active and eligible to see a bubble. This required a distributed caching layer that could serve precomputed friend lists with sub-millisecond latency.
The team also developed a privacy-first architecture: bubbles only appear for friends who have actively opted into sharing their Reel activity, and users can control bubble visibility in privacy settings. This added complexity to the data flow, as the system had to check permissions on every bubble render.
Lessons for Feature Engineering
The engineers emphasize that the journey with Friend Bubbles offers broader lessons for building social features at scale:
- Start simple, iterate fast—the initial model was intentionally minimal to enable quick learning.
- Platform-specific UX matters—never assume behavior is uniform across operating systems.
- Negative signals are gold—what users don't do is often more informative than what they do.
Conclusion
The Friend Bubbles feature may appear unassuming on the surface, but its development story reveals the depth of engineering required to connect billions of people through shared social discovery. As Meta continues to refine Reels, the lessons from Subasree, Joseph, and their team will inform future features that balance simplicity with scale.
For more insights, listen to the full episode on Meta Tech Podcast (available on Spotify, Apple Podcasts, and Pocket Casts). If you're inspired to tackle similar challenges, explore career opportunities at Meta Careers.
Follow Meta Engineering on Instagram, Threads, or X for behind-the-scenes stories.
Related Discussions