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 Embedded Software Engineer you will play a lead role in the full software development life cycle including establishing requirements, architectures, and software implementation for our autonomous pharmaceutical robotic system.
The candidate will work closely with other design disciplines to provide fault tolerant software solutions which create and enhance new features and improve overall functionality as well as reliability of the system.
The ideal candidate should possess a strong background in embedded software system design, C++ expertise, Software unit and automated testing methodologies, general robotics, and possess the ability to thoroughly analyze existing systems, and adapt existing architectures to ensure the achievement of customer objectives.
The Staff Embedded Software Engineer, is responsible for the development, maintenance, and support of our device software development and product environment on both Linux and Windows environment.
This position works within and across multiple multi-disciplinary teams to create and advance Omnicell’s line of robotics and automation devices.
Responsibilities
- Design and develop 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 and firmware for hardware devices.
- 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 software issues by analyzing critical factors and recommending corrective or alternative actions or 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.
- Ability to work independently to understand system interactions, and perform advanced risk analysis using FMEAs, fault trees, and other root cause analysis methodologies to drive resolution of open issues.
- 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 using C++ in a Linux environment
- Strong analytical and problem-solving skills
- Drives design of complex features and new products. Contributes to 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. Grows and mentors staff.
- Good interpersonal communication skills, working within an Agile Development framework.
- Ability to work independently with high competency and little guidance.
Basic Qualifications
- BS degree or higher in Computer Science, Software Engineering, Computer Engineering or related field.
- 15+ years of experience as software developer and integration experience with Hardware and Software.
- Experience with embedded software design and programming in C / C++ for development, debugging, testing and performance analysis
- Knowledge of Linux system to develop hardware control drivers for device development
- Experience leading complex features or projects across multiple teams
Preferred Qualifications
- Knowledge and / or experience with state machine and stateless system would be a plus
- Master degree or PhD in in Computer Science, Software Engineering, Computer Engineering, Robotics or related field
- 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 in Embedded Linux software development including BSP and drivers
- Experience with NVIDIA Jetson platform
Work Conditions
- Hybrid environment
- Ability to travel 10-15% of the time.
Location :
- Western Pennsylvania, Pittsburgh Area.