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.
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.
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.
Experience with machine automation
Experience with modern C++ development (C++17 standards)
Experience with low-level embedded systems and “bare metal” coding
Medical Device software development experience
Familiar with Agile practices
Familiar with Linux development and target environments
Solving Healthcare Challenges
At Omnicell, we’re inspired to create safer and more efficient ways to manage medications and supplies across all care settings. By automating what are often disconnected, manual, and at times dangerous processes, our comprehensive medication management platform allows caregivers to focus on what’s most important—the patient.
Our innovative solutions leverage the latest technologies—including predictive intelligence, robotics, and cloud applications—to drive medication affordability, safety, and adherence.