The Software Defined Vehicle will increase the vehicle’s compute capability, be connected, and allow for faster software development cycles. As a Software Simulation Developer, you will be on the forefront of realistic automotive software-in-the-loop simulation environments creating highly optimized, largely automated, high-fidelity vehicles on demand which are capable of running thousands of simultaneous scenarios on cloud compute.
The simulations support algorithm development and validation of the Software Defined Vehicle architecture and protocols as well as algorithm development of hands-free driving in all situations, active safety features, in-vehicle Infotainment, and embedded control among others. The main areas of focus are controller virtualization, bus communication, optimization, HMI, and sensor modelling. You will be working cross-collaboratively with many teams to integrate these systems into a wider CI/CD toolchain and data analytics pipeline.
Hybrid: This role is categorized as hybrid. This means the successful candidate is expected to report onsite at the GM Global Technical Center - Sloan Engineering Center at least three times per week minimum or other frequency dictated by the business. This job may be eligible for relocation benefits.
Key Responsibilities
- Work within an Agile environment to define, plan, and analyze user-stories to meet the team’s strategic objectives
- Combine engineering analysis with strong computer science fundamentals to create accurate high fidelity simulation platforms to allow developers to test development controller code
- Work collaboratively with multiple teams to deliver end-to-end products and features, seeing them through from conception to delivery with a focus on (internal) customer ease-of-use
- Design and implement a virtual controller environment for Android developers, QNX developers, and HMI developers within a larger vehicle simulation environment
- Ensure deliverables are complete as per milestones with excellence
- Identify and implement areas of efficiency to the process and the product when scaling up
- Investigate simulation integration problems and provides technical input in problem resolution
- Maintain technical documentation to reflect accurate and current production installations
- Learn new technical concepts and practices quickly and apply them across multiple types of applications and software
Qualifications
- Bachelor Degree in Software, Computer Engineering or Computer Science
- 5+ years of working experience with C++
- 3+ years of working experience with Android development
- Knowledge of containerization, virtual machines, orchestration, and integration to a CI/CD pipeline
- Experience with object-oriented programming, modern design patterns and writing scalable reusable code
- Extensive experience with the full software development lifecycle (software requirements, design, coding, verification, support)
- Knowledge of performance optimization techniques and memory management for Android applications
- Knowledge of Python or other scripting languages
- Experience working on large volumes of data in a real-time, or faster than real-time, discrete environment
- Knowledge of digital signal processing, timing, scheduling, and multi-threaded programming
- Experience working with Scrum/Agile software development process and tools
- Familiar with High Performance Computers, Cloud Compute and/or GPU Programming an asset
- Familiarity with Camera, LiDAR, and Radar automotive sensors an asset
- Able to work in a team as well as independently
- Must possess excellent communication skills