Concepteur logiciel systèmes C++ senior / Senior C++ Systems Software Designer
Core
Designing, developing, and optimizing high-performance C++ software for transporting and processing very high-bandwidth real-time data streams.
Role type
Senior C++ Systems Software Designer
Builds
High-performance software components for real-time and high-bandwidth applications
Domain
Telecommunications, networking, media processing, high-performance computing, real-time data systems
Deliverable
production ML models | product features
Required skills
C++ (production), software architecture, object-oriented design, memory management, Linux/RTOS development, ARM/x86 platforms, IPC mechanisms, shared memory, memory-mapped buffers, producer/consumer architectures, ring buffers, queues, synchronization primitives, zero-copy data paths, multithreaded programming, asynchronous programming, hardware abstraction, debugging, profiling, benchmarking
Preferred skills
Cloud-ready architecture evolution
Technologies
C++, Linux, RTOS, ARM, x86
Responsibilities
Designing and developing high-performance C++ software components for real-time and high-bandwidth applications; Architecting software capable of efficiently transporting and manipulating 12 to 25 Gbps-class data streams; Developing Linux and/or RTOS applications on ARM or x86 platforms; Designing efficient IPC and data-sharing mechanisms including shared memory, memory-mapped buffers, producer/consumer architectures, ring buffers, queues and synchronization primitives; Implementing zero-copy or reduced-copy data paths where appropriate; Optimizing memory bandwidth, CPU utilization, thread scheduling, cache behavior, latency and application throughput; Designing multithreaded and asynchronous software capable of sustaining continuous high-speed traffic; Integrating third-party SDKs, libraries, drivers and hardware APIs; Creating clean abstractions between applications, operating-system services and underlying hardware; Debugging complex issues spanning applications, operating systems, networking, memory and hardware interfaces; Profiling and benchmarking software to identify throughput and latency bottlenecks; Participating in architecture, design and code reviews and producing maintainable, testable production C++ code; Contributing to architectures that can evolve from dedicated or on-premise deployments toward virtualized and cloud-ready environments.