NDI Software Engineer Vizrt (C++)
TLDR
Contribute to high-performance, cross-platform NDI applications while collaborating with experienced engineers passionate about real-time media and professional IP video workflows.
As a Software Engineer working on NDI, you’ll contribute to the design and development of high-performance, cross-platform applications and SDK components that form the foundation of the NDI ecosystem. You’ll work with a team of experienced engineers who are passionate about real-time media, networking, and distributed systems, driving innovation in professional IP video workflows.
Key Responsibilities
- Design and implement cross-platform C++ software for real-time video, audio, and data transmission over IP.
- Develop and optimize GPU-accelerated video transcoding pipelines for formats such as H.264 and HEVC.
- Implement efficient, low-latency networking and synchronization for live media streams.
- Write clean, maintainable, and performant code following modern C++ standards.
- Collaborate closely with other R&D teams on architecture, integration, and performance improvements.
- Conduct performance analysis, profiling, and optimizations across CPU and GPU pipelines.
- Participate in design and code reviews, contributing to shared standards and best practices.
- Maintain documentation, test coverage, and continuous integration for developed modules.
Requirements
- 4+ years of professional experience in C++ software development.
- Strong proficiency in modern C++ (C++17 or later), including templates, STL, and memory management.
- Experience with multi-threaded and multi-core programming.
- Experience in socket-level network programming and a good understanding of TCP/IP, UDP and mDNS protocol.
- Hands-on experience with cross-platform development (Windows, Linux, macOS).
- Experience working with large codebases and version control systems (Git, Jira).
- Strong analytical and debugging skills, with a focus on performance optimization.
- Effective communication skills and the ability to collaborate within a distributed team.
- Understanding of web technologies, including web services, web application servers and Restful APIs.
Preferred Qualifications
- Familiarity with GPU programming (CUDA, NVENC/NVDEC, or similar technologies).
- Familiarity with real-time video/audio systems and related performance considerations.
- Experience with real-time video streaming, transcoding, or compression technologies (e.g., H.264, HEVC, AV1).
- Familiarity with NDI, or similar IP-based video transport protocols.
- Knowledge of graphics or compute APIs such as DirectX, Vulkan, or OpenGL.
- Background in video/audio streaming, encoding, or real-time graphics.
- Experience with low-level network programming or network stack implementations.
- Exposure to GPU, SIMD, and compiler intrinsics optimization techniques.
- Knowledge of automation, CI/CD pipelines, and cross-compilation for ARM/x86.
- Understanding video formats, color spaces, frame timing, and synchronization.
- Experience with OS low-level APIs, hardware acceleration, services, and performance characteristics to best utilize the hardware capabilities.
Disclaimer: This position is offered through a partner company, with a primary focus on Vizrt deliverables.
Vizrt builds software-defined visual storytelling tools for broadcasters and media organizations, enabling them to create, manage, and automate high-quality on-air graphics efficiently. The platform serves a range of sectors, including media, education, and enterprise, impacting billions of viewers worldwide with its focus on speed, accuracy, and reliability.