Embedded Software Engineer - Abu Dhabi, United Arab Emirates - Air Q Limited

    Air Q Limited
    Air Q Limited Abu Dhabi, United Arab Emirates

    3 weeks ago

    Default job background
    Full time
    Description

    EMBEDDED SOFTWARE DEVELOPMENT ENGINEER

    INTRODUCTION

    Job Description:

    The Embedded Software Development Engineer at Air Q plays a crucial role in the design, development, and integration of firmware and low-level software for the HARARA VTOL UAV. They are responsible for creating efficient and reliable embedded software solutions that contribute to the optimal performance of the aircraft. The Embedded Software Development Engineer closely collaborates with system integration engineers and autopilot engineers to ensure seamless integration of software components into the UAV system.

    Key Responsibilities:

    Low-Level Driver Adjustment and Integration: Develop and integrate low-level drivers for microcontrollers and hardware components to ensure proper communication and functionality.

    Firmware Architecture Design: Design a well-structured and modular firmware architecture for the HARARA UAV, accommodating various software components and future scalability.

    Firmware Implementation: Implement firmware modules using C++ and C languages, following best practices for code quality, efficiency, and maintainability.

    Code Quality Assurance: Establish and improve processes to ensure code quality, including code reviews, testing, and debugging procedures.

    Hardware Component Selection: Research and analyze aircraft hardware components, selecting suitable ones based on technical specifications and performance requirements.

    Development of Testing Tools: Develop tools for testing and configuring aircraft hardware components, ensuring their accurate integration and functionality.

    Hardware Configuration and Integration: Configure and integrate aircraft hardware components into the UAV system, working closely with system integration engineers.

    Testing and Verification: Perform rigorous testing of embedded software to verify performance, reliability, and adherence to design specifications.

    Fault Tolerance and Safety Measures: Implement fault tolerance and safety measures in embedded software to ensure robust operation and handle potential failures gracefully.

    Real-Time Operating Systems (RTOS): Utilize RTOS to manage task scheduling, resource allocation, and system performance in real-time applications.

    Communication Protocols: Implement and integrate communication protocols, such as UART, I2C, SPI, and CAN, for data exchange between various UAV components.

    Data Logging and Telemetry: Develop mechanisms for data logging and telemetry to collect and transmit UAV performance data for analysis and monitoring.

    Power Management: Optimize power management in embedded systems to ensure efficient energy usage and extended battery life.

    Security and Encryption: Incorporate security measures and encryption protocols to protect sensitive data and ensure UAV communications are secure.

    Firmware Updates and Over-The-Air (OTA) Capabilities: Develop OTA capabilities to enable remote firmware updates and enhancements.

    Continuous Integration and Continuous Deployment (CI/CD): Implement CI/CD pipelines for automated software testing and deployment to improve development efficiency.

    Version Control: Utilize version control systems (e.g., Git) to manage software revisions and collaborate with other team members effectively.

    Documentation: Prepare detailed documentation of the embedded software design, implementation, testing processes, and integration guidelines.

    Collaborative Efforts: Collaborate closely with system integration engineers and autopilot engineers to ensure seamless integration of software and hardware components.

    UAV Development Support: Provide support and assistance to the overall UAV development process, including troubleshooting and resolving software-related issues.

    Expectations:


    Proficiency in C++ and C programming languages, with a strong foundation in embedded systems development.


    Experience in designing and implementing firmware architectures for complex systems.


    Familiarity with low-level driver development for microcontrollers and hardware components.


    Knowledge of software development processes and best practices for code quality assurance.


    Strong problem-solving skills and the ability to analyze and troubleshoot embedded software issues.


    Adaptable to a dynamic and fast-paced R&D environment, where adjustments and improvements are continuously made.


    Excellent communication and collaboration skills to work effectively with cross-functional teams.


    A proactive and self-driven approach to learn and stay updated with emerging technologies and industry trends.

    Familiarity with UAV systems or aviation-related software development is a plus.