The Opportunity
This position works out of our Lake Bluff, IL or Irving, TX location in the Transfusion Medicine Division. Our diagnostic solutions are used in hospitals, laboratories, and clinics around the globe.
The crucial information derived from our tests, instruments and informatics systems are often the first step in patient care decision making for hundreds of health conditions from heart attacks to blood disorders to infectious diseases and cancers.
As the Staff Software Engineer , you’ll have the chance to help develop robotics control and scheduling applications used in a laboratory environment, automating the testing of donor blood and plasma.
The ideal candidate will have experience in motion control and fluidics, utilizing servos and stepper motors to physically move mechanisms into position and valves and pumps to process fluids.
What You’ll Work On
Will contribute to the design and development of embedded robotic control software under a disciplined product development process that meets FDA and other regulatory requirements.
Will work on software design, coding, and validation. Will support formal verification and validation testing and ensure that development conforms to design specifications and coding standards.
Work as part of a cross functional team to realize subsystem designs, assisting in the preparation of software design requirements and documenting work products via software design descriptions, design reviews, code reviews, unit testing, and formal verification.
Design and implement low-level device control layer (driver level) software in current programming languages (e.g., C, C++).
Design and implement application layer device control software utilizing state charts to automate mechanical engineering designs.
Assist in the evaluation of selected designs through testing and full documentation of the results.
Investigate on-market issues, determine appropriate corrections, and implement those corrections underneath our software engineering process.
Demonstrates expert knowledge and proficiency of the complete software development process; leads and is accountable for the engineering design and implementation for all features and capabilities in one or more subsystems in the System.
Oversees the end-to-end implementation of all internal and external interfaces, implementation patterns and unit, integration, and performance testing strategy for all features in one or more subsystems.
Defines strategies to meet functional and non-function requirements.
Continuously monitors and reviews all code committed to one or more subsystems for quality, compliance, and design adherence.
Leads implementation for high-complexity, mission-critical features, and capabilities.
Oversees continuous integration and continuous delivery (CI / CD) design of one or more subsystems.
Ensures test coverage of all features and capabilities in one or more subsystems.
Develops software system test strategies and test plans including regression analysis for complex features.
Provides technical feasibility assessment to System Engineer on emerging user needs and product requirements.
Reviews software requirements as a technical subject matter expert.
Evaluates multiple design options, leads proof-of-concepts, and proposes optimal design solutions compatible with the software system architecture.
Leads root cause investigations on high-complexity or high-severity issues.
Participates in corrective and preventative action assessments as participant of CAPA activities.
Required Qualifications
Bachelors Degree and 8-10 years of related experience, or an equivalent combination of education and work experience.
Masters Degree and 6+ years of related experience, or an equivalent combination of education and work experience.
Preferred Qualifications
Expert experience in designing and developing complex software systems.
Demonstrated ability in providing guidance to junior team members.
Expert knowledge in modern programming languages such as C / C++ & agile methodologies.
Experience with RTOS, preferably QNX.
Expert level of understanding of test-driven methodologies
Expert level of knowledge with continuous integration & continuous development (CI / CD).
Demonstrated success in technical proficiency, creativity, and independent thought.
Ability to develop & design at the feature-level.
Expert level understanding of design patterns.
Strong analytical & problem-solving skills.
Evolves the architecture to support future requirements and defines its service level agreements (SLAs).
Leads the technical excellence of the system and creates plans to mitigate outages.