Senior Software Engineer; Temporary
Listed on 2025-12-19
-
Software Development
Embedded Software Engineer, Software Engineer, DevOps
About Company:
Join our team and help build the future DNA medicine.
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
This position requires onsite presence 2-3 days per week.
Job SummaryThe Temporary Senior Software Engineer develops and enhances Electroporation Device firmware and associated tools to add additional features and improve overall product reliability. This role involves designing, developing, and implementing automation systems to boost efficiency, productivity, and quality in manufacturing operations. Key responsibilities include preparing and updating requirements, software designs, test plans, and risk analyses, as well as providing ongoing product support.
The ideal candidate will have expertise in embedded firmware development, strong proficiency in C/C++, experience with real‑time operating systems (RTOS), and skill in developing PC‑based applications using C#. They should also possess experience in embedded software and hardware, debugging techniques, and customer support, ensuring seamless operation and quick resolution of technical issues.
- Design and develop embedded software for "bare metal" and real‑time operating systems across multiple boards and MCUs.
- Design and develop board bring‑up code, device driver code, boot loaders, firmware update software, software for interfacing with sensors and peripherals, and application software.
- Design, document, code, test, and debug embedded device controllers for Electroporation Devices.
- Design and develop PC‑based applications to support diagnostics, device testing, production testing, and manufacturing automation.
- Conduct unit testing, integration testing, system debugging, and code reviews to ensure software reliability.
- Diagnose and troubleshoot hardware and software issues in real‑time field environments.
- Integrate software components, third‑party libraries, and APIs into existing or new systems.
- Perform software validation, functional testing, and system‑level debugging to ensure compatibility across environments.
- Ensure compliance with safety regulations, industry standards, and company policies.
- Optimize code for performance, power efficiency, and memory utilization.
- Support project planning efforts, including task definition and work effort.
- Collaborate with electrical, mechanical, and quality engineers to ensure seamless integration.
- Analyze, resolve, and track defects and improvements to closure.
- Develop and improve software development processes and procedures.
- Support product deployment and configuration, ensuring compliance with technical requirements.
- Utilize version control systems (Git, SVN) and CI/CD pipelines for software development.
- Assist production teams in resolving technical issues and improving system efficiency.
- Provide engineering support for other departments as needed.
- Perform additional engineering duties as assigned.
- Bachelor's degree in Engineering or Computer Science.
- 3+ years of experience in embedded systems development with C++ skills, multi-threading, multi-processor interfacing, and hardware-software integration.
- Experience working with microcontrollers (Cortex M based) running both RTOS (e.g., RTX, Thread
X, FreeRTOS, Micrium OS) and bare-metal software. - Experience in board bringing up and developing device drivers for bus interfaces and peripherals: SPI, I2C, UART, ADC, DAC, I2S, USB, LCD.
- Hands-on experience with low‑level programming, embedded UI development, hardware-software integration, and debugging tools (JTAG, GDB, logic analyzers, other test equipment, oscilloscopes).
- 2+ years of experience in PC-based application development using C# and database interfaces.
- Familiarity with setting up various tool chains, building systems, and debugging environments.
- Experience with software engineering processes and tools, including Git-based configuration…
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).