About the Role
The role involves participating in the design and deployment of advanced, innovative technologies focused on high-technology autonomous systems. Responsibilities include implementing hardware and developing embedded software for RF systems as well as maintaining firmware on microcontrollers. This position requires both technical expertise in embedded systems and the ability to collaborate effectively with a team to deliver cutting-edge solutions.
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:
- Implement OSI: PHY/layer 1 and layer 2 radio for running on Microcontroller or FPGA
- Develop embedded software for RF systems, including signal processing for data-links
- Write device drivers and low level software for RF-chipsets and modules
- Develop and maintain bare-metal firmware for microcontrollers based on ARM Cortex-M architectures
- Develop and maintain firmware with RTOS on microcontrollers
- Integrate various communication protocols like I2C, UART, SPI, CAN, and ETH in both Linux and microcontroller environments
- Use programming languages for Microcontrollers such as C/C++ and Assembly
- Design and generate Board Support Packages
- Participate in code reviews, ensure code quality, and follow established coding standards
- Stay up-to-date with advancements in embedded technologies and best practices
- Analyze and improve the performance of the developed RF systems in terms of throughput, latency, power consumption, and signal quality
- Build Linux images such as Yocto and FreeRTOS
- Use a version-controlled environment such as Git or SVN
- Use code writing style guides (e.g., pep8 for Python)
- Implement Linux drivers and kernel modules for custom hardware components
- Implement Linux client/server against UDP, TCP, or IP
- Demonstrate excellent problem-solving, analytical, and debugging skills
- Conduct testing and troubleshooting of both software and hardware
- Support, lead and mentor junior engineers and share knowledge
Qualifications / Experience:
- Bachelor’s or Master's degree in computer science, communication, electronic, or software engineering
- Minimum 8 years of experience in embedded software engineering, specifically in C, C++, and Assembler
- Knowledge and understanding of OSI model: PHY/layer 1 and layer 2
- Strong understanding of ARM and Cortex-M architectures
- Knowledge in Linux driver and kernel development
- Experience with bare-metal firmware development for microcontrollers
- Knowledge with RTOS on microcontrollers
- Knowledge of I2C, UART, SPI, and CAN protocols and their implementation in both Linux and microcontrollers
- Understanding of RF principles, including modulation, coding, and signal processing
- Experience with RF hardware, including transceivers, power amplifiers, and antenna systems
- Ability to design and implement efficient algorithms for real-time RF systems
- Strong 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.