C++ and Real Time Communications in the Cloud

Sri Ramalingam
2 min readMay 28, 2018

--

Recently, I was invited to present at the Qcon London on the topic “emerging backend programming languages”. C++ is one of the “legacy” programming languages and still dominates the real time world and so I decided to talk about the best practices and pitfalls of designing and running large scale multi threaded platforms written in C++. Zoom’s real time backend services were written primarily in C++ and 70% of our cross platform client engine is in C++. Our C++ code base itself is about 3 million lines of code and growing.

Before we get into why C++, if I were to design another real time platform or a service from scratch, I would seriously consider Rust. Rust is gaining quite a bit of momentum with startups but it’s still ways to go before the engineering leadership of enterprise companies take a serious look at it. If you already run a large C++ code base, there is no short term ROI on investing in Rust while trying to balance engineering priorities. It was an easy decision to pick C++ for core services at Zoom — our engineering team has very strong C++ expertise, less memory footprint and binary sizes, easy to interact with assembly level code, several optimization and tuning options to name a few.

C++ has evolved over time and is a better programming language than what it was back 20 years ago. It’s important to migrate your code base to recent versions — its an engineering investment worth making

On the last point on optimizations —performance optimizations play a huge role in real time services. A response time difference of few milliseconds will make or break the world (or how the world perceives your offering). Its very critical that you get your team to take a close look at every single performance factor and see if an optimization will help — all the way from using right containers, creating optimal threading models, being aware of object life cycles and its implications, understanding the impact of processor branch prediction on your code to the impact of using the compiler optimization flags.

The video is available in QCon infoq site.

we are looking for strong C++ engineers in our HQ @ San Jose. If you are interested to be part of the exciting Zoom journey, contact me.

--

--

Sri Ramalingam
Sri Ramalingam

Written by Sri Ramalingam

Sri is currently SVP of Engineering at the fast growing software delivery startup Harness.io. He writes about engineering leadership and strategy.

No responses yet