Omnicell is the world leader in pharmacy robotics, and our robotic IV automation system empowers pharmacists and technicians with tools to improve dose accuracy and make IV pharmacy compounding safer while reducing costs and enabling compliance.
As an Omnicell Staff Vision Software Engineer you will play a lead role in providing advanced workflow capability with integrated vision recognition, perception and automation which improves speed, feedback, safety, and productivity of our advanced compounding technology. The ideal candidate should possess a strong background in embedded software design, C++ expertise, and a deep understanding and practical knowledge to develop optimized computer vision algorithms for feature recognition and motion feedback using a variety of multi-view, multi-sensor, and machine learning algorithms. The candidate will work closely with other design disciplines and stakeholders to provide fault tolerant software vision implementations which create and enhance new features to improve overall functionality of the system.
The Staff Engineer, Vision Software Expert is responsible for the development, maintenance, and support of our vision technologies as well as requirement definition, architectures, and contributing to new feature roadmaps and planning for this technology. This is a highly visible position that works within a across multiple multi-disciplinary team to create and advance Omnicell’s line of robotics and automation devices.
Responsibilities
- Collaborate with perception and vision experts on algorithm design, prototyping, testing, deployment and productization.
- Develop machine learning models, and state machine methodologies for detection and feature recognition using image processing, multi-sensor feedback, and data analysis.
- Collaborate on writing internal specifications related to vision architecture and providing input and recommendation on hardware sensor technology for optimal implementations.
- Transition vision and machine learning prototypes from lab setting to commercialization.
- Design and develop vision software utilizing C and C++ on embedded Linux environments following company and industry requirements and best practices.
- Responsible for the analysis, design, programming, optimizing, debugging and modification of software programs related to vision algorithms.
- Writes code, completes programming, and performs testing and debugging of applications using current programming language and technologies controlling hardware for hospital automation.
- Perform software verification including code reviews, writing unit test cases, creating, and implementing automated testing, and running static analysis.
- Leads and solves complex vision integration issues by analyzing critical factors and recommending corrective or alternative actions and resolutions.
- Proactively maintain accurate documentation of concepts, designs, and implementations and a means to facilitate design reviews, and knowledge sharing among the team and stakeholders.
- Interfaces with other engineers to define software design and state machine requirements.
- Works on problems of diverse scope where analysis of data requires evaluation of identifiable factors.
- Supports, updates and creates new SW architectures to further feature development and existing system functionality.
Required Knowledge and Skills
- Strong software development knowledge and experience developing software applications for hardware systems such as Wi-Fi, Bluetooth, printers, cameras, and motor controls and general robotic systems.
- Experience and/or knowledge in characterizing and calibrating camera images sensors, optics, and illumination sources.
- Experience using C++ in a Linux environment with embedded systems.
- Strong analytical and problem-solving skills
- Drives design of complex features and new products. Contributes to vision/imaging technology strategy.
- Owns direction, technical vision, and strategy direction across multiple projects.
- Often serves as a consultant to management and external spokesperson for the SW organization related to vision implementations, feasibility, or prototyping efforts.
- Good interpersonal communication skills, working within an Agile Development framework.
- Ability to work independently with high competency and little guidance.
Basic Qualifications
- MS degree or higher in Computer Science or relevant engineering discipline, Computer Engineering or related field.
- 15+ years of experience as software or firmware developer along with integration experience with Hardware and Software.
- Experience developing software for in Visual C++ or C# along with .Net Framework
- Minimum 5 years of imaging experience.
- Experience developing and deployment of computer vision models or image recognition technologies and algorithms.
- Experience with light sources, optics and multi sensor data for optimal image processing.
- Ability to own direction, technical vision and strategy direction across multiple projects.
Preferred Qualifications
- Knowledge and/or experience with state machine and stateless system would be a plus
- Experience in the medical device industry or other industries operating under a quality management system. Knowledge of ISO 13485, ISO 14971, ISO 62304 and CFR 820 a plus.
- Experience in the design of software driven electromechanical Class II medical devices.
- Experience with JIRA
Work Conditions