Streamup
04-2015 – 08-2016
Streamup is a YCombinator-backed startup focused on creating a live-video web platform for all creators. I worked on the product for 1.5 years in a small team. I've been responsible for a few specific projects in addition to the general maintenance of the platform.
I built the chat system displayed next to each stream. This was done with NodeJS, React, and Nginx PushStream module. It scaled to 250k simultaneous clients in thousands of chat rooms. I also managed the deployment of the service to multiple AWS zones. The code has been released on Github. Because of our untypical load patterns (very fast clients increase when an event starts), AWS load-balancer was dropping a big part of connections while they internally were auto-scaling their load-balancers. In 2015, their offer was still relatively young and not as solid as it is now. After spending a lot of time with their support, we concluded we couldn't use ELB for our usage. I then implemented an application-layer load-balancer: each client queries a central lightweight service which then redirects them to the best chat server. This logic also lowered the hosting cost of the platform.
I've also been responsible for the migration out of flash to a HTML5 video player. The original player was fetching a RTMP stream which was transformed backend-side to a HLS stream. I used HLS.js and a custom React presentation layer to create the new player. After migrating to HLS, we also needed to switch CDN to support this new format. Once the migration was done, I worked on deploying an in-house live-video CDN in multiple geographic zones to lower our bandwidth costs.