Senior C++ Software Development Engineer - Kandy

    • Job Tracking ID: 512052-741131
    • Job Location: Ottawa, CAN
    • Job Level: Mid Career (2+ years)
    • Level of Education: Any
    • Job Type: Full-Time/Regular
    • Years of Experience: Any
    • Starting Date: ASAP
Invite a friend
facebook LinkedIn Twitter Email


Job Description:

bout Ribbon (Nasdaq: RBBN)

We deliver global real-time communications software and network solutions to service providers, enterprises, and critical infrastructure sectors. We engage deeply with our customers, helping them modernize their networks for improved competitive positioning and business outcomes in today’s smart, always-on and data-hungry world. Our innovative, end-to-end solutions portfolio delivers unparalleled scale, performance, agility and automation and includes optical and packet networking, core to edge IP solutions, UCaaS/ CPaaS cloud offers, and leading-edge software security and analytics tools.

To learn more, visit rbbn.com

Position Title: Kandy Business Solutions - C++ Development Engineer

 

Location: Ottawa, Canada

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:

  • 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.

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:

  • 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.