About INOVIO
INOVIO is a biotechnology company focused on developing and commercializing DNA medicines to help treat and protect people from HPV-related diseases, cancer, and infectious diseases. INOVIO’s technology optimizes the design and delivery of innovative DNA medicines that teach the body to manufacture its own disease-fighting tools. For more information, visit www.inovio.com.
Job summary
The Senior Embedded Software Engineer is responsible for the design, development, verification, maintenance, and sustaining support of safety-critical embedded software for electroporation and drug delivery medical devices. This role focuses on embedded C++ development, platform software, device drivers, electromechanical control, drug delivery, pulse generation, motor control, UI/display systems, battery powered systems, cybersecurity, hardware bring-up, and compliance with IEC 62304 and other applicable medical device standards.
Essential job functions and duties
- Design and implement electromechanical control systems, including motor control, battery management, board bring up, bootloaders, firmware updates, diagnostics, and inter-processor communications
- Design, develop, and maintain safety-critical embedded software for medical devices using modern C++ on microcontroller, RTOS, Embedded Linux, and Android platforms.
- Develop platform software, BSPs, middleware, and device drivers supporting SPI, I2C, UART, USB, ADC/DAC, PWM, timers, displays, touchscreens, motors, sensors, and communication interfaces.
- Develop embedded UI/display applications and system-level software features
- Design and implement software controlling electroporation therapy delivery.
- Develop deterministic real-time software supporting therapy delivery, closed-loop control systems, safety monitoring, and precision timing requirements
- Develop and maintain software lifecycle documentation, including requirements specifications, software designs, risk controls, verification protocols, and test reports.
- Perform code reviews, static analysis, unit testing, integration testing, and software verification activities.
- Implement cybersecurity controls, including secure boot, authentication, encryption, vulnerability management, and secure software update mechanisms
- Develop firmware, manufacturing test software, diagnostic tools, and engineering utilities to support product development, verification, manufacturing, debugging, compliance testing, and field service activities
- Troubleshoot hardware and software issues using oscilloscopes, logic analyzers, and other laboratory equipment
- Collaborate with systems, electrical, mechanical, quality, regulatory, and cybersecurity teams
- Participate in system requirements development, architecture definition, hazard analysis, risk control implementation, and allocation of system requirements to software components
- Support CI/CD pipelines, automated build systems, configuration management, and continuous software process improvements initiatives
- Provide sustaining engineering support for released products, including issue investigations, root cause analysis, field corrections, cybersecurity updates, and design improvements
- Complete other engineering duties and responsibilities as assigned.
Minimum requirements
- BS or MS in Computer Engineering, Electrical Engineering, Computer Science, or a related technical field
- 7+ years of experience in embedded software development, including development of complex real-time embedded systems using modern C++.
- Experience developing embedded applications on ARM Cortex-M processors, Linux, and/or Android platforms
- Strong experience developing real-time embedded applications using RTOS frameworks such as ThreadX, FreeRTOS, RTX, Micrium OS, or similar operating systems.
- Proven experience developing platform software, Board Support Packages (BSPs), hardware abstraction layers, and device drivers.
- Experience working with electromechanical systems, motor control, battery-operated devices, displays, touchscreens, and sensor integration
- Experience developing embedded GUI/UI applications
- Strong debugging and troubleshooting skills across applications, middleware, operating system, and driver layers.
- Ability to read electrical schematics, hardware design documentation, and component datasheets
- Hands-on experience with oscilloscopes, logic analyzers, protocol analyzers, and other hardware test equipment
- Experience with embedded development tools including Keil, IAR, GCC, Visual Studio, Android Studio, and Linux toolchains
- Knowledge of embedded cybersecurity principles, including secure coding p