Position Overview
The Embedded Software Engineer will design, develop, and optimize software for embedded systems, with a strong focus on real-time performance and system reliability. This role involves close collaboration with cross-functional engineering teams to bring intelligent hardware to life. Experience with unmanned vehicular systems is a strong plus, especially for candidates interested in autonomy and control systems.
Key Responsibilities
-
Design, develop, and maintain embedded software using C/C++ for real-time systems
-
Work with RTOS environments to build responsive, deterministic applications
-
Contribute to embedded systems architecture, including hardware-software integration
-
Develop and debug low-level drivers, communication protocols, and system interfaces
-
Collaborate with hardware, controls, and systems engineers to define requirements and ensure seamless integration
-
Optimize system performance, memory usage, and power efficiency
-
Support system testing, validation, and troubleshooting in both lab and field environments
-
Document software design, architecture, and test procedures
Required Qualifications
-
Bachelor’s degree in Computer Science, Electrical Engineering, or a related field
-
Minimum of 3 years of experience in embedded software development
-
Strong proficiency in C/C++ programming
-
Experience working with Real-Time Operating Systems (RTOS)
-
Solid understanding of embedded systems architecture, including microcontrollers and peripherals
-
Familiarity with debugging tools, version control systems, and development workflows
Preferred Qualifications
-
Experience developing software for unmanned vehicular systems (e.g., drones, autonomous ground vehicles, robotics)
-
Knowledge of communication protocols such as SPI, I2C, UART, CAN, or Ethernet
-
Exposure to control systems, sensor integration, or real-time data processing
-
Familiarity with safety-critical or high-reliability systems