Design and develop software in Simulink that enables surgeons and operating-room staff to control “Hugo”; a Robotic Assisted Surgery System.
Integrate and test new controller software on hardware and with the rest of the robotic platform.
Contribute to the development of model based control system for Hugo.
Partner with the greater software organization, systems engineering, and validation groups.
Define and review software requirements.
Conduct hardware-in-loop testing of prototype as well as product software.
Act as an independent reviewer of Simulink models to ensure that all software meets quality standards.
Prepare and participate in design reviews.
Document or participate in the documentation of the software including architecture and design detail, unit testing, anomaly tracking and reports.
Requirements
Bachelor’s Degree with 8 to 11 years of relevant experience, or advanced degree with 6+ years of relevant experience.
Experience developing software to control complex dynamical systems , preferably in regulated industries.
Experience in analysis of complex dynamical systems (mechatronics preferred).
Proficient use of Matlab - Simulink and Stateflow to design and develop complex software products.
Experience in Embedded C/C++ software development .
Experience with real-time operating systems (QNX/VxWorks or equivalent).
Design and implementation of safety critical software – this includes aspects of risk analyses, Failure Modes and Effects Analysis, Redundancy , Coding Standards and Verification of software implementations.
Strong understanding of the fundamentals in signal processing, especially in the context of discrete systems.
Knowledge of software development processes such as the V-model , requirement engineering, impact analysis.
Good communication and stakeholder management skills.
Nice to Have: Experience developing software in a Linux environment . Familiarity with virtual machines, networking concepts.
Nice to Have: Experience with common software development tools, including build automation, code coverage, unit testing, static analysis, debugging, and source control (git preferred).
Nice to Have: Familiarity with Simulink Coder and an in-depth understanding of code generation.
Nice to Have: Knowledge of mathematics for controlling robotic systems, including multi-body kinematics, feedback controllers, and signal processing.
Nice to Have: Experience with medical product development is highly desired, including regulatory processes, safety considerations, and hands-on experience with medical devices and surgical instruments.
Nice to Have: Strong interpersonal skills and attention to detail, with ability to work collaboratively with cross-functional teams to build consensus and establish common goals.
Nice to Have: Experience with diverse, cross functional teams; Geodiversity spanning an international environment is a bonus.
Nice to Have: Experience in model-based product software development for real-time applications.
Nice to Have: Unit and integration testing of software.
Nice to Have: Software testing with plant models.
Nice to Have: Software architecture design and documentation.