Principal Software Engineer - Build System Modernization
- .
- Key Deliverables: also bullet list.
- Measures of Success: bullet list.
- Your Skills & Abilities (Required Qualifications): list.
- What Will Give You A Competitive Edge (Preferred Qualifications): list.
- Company Vehicle: description.
- Compensation: includes salary range: "The range for this role is 201,000 and 400,000." Also mention bonus potential.
- Benefits: description of benefits.
- About GM: description.
- Why Join Us: description.
- Benefits Overview: maybe duplicate.
- Non-Discrimination etc: remove.
- Accommodations: maybe keep? It's about accommodation request; could be considered boilerplate? Might be considered legal/EEO? It's about accommodations for disabled; might be considered boilerplate but it's substantive? Usually we remove EEO/equal-opportunity/accommodations? The instruction: "Remove cookie/navigation/legal/EEO/equal-opportunity/scam-warning boilerplate, duplicated lines, and application instructions." Accommodations could be considered legal/EEO? It's about providing accommodation for disabled; might be considered EEO. Safer to remove.
We need to decide sections: About the role (maybe "About the role" heading). Responsibilities (What You'll Do + Key Deliverables + Measures of Success? Could combine). Requirements (maybe required qualifications). Qualifications (maybe preferred qualifications). Skills (maybe skills & abilities). Benefits, Pay, Schedule.
Schedule: The posting mentions remote role, but if within radius expected to report three times a week. Also relocation benefits. That's schedule info: remote with occasional on-site. So we can include Schedule section.
Pay: include salary range and bonus potential.
Benefits: include benefits description.
We must not create sections with filler like "commensurate with experience". We have actual content.
We need to avoid duplication: Some content repeats (e.g., Key Deliverables similar to What You'll Do). We should preserve all substantive info but not duplicate identical lines? The instruction: "Preserve ALL substantive information; do NOT invent or summarize away detail." It doesn't say we must deduplicate, but we should avoid duplicated lines. We can combine similar bullet points but ensure we keep all info. Might be okay to keep both sections as they are distinct headings.
But we need to use headings:
for section headings (e.g. About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule). So we will output those headings only if we have content. Let's craft sections:
About the role
General Motors is seeking a software engineering leader to modernize and scale the build systems that support software-defined vehicles. This role will help lead the transition from a legacy Make-based system to Bazel, Google’s open-source build tool, improving speed, reliability, and robustness across the engineering organization. The successful candidate will drive this capability at scale, influence technical direction across teams, and help establish lofty platform capability goals.
Responsibilities
- Lead software engineering productivity and effectiveness by identifying opportunities, shaping strategies, improving processes, guiding change, and connecting initiatives to deliver greater value through innovation, learning, and simplification.
- Lead high-impact efforts hands-on, solve complex and unusual problems, and communicate effectively as a coach and mentor while balancing technical command with empathy.
- Modernize a large embedded-software build and test system by transitioning legacy Make- or shell-based workflows to Bazel and establishing scalable, reproducible, secure, and developer-friendly infrastructure across repositories, toolchains, CI/CD, testing, and release processes.
- Assess current build, test, dependency, toolchain, and hardware workflows to define a phased Bazel migration strategy and rollout model.
- Design and implement reusable Bazel rules, macros, toolchains, platforms, configuration patterns, and repository standards, while migrating embedded applications, libraries, generated code, firmware, cross-compilation flows, and platform variants with validated build parity and reproducibility.
- Integrate Bazel with enterprise CI/CD, testing, release, artifact, deployment, observability, security, and infrastructure workflows, and optimize the platform through caching, parallelism, reliability practices, documentation, training, legacy Make retirement, and continuous improvement.
- Measure success through target repositories migrated with validated build and test parity; faster clean and incremental builds, CI queues, and developer feedback; increased reproducibility, approved hermetic-toolchain adoption, cache effectiveness, and CI capacity; and lower build, pipeline, and flaky-test rates.
- Improve diagnosis and recovery time while ensuring complete artifact provenance, test evidence, and security-policy compliance for releases, strong developer adoption, reduced support burden, and measurable productivity improvement.
for section headings (e.g. About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule). It doesn't forbid other headings, but says use
for section headings (e.g. those). Likely we should stick to those headings only. So we need to map content to those headings. Thus we need to fit Key Deliverables and Measures of Success somewhere, maybe under Responsibilities. Requirements: maybe required qualifications (Your Skills & Abilities (Required Qualifications)). Qualifications: maybe preferred qualifications (What Will Give You A Competitive Edge). Skills: maybe skills & abilities (but we already used for required). Could combine. Let's decide: - About the role: as above. - Responsibilities: include What You'll Do, Key Deliverables, Measures of Success (all actionable items). - Requirements: Required Qualifications (Your Skills & Abilities (Required Qualifications)). - Qualifications: Preferred Qualifications (What Will Give You A Competitive Edge). - Skills: maybe we can include "Strong expertise building and maintaining production software systems, proficiency in Python and at least one additional language..." but that's already in required. Could put under Skills: "Proficiency in Python and at least one additional engineering-tooling language; experience with AI-assisted developer productivity, coding agents, code intelligence, knowledge retrieval, or workflow orchestration; ability to evaluate AI-enabled engineering workflows using measurable quality, adoption, and productivity outcomes." But we already have required qualifications includes those. Might be redundant. Perhaps we can put Skills separate: list of technical skills: Bazel, Make, CI/CD, etc. But we don't have explicit list. Could extract from responsibilities: Bazel, Make, CI/CD, testing, release, etc. But that's already in responsibilities. Given the instruction to prefer few substantive sections over many thin ones, we could combine Skills into Requirements or Qualifications. But we need to include a Skills section only if we have real specific content. We could put under Skills: "Proficiency in Python and at least one additional engineering-tooling language; experience with AI-assisted developer productivity, coding agents, code intelligence, knowledge retrieval, or workflow orchestration; ability to evaluate AI-enabled engineering workflows using measurable quality, adoption, and productivity outcomes." That's specific. Thus we will have Skills section. Benefits: include benefits description. Pay: include salary range and bonus potential. Schedule: include remote work expectation and occasional on-site, relocation benefits. Now we need to ensure we don't include boilerplate like "Company Vehicle" etc. That's a benefit? Could be considered a benefit (company vehicle program). Might be worth including under Benefits? But the instruction says include Benefits section only if posting actually states them. It does state company vehicle program. So we could include that under Benefits as a bullet. But we already have Benefits section with health etc. We can add company vehicle as another bullet. Let's extract benefits text: "GM offers a variety of health and wellbeing benefit programs. Benefit options include medical, dental, vision, Health Savings Account, Flexible Spending Accounts, retirement savings plan, sickness and accident benefits, life insurance, paid vacation & holidays, tuition assistance programs, employee assistance program, GM vehicle discounts and more." Also "Company Vehicle Upon successful completion of a motor vehicle report review, you will be eligible to participate in a company vehicle evaluation program, though which you will be assigned a General Motors vehicle to drive and evaluate. Note: program participants are required to purchase/lease a qualifying GM vehicle every four years unless one of a limited number of exceptions applies." Also "Relocation benefits are available for candidates who qualify under company policy." Thus Benefits section can include all that. Pay: "The compensation information is a good faith estimate only. It is based on what a successful applicant might be paid in accordance with applicable state laws. The actual base salary a successful candidate will be offered within this range will vary based on factors relevant to the position, as well as geography of the selected candidate. The Salary Range The range for this role is 201,000 and 400,000. The actual base salary a successful candidate will be offered within this range will vary based on factors relevant to the position. Bonus Potential An incentive pay program offers payouts based on company performance, job level, and individual performance." We need to format as
or
- . Probably
- Lead software engineering productivity and effectiveness by identifying opportunities, shaping strategies, improving processes, guiding change, and connecting initiatives to deliver greater value through innovation, learning, and simplification.
- Lead high-impact efforts hands-on, solve complex and unusual problems, and communicate effectively as a coach and mentor while balancing technical command with empathy.
- Modernize a large embedded-software build and test system by transitioning legacy Make- or shell-based workflows to Bazel and establishing scalable, reproducible, secure, and developer-friendly infrastructure across repositories, toolchains, CI/CD, testing, and release processes.
- Assess current build, test, dependency, toolchain, and hardware workflows to define a phased Bazel migration strategy and rollout model.
- Design and implement reusable Bazel rules, macros, toolchains, platforms, configuration patterns, and repository standards,
for prose. Schedule: "This role is based remotely, but if the selected candidate lives within a specific mile radius of a GM hub, they will be expected to report to the location three times a week {or other frequency dictated by your manager}. Relocation benefits are available for candidates who qualify under company policy." We can put that. Now we must ensure we don't include duplicated lines. We'll avoid repeating same sentences. Now produce HTML fragment. Let's craft:
About the role
General Motors is seeking a software engineering leader to modernize and scale the build systems that support software-defined vehicles. This role will help lead the transition from a legacy Make-based system to Bazel, Google’s open-source build tool, improving speed, reliability, and robustness across the engineering organization. The successful candidate will drive this capability at scale, influence technical direction across teams, and help establish lofty platform capability goals.
Responsibilities