Job Description
GM does not provide immigration-related sponsorship for this role. Do not apply for this role if you will need GM immigration sponsorship now or in the future. This includes direct company sponsorship, entry of GM as the immigration employer of record on a government form, and any work authorization requiring a written submission or other immigration support from the company.
Work Arrangement:
Hybrid: This role is categorized as hybrid. This means the successful candidate is expected to report to the office three times per week, at minimum times per week or other frequency dictated by the business.
Locations:
Markham, Ontario, Canada – GM Canadian Technical Centre
The Role:
We are seeking creative, highly motivated engineer with passion and expertise in software engineering for the position of Android Software Developer – Infotainment Ambient Lighting within GM’s Digital Vehicle Experience group.
In this position, you will have the opportunity to work on cutting-edge software solutions including the Software-Defined Vehicle solutions that are revolutionizing the automotive industry. You will design, implement, test and architect GM’s Infotainment software solutions for functionality deployed across our vehicle portfolio and vehicle ecosystem. Your contribution will enable customers to experience best-in-class fully connected in-vehicle applications.
In this role, you will directly impact the GM vehicles that drive down the road and improve our customer experience! Your work will contribute directly to GM's vision of a world with ZERO Crashes, ZERO Emissions, and ZERO Congestion.
What You’ll do:
- Design and develop the world’s best in-vehicle applications for GM Infotainment systems
- Responsible for the entire software development life cycle of Ambient Lighting domain, including requirements, system design, development, deployment, and maintenance of the Infotainment software
- Design, develop and implement Infotainment requirements to continuously improve software functions and user experience using embedded software development frameworks in Android environment
- Participate in architecture, requirements, design, code, and test case reviews
- Provide clear and complete documentation based on the definition of the software development process
- Collaborate with team members in software development activities using Scrum/Agile development process
- Adhere to best software design principles, utilizing design patterns and understanding abstractions for effective software solutions
- Collaborate cross functionally and across domains to define/clarify requirements and lead the change requirement where needed
- Senior members will take ownership of each project, need to make design and implementation decisions autonomously and mentor junior members
Required Qualification
- 8+ years of experience programming in Kotlin, Java, or C++
- 3+ years of experience developing applications or middleware for mobile or automotive platforms (e.g. Android)
- Object-oriented software development experience with a solid grasp of algorithms and data structures
- Experience with large code bases, developing entirely new code and maintaining existing code
- Experience with Android UI development and design tools such as Jetpack Compose, Figma, etc.
- Experience with testable software architecture JUnit, Espresso, TDD, MVVM, Clean Architecture
- Experience with JIRA, GIT, and Agile software development framework
- Ability to perform diagnostic and investigate issues based on limited information and familiar with reviewing Android system logs and vehicle signal logs such as CAN-bus logs
- Excellent verbal and written communication skills
- Creative, disciplined, strong sense of responsibility, delivery and schedule commitment
- Experience providing guidance, leadership, and mentoring to team members
Other Skills Preferred
- Experience with Android Open Source Project development
- Software development experience in Android Studio/Linux platform
- Software development experience in a variety of embedded system
- Software development experience in C/C++ preferred
- Experience with the development of automotive infotainment solutions
- Knowledge and experience with CAN, LIN, ARXML, or Ethernet communications protocol
- Knowledge and/or experience in lighting technologies preferred
- Knowledge in automotive safety and regulations such as ASIL, FMVSS, etc.
Education and Training
- Bachelor's degree in Computer Science, Software/Computer Engineering or equivalent field
- Advanced degrees preferred