Embedded Software Specialist/Engineer
About the role
The embedded software team creates and produces software operating on embedded hardware within the vehicle envelope. They design, develop, and maintain software for real-time embedded vehicle applications such as power distribution, sensor subsystems, and automotive software control systems.
Working conditions: Physical Environment: Office. Hazards: N/A. Physical Demands: usual mobility demands required are standing, walking, sitting, and stair climbing to access upper offices. Equipment Utilized: Computer, Phone, Mobile device. Medical Surveillance: May include Anthropometrical Size Restrictions depending on task. Personal Protective Equipment: Applicable when interacting with shop floor (safety shoes, safety glasses, hearing protection, extraction coveralls).
Responsibilities
- Develop embedded software for use on Light Armoured Vehicle (LAV) products using C and C++.
- Follow established organization software processes and plans for developing software e.g. peer reviews, software requirements specification, test procedures/results, software configuration management, etc.
- Work within both Agile and Waterfall software development frameworks.
- Work with design engineers and system engineers as needed to develop software.
- Evaluate impact of hardware on software performance, and recommend changes to hardware designers, if required.
- Write, test, and maintain code for automotive software applications.
- Create and maintain technical documentation, including design specifications, user manuals, and release notes.
- Document code and development processes for future reference and compliance.
- Participate in code reviews, peer reviews, and process improvements, offering suggestions and constructive feedback to others.
- Provide troubleshooting support and technical assistance for software related issues, analyzing and resolving customer reported problems.
- Support software activities in a variety of environments (e.g. Office, System Integration Lab (SIL), on-vehicle, and external test sites).
- Share new IRAD ideas with the Advanced Products & Technology team, and support project execution as requested.
Requirements
- University Degree or College Diploma in Computer Science, Computer or Electrical Engineering or in a related field
- Minimum 3 years relevant experience
- Demonstrated expertise in C/C++
- Experience with Unified Modeling Language (UML) design and/or model driven development
- Experience with serial protocols for communication and logging
- Testing and debugging skills
- Knowledge of vehicle communication network protocols (SAE J1939, TCP/IP, UDP)
- Ability to participate in concept, UI, and feature development
- Aptitude in hardware selection
- Matlab / Simulink experience
- Architecture, design, implementation, and deployment
- Full SDLC experience
- Two or more of Microsoft Visual Studio, Code Warrior, Eclipse, etc
- Build Automation
- Git and Bitbucket
- Intermediate computer skills in MS Office, including Word, Excel and PowerPoint
- Ability to travel (5% Cdn) and (5% US & International) and possess/be able to acquire and maintain a valid passport
Skills
- P. Eng or the ability to obtain a P. Eng
- Control theory / Mechatronics
- Good experience in Linux
- Real-time systems
- Vehicle systems