We are looking for NuttX OS software developer to our team in UAE.
NuttX OS software developer is responsible for developing and maintaining software applications and components for the NuttX real-time operating system. The work is on the firmware and software stack that powers embedded systems, including aerospace applications. Job involves writing efficient code, optimizing performance, debugging and testing software modules, and ensuring the stability and reliability of the NuttX operating system. Role requires collaboration with a cross-functional team, including hardware engineers and system integrators, to develop software that meets specific requirements and integrates seamlessly with the underlying hardware. The NuttX OS software developer may also contribute to the open-source community, participate in code reviews, and assist in troubleshooting and resolving software-related issues.
Skills Required
- RTOS
- ARM
- Linux
- NuttX
- PX4
- C++
Locations
Abu Dhabi, UAE
REQUIRED QUALIFICATIONS
- Strong programming skills in C and C++ are essential for developing and modifying software applications and components for the NuttX operating system.
- Understanding embedded systems principles and experience in developing software for resource-constrained platforms are important for working with the NuttX OS.
- In-depth knowledge of real-time operating systems, particularly NuttX, including its features, architecture, and APIs is crucial for developing software that operates in real-time environments.
- Experience in developing device drivers for various peripherals and hardware components is valuable for integrating and controlling devices with the NuttX OS.
- Understanding system-level programming concepts and techniques, such as inter-process communication, task scheduling, memory management, and file systems, is important for developing efficient and reliable software on the NuttX OS.
- Strong problem-solving skills and the ability to debug and troubleshoot software issues are crucial for diagnosing and resolving bugs or performance problems in the NuttX OS.
- Familiarity with cross-compilation and porting software to different hardware platforms is beneficial for ensuring the compatibility and successful deployment of NuttX-based applications.
- Knowledge of various communication protocols, such as UART, SPI, I2C, Ethernet, and USB, is important for interfacing with external devices and networks.
- Understanding the interaction between software and hardware components, including sensors, actuators, memory, and peripheral interfaces, is necessary for developing software that effectively utilizes the underlying hardware capabilities.
- Experience with multithreaded programming and synchronization mechanisms, such as semaphores and mutexes, is valuable for developing concurrent and efficient software applications on the NuttX OS.
- Proficiency with version control systems like Git and the ability to collaborate effectively with a team of developers are important for managing software development and ensuring code quality.
- Strong documentation skills for writing clear and concise code comments and documentation, as well as experience in unit testing and software validation techniques, are essential for maintaining software quality and facilitating code maintenance.