Principal Software Engineer, Robotics at Stryker Corporation (Portage, MI)
Location: Portage, MI
Type: Full Time
Created: 2021-05-05 05:01:10
Stryker is one of the world’s leading medical technology companies and, together with our customers, is driven to make healthcare better. We offer innovative products and services in Orthopaedics, Medical and Surgical, and Neurotechnology and Spine that help improve patient and hospital outcomes. We are proud to be named one of the World’s Best Workplaces and a Best Workplace for Diversity by Fortune Magazine. Learn more about our award-winning organization by visiting stryker.com
Who We Want:
Software Enthusiast. People who can come up creative design for complex software program and seek out the tough bugs to fix.
Curious learners. Engineers who seek out cutting-edge research and information to expand and enhance their ability to develop software.
Collaborative partners. People who build and leverage cross-functional relationships to bring together ideas, information, use cases, and industry analyses to develop best practices.
What You Will Do:As a Principal Software Engineer, Robotics Software at Stryker, you will participate in the development of cutting-edge platform software for robotic-assisted surgery products.
- You will be planning and conducting software requirements analysis and design and implementing complex systems including platform components, arm control systems, software architecture and design documentation.
- You will write software and software scripts that will interact with and control complex electro-mechanical systems.
- You will participate in validating the functionality of your programs with surgeons, nurses, and other stakeholders.
- You will apply the defined design practices including Agile methodology and use sound software engineering principles to ensure that the application software products are safe, robust and user friendly.
- You will ensure the established engineering practices be effective and efficient by monitoring the best industry practices and integrating them into the organization.
- You should be highly organized and detail oriented, with the ability to convey highly technical information to internal staff as well as external clients. It is also important that you combine excellent verbal and written communication, interpersonal and presentation skills, and the ability to work well both independently and as part of a team.
- Conduct advanced problem solving, identify potential solutions, and evaluate them against component and sub-system requirements.
- Conduct and design research and studies to support advanced product design.
- Translate user needs to design inputs/specifications and produce advanced component and sub-system level designs.
- Design and implement high performance distributed embedded applications in C/C++ for Linux/VxWorks related to robotics arm control
- Own the design, implementation, and testing of software modules, and perform associated software development tasks (configuration management, issue/bug tracking, and risk management)
- Lead code reviews for systems applying design principals, coding standards and best practices
- ·Generate and review the necessary documents to support the project.
- Work directly with Technical Leadership on breaking down work, scheduling, risks, and project updates
- Work cooperatively with R&D, Quality, Manufacturing, Regulatory, Clinical, Marketing and Project Management to ensure project success as a leader on the team.
- Identify and support the creation of or improvements to procedures, policies, processes, systems, and technology.
- Support and execute segments of complex product development to advance projects through the design /development/launch process.
- Contribute to product development from concept through release.
- Deliver high quality results with passion, energy and drive to meet business priorities.
What You Will Need:
- Bachelor's in Computer Engineering/Computer Science or related discipline
- 8+ years of experience in complex distributed and high-performance C++ software design and development, preferably in a real-time environment
- Strong object-oriented design and development experience
- Detail oriented with strong English written and verbal communication skills
- Knowledgeable of tools for static/dynamic analysis, memory management, code coverage and techniques for analyzing software
- Experience in unit and integration level testing, automated regressing testing
- Experience in Software Development Life Cycle processes
- Knowledge of Application Lifecycle Management /Traceability tools (e.g. JIRA)
- Masters in Computer Engineering/Computer Science or related discipline
- Network communications and protocols experience
- Experience with advanced control systems of robotic or haptic devices
- Experience in robotic modeling including kinematics and dynamics
- RTOS experience
Know someone at Stryker?
Be sure to have them submit you as a referral prior to applying for this position. Learn more about our employee referral program.