Key Skills:
RTOS, Bare metal programming, Firmware, C/C++, Bootloader
Roles and Responsibilities:
-
Design firmware architecture for real-time embedded systems used in Class II/III medical devices, ensuring compliance with regulatory standards such as FDA and IEC 62304
-
Develop and maintain embedded C/C++ code for microcontrollers and embedded processors, including implementation of low-level drivers, communication protocols (e.g., UART, SPI, I2C), and control algorithms
-
Author and maintain detailed design specifications, interface control documents, and technical documentation in accordance with design control requirements for regulated environments
-
Perform system-level integration of firmware with hardware and software components, validating functionality through structured test protocols and verification procedures
-
Debug and troubleshoot embedded systems using oscilloscopes, logic analyzers, JTAG/SWD debuggers, and other diagnostic tools to resolve hardware-software interaction issues
Skills Required:
-
Proficiency in C and C++ programming for embedded systems with demonstrated experience in bare-metal and RTOS-based development
-
Hands-on experience with communication protocols including SPI, I2C, UART, and USB in embedded applications
-
Industry experience in control systems engineering including PID controller tuning and firmware development for stepper and DC motor control
-
Degree in Electrical Engineering, Computer Engineering, Computer Science, or a related technical field with applied knowledge in embedded software design and hardware integration
It would be a plus if you also possess previous experience in:
-
Strong knowledge of microcontroller architectures (e.g., ARM Cortex-M) and peripherals (e.g., ADC, DAC, Timers)
-
Experience developing bootloaders
-
Familiarity with risk management practices (ISO 14971)
-
Experience with embedded Linux
-
Experience with scripting and process automation
Education:
B.S. degree with 5+ years or M.S. degree with 3+ years of professional experience in embedded systems and firmware development in resource-constrained environments