About the Role
This position is within an entity dedicated to the design and deployment of advanced, innovative technologies, particularly in the field of high-technology autonomous systems. The role involves fast-tracking the development of various unmanned aerial systems, precision munitions, and guided artillery munitions.
Ready to apply for roles like this?
Unlock the company name and direct application link. Subscribers get instant access to fresh jobs across Dubai, Abu Dhabi and Riyadh, many with visa support.
Unlock employer & apply directly
Core Accountabilities
- Architect and design complex embedded systems, considering real-time constraints, power consumption, and resource limitations.
- Develop and maintain bare-metal firmware for microcontrollers based on Cortex-M architectures, such as STM32, NXP LPC, and Microchip PIC families.
- Develop and maintain firmware with Real-Time Operating Systems (RTOS) like FreeRTOS, mbed, or ThreadX on microcontrollers.
- Implement Linux drivers and kernel modules for custom hardware components.
- Familiar with the debugging process in Linux (gdb) and in microcontrollers (st-link, Segger J-link).
- Develop user-space applications leveraging APIs like V4L2, GStreamer, and FFmpeg for multimedia processing and image/video capture.
- Optimize software solutions using Jetson Linux BSP and NVIDIA JetPack SDK components (Linux kernel, CUDA, cuDNN, TensorRT).
- Integrate various communication protocols like I2C, UART, SPI, and CAN in both Linux and microcontroller environments.
- Implement Linux client/server against UDP, TCP, or IP.
- Participate in code reviews, ensure code quality, and follow established coding standards.
- Lead and mentor junior engineers, foster a collaborative environment, and share knowledge.
- Stay up-to-date with advancements in embedded technologies and best practices.
- Utilize a version-controlled environment such as Git or SVN.
- Engage in Continuous Integration/Continuous Deployment (CI/CD) pipeline activities.
- Maintain discipline in code writing, including commenting and bug tracking.
- Conduct testing and troubleshooting using oscilloscopes and logic analyzers.
- Demonstrate excellent problem-solving, analytical, and debugging skills.
- Exhibit strong communication and interpersonal skills, with the ability to collaborate effectively with engineers and other stakeholders.
- Manage multiple projects simultaneously and work independently.
Qualification / Experience
- Bachelor’s or Master’s degree in computer science, electronic, or software engineering.
- 15+ years of experience in embedded software engineering with expertise in C and C++.
- Strong understanding of ARM64 and Cortex-M architectures.
- Expertise in Linux driver and kernel development.
- Experience with bare-metal firmware development for microcontrollers such as STM32, NXP LPC, and Microchip PIC families.
- Proficient in RTOS like FreeRTOS, mbed, or ThreadX on microcontrollers.
- Knowledge of I2C, UART, SPI, and CAN protocols and their implementation in both Linux and microcontrollers.
- Experience with Jetson Linux BSP and NVIDIA JetPack SDK, including Linux kernel, CUDA, cuDNN, and TensorRT.
- Familiarity with multimedia frameworks such as V4L2, GStreamer, and FFmpeg.
- Excellent problem-solving, analytical, and debugging skills.
- Strong communication and interpersonal skills with demonstrated ability to work collaboratively.
- Proven ability to work independently and manage multiple projects concurrently.
- Experience in Linux kernel and driver implementation.
- Proficiency in C and C++ programming languages.
- Firmware development experience in microcontrollers.
- Knowledge of Nvidia Jetson Linux BSP.