Summary
The Engineering software systems team are focused on developing embedded software for ECP and NO delivery medical devices. They are currently searching for a Principal Software Engineer to join their team. The ideal candidate is a senior software engineer or software architect with approximately 8-10 years experience developing safety-critical distributed software for controlling electromechanical devices or similar complex software.
Essential Functions
1. Acts as software architect for one or more projects, working closely with other senior members of the software team translating software requirements into robust, adaptable software designs.
2. Generates software architecture documentation and reviews/approves detailed design produced by junior members of the team.
3. Works with the various engineering disciplines to translate design requirements into well-formed software requirements using software tools for requirements management.
4. Conceptualizes complete solutions. Creates or coordinates the design solutions for novel or complex problems; works with verification and validation to ensure conformance to established design development processes and procedures.
5. Works with programme managers to help create project schedules. Leads and facilitates architectural and design decisions to ensure on-time delivery of projects. Escalates technical issues in a timely fashion to software systems manager.
6. Interacts closely with the software development team either on-site or remote and maximizes resource use in conjunction with SCRUM master.
7. Provides mentoring in software development to other members of team; monitors the improvement of other software engineer(s), e.g. delegates challenging tasks to others to help them develop; provides constructive and timely feedback.
8. Explores multiple alternatives. Structures studies and integrates cross-disciplinary (Software, Electrical, Mechanical) and cross-functional issues to arrive at a solution, e.g., investigates process to meet increasing regulatory requirements while maintaining serviceability & manufacturability.
Minimum Requirements
Education / Experience / Skills:
9. A Bachelor Degree in engineering, science, or closely related discipline is desired, or equivalent technical experience plus demonstrated competence, with a desired 8+ years of significant engineering and/or operational experience. Additional postgraduate education may contribute towards the desired years of experience.
10. Detailed understanding of multiple programming languages (assembler/C/C++11/Java/.NET) to develop and evolve software systems optimally.
11. Wide breadth and deep understanding of development of medical device software.
12. Detailed understanding of medical software development standard (IEC 62304).
13. Team leading software development using ALM tools (SysML, UML, JIRA, SCRUM, JAMA, STASH, Enterprise Architect, SciTools Understand).
14. Detailed understanding of coding standards (MISRA-C, MISRA-C++, JSF C++).
15. FDA 510K Submission preparation and experience.
16. Ability to translate requirements into optimal designs.
17. Detailed knowledge of Static and Dynamic system modelling (use cases, activity diagrams, finite state machines, sequence diagrams, class/object diagrams, component diagrams, timing diagrams, deployment diagrams).
18. Safety critical algorithms and programming (watchdog, voting pattern, dual redundancy)
19. Advanced understanding of data structures
20. Advanced understanding of agile software development techniques such as Extreme Programming, SCRUM, and Test Driven Development.
21. Microcontroller knowledge iMX6, iMX8, PIC Controllers, NXP LPC54102, NXP LPC54618.
22. Real-time operating system experience such as QNX, SafeRTOS, Linux.
23. Wifi/BLE/Cellular 5G knowledge
24. QT/ Safe Renderer development experience
25. VectorCast ATG/Unit testing