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 reports
A 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