Principal Software Engineer
ACIST Medical Systems, Inc.
Eden Prairie, MN
At ACIST, every employee and every product has the power to make a difference!

We develop, manufacture, and market new and existing products that empower our customers to better diagnose and treat their patients. Our diagnostic and interventional products simplify the complexities of the cardiac cath lab in order to improve the quality of life for our patients around the globe.

Engineers are the trailblazers behind our innovative technologies. They collaborate with colleagues and healthcare professionals, sharing ideas as they design, develop, teach, plan, produce, research, sell, service, and test new life-changing therapies. We are actively involved in shaping the industry and transforming technologies, so physicians have what they need to help their patients move forward with life. We are looking for a Principal firmware engineer who is interested in a challenging, energizing, and rewarding career to push the boundaries of medical technology in Angiography, Physiology and Imaging.

Position Summary:
Design, develop, and document software applications embedded in diagnostic and interventional cardiology devices. Participate in all phases of the software lifecycle, including concept development, requirements, design, implementation, and testing.

Primary Duties and Responsibilities:
Apply solid software design skills to develop medical devices to meet specific performance requirements and deliver on goals according to product development quality system. These activities include developing requirements specifications, design, implementation and testing of software and embedded software algorithms or/and general Windows applications and GUIs.
As a team member, contribute significantly to completion of various project activities, from definition, identifying software functional requirements, implementation, code reviews, and final release according to medical device development processes.
Create and implement software/test plans/protocols and generate test reports to ensure software/firmware design meets the specifications and quality system requirements.
Work closely with cross-function team, including design reviews with QA, RA, test engineers, hardware engineers to ensure the firmware design meets the product requirements, including safety, reliability and serviceability. Be creative and innovative in the product development process.
Make, recommend or justify critical technical decisions in product design. The decision should be based on broad investigation and testing.
Document and transfer developed solutions to manufacturing team for mass production and provide technical support and sustaining development in launch phase.

Required Skills

Minimum:
B.S. or M.S (Preferred) in discipline such as Computer Engineering, Computer Science, Electrical Engineering, Computer Systems Engineering, Software Engineering.
10+ years of software engineering design
5+ years of new product development
Solid history and reputation as an influencer and problem solver
2-3 years providing technical leadership and mentorship
Experience with creating and managing requirements and translating them into effective architectures and software design
An understanding of requirements for, and experience in medical device development
Excellent documentation skills (highly regulated development environment)
Excellent C++/C# knowledge
Medical device development experience and IEC60601-1, IEC62304 and related IEC standard familiarity preferred.
Development/Process Tools: MS Visual Studio, Jira, Git, Jama
Operating Systems: Windows 10/IoT, Linux, Embedded RTOS (e.g. Nucleus)
GUI development experience: Qt/QML, WPF, UWP
Experience developing robust software applications that address Cyber Security concerns
Software development through full product life-cycle

Preferred:
Experience with distributed embedded systems
Other programming languages such as .NET, XML, XSL, HTML and communication protocols (TCP/IP, UPnP, Web Services, SOAP, CAN)
Direct supervisory experience

Required Experience