Senior Software Developer - C++ - Ottawa
Ottawa, ON
6h ago

About Ribbon :

Ribbon Communications is a company with two decades of leadership in real-time communications. Built on world class technology and intellectual property, the company delivers intelligent, secure, embedded real-

time communications for today’s world. The company transforms fixed, mobile and enterprise networks from legacy environments to secure IP and cloud-

based architectures, enabling highly productive communications for consumers and businesses. With 64 locations in 27 countries around the globe, the company’s innovative, market-

leading portfolio empowers service providers and enterprises with rapid service creation in a fully virtualized environment.

The company’s Kandy Communications Platform as a Service (CPaaS) delivers a comprehensive set of advanced embedded communications capabilities that enables this transformation.

To learn more, visit

Position Title : Senior Software Developer - C++ - Ottawa

Location : Ottawa, Canada

Location : Position Summary :

We are looking for a senior C++ Software Development Engineer to help us develop a solution for improving WebRTC audio and video experience in virtualized desktop environments.

The position reports to the Manager of the Kandy Developer Experience team and is responsible for providing technical leadership for developing a new JavaScript SDK that have bindings to internal C++ components.

You will need strong technical skills in modern C++, multithreaded and embedded applications. You will work directly with a team of other developers to drive the architecture, create new features, implement automated tests and provide technical oversight through code reviews.

You will also collaborate with other internal teams using this SDK as well as help customers be successful with this new SDK.

About the job :

At Kandy, our mission is to connect humans faster and easier through rapid service creation and abstracting the RTC complexity underneath.

To do this you will need to work with various Product Development teams, System and Solution Architects, Product Management, Operations and Customer Support in a collaborative team environment to service a fast paced and evolving market and set of customers.

Successful candidates will need to have a strong background in modern C++ application development as well strong general experience with other technologies.

Effective ease at understanding complex technical solutions involving multi-layered architecture is a must.

We expect you to take a technical leadership role and advise less experienced team members on best practices, architecture design and good technical documentation.

It is especially important that you have experience and a track record of delivering high quality software and drive others to do so as well.

About the team :

We are the Kandy SDK team and we build libraries available for our customers to build Multimedia Real-time applications.

  • We are a team of highly skilled developers that love to live on the edge of technology.
  • We apply the latest software development practices using the most modern tools in an agile way.
  • We care deeply about the user experience of our customers and take time in crafting our APIs for the users first.
  • We follow the trends of the developer community and apply the lessons learned there.
  • We test our code with automated testing, both unit testing and end-to-end.
  • We encourage functional, modular programming for easy testability and reproducibility.
  • We work hard, but also like to have fun by playing Ping-Pong or Smash Bros. at lunch time.
  • Some of the technologies we use :

  • Modern JavaScript (ESNext)
  • Modern C++ (C++14, C++17)
  • WebRTC
  • Redux, Redux-Saga, lodash FP
  • Jest and Tape for testing.
  • Slack, Github, Jenkins, JIRA
  • All members of the team have the latest MacBook Pro with a dual monitor setup.
  • All members of the team choose their preferred development environment tools.
  • Experience and Skills : Responsibilities :

    Responsibilities :

  • Leads technical development activities on the C++ components of the new SDK.
  • Architectures new components and plans refactoring activities as needed.
  • Guides and teaches less experienced members of the team.
  • Helps with the scoping, estimation and planning activities of future tasks.
  • Effectively prioritizes and execute tasks in a very dynamic, fact paced environment
  • Delivers quality software in an agile sprint-based fashion.
  • Education / Experience Requirements : Technical Requirements :

  • Strong understanding of modern C++ ( >
  • C++11) and modern techniques such as Templates, RAII, Lambdas, Move Semantics, etc...

  • Understanding of OO concepts as well as functional programming concepts.
  • Experience with C++ multithreaded applications.
  • Experience building Windows and / or X11 Windows applications.
  • Understands low level protocols such as TCP and how to use them to provide higher level interfaces.
  • Strong ability to use debugging tools to diagnose difficult issues.
  • Other Requirements :

  • Must be legally eligible to work in Canada.
  • Strong ability to resolve problems.
  • Excellent communication skills.
  • Able to communicate with customers effectively on technical issues.
  • Demonstrated personal traits : Proactive, initiator, 'do-it-yourself'.
  • Quick learner and demonstrate a desire to learn continuously to take on new challenges.
  • Experience using a Pull Request development flow using Git, including code review and quick iterations.
  • Nice to have :

  • Experience embedding scripting engines and working with FFIs in C++ applications is a plus.
  • Experience with CEF (Chromium Embedded Framework) or V8 a plus.
  • Worked with Protocol Buffers.
  • Experience with JavaScript and Web Development.
  • Explorers change the world. We’re changing the world. Come explore with us. Ribbon endeavors to make its recruitment process accessible to any and all users.

    Reasonable accommodations will be provided, upon request, to applicants with disabilities in order to facilitate equal opportunity throughout the recruitment and selection process.

    Please contact Recruiting at recruiting to make a request for reasonable accommodation during any aspect of the recruitment and selection process.

    This contact information is for accommodation requests only; do not use this contact information to inquire about the status of applications.

    Add to favourites
    Remove from favourites
    My Email
    By clicking on "Continue", I give neuvoo consent to process my data and to send me email alerts, as detailed in neuvoo's Privacy Policy . I may withdraw my consent or unsubscribe at any time.
    Application form