INOVIO Pharmaceuticals, Inc. logo

Senior Embedded Software Engineer

INOVIO Pharmaceuticals, Inc.

On-siteSan Diego, CAsenior$155kโ€“$185kPosted 7h ago

Job description

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 practices, threat modeling, vulnerability assessment, encryption, authentication, and secure firmware/software updates

  • Experience with source control, automated builds, issue tracking systems, and unit test frameworks

  • Experience developing safety-critical or regulated software

  • Strong working knowledge of IEC 62304, IEC 81001-5-1, ISO 14971, IEC 60601, FDA cybersecurity guidance, software risk management, design controls, verification and validation, and requirements traceability

  • Experience developing connected devices with wireless communications, cloud connectivity, and secure data exchange

  • Familiarity with C#, Python, automated test frameworks, and manufacturing test systems