Senior Software Engineer

General Motors9 months ago
Mountain View, CA, United States
On-site
Full-time
Junior Level (1-3 years)

Job Description

Position Overview

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 efforts in 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.

Key Responsibilities

  • Design, develop and integrate software update and OTA solutions for GM vehicles.
  • Responsible for the entire life cycle of the Android/QNX/Embedded Linux 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 the software community.

Required Qualifications

  • 10+ years in Software Development on Linux and/or Android. Advanced programming and debugging skills with C, C++, Java, and unit test framework.
  • Proficient with development tools and IDEs such as VS Code, Android Studio, Momentics, git, JIRA, CMake, gradle, gcov, and SonarQube.
  • Solid understanding of Android, Embedded Linux and QNX system architecture, frameworks, build systems and key components, with comfort in making system extensions and modifications.
  • Strong grasp of Linux OS concepts, including file systems, IPC, RPC, networking, and serialization.
  • Excellent analytical skills, debugging capability and problem-solving skills to tackle complex integration challenges using C, C++ and Java, with familiarity in different debugging methodologies.
  • Ability to create, modify, and maintain makefiles and build scripts in complex build systems.
  • Strong verbal and written communication skills.
  • Ability to create clear technical documentation for software development guidelines and integration processes.
  • Must be a goal-driven self-starter, able to work independently under release pressure.
  • Bachelor's degree in computer science, software engineering, or a related field.

Preferred Qualifications

  • Experience with OTA or software update and software delivery mechanisms.
  • Experience with diff algorithms and diff tools.
  • Familiarity with various CI/CD tools and processes.
  • Experience with Yocto Linux.
  • Experience with virtual machine and container technologies.
  • Experience in the automotive industry.

Benefits & Perks

  • 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 and may not be representative for positions located outside of New York, Colorado, California, or Washington. The expected base compensation for this role is $158,000 - $241,000; actual base compensation within the identified range will vary based on factors relevant to the position.
  • Bonus Potential: An incentive pay program offers payouts based on company performance, job level, and individual performance.
  • 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, and paid vacation & holidays.

Required Skills

C
C++
CI/CD
Debugging
Unit Testing
Java
QNX
Embedded Systems
OTA Solutions
Linux
Software Development
Embedded Linux
Android
Development Tools (VS Code, Android Studio, Momentics, git, JIRA, CMake, gradle, gcov, SonarQube)
Agile Methodologies