This list contains only the countries for which job offers have been published in the selected language (e.g., in the French version, only job offers written in French are displayed, and in the English version, only those in English).
As a Principal Software Engineer on the Virtual Test Platforms team, you will help to define, specify, validate, architect, develop, build, verify, 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.
Job Responsibility:
Deliver high-impact, high-ROI technical solutions for highly automated and highly scaled virtualized testing for GM products and services
Write production-quality code, prototypes, and reference implementations that unblock teams and demonstrate best practices
Partner with product, platform, and security teams through design reviews, feedback sessions, and brainstorming with a focus on testing and validation
Mentor and coach ICs, helping them navigate complex technical decisions and grow as senior engineers
Create and maintain reusable guidance, examples, and documentation that scale knowledge across GM’s engineering community
Requirements:
10+ years of professional software engineering experience, with a focus on building and operating production systems
Bachelor’s degree in computer science or related field OR equivalent work experience
Proven experience leading complex, cross-team technical initiatives as a staff or principal-level engineer
Strong proficiency in at least one of Java, Go, or C/C++ and willingness to learn others as needed
Deep understanding of software architecture and design principles, including distributed systems, scalability, and reliability
Demonstrated ability to influence without authority, build strong partnerships, and communicate clearly with technical and non-technical stakeholders
Nice to have:
Master’s or PhD in Computer Science or Computer Engineering
Hands-on experience evolving existing large-scale, distributed, or event-driven systems
Demonstrated expertise in low-level or embedded software at the hardware/software boundary
Familiarity with security, reliability, and cost-optimization best practices in cloud-native environments
Demonstrated success driving cultural or process improvements (e.g., testing practices, observability, CI/CD, documentation)