Product Engineering has an immediate opening for a Lead Controls Developer to join the Systems Engineering team. Successful candidates will have the capability and proved experience in advanced controls system development; embedded software architecture development; controls software design and implementation in a reliable, sustainable and expandable manner; setting and maintaining the SW implementation and testing toolchains; documenting detailed requirements, design specifications and test reports.
A successful candidate will work well independently and with the existing engineering team members as technical and team leaders, and always have the desire to learn and continuously develop.
Responsibilities Include: - Get heavily involved in the controls system and software development life cycle, including design, implementation, and verification/validation
- Focus on developing controls and software requirements for FC systems using advanced approaches like MBSE, designing AUTOSAR or equivalent software architecture, implementing and testing software in MBD (Matlab/Simulink) environment
- Work with the product safety team and compliance team to derive functional safety and cybersecurity requirements and create technical hardware/software solutions along the development life cycle
- Lead on designing algorithm for signal processing, effective and timely control strategy, communication protocols and fault diagnostics/reporting
- 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
- Establish and continuously improve embedded software development process by following standardized methods, such as SPICE, CMMI
- Trouble-shoot complex systems from a hardware and software perspective
- Prepare technical documents, including component/system requirement and design documents, test plan/matrix and test report, and engage in the formal change management process
- Lead on technology innovation and continuous improvement in system controls engineering
- Under the direction of the Controls Engineering Manager, work within crossfunctional 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 8 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 the habit of documenting and communicating promptly on what is done. Have a passion for 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 converters 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
|