Within the DxO ONE Group, in the firmware team, you will work collaboratively with hardware and software development teams, as well as international third-parties. Your main tasks will be :

  • Participate to feature definition for the products of business group,
  • Participate to feature development, integration and test within both legacy and new codebase :
    • Software design & architecture, dealing with constraints of legacy code, embedded platforms, and complex System On Chip architecture,
    • Low-level C & C++ development on Linux & RTOS (ThreadX, FreeRTOS, etc.) in multi-OS and highly multi-threaded environment,
    • Unit-tests & acceptance tests development in existing DxO’s automatic testing frameworks,
  • Performance analysis & software optimization to reduce energy consumption and product quality:
    • Use & develop proprietary analysis tools,
    • Use platform-specific debug and analysis tools provided by SoC vendor (ARM based processors),
    • Propose and validate software optimizations based on constraints & analysis,
  • Contribute to Continuous Integration pipeline & non-regression test campaigns,
  • Analyze and fix bugs when discovered,
  • Work with multi-disciplinary feature teams in Agile environment.

Profile:

  • Bac +5: engineering school or masters in embedded software and electronics
  • Minimum of 3 years’ experience in embedded software development
  • Excellent mastering of C (C++ is a plus)
  • Excellent knowledge of real-time systems & constraints
  • Good knowledge of complex SoCs architecture & low-level development
  • Good knowledge of Linux as a development platform (in both kernel side and user side)
  • Good knowledge of interpreted languages such as Bash & Python
  • Mastering of Git or other modern configuration management (SVN or Mercurial)
  • Team-player, focused on solution & collaboration
  • Fluent in English for technical communication

Nice-to-have :

  • Good knowledge of photography concepts
  • Knowledge in Embedded Image Processing (ISP architecture, color formats, image compression algorithms, …)
  • Knowledge of audio/video encoding & streaming standards (H264, H265, MPEG-TS, RTP/HLS, ffmpeg, gstreamer)
  • Knowledge of wireless standards and protocols (WiFi, BLE)
  • Knowledge of ARM assembly (including Neon)