You're using an older version of Internet Explorer that is no longer supported. Please update your browser.
Ballard Power Systems Inc.

Principal Controls/SW Engineer

Vancouver, BC
Full Time
20 hours ago
Product Engineering has an immediate opening for a Principal Controls/SW Engineer to join the Systems Engineering team. Successful candidates will have the capability and proved experience on developing embedded control system, including requirement derivation, E/E and software architecture design, "state of art" implementation approach, development infrastructure/process establishment following ISO or equivalent industry standards.

A successful candidate will work well independently and with the existing engineering team members as a technical leader, and always have a desire to learn and continuously develop.

Responsibilities Include:
  • Heavily involved in the control system design and software development life cycle management/ALM
  • Derive controls/software requirements from product/system-level requirements and manage the traceability into implementation and verification/validation
  • Develop E/E and software architecture to facilitate the development of Software Defined System
  • Lead on designing algorithm for signal processing, effective and timely control strategy, communication protocols and fault diagnostics/reporting
  • Lead on developing embedded electronic control unit in Model-Based development (Matlab/Simulink) environment and optimizing the existing approach with text-based coding environment
  • Establish and continuously improve embedded software development process by following standardized methods, such as SPICE, CMMI
  • Develop control function modules, testing scripts and tools by using Matlab/Simulink, embedded C/C++, Structured Text, python, etc
  • Implement and test software for communication to CAN devices as well as handling of signals from digital and analog devices
  • Perform complete functional safety activities (such as HARA, FMEA-MSR) by complying to functional safety standards and implement safety mitigations in control systems
  • Verify and validate software through the use of simulations, hardware-in-loop (HIL), software-in-loop (SIL) and lab/field testing
  • Manage software version control and implement CI/CD testing/releasing methodology
  • Trouble-shoot complex systems from a hardware and software perspective
  • Prepare technical documents, including component/software requirement and design specification documents, test plan/matrix and test report, and engage in the formal change management process
  • Champion on technology innovation and lead continuous improvement in system controls engineering
  • Under the direction of the Controls Engineering Manager, work within cross-functional teams with the implementation of systems engineering processes, which may include cross-functional reviews of requirements and documenting specifications
  • Other duties as occasionally required by management

Minimum Requirements:
  • Bachelor's and Master's degree (preferred) in Mechatronics, EE, computer engineering, or related field
  • A minimum of 12 years of experience in industrial-level embedded software development
  • Programming skills: C/C++/Matlab/Simulink, scripting languages
  • Experience with formal software version control (Git/SVN) and release/configuration management
  • In-depth understanding and work experience in signal processing/filtering/FFT/Sampling, logic state machine and advanced control algorithms for complex dynamic systems
  • Work experience with software architecture, HW driver/stack function development and application algorithm design for embedded system
  • Intensive knowledge of uC, RTO, operating system, task management, memory management
  • Experience commissioning, tuning, and troubleshooting control systems
  • Commitment to delivering high quality software following established processes, procedures and coding styles
  • Team player, self-motivated, have habit to document and communicate promptly on what is done. Have passion in engineering and doing things in a systematic way

Desired Traits:
  • An engineering degree from an accredited Electrical, Electronics or Computer Engineering university/college/institutional program
  • Work experience with Agile development process
  • Leadership experience for a small team or on project execution
  • Experience with pneumatic and hydraulic instrumentation including pressure, temperature and flow measurement devices
  • Experience with power device interfaces (LV/HV batteries, motor drives, inverters, contactors, DC/DC convertors etc.)
  • Experience on building up software release and configuration management process with CI/CD tools like Jenkins.
  • Experience with full software lifecycle and safety-critical software development, including requirements, design, integration, validation, and verification is strong asset
  • Extensive experience with CAN and communication protocols such as J1939, CANopen is a strong asset

Our Values

Listen & Deliver | Quality. Always. | Inspire Excellent | Row Together | Own It

Ballard values diversity in the workplace and is committed to Employment Equity. We encourage applications from all qualified candidates.