Principal Software Engineer, Real Time Communications Services/Clients
Be a part of something big. Join our vision to transform workplace communication as we know it.
Fuze is a leading unified communications as a service (UCaaS) provider focused on modernizing and simplifying day-to-day business conversations. We unify collaboration technologies like voice, video, and messaging on a single cloud-based platform so users can experience greater efficiency and less hassle each workday. The company is growing rapidly as we move full steam ahead toward our anticipated IPO. Now's the time to bring your passion and expertise to our Fuze team!
Our customers use our software across a variety of platforms including Windows, OS X, iOS, Android and web. We build our software to work and provide a great experience across all of these platforms. Whenever possible we use open source technologies like WebRTC or OPAL. Where it makes sense we build our own software stacks. The Real Time Communications team also builds linux-based microservices that provide audio, video, screen share, content, recording and interoperability gateway functions. These microservices use a combination of REST APIs and IETF standards based protocols to provide functionality to our desktop, mobile and web-based clients. These microservices are built with scalability, resiliency and performance in mind.
The primary task of the Real Time Communications team is to build the heart of our product -- the software stacks that power the audio and video communications within our product. This team works across both the client and backend stacks. Within this team you will get exposure to a broad range of technologies and challenges.
As much as possible we develop cross platform code -- sharing code across clients and sometimes between the clients and various backend services. We believe strongly in modularity and code reuse. As we’re developing cross platform code that is often times CPU intensive and performance critical we tend to use C++ as our language of choice for code that requires portability between the clients and servers.
In this position you will be responsible for owning, developing and maintaining key components in our client media framework or the backend media services. You will develop services that are deployed globally and run in mixed environments including our own datacenters and AWS. You will be responsible for making key technical recommendations and then executing on your recommendations.You will be responsible for coming up with and implementing innovative solution to difficult problems. You must be hands on and have a passion for developing software.
What You Will Need:
- Expert C++ coding skills with minimum of 7 years experience
- Experience with streaming media protocols (SIP, SDP, H.323)
- Experience developing real-time audio/video communication systems leveraging RTP/RTCP and video codecs such as H.264/H.265, VP8/VP9
- Experience developing networking software including working with socket level programming and UDP/TCP
- Experience developing and shipping high quality applications for OS X, Windows, iOS or Android is an asset
- Experience building production Linux based services is an asset
- Experience with WebRTC and/or OPAL is a huge plus
- Experience with Go and/or Python is a plus
- Understanding of the various trade offs when dealing with real-time media
- Drive, passion, dedication and a good attitude