> DOUOM Defence Systems
Embedded Engineer
format:Remotecompany:Product
cyoctou-bootlinux kerneldevice treegstreamersystemdbasharmlinux
mavlinkpythonstm32
> full description
About the project
We build an embedded compute module around NXP i.MX8MP for real-time video capture, processing in a constrained field environment.
You will own the Linux stack: BSP, kernel, device tree, userspace services and the video/networking pipeline.
Responsibilities
- Maintain and extend the Linux BSP for NXP i.MX8MP (U-Boot, kernel, DT, low-level drivers).
- Bring up and debug new hardware revisions.
- Tune drivers / DT for CSI camera, I²C/SPI, GPIOs and storage.
- Improve boot performance, reliability and recovery.
- Maintain Yocto layers and recipes for a custom distribution.
- Add/patch third-party components (GStreamer, networking, debug tools).
- Design and maintain image update workflows (e.g. uuu, scripted updates, integrity checks).
- Ensure reproducible builds and clear separation of BSP vs application layers.
- Implement and debug GStreamer pipelines for CSI v4l2 capture, H.264 streaming and SD card recording.
- Integrate camera-adapter firmware update tools and ensure safe update procedures.
- Profile and optimize CPU/GPU/VPU load, memory bandwidth and latency.
- Design and maintain systemd services (recorder, monitoring, watchdogs).
- Handle power events, removable media and degraded conditions (I/O errors, low space, link loss).
- Add health monitoring, metrics and logging for field diagnostics.
- Configure and debug network links for throughput and latency.
- Integrate the compute module with other modules via UART and similar interfaces.
- Work with MCU/firmware developers on interfaces and update flows.
- Develop CLI tools and scripts (Bash/Python) for flashing, testing and diagnostics.
- Maintain concise technical documentation (bring-up, updates, troubleshooting).
Requirements
- Proven experience as an Embedded Linux engineer on real hardware.
- Strong C skills in a Linux/embedded environment (kernel or low-level userspace).
- Hands-on Yocto experience:
- Writing/modifying recipes and classes
- Maintaining custom layers
- Building and debugging board-specific images
- Experience with U-Boot and Linux kernel on ARM SoCs (preferably NXP i.MX).
- Confident with device tree (nodes, bindings, enabling peripherals).
- Practical GStreamer experience for capture/encode/stream pipelines.
- Solid systemd knowledge (units, targets, dependencies, journald, boot debugging).
- Confident with Linux CLI and debugging tools: dmesg, journalctl, strace, gdb, perf, etc.
- Basic hardware-level debugging (UART console, logic analyzer/oscilloscope).
- Ability to read schematics and understand SW—HW interactions (power, reset, muxing).
- Good written and spoken English for technical communication and documentation.
Nice to have
- Direct experience with NXP i.MX8MP or similar multimedia SoCs.
- Experience with wireless links in constrained/outdoor setups.
- Experience with OTA update frameworks such as swupdate, Mender or similar (A/B updates, rollback strategies).
- Exposure to UAV / robotics (MAVLink, UDP telemetry, etc.).
- Experience with OpenWrt, Armbian or other embedded Linux distributions.
- Python for tooling and data analysis (log parsing, small utilities).
- Experience with MCUs (STM32, etc.) and firmware updates from Linux host.
- Work on field-deployed systems with strong reliability and diagnostics requirements.
Personal profile
- Methodical and skeptical: you rely on measurements and logs rather than assumptions.
- Comfortable working end-to-end, from bootloader and kernel to services and scripts.
- Willing to take ownership of a complex embedded Linux platform and keep it robust, debuggable and maintainable.