Software Engineer
Battelle · Columbus, OH · 1 mo ago
HybridInformation TechnologyFull-time
About the role
You will be a core team member in the design and development of medical products and systems. This role contributes to all phases of product design, including initial requirements definition, conceptualization, feasibility assessment/demonstration, detailed design including engineering analysis and testing; verification testing and documentation, and transfer to the client (or manufacturing) and follow-on support as needed. You will work on projects that typically involve teams from multiple disciplines: mechanical, electrical, software, systems, industrial design, and human factors.
Responsibilities
- Participate in shaping product design through requirements definition, architectural discussions, and early feasibility development for embedded software solutions
- Design, develop, and maintain firmware for microcontroller based embedded systems used in medical and commercial devices
- Implement embedded software using C/C++ and other appropriate technologies for resource constrained systems
- Collaborate with electrical and systems engineers to integrate firmware with hardware components and subsystems
- Develop and maintain automated build, test, and deployment processes using CI/CD pipelines appropriate for embedded development
- Generate and maintain software design documentation, architecture descriptions, and traceability artifacts in accordance with quality and regulatory processes
- Contribute to verification and validation activities including unit testing, integration testing, and system level testing
- Apply risk based development approaches and support hazard analysis and software risk control activities
- Troubleshoot, debug, and resolve software and system integration issues during development and verification phases
- Work with project management to complete assigned technical tasks within project scope, schedule, and budget
- Communicate technical results and development progress to project leadership and clients through written and oral presentations
Qualifications
- Bachelor’s degree in Computer Engineering, Electrical Engineering, Computer Science, or a related technical field
- Strong programming skills in C and/or C++ for embedded systems
- Experience developing software for microcontroller based platforms
- Familiarity with embedded debugging tools such as JTAG debuggers, oscilloscopes, and logic analyzers
- Experience working in multidisciplinary engineering teams developing complex systems
- Strong problem solving skills and ability to work independently on technical tasks
- Effective written and verbal communication skills for technical documentation and collaboration
Preferred Qualifications
- Experience developing software for medical devices or diagnostic instrumentation
- Familiarity with IEC 62304 software lifecycle processes for medical device development
- Understanding of FDA regulatory expectations for software in medical devices and development within ISO 13485 quality systems
- Experience developing firmware for ARM Cortex M (32 bit) microcontroller architectures, with familiarity with vendors such as STMicroelectronics (e.g., STM32)
- Experience with real time operating systems (RTOS) or real time embedded design
- Experience with hardware software integration and board level bring up
- Experience designing or maintaining CI/CD pipelines for embedded software development and automated testing
- Experience supporting design verification and validation activities for regulated products