Software Engineer
General Motors
About the role
The Role:
As Software Engineer on the Virtual Test Platforms team, you will help to define, implement, deploy and support a variety of virtualization technology related products and services to accelerate development of new vehicles and support existing ones while increasing quality, reliability, security, and diagnosability. You will do this in cooperation with teams and engineers across GM who deliver their code across a wide variety of embedded systems from small low-level controllers to large infotainment units and beyond.
As a developer in Virtual Test Platforms, you will help to shape the approach, and methods for using virtual test techniques at GM while also making significant contributions to the engineering system codebase. You will provide feedback, and assistance to your teammates helping everyone to achieve more. You will be expected to grow into a subject matter expert in virtualized testing of distributed embedded systems and share that knowledge with others. In short, you will help to improve the state of the art in virtual test of hardware and software at GM.
Key Responsibilities
- Configure and customize virtual test environments including KVM, QEMU, and Android Emulators, and make these environments widely available using cloud services.
- Help product teams integrate the virtual test environments into their developer inner-loop and CI/CD processes.
- Author virtual devices to enhance virtual test coverage and fidelity including VirtIO Drivers.
- Implement other custom test tools and simulators to enable higher test throughput and achieve quality faster.
- Enhance collection, parsing, and reporting, of test results via reports and dashboards
- Write production-quality code, prototypes, and reference implementations that unblock teams and demonstrate best practices.
- Create and maintain reusable guidance, examples, and documentation that scale knowledge across GM’s engineering community.
Minimum Qualifications
- Bachelor’s degree in computer science or related field OR equivalent work experience.
- 4+ years of professional software engineering experience, with a focus on building and operating production systems.
- Strong proficiency in at least one native programming language including C, C++ Rust, and a willingness to learn others.
- Experience automating testing of low level, embedded or mobile products at scale.
- Demonstrated ability to deliver smoothly and quickly as part of a team in an area with high ambiguity.
Preferred Qualifications
- Masters Computer Science or Computer Engineering.
- 7+ years of professional software engineering experience in systems, embedded, or mobile.
- Experience configuring and customizing Emulators for test including QEMU or Android Emulators and VirtIO drivers.
Skills
Don't send a generic resume
Paste this job description into Mimi and get a resume tailored to exactly what the hiring team is looking for.
Get started free