Product Management interview question [Technical]: What are the technologies used for development of a streaming service app?

Prayansh Ratan
2 min readJun 19, 2022

--

picture credits — unsplash[dot]com

I have a few clarifying questions -

  1. What kind of streaming service is this? Live streaming, like ESPN and SonyLiv, or a Web series streaming service like Netflix, and Amazon Prime? — any
  2. Is it a web application or a mobile application? — Both
  3. Any additional features that I need to keep in mind like live chat? Reactions? Recommendation Systems? Ratings and Reviews? Or just streaming for now?
  4. By technologies you just mean various tools and languages, frameworks etc. Right?

First I’ll try to discuss a High Level Architecture of video streaming service. Post that we can discuss different technologies that can be used to implement these services.

There are 4 main components in designing of a video streaming platform -

  1. Source
  2. Encoder
  3. CDN, and
  4. Video player

Source — This is the source where the content is being generated which will be viewed by the users using this video streaming platform. Data generated here is sent to encoder for encoding.

Encoder — Encoder consists of two parts, the first being the actual server where encoding is ran for a video, and the second one being the encoder software itself which compresses the audio and video for streaming. Encoders use video and audio codec technologies.

CDN — Content Delivery Network aka CDN which is a set of servers which deliver the internet content to users based on their locations.

Video Player — The application on the client’s device that plays the video.

These are the steps that take place while streaming a video on any application -

  1. The video gets captured on the source and gets compressed and encoded into appropriate formats.
  2. Encoded media gets stored into containers.
  3. These containers are delivered to media players for users to watch

All these is done by the live streaming platforms which helps in streaming videos.

Technologies used to create this system -

  1. Web technologies (back-end) — Java, Python, Go, Scala, NodeJS, Ruby
  2. Web technologies (front-end) — HTML, CSS, Javascript (Angular, React, Vue etc)
  3. App development — Java, Kotlin, Android, Flutter, React Native, Ionic, Swift, Android Studio, XCode
  4. DBMS — MySQL, Cassandra, Atlas-DB, PostgreSQL
  5. Cloud platforms — Amazon EC2, Amazon S3
  6. Big data streaming — Kafka, Hadoop, Spark, Pig, Parquet
  7. CDN — Amazon Cloudfront, Cloudflare
  8. Streaming protocols — Apple HTTP live streaming, Adobe HTTP Dynamic streaming, M2TS, Microsoft Smooth streaming, RTMP, MPEG-DASH
  9. Media formats — H.264
  10. Media containers — MP4, FLV, AVI
  11. Media Processing platforms — Contus Vplay, DaCast, Vimeo PRO, Wowza Media systems, Muvi, Ustream, JW Live
  12. Geolocation — Google Maps API, MapKit
  13. Messaging — Google Firebase, PubNub, Twilio
  14. Platform Analytics — Mixpanel, Google Analytics, Fullstory, Amplitude, Hubspot

Tools for ML and Recommender system — Python, ScikitLearn, Pandas, Numpy, Matplotlib, Seaborn, Tensorflow, Pytorch, NLTK, Cuda, SciPy, OpenCV etc.

--

--

Prayansh Ratan
Prayansh Ratan

No responses yet