Significant contributor in development of control algorithms supporting legacy, current and future generations of robotic surgical instruments
Create software solutions that run on a sophisticated real-time embedded platform using embedded sensor and actuator hardware to deliver high-bandwidth, precise and robust instrument response
Engage with electromechanical design of surgical instruments at all stages with a focus on control software requirements development compatible with test, verification, and validation of a safety-critical system
Design and develop software in Matlab - Simulink and Stateflow 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 4 to 8 years of relevant experience, or advanced degree with 4+ 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 – includes 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
Experience developing software in a Linux environment (nice to have)
Familiarity with virtual machines, networking concepts (nice to have)
Experience with 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, regulatory processes, safety considerations, and hands-on experience with medical devices and surgical instruments (nice to have)
Strong interpersonal skills and attention to detail, ability to work collaboratively with cross-functional teams
Experience in model-based product software development for real-time applications