[VideoStreaming][0/n] Learning series kick-off: Build your own Twitch

Yerken Tussupbekov
2 min readNov 3, 2020

I'm planning to learn new technologies, and as any individual who values their time, I would like to build something useful while doing so. Why video streaming ?

  • Requires back-end, front-end and mobile development
  • High space complexity. Latency and quality sensitive video and audio streams, scalable to many users
  • Personal interest in how the technology backing something like Twitch actually works

Over the next months I am planning to publish articles, code and sometimes screen recordings capturing my thinking process and explaining design decisions. The goal is to encompass end-to-end lifecycle of software development backed by actual research and decent software development practices.

Articles will be published here. Github will be used for publishing code and YouTube is where screen recordings will be stored.

Programming languages to be used include:

  • Back-end: Rust and C++/C (if required)
  • Front-end: React
  • Mobile: ObjC

My current expertise in this technologies:

  • Rust — no prior experience
  • C++ — few years of daily use
  • React — few months of experience
  • ObjC — no prior experience

Don't expect the code to be of the highest standard possible, but I will do thorough research to make sure the code is following modern standards and is of decent quality and test coverage.

I am somewhat familiar with gstreamer so most likely it will be used as well. The software will be hosted either on AWS or GCP. I may or may not use K8S or other cloud technologies — it depends on cloud providers' support.

There is of course a lot of technical details left out and those will be decided as we go. Next article will focus on the requirements and specs

--

--