Senior Controls Software Developer
Ballard Power Systems Senior Controls Software Developer
Responsibilities:
- Engage across the control system and software development lifecycle (SDLC), including design, implementation, and verification/validation.
- Develop controls and software requirements for fuel cell systems using formal requirements management tools (e.g., Jama), contribute to software architecture, and implement/verify software using Structured Text, C/C++, or Model-Based Design (MATLAB/Simulink).
- Contribute as a controls/software subject matter expert in DFMEA, HARA, and TARA activities alongside functional safety and systems teams.
- Support the derivation of functional safety and cybersecurity requirements for fuel cell controls by reviewing high-level safety concepts and participating in analyses such as FMEA, FTA, and FMEDA.
- Contribute to engineering work products aligned with ISO 26262 (functional safety) and ISO/SAE 21434 / ISO 24089 (cybersecurity / software updates).
- Collaborate with system and software architects to develop modular, scalable, and reusable software architectures that fulfill functional safety and cybersecurity goals.
- Support control system and software qualification (DVP&R) by executing test cases and documenting verification evidence.
- Design and implement algorithms for signal processing, closed-loop control strategies, communication protocols, and fault diagnostics management.
- Verify and validate software using simulation models, Hardware-in-the-Loop (HIL) test benches, and lab/field test environments.
- Utilize software version control and participate in automated CI/CD testing and release pipelines.
- Follow and help improve embedded software development processes in alignment with industry standards (e.g., ISO 26262 Part 6).
- Troubleshoot complex integrated systems from both hardware and software perspectives.
- Prepare technical documentation (requirements, design specifications, test plans/matrices, and test reports) and participate in engineering change management.
- Drive technology innovation and continuous improvement across systems control engineering workflows.
- Work under the direction of the Controls Engineering Director within cross-functional teams to implement systems engineering processes, including technical reviews.
- Perform other related duties as assigned.
- Bachelor’s degree in Mechatronics, Electrical Engineering, Computer Engineering, or a related discipline.
- A minimum of 5 years of hands-on experience in production-grade embedded software development.
- Proficiency in Structured Text for embedded microcontroller development, alongside strong experience in embedded C/C++ and/or Model-Based Design (MATLAB/Simulink).
- Working proficiency in Python for scripting, data analysis, or test automation.
- Experience using Git for version control and working within modern CI/CD development pipelines (e.g., GitLab or Azure DevOps).
- Familiarity with Application Lifecycle Management (ALM) platforms (e.g., Jama Connect, Siemens Polarion) for requirements tracking and test coverage.
- In-depth understanding and practical experience in digital signal processing (filtering, sampling), state machines, and dynamic control algorithms.
- Proven experience in embedded software architecture, hardware abstraction layer (HAL)/driver integration, and application-layer control design.
- Solid understanding of microcontroller architectures (MCUs), real-time operating systems (RTOS), task scheduling, and memory management.
- Hands-on experience commissioning, calibrating, and troubleshooting real-time control systems.
- Commitment to high-quality software engineering standards and coding style guidelines (e.g., MISRA).
- Working knowledge of functional safety (ISO 26262) and cybersecurity standards (ISO/SAE 21434), with experience contributing to safety-critical software lifecycles.
- Familiarity with FMEA, HARA, or hazard analysis workflows in product development.
- Strong interpersonal and communication skills with a proactive approach to documentation, technical reporting, and collaborative problem-solving.
Nice to Have:
- Familiarity with secondary scripting and development languages: C#, JavaScript, HTML, and Linux Shell/Bash.
- Extensive experience with CAN bus networks and vehicle communication protocols (J1939, XCP/CCP, UDSonCAN, UDSonIP / DoIP).
- Experience with pneumatic and hydraulic instrumentation (pressure, temperature, flow sensors) or fuel cell systems.
- Familiarity with power electronics interfaces and high/low-voltage components (LV/HV batteries, motor drives, inverters, DC/DC converters).
- Hands-on experience creating or maintaining CI/CD pipelines and automated HIL test frameworks.
- Practical experience applying agentic AI tools to accelerate software design, implementation, and verification.
- Familiarity with SysML modeling tools and Agile/Scrum development methodologies.
The salary range for this position is between $93,840 – $117,300. Candidate's experience, education, and relevant skills will be taken into consideration when placing within the range.
Our Values
Listen & Deliver | Quality. Always. | Inspire Excellence | Row Together | Own It
Ballard values diversity in the workplace and is committed to Employment Equity. We encourage applications from all qualified candidates.
