Software Engineer III
The Software Engineer III will contribute to the architecture, design, and development of distributed control software within a robotic compounding device. This role will be responsible for ensuring that the design and implementation are flexible, robust, and meet the requirements. The software is architected with a component-based architecture and using modern C++ features. This role works directly with other engineering disciplines to design, implement, and verify subsystems for a medical device. The Software Engineer III will work in a collaborative environment and following and contributing to best practices in engineering.
Responsibilities:
- Creating and refining structural and logical/algorithmic designs.
- Works in an agile environment implementing software for specific requirements or applications within a medical device environment, following validated development processes.
- Develops clear and readable code
- Implementing and maintaining software in compliance with associated designs and policies.
- Creating unit, functional, and integration tests and performing root cause analyses for complex features.
- Work with appropriate continuous integration and production build processes and environments.
- Ensuring the quality of the software through appropriate processes, documentation, and testing.
- Meets the ‘Definition of Done’ and promotes coding standards.
- Participates in team retrospectives to improve the software development process
- Works on business-critical products that operate with high reliability and are distributed nationwide to many clients
Knowledge and Skills:
- Understanding of industry best practices and process associated with software development, including technical writing, system documentation, and design document management.
- Demonstrable knowledge of troubleshooting, design methodologies, coding practices, and testing strategies.
Basic Qualifications:
- Bachelor’s degree in Computer Science, Software Engineering, Computer Engineering or other engineering field of study with programming course work
- 5+ years’ experience in software engineering.
- 2+ years’ experience in C++, C#, Java, or other object-oriented language.
Preferred Qualifications:
- Experience with machine automation
- Experience with modern C++ development (C++17 standards)
- Experience with low-level embedded systems and “bare metal” coding
- Experience with Lua, Perl, Python, JavaScript, or other interpreted languages
- Medical Device software development experience
- Familiar with Agile practices
- Familiar with Linux development and target environments
Work Conditions: