Inovio is taking immunotherapy to the next level in the fight against cancer and infectious diseases. We are the only immunotherapy company that has reported generating T cells in vivo in high quantity that are fully functional and whose killing capacity correlates with relevant clinical outcomes with a favorable safety profile. The company is advancing a growing clinical and preclinical stage product pipeline. Partners and collaborators include MedImmune, Roche, University of Pennsylvania, DARPA, GeneOne Life Science, Drexel University, NIH, HIV Vaccines Trial Network, National Cancer Institute, U.S. Military HIV Research Program, and University of Manitoba. For more information, visit www.inovio.com.
The Embedded Software Engineer will develop and enhance Electroporation Device firmware to support new features and improve overall reliability of the firmware, bring up new embedded hardware platforms and diagnose and fix issues, prepare requirement, create software design, perform unit testing, create test plans and traceability report etc., and provide sustaining support of products.
Essential job functions and duties
- Develop board bring up code, inter-processor communication code, step-up motor control code, firmware update, interfacing with various sensors, battery charging, POST, filtering transient errors, etc.
- Design, develop and implement software for drug delivery and electroporation.
- Design and develop device drivers for SPI, I2C, I2S, UART, PWM, Touch Screen controllers, Display, USB, A/Ds, D/As, Timers, etc.
- Create unit and integrated test cases and perform unit and integration testing and code reviews.
- Develop firmware and tools to support manufacturing, debug and diagnostics, board level testing, compliance, etc.
- Work as part of a team to build embedded systems
- Interface with electrical, mechanical and quality engineers.
- Implement and maintain automated build infrastructure
- Document, Troubleshoot and resolve firmware issues
- Collaborate with mechanical and hardware product teams.
- Develop and improve software development processes and procedures
- Complete other engineering duties as assigned.
- Minimum BS in Engineering or Computer Science
- 3+ years in embedded systems development experience with strong C++ skills, multi-threading, multi-processor experience and hardware-software integration.
- 2+ years programming experience on Cortex M3/M4/MSP430 processors
- Experience in embedded GUI development
- Experience in develop RTOS based embedded applications (Example: RTX, ThreadX, FreeRTOS, Micrium OS, etc.)
- Exposure in debugging firmware at all levels of application and drivers
- Ability to read circuit designs/electrical schematics and datasheets
- Experience in using oscilloscopes, logic analyzers, and other test equipment to troubleshoot hardware/software issues
- Excellent problem-solving, design, development, and debugging skills.
- Good communication skills.
- Experience in developing low level drivers and application for SPI,I2C, UART, ADC, DAC, I2S
- Experience in Keil MicroVision or IAR Workbench Development Environment
- Experience with safety critical software development
- Familiarity setting up various embedded toolchains, build and debugging environments
- Experience with software Engineering processes and tools
- Proficient with software life cycle IEC62304
- Familiar with Microsoft Visual Studio C++/C#
- Familiar with Configuration Management and Issue Tracking systems.
- Experience in unit test framework such as CPPUnit.
Inovio Pharmaceuticals, Inc. is committed to a policy of equal employment opportunity. In keeping with our policy, Inovio will recruit, hire, train and promote into all job titles the most qualified individuals, without regard to race, color, creed, gender, religion, marital status, registered domestic partner status, age, national origin or ancestry, physical or mental disability, medical condition including genetic characteristics, sexual orientation, or any other consideration made unlawful by federal, state, or local laws.
A current US work authorization is required. The above statements are intended to describe the general nature and level of work being performed by people assigned to this classification. They are not to be construed as an exhaustive list of all responsibilities, duties, and skills required of personnel so classified. All personnel may be required to perform duties outside of their normal responsibilities from time to time, as needed. Inovio offers an attractive benefits package and is an equal opportunity employer.