[Skip To Content]

Staff Software Engineer

  • Localização
    • Austin, Texas
    • Mountain View, California
    • Warren, Michigan
  • Tipo de trabalho Full time
  • Postou
  • Job Requisition JR-202613402

Descrição

We are looking for a strong C++ Software Engineer to support development of next-generation automotive UI applications. The role involves development of high-performance, safety/regulatory-focused UI features across QNX/Linux/Android-based platforms, with emphasis on scalable UI architecture, graphics rendering, and system integration.
Experience with Android UI/application development is a strong plus as the organization transitions toward Android-based UI platforms.

Key Responsibilities

  • Develop and maintain infotainment UI applications using modern C++
  • Work closely with System Engineering, UX, Product, and Validation teams to understand and implement requirements
  • Debug and root-cause issues related to rendering, startup performance, power moding, IPC communication, and graphics behavior
  • Integrate vehicle signals/services into UI applications
  • Support feature bring-up on QNX/Linux/Android platforms
  • Contribute to scalable and adaptive UI frameworks across multiple vehicle programs
  • Participate in code reviews, unit testing, static code analysis, and CI/CD workflows
  • Support performance optimization, memory analysis, and startup time improvements
  • Collaborate with cross-functional teams during vehicle integration and milestone deliveries

Required Skills

Core C++ Development

  • Strong proficiency in modern C++ (C++11/14/17)
  • Good understanding of:
    • Object-oriented design
    • Multithreading
    • STL
    • Memory management
    • IPC mechanisms
    • Performance optimization
  • Experience debugging complex issues using tools such as:
    • GDB
    • Valgrind
    • Heap/Memory analyzers

UI / Graphics Development

Experience in one or more:

  • Qt / QML
  • Altia
  • Skia
  • OpenGL / Vulkan
  • Embedded graphics/UI frameworks

Good understanding of:

  • Rendering pipelines
  • Frame timing
  • Animation handling
  • Adaptive/responsive layouts
  • Multi-display architecture

Embedded / Automotive Platform Experience

Preferred experience with:

  • QNX
  • Embedded Linux
  • Android Automotive
  • Vehicle signal integration
  • Middleware/service-based architectures

Understanding of:

  • Power moding
  • Startup sequencing
  • Safety/regulatory UI requirements
  • Automotive development lifecycle

Tools & Development Workflow

Experience with:
Git/GitHub
VS Code
CI/CD pipelines
Unit testing frameworks
Static code analysis tools (Parasoft/Coverity/SonarQube)
Jira/Agile workflows

Android UI Development (Preferred / Plus)

Experience in any of the following is a strong plus:
Android application/UI development
Android Automotive OS (AAOS)
Kotlin/Java
Jetpack Compose
Android rendering/performance debugging
Android services and IPC
DisplayManager / Surface handling

Preferred Qualities

  • Strong debugging and problem-solving skills
  • Ability to work in fast-paced milestone-driven environment
  • Good communication and cross-functional collaboration
  • Ability to understand complex system requirements and convert them into scalable implementations
  • Self-driven with ownership mindset
  • Interest in AI-assisted development workflows and modern developer productivity tools

Nice to Have

  • Experience with GoLang services
  • Knowledge of graphics compositors (Wayland/Weston)
  • Experience with Android/Linux mixed rendering architectures
  • Exposure to AI-assisted development tools (GitHub Copilot, AI agents, log analysis tools)
  • Automotive Cluster/HUD experience
  • Experience or familiarity with Altia Studio and/or Qt Creator editor workflows
  • Familiarity with CAN/CAN FD vehicle networks and vehicle signal communication
  • Understanding of automotive communication protocols and diagnostics concepts
  • Exposure to SOME/IP, Ethernet-based communication, or middleware/service-oriented architectures is a plus

Example Technologies

  • C++, Qt/QML, Kotlin, Altia, Skia
  • OpenGL/Vulkan
  • QNX, Linux, Android Automotive
  • GitHub Actions, SonarQube, Parasoft
  • VS Code, Copilot
  • GoLang (optional)

Esta função é classificada como remota. Isso significa que o candidato selecionado pode estar baseado em qualquer lugar do país de trabalho e não deve se apresentar em um local de trabalho da GM, a menos que seja orientado por seu gerente.

Esta posição não é elegível para benefícios de relocação. Quaisquer custos de relocação serão de responsabilidade do candidato selecionado.

Informações sobre diversidade

A General Motors está comprometida em ser um local de trabalho que não só é livre de discriminação ilegal, como estimula verdadeiramente a inclusão e integração. Acreditamos enfaticamente que a diversidade na força de trabalho cria um ambiente no qual nossos colaboradores podem crescer e desenvolver melhores produtos para nossos clientes. Incentivamos os candidatos interessados a analisar as principais responsabilidades e qualificações de cada função e a se candidatar a qualquer cargo que corresponda a suas habilidades e capacidades. Os candidatos no processo de recrutamento podem, quando aplicável, ser solicitados a concluir com sucesso uma ou mais avaliações relacionadas à função e/ou uma seleção pré-emprego antes de iniciar o emprego.  Para saber mais, acesse Como contratamos.

Declaração de Igualdade de Oportunidades de Emprego (EUA)

A General Motors tem orgulho de ser um empregador que oferece oportunidades iguais.  Todos os candidatos qualificados serão considerados para o emprego, independentemente de raça, cor, religião, sexo, orientação sexual, identidade de gênero, origem nacional, deficiência ou status como veterano protegido. 

Adaptações (EUA e Canadá)

A General Motors oferece oportunidades a todos os candidatos a emprego, incluindo pessoas com deficiências. Se você precisa de uma adaptação razoável para ajudá-lo na sua pesquisa de cargos ou solicitação de emprego, fale conosco pelo e-mail [email protected] ou pelo telefone 800-865-7580. No seu e-mail, inclua uma descrição da adaptação específica que você está solicitando assim como o nome do cargo e o número de requisição do cargo ao qual está se candidatando.