Principal Software Engineer

Salary: Very Attractive Rate
Location: N/A
Contract
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
 
  • 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.
  • Generates software architecture documentation and reviews/approves detailed design produced by junior members of the team.
  • Works with the various engineering disciplines to translate design requirements into well-formed software requirements using software tools for requirements management.
  • 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.
  • 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.
  • Interacts closely with the software development team either on-site or remote and maximizes resource use in conjunction with SCRUM master.
  • 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.
  • 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:
  • 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.
  • Detailed understanding of multiple programming languages (assembler/C/C++11/Java/.NET) to develop and evolve software systems optimally.
  • Wide breadth and deep understanding of development of medical device software.
  • Detailed understanding of medical software development standard (IEC 62304).
  • Team leading software development using ALM tools (SysML, UML, JIRA, SCRUM, JAMA, STASH, Enterprise Architect, SciTools Understand).
  • Detailed understanding of coding standards (MISRA-C, MISRA-C++, JSF C++).
  • FDA 510K Submission preparation and experience.
  • Ability to translate requirements into optimal designs.
  • 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).
  • Safety critical algorithms and programming (watchdog, voting pattern, dual redundancy)
  • Advanced understanding of data structures
  • Advanced understanding of agile software development techniques such as Extreme Programming, SCRUM, and Test Driven Development.
  • Microcontroller knowledge iMX6, iMX8, PIC Controllers, NXP LPC54102, NXP LPC54618.
  • Real-time operating system experience such as QNX, SafeRTOS, Linux.
  • Wifi/BLE/Cellular 5G knowledge
  • QT/ Safe Renderer development experience
  • VectorCast ATG/Unit testing

Skills

  • C
  • C++
  • Java
  • .NET
  • MISRA C
  • MISRA C++
  • FDA 510K
  • QNX
  • Linux
  • WiFi
  • 5G
  • Qt
  • IEC 62304