Junior Control Systems Software Developer MBD (Model-Based Development)

Ballard Power Systems

  • Vancouver, BC
  • Permanent
  • Full-time
  • 1 month ago
Product Engineering has an immediate opening for a Junior Control Systems Software Developer MBD to join the Controls Engineering team. Successful candidates will demonstrate knowledge and capabilities in the following areas:- Advanced controls system development- Embedded software development- Controls software design and implementation- Setting/maintaining the SW implementation and testing tool chains- Documenting detailed requirements, design specifications, and test reportsA successful candidate will work both independently and with the existing engineering team while striving for continuous improvements at both personal and technical levels.Responsibilities Include:
  • Directly involved in the controls system and software development life cycle, including design, implementation, and verification/validation
  • Developing controls and software requirements for fuel cell systems, designing AUTOSAR or equivalent software architecture, implementing and testing Application software in MBD (Matlab/Simulink) environment
  • Design and implement algorithms for signal processing, control strategies, communication protocols and fault diagnostics/reporting
  • Verify and validate Application software through the use of unit test simulations, integration-level Model-in-the-Loop (MiL), Hardware-in-the-Loop (HiL), and lab/field testing
  • Manage software version control and implement CI/CD testing/releasing methodology
  • Establish and continuously improve embedded software development process by following standardized methods
  • Troubleshoot complex systems from a hardware and software perspective. Analyze data logs from test stations and customer properties.
  • Prepare technical documents, including component/system requirement and design documents, test plans and test reports, and engage in the formal change management process
  • Participate in technology innovation and continuous improvement in system controls engineering
  • Under the direction of management, 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 degree in Mechatronics, EE, computer engineering, or related field
  • A minimum of 16 months of experience (co-op experience is acceptable) in industrial-level embedded software development
  • Programming skills: Matlab/Simulink, C/C++, scripting languages
  • Experience with formal software version control (Git/SVN) and release/configuration management
  • In-depth theoretical understanding and practical 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 systems
  • Practical knowledge of uC, RTOS, 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, easy to work with, passionate about engineering, has a habit of documenting their work and enjoys working in a systematic way. A strong communicator who is eager to learn from others and be a key contributor to the team.
Desired Traits:
  • Experience working within an Agile development process
  • 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 a strong asset
  • Solid experience with CAN and communication protocols such as J1939, CANopen is a strong asset
The typical hiring range for this position is CAD$75,000 - CAD$93,000 per annum. In determining total compensation, Ballard considers many factors, including the successful Candidate's job-related knowledge, skills, experience, position location, and internal equity. As part of our total rewards offering, permanent employees in this position may be eligible for our competitive annual short-term and long-term bonus program, subject to program eligibility requirements.As a Ballard employee, we want you to feel valued and appreciated for your efforts. That's why we offer a competitive benefits package in addition to a performance-driven compensation philosophy. From bonuses to benefits, our people work hard and we believe they should be rewarded for it.
  • Extended health and dental benefits, and employee assistance program
  • Paid time off
  • Retirement plan matching
  • Onsite fitness facility & yoga classes
  • Extensive learning opportunities, catalog of development course offerings
  • People networks and mentorship programs (to name a few)
Note: The incentive programs, benefits, and perks have certain eligibility requirements. The Company reserves the right to alter these incentive programs, benefits, and perks in whole or in part at any time without advance notice.Our ValuesListen & Deliver | Quality. Always. | Inspire Excellence | Row Together | Own ItBallard values diversity in the workplace and is committed to Employment Equity. We encourage applications from all qualified candidates.

Ballard Power Systems