Software Engineer II - C++/rust

Axon Axon · Enterprise · Kassel, Germany · 2024 Dedrone R&D

Software Engineer II role focused on developing and maintaining high-performance C++ applications for drone threat detection and tracking systems, with a focus on correctness, low latency, and minimal I/O overhead. The role also involves contributing to the migration of existing C++ components to Rust and optimizing parallel processing pipelines on Linux systems.

What you'd actually do

  1. Design, develop, and maintain high-performance C++ applications within Dedrone's detection and tracking platform, with a focus on correctness, low latency, and minimal I/O overhead
  2. Contribute to the incremental migration of existing C++ components to Rust, applying practical Rust development skills in a production environment
  3. Implement and optimize parallel processing pipelines on Linux systems, ensuring efficient use of multi-core hardware and system resources
  4. Collaborate closely with teammates in code reviews, architecture discussions, and knowledge sharing — with a shared commitment to clean, maintainable code
  5. Diagnose and resolve performance bottlenecks, memory issues, and concurrency bugs across complex, real-time systems

Skills

Required

  • 3+ years of professional software development experience
  • Strong foundation in C++
  • Practical, hands-on experience developing Rust applications
  • Shipped Rust code
  • Understand Rust's ownership and concurrency model
  • Solid understanding of parallel and concurrent programming patterns
  • Experience developing and deploying software on Linux systems
  • Familiarity with system-level APIs and tooling
  • Methodical approach to performance
  • B.Sc. in Computer Science, Electrical Engineering, or a related technical field — or equivalent practical experience

What the JD emphasized

  • high-performance C++ applications
  • low latency
  • minimal I/O overhead
  • migration of existing C++ components to Rust
  • practical Rust development skills
  • production environment
  • parallel processing pipelines
  • Linux systems
  • performance bottlenecks
  • memory issues
  • concurrency bugs
  • real-time systems
  • performance: you profile before you optimize
  • cost of memory, threads, and I/O