Position Overview
The Embedded Systems Engineer will be responsible for designing, developing, and optimising embedded software for resource-constrained environments. This role sits between firmware engineering and full-stack development, focusing on low-level programming, hardware interaction, and real-time performance. The role requires strong C/C++ and Python skills, expertise in memory and power management, and experience working with embedded CPUs, communication interfaces, and real-time operating systems. Based in Dubai, the role will contribute to the development of reliable, efficient, and scalable embedded systems across the business.
Key Responsibilities
Design, develop, test, and maintain embedded software in C/C++ for small and resource limited CPUs.
Contribute to the development of the Python stacks interacting with the hardware
Optimise firmware and embedded applications for memory usage, power consumption, and execution speed.
Develop and maintain real-time software components, ensuring deterministic behaviour and reliability.
Interface with hardware technologies including USB, Ethernet, LoRa, SPI, I2C, UART, and other communication buses.
Implement embedded drivers and communication protocols.
Contribute to hardware–software integration and debugging
Write clean, maintainable, and well-documented code following best practices.
Participate in requirements gathering, technical design, code reviews, and system testing.
Collaborate with cross-functional engineering teams to ensure embedded solutions meet product requirements.
Support continuous improvement of embedded development processes and tooling.
Key Skills and Experience Technical Skills:
Strong proficiency in C and C++ for embedded systems.
Proficiency in Python for integration, scripting, automation, and embedded tooling.
Experience working with memory-constrained and low-power embedded environments.
Understanding of RTOS concepts, schedulers, interrupts, and real-time constraints.
Experience with embedded processors (ARM Cortex-M, ESP32, STM32, or similar).
Knowledge of interfacing and protocols (USB, Ethernet, LoRa, SPI, I2C, UART, for example).
Experience with embedded debugging tools and methodologies. Familiarity with version control (Git) and CI/CD processes.
Basic understanding of electronics, schematics, and hardware principles.
knowledge of OpenWRT, MQTT, TR-069, TR-369, TR-181 and LoRaWAN networks and devices would be advantageous
Experience:
3–5 years of experience in embedded software development.
Proven experience optimising code for memory, performance, and power efficiency.
Experience working with real-time systems and low-level hardware interfaces.
Experience collaborating within multidisciplinary engineering teams. Soft Skills: Strong problem-solving ability and attention to detail.
Clear communication skills across technical and non-technical teams.
Ability to work independently and manage workload effectively.
Proactive approach to learning and continuous improvement.
Education
Bachelor’s degree in Computer Engineering, Software Engineering, Electronics Engineering, or equivalent experience.
A Master’s degree is a plus.
Salary
Competitive, based on experience and qualifications
Job Type: Full-time
Pay: AED10,000.00 - AED12,000.00 per month