Come work with us

Apply

Video Streaming Engineer

San Francisco

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.

Requirements:

  • Bachelor's degree in Computer Science, Engineering or related field, or equivalent training, fellowship, or work experience.

These things are not required but certainly pluses:

  • Experience with C/C++
  • Experience with WebRTC
  • Worked on high performance servers
  • Competency in some platform-specific languages (e.g., Objective-C on Mac/iOS, Java on Android, Javascript)
  • Experience in startup environments

Slack is a messaging app for teams that is on a mission to make your working life simpler, more pleasant, and more productive. We believe everyone deserves to work in a welcoming, respectful, and empathetic culture. We live by our values and hire accordingly.

Launched in February 2014, Slack is the fastest growing business application ever and is used by thousands of teams and millions of users every day. Slack's investors include many of the best-recognized firms in the world, including Accel Partners, Andreessen Horowitz, Social+Capital, KPCB, Google Ventures, Horizons Ventures, IVP, Spark Growth, DST, and Index Ventures. We currently have five offices worldwide, in San Francisco, Vancouver, Dublin, Melbourne and New York.

Ensuring a diverse and inclusive workplace where we learn from each other is core to Slack's values. We welcome people of different backgrounds, experiences, abilities and perspectives. We are an equal opportunity employer and a fun place to work. Come do the best work of your life here at Slack.