Periscope Code
Feb 13, 2016 · 3 min read

By Mohammad Almalkawi (@moh), backend/API engineer

First off, welcome to the Periscope engineering blog! We’re excited to have a dedicated place to write about what makes Periscope, well, Periscope. We’ll be writing about our systems, product philosophies, and stories behind different parts of the app here. We’re also on Twitter as @periscopecode 😁

When we launched Periscope on March 26 2015, the app had 3 top level sections: Your Feed, Global, and People. We wanted to explain some changes we made to the People section. These changes have been part of Periscope for a few months already, but we wanted to share some thoughts with you to be transparent around what we changed and why.

The People section used to suggest “Most Loved” people — broadcasters who you might want to follow based on how many hearts they’d received. We realized over time that this measure alone was a poor indicator for highlighting broadcasters, for a number of reasons:

  • It rewarded people who broadcasted the most, had the most viewers, and/or had the longest running broadcasts.
  • It didn’t account for how recently a broadcaster had actually broadcasted. This often resulted in Periscope listing broadcasters who didn’t have any recent broadcasts to watch.
  • It was easily tampered by broadcasters who would come up with ways to rack up hearts to scale their way up the charts. This was particularly frustrating for us.
  • The list was rather static (you’d rarely see big changes in the rankings of most hearts) and heavily favored broadcasters who have used Periscope for a long time. New entrants could not easily break into this list.
  • The list was identical for every Periscope user, regardless of language preferences.

We decided to replace this methodology with a new one called “Trending”. Philosophically, we wanted Trending to have the following attributes:

  • Every broadcaster in the trending list should have at least one recent broadcast. It makes the trending list feel fresh, and always puts you one step away from watching something.
  • Trending broadcasters should be tailored to your language preference. If your language settings are set to Turkish, you should see more trending Turkish broadcasters. If your preferences don’t include Turkish, Periscope shouldn’t overwhelm you with Turkish broadcasters.
  • Trending should consider how engaging a broadcast is (more on that below), rather than just how many viewers it had.
  • Trending should ensure that broadcasters with few followers have a chance to be discovered. We love our popular Periscopers, and they often make the trending list, but they already have a natural advantage of having a large audience of loyal followers.
  • Trending should be purely algorithmic and involve no manual curation. We have a separate “Featured” section for broadcasters that our editorial team chooses to highlight.

We used the tenets above to build an algorithm that we think is much more interesting, dynamic and rewarding (to both broadcasters and viewers) than “Most Loved”. We often find some of our favorite broadcasts by looking through “Trending”!

You might be wondering, “How does Periscope determine how engaging a broadcast is? That’s something that we’re constantly tweaking and experimenting with, and something we won’t be too explicit about because 1) we evolve our approach often and 2) the more transparency around its inner workings, the more easily it can be abused & gamed. Since this happened with “Most Loved”, we’d like to avoid describing specifics, other than the fact that trending takes into account multiple engagement metrics. For example, a broadcast that 30 people stay glued to for 30 minutes is probably more interesting than one that 10,000 people watch for a few seconds then leave.

Overall, we think “Trending” is a refreshing improvement from the former “Most Loved” section. There’s still much work to be done to improve this list (it’s always evolving), and we won’t be shy about making changes in service to the goals listed above. We’re always open to your feedback on how we can make this and other parts of the Periscope experience better.

Thanks, and much love, from Team Periscope.

Periscope Code

Written by

Bits and pieces from the Periscope engineering team

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade