This list contains only the countries for which job offers have been published in the selected language (e.g., in the French version, only job offers written in French are displayed, and in the English version, only those in English).
As a Machine Learning Engineer at Dedrone, you’ll play a pivotal role in advancing airspace security. Leveraging cutting-edge camera systems and machine learning algorithms, you will help us detect, track, and classify diverse flying objects in complex airspace environments. By innovating detection and tracking techniques, you’ll be key in developing our systems to respond to evolving airspace threats—from quadcopters and drones to other larger or unconventional aircraft. Working within a highly skilled team, you’ll gain access to world-class resources and an extensive, unique dataset, providing a one-of-a-kind opportunity to shape the future of airspace security and computer vision.
Job Responsibility:
Design and implement high-performance C++ software that runs computer vision and tracking algorithms in real time on edge devices
Work closely with computer vision / self-supervised learning engineers to integrate their models into production pipelines, including pre/post-processing, I/O, and system orchestration
Build and optimize multithreaded and parallel processing pipelines for ingesting, synchronizing, and processing data from a networked system of cameras
Implement and tune CUDA kernels and GPU-accelerated components to maximize throughput and minimize latency for inference, tracking, and search
Design robust data structures and memory management strategies for handling large volumes of video, sensor, and metadata streams under tight compute and power constraints
Profile and optimize code using tools such as perf, valgrind, nvprof / Nsight, and similar to identify bottlenecks and improve CPU/GPU utilization
Collaborate with simulation and CV teams to deploy and evaluate algorithms in realistic test scenarios, including fault handling and performance monitoring
Develop clean, well-tested, and well-documented C++ libraries and services that can be reused across products and future airspace applications
Contribute to system-level architecture decisions, including inter-process communication, scheduling, resource allocation, and deployment strategies on edge platforms
Requirements:
5+ years of professional experience in modern C++ (C++14/17 or later), with strong object-oriented and generic programming skills
Deep understanding of multithreading and concurrency (threads, thread pools, locks, lock-free structures, atomics, futures, async patterns) and experience building robust, concurrent systems
Hands-on experience with parallel processing frameworks or patterns (SIMD, task-based parallelism, GPU offload, or similar) for real-time or high-throughput applications
Strong command of data structures and algorithms, and the ability to choose and implement the right structures for performance-critical, memory-constrained environments
Proven experience with memory management and performance optimization in C++ (stack vs heap, custom allocators, cache-aware design, avoiding fragmentation, RAII, move semantics)
Practical experience with CUDA (or similar GPU programming frameworks): writing kernels, managing GPU memory, optimizing for occupancy and bandwidth, and integrating with C++ codebases
Familiarity with Linux-based development (build systems like CMake, unit testing frameworks, containerization and/or cross-compilation for edge devices)
Strong debugging and profiling skills across CPU and GPU, and a methodical approach to benchmarking and regression testing
Excellent collaboration and communication skills, with a track record of working closely with research or ML teams to move algorithms from prototype to production
Nice to have:
Experience integrating machine learning or computer vision inference engines (e.g., TensorRT, OpenVINO, ONNX Runtime) is a strong plus