[Skip To Content]

Senior Embedded Software Engineer

  • Localização
    • Milford, Michigan
    • Warren, Michigan
  • Agendar Full time
  • Postou

Descrição

Workplace Classification:

Hybrid : This role is categorized as hybrid. This means the candidate is expected to report to their primary work location three times per week, at minimum, or other frequency dictated by the business.

The Role:

In this software development role, you will be responsible for developing software applications using sound, repeatable, industry standard methodologies. You will have the opportunity to work hands-on writing software or solutions, based on detailed requirements and system specifications. Development activities will include updating existing software and/or developing new software solutions to address a specific need or solve a particular business problem.

Additionally, you will drive development activities in accordance with appropriate methodologies and application of a repeatable, systematic, and quantifiable approach to the development process. You will coach/mentor software developers and will review the software being developed. This role will also work closely with architects and technical leaders to ensure code alignment with design patterns/frameworks.

What You'll Do (Responsibilities):

  • Write software for vehicle-side functionality in C/C++.
  • Participate in discussions & reviews for requirements, design, and test cases.
  • Create software design artifacts using Unified Modeling Language (UML) techniques.
  • Use cross-compilation techniques to compile designs for multiple embedded platforms.
  • Perform software configuration management using Git and code review using Gerrit, GitHub.
  • Implement Unified Diagnostic Services (UDS) diagnostics over Ethernet (DoIP and Socket Adapter) and Controller Area Network (CAN) using C/C++.
  • Perform emulator/simulator, bench, and verification testing.
  • Diagnose, debug, and solve issues related to vehicle software.
  • Work closely with teams from other groups to support triage and resolution of difficult problems in a timely manner.
  • Collaborate with System Engineers to refine understanding of requirements and identify opportunities for innovation.
  • Write clear and concise test cases that cover various scenarios and edge cases.
  • Execute unit tests and analyze the results to identify and report defects.
  • Integrate unit tests into the continuous integration and delivery pipeline.
  • Continuously improve unit testing processes and methodologies
  • Collaborate with the development team to resolve issues identified through testing.
  • Collaborate with software developers to ensure comprehensive test coverage.

[Additional Description]

What You'll Need (Required Qualifications):

  • Bachelor's degree (or higher) in Computer Science or relevant discipline.
  • 5+ years of proven software development foundation experience including competencies in object-oriented methodologies, data structures, algorithms relevant design patterns, and software design lifecycle.
  • Proficient in C or C++ programming language.
  • Proficiency in working with Linux and QNX platforms.
  • Experience writing clients for Web Services (REST, RPC, and/or SOAP).
  • Familiarity with CI/CD and DevOps pipelines using GitHub, GitHub Actions, Jenkins, etc.
  • Design and develop unit tests for C++ software components.
  • Implement and maintain unit testing frameworks (e.g., Google Test, Catch2, Boost. Test).

People Skills:

  • Strong analytical and innovative problem-solving skills.
  • Excellent communication and teamwork skills.
  • Ability to learn quickly and work independently or as part of a team.
  • High level of oral and written communication skills.
  • High level of interpersonal skills to work independently and effectively with others locally and in a geographically dispersed team.

What Will Give You A Competitive Edge (Preferred Qualifications):

  • 8+ years of Engineering experience in a job-related area.
  • 1+ years of Client software development and debugging.
  • In-depth knowledge of unit testing frameworks and methodologies.
  • Experience in writing unit tests for C++ applications.
  • Familiarity with continuous integration and delivery practices.
  • Exposure to working in Agile development methodology (Scrum, XP, SAFe, etc.)
  • Exposure to other embedded programming languages like Rust, Python.
  • Demonstrated experience in multithreading, inter-process communication and synchronization of shared resources.
  • Experience using source code control systems and tools such as Git/Repo and code collaboration tools such as Gerrit, GitHub, Optimus, Static code analysis tools like Sonar, Parasoft, CPP, etc.
  • Prior experience in vehicle embedded or Mobile or Infotainment software development.

•This job may be eligible for relocation benefits.

#LI-DH2

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 Careers.Accommodations@GM.com 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.