Summary
EDGE Group is hiring a Principal Engineer, Embedded Software for ADVANCED CONCEPTS in Abu Dhabi. The role involves architecting embedded systems and developing microcontroller firmware, RTOS software, Linux drivers and kernel modules, and user-space applications for advanced autonomous systems. The engineer will integrate communication protocols, conduct testing and debugging, contribute to CI/CD and code quality practices, and mentor junior engineers. Applicants need a bachelor’s or master’s degree in a relevant field and 15+ years of embedded software experience, including C and C++.
The posting
As published on edgegroup.ae. Pulled from the employer's site and shown as they wrote it.
External Job Description
ADVANCED CONCEPTS is an entity within EDGE dedicated to the design and deployment of advanced, innovative technologies. ADVANCED CONCEPTS is fast-tracking the development of high-technology autonomous systems, including three Medium Endurance, High Altitude, fixed-wing unmanned aerial systems, a family of precision loitering munitions, a cost- effective family of cruise missiles, and a range of guided artillery munitions.
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 RTOS like FreeRTOS, mbed, or ThreadX on microcontrollers
- Implement Linux drivers and kernel modules for custom hardware components.
- Familiar with debug 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.
- Use of version controlled environment such as Git or SVN
- CI/CD pipeline
- Code writing discipline such as commenting and bug tracking
- Excellent problem-solving, analytical, and debugging skills.
- Strong communication and interpersonal skills, with the ability to collaborate effectively with engineers and other stakeholders.
- Proven ability to work independently and manage multiple projects simultaneously.
- Conduct testing and troubleshooting using oscilloscopes, logic analyzers.
Qualification / Experience
- Bachelors or Master’s degree in computer science, electronic or software engineering
- 15+ years of experience in embedded software engineering, 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 like STM32, NXP LPC, and Microchip PIC families.
- Experience with 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 V4L2, GStreamer, and FFmpeg.
- Excellent problem-solving, analytical, and debugging skills.
- Strong communication and interpersonal skills, with the ability to collaborate effectively with engineers and other stakeholders.
- Proven ability to work independently and manage multiple projects simultaneously.
- Linux kernel and driver implementation
- C and C++ coding
- Firmware in microcontrollers
- Nvidia Jetson Linux BSP