About the job
NVIDIA is searching for a Multimedia Software Engineer for developing multimedia technologies for a new class of server products and appliances for our Metropolis platforms. Data is the lifeblood of the modern city. Today, it’s being captured by over 500 million cameras worldwide, and that number is growing exponentially. This is creating a tsunami of information that is impossible for humans to analyze. AI is the key to turning this information into insight. It’s transforming how we collect, inspect, and analyze data to impact everything from public safety, traffic, and parking management to law enforcement and city services. NVIDIA Metropolis is leading this AI revolution, providing the tools, technologies, and expertise to meet every challenge with smarter, faster applications.This role will be responsible for implementation of advanced multimedia acquisition and retrieval systems for AI processing. Your deep experience with multimedia formats, transport protocols, hardware-accelerated Codecs, and micro service-based architectures will provide the foundation for a platform solving smart cities problems with AI. Strong collaboration and communication skills are a prerequisite for joining a multi-disciplinary and world-wide team driving the evolution of smart cities.
What You'll Be Doing
- Developing a video management system capable of scaling from embedded devices up to large data center deployments
- Tackling data acquisition and service challenges with a secure, micro services-based architecture, including system and network data movement and resource utilization
- Collaborating within a well-defined product life cycle with distinct requirements, architecture and iterative development phases
- Implementing solutions using open protocols, standards and idioms including WEBRTC, ONVIF, RTP/RTSP, SOAP, REST, gRPC
- Accelerating multimedia processing and data transfer using NVIDIA multimedia and networking SDKs
- Bachelors of Science with 10+ years of experience (Masters degree preferred) or equivalent experience
- Demonstrable experience with multimedia formats, transport protocols and development of scalable systems for media handling or processing
- Strong C and C++ (Advanced C++) programming skill
- Excellent understanding of systems software development within the Linux environment, with a knowledge of operating systems, multi-threading/concurrency and virtual memory, and system-level performance analysis
- Familiarity with protocols used for implementing video-based microarchitecture services, including WebRTC, RTSP, SOAP, REST, gRPC
- You have the knowledge of Kubernetes and Micro-service Architecture.
- Prior development experience with open-source multimedia frameworks such as Gstreamer, FFMPEG, V4L2
- Comfortable working in a multi-site team, be a great communicator, and have the skills and experience to help us deliver high quality software on a schedule.
- Prior development experience with VMS systems and the ONVIF protocol specification
- Experience with NVIDIA Multimedia and GPU-accelerated SDKs
- Experience with complex system-level debugging, data-flow analysis and profiling