Hybrid: This role is categorized as hybrid. This means the successful candidate is expected to report to Mountain View, CA three times per week, at minimum.
The Role
The Vehicle Experiences Engine software organization is a dynamic and fast-paced team responsible for designing and developing embedded software platforms for Infotainment and Software Defined Vehicle solutions. The scope of this work includes operating systems, their BSP layers, core system services, and device drivers. We are developing a world-class GM experience for our customers and driving real changes for the most iconic automaker on the planet. Our team delivers platform solutions for SoCs that enable secure and reliable execution of Infotainment, Autonomous Driving and other high-compute applications. We are offering this challenging position to passionate professionals to lead engineering effort in some critical domains within the Vehicle Experience Engines organization, ideal for those looking to advance their careers and be a part of an organization focused on innovation, speed, and business value.
JOB DUTIES:
- Design, develop and integrate Android/Linux and QNX components for infotainment solutions in GM vehicles.
- Responsible for the entire life cycle of the Android/QNX domain, including requirements analysis, creating design documents, code development and review, integration, and maintenance of infotainment software.
- Work side-by-side with DevQA engineers on test plan development and review.
- Follow agile software development process where quality comes first and ensure that the designed solutions conform to architectural requirements such as scalability, maintainability, reliability, extensibility, testability, usability and security.
- Collaborate with cross-functional teams and external suppliers on design and integration activities.
- Provide, communicate, and support common best practices among software community
Qualifications:
10+ years in Software Development on Linux and/or Android.
- Advanced programming and debugging skills with C, C++/11/14, Java, and unit test framework
- Development tools and IDE such as VS Code, Android Studio, Momentics, git, JIRA, CMake, gradle, gcov, SonarQube, etc.
- Solid understanding in Android and QNX system architecture, frameworks, build system and key components, and comfortable with making system extensions and modifications.
- Understanding of Linux OS Concepts
- Solid understanding of software versioning and release management principles, with a focus on codebase organization, branching strategies, and integration processes
- Strong analytical skill, debugging capability and problem-solving skills to tackle complex integration challenges through existing code base in C, C++ and Java. Familiar with different debugging methodologies
- Ability to create, modify and maintain makefiles and build scripts in complex build system
- Strong verbal and written communication skills.
- Ability to create clear technical documentation for software development guidelines and integration process
- Must be a goal driven self-starter, able to work independently under release pressure
- Bachelor's degree in computer science, software engineering, or related degree.
Nice to have:
- Experience with various CI/CD tools and processes
- Experience with Yocto Linux
- Experience with virtual machine and container technologies
- Experience in automotive industry
Compensation : The compensation information is a good faith estimate only. It is based on what a successful applicant might be paid in accordance with applicable state laws. The compensation may not be representative for positions located outside of New York, Colorado, California, or Washington.
-
Benefits: GM offers a variety of health and wellbeing benefit programs. Benefit options include medical, dental, vision, Health Savings Account, Flexible Spending Accounts, retirement savings plan, sickness and accident benefits, life insurance, paid vacation & holidays, tuition assistance programs, employee assistance program, GM vehicle discounts and more.
This job is not eligible for relocation benefits. Any relocation costs would be the responsibility of the selected candidate.