Exciting opportunity to join a global medical device company. Lot's of room for growth!
In this exciting role as a Principal Software Engineer you will work within the R&D engineering team to develop and support the company's next-generation minimally invasive platform. This Principal Software Engineer will develop embedded software for the MIS platform as well as provide technical guidance and ensure process compliance. This software will perform supporting functions, control and/or communicate with embedded computing hardware and other networked devices, and monitor/ respond to diverse conditions. In addition, s/he will work with cross-functional engineering teams to assist with the evaluation and integration of other technologies into the MIS platform.
The Minimally Invasive Therapies Group strives to enable earlier diagnosis, better treatment, faster complication-free recovery, and enhanced patient outcomes through less invasive surgical solutions.
SURGICAL INNOVATIONS set the standard for Minimally Invasive Surgery (MIS) by creating innovative surgical products and services that focus on obesity and diseases and conditions of the gastrointestinal tract, lung, abdominal wall, pelvic region, and the head and neck.
A Day in the Life
Designs and develops innovative medical device software for these cutting-edge platforms. Works with other software engineers and cross-functional personnel to design novel and creative software frameworks, algorithms, etc. Designs and implements software of embedded devices and systems from requirements to production and commercial deployment. Responsible for design, debug, and integration of embedded C applications running in a real-time OS environment. Develops low-level software for communicating with electronic hardware, particularly sensors and motors. Develops software to communicate with devices via network and/or embedded APIs. Integrate third-party software where appropriate. Provides input to other platform teams. Works with customers, vendors, or other technical or non-technical stakeholders to assess software needs and performance. Reviews code and interfaces with software quality assurance to ensure that all software meets medical device quality standards. Tests software and fix bugs.
Responsibilities may include the following and additional duties may be assigned:
Designs, develops, tests, debugs and implements operating systems components, software tools and utilities.
Determines systems software design requirements.
Ensures that system improvements are successfully implemented and monitored to increase efficiency.
Assists with software engineering policies, standards and operating procedures.
Provides technical guidance and ensures process compliance.
Capable of developing high quality, structured, modular code.
Can effectively use design descriptions, flowcharts, layouts, diagrams, graphs, etc. to demonstrate concepts or solutions.
Strong knowledge of microprocessor based embedded systems. (knowledge of one or more microprocessors is desirable).
Capable of developing software interfaces for communicating with physical devices via SPI, I2C, serial/UART, PWM generators, Ethernet etc.
Capable of reading and comprehending schematics and electronic component data sheets.
Knowledge of basic electronics required; must be comfortable using oscilloscopes, logic analyzers, multimeters, etc. to debug the hardware/software interface.
Proficient with standard OS features (e.g. threading and concurrency, memory management, device drivers, I/O, etc.).
Proficient at using common development tools: environments, compilers, build management software, debugging and source control tools, etc.
Exposure to FDA or regulatory body submittals for devices with software.
· 8+ years of embedded software development experience in a process-oriented environment. Experience with IEC 62304 standard highly desirable.
· Must have practical programming experience delivering real products.
· Must demonstrate significant proficiency in C.
· Solid programming experience in C/C++, including C#
· Experience with real-time software on microprocessor-based systems. (knowledge of one or more real-time OS is desirable).
· Experience in hands-on development and troubleshooting on embedded targets.
· Experience with test-driven development and unit testing strongly preferred.
· Proficiency with software configuration management tools, defect tracking tools, and peer review.
Requires a Baccalaureate degree in Electrical, or Computer Science, Advanced degree strongly preferred.
Minimum of 8-10 years of relevant experience
Advanced degree with a minimum of 6 years relevant experience
Nice to Have
Experience developing software for medical products.
Knowledge of communication data protocols (such as TCP/UDP/IP, etc.).
Working knowledge of Micrium OS.
Familiarity with digital signal processing and digital filtering.
Preference given to candidates with proficiency in brushless DC motor control software.
Hands-on experience with electronics.
Experience in sensors, signal processing, controls, power electronics, motor drives or robotics.
Experience reviewing, porting, and integrating third-party code, and/or using application frameworks.
Experience with VHDL/FPGA development.
Experience with embedded GUI.
Experience with developing and executing Unit tests and System Integration tests.
Fluency in English required.
Knowledge of anatomy and/or medical and surgical procedures is a plus.