Video Streaming Engineer
Slack is looking for an experienced engineer with expertise in real-time video streaming.
Join the Calls Team and help us build audio/video conferencing and screen sharing into Slack. We are building the platform to bring calls to every major platform we support on the desktop, mobile and web. A real time communication product that is built specifically for teams is uncharted territory, and you’ll help us deliver an incredible experience to millions of users.
We’re looking for an engineer to own and lead our efforts to make our video streaming platform reliable, adaptive to varying network conditions, and as high quality as possible. A great candidate will be comfortable contributing to both the client and server, will bring knowledge of video codecs and media streaming, and also be happy to learn new things and help improve any part of the system.
If you were to join Slack, here are the kinds of things you would be responsible for:
- Improving the conferencing server to support things like better video quality in poor network conditions, fast switching between active speakers, and adaptive encoding bitrates.
- Optimizing the client library to improve streaming performance and reduce latency.
- Measuring performance and call quality at a deep level, and using that as a yardstick against which we measure progress.
- Coming up with novel solutions to fix tricky corner cases that users experience.
- Developing techniques to improve call reliability and call quality on all platforms, including mobile.
- Communicating with users directly to troubleshoot problems and gain a qualitative sense of user happiness with the product.
Things that we consider critical to being a Video Engineer:
- Previous experience with developing and optimizing real time video streaming systems.
- Have worked directly with video codecs (e.g., VP8/H.264), and know how the codecs work, what their limitations are, and how best to utilize them in a real-time system.
- Deep knowledge of networking, and real world experience with dealing with the unpredictability and variability of the internet (e.g., packet loss, latency, bandwidth estimation, FEC).
- Are eager to not just develop the first version of a solution, but also track down and fix bugs.
- Are a strong communicator. Explaining complex technical concepts to designers, support, and other engineers is no problem for you.
- Have the user in mind with all the work that you do.
- Bachelor’s degree in Computer Science, Engineering or related field, or equivalent training, fellowship, or work experience.