Remote: This role is based remotely but if you live within a 50-mile radius of [Atlanta, Austin, Detroit, Warren, Milford or Mountain View], you are expected to report to that location three times a week, at minimum.
The Role
GM is developing the next generation of embedded platform software to deliver state-of-the-art features to our customers. To achieve that goal, our testing processes, tools, and infrastructure need to evolve. We are looking for energetic engineers to deliver high quality test tools and infrastructure to ensure the correctness of our software.
The AV Sensing Software team is responsible for the software that configures devices like lidars, cameras, radars, and IMUs and delivers sensor data to the AV stack running on GM vehicles.
This is an exciting and challenging opportunity to ensure the delivery of robust, scalable, and high-performance software. We are looking for a hands-on technical leader to dive deep into our software, write code to create and extend test frameworks, create tools to aid in software verification, define test strategies, and implement new processes to streamline our quality.
As a Staff Software Engineer, you will take input from various customer teams and bring their need for automated testing to life. You will have the opportunity to collaborate with different business units throughout GM and pursue technical and leadership growth.
What You’ll Do
- Lead the design, development, and implementation of advanced test automation frameworks, tools, and infrastructure.
- Define and drive the overall test strategy for complex features and end-to-end systems, ensuring comprehensive test coverage.
- Evaluate and recommend new technologies, tools, and best practices to improve the efficiency and effectiveness of our testing processes.
- Contribute significantly to the architectural design and review of new features and systems from a testability, reliability, and performance perspective.
- Drive a culture of quality throughout the development lifecycle, advocating for shift-left testing principles.
- Develop and maintain robust, scalable, and maintainable automated tests (unit, integration, API, performance, security) using various programming languages (e.g., C++, Rust, Go, Python).
- Integrate automated tests into CI/CD pipelines, ensuring continuous feedback and early detection of issues.
- Implement advanced monitoring and alerting for production systems to identify and proactively address quality issues.
- Champion best practices in software development, testing, and quality assurance across the engineering organization.