Jobs · Michigan

Staff Software Engineer - Build System Modernization

General Motors · Milford, MI · 3 wk ago
HybridFull-time
We need to output HTML fragment with headings

for sections: About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule. Only include sections that have real specific content. We must not repeat job title. Must not include Job ID etc. Must preserve all substantive info. Remove boilerplate like EEO, accommodations, etc. We need to parse the job description. Sections present: - The role: description paragraph about GM seeking software engineering leader, modernizing build systems, transitioning from Make to Bazel, etc. This is "About the role" maybe. - What You'll Do: list of duties. That's responsibilities. - Your Skills & Abilities (Required Qualifications): list of required qualifications. That's maybe Requirements or Qualifications. The instruction says we can have sections like Requirements, Qualifications, Skills. We need to decide which to use. The posting includes "Your Skills & Abilities (Required Qualifications):" then bullet list. So we could have a section "Requirements" or "Qualifications". Probably "Requirements". Also there is a separate "Compensation" and "Benefits". Also "Company Vehicle" maybe part of Benefits? It's a perk. Could be included in Benefits. Also there is "About GM", "Why Join Us", "Benefits Overview", "Non-Discrimination..." etc. Those are boilerplate; we should remove. We need to include Pay section if salary range is given. Yes: "The Salary Range The range for this role is 171,150 and 288,500." Also mention compensation info. So we include Pay. Schedule: not mentioned. So omit Schedule. Benefits: there is a Benefits section describing health and wellbeing programs, plus company vehicle evaluation program. So include Benefits. We also might include "About the role" section. We need to use

for section headings. Use
  • for any list of duties/requirements/benefits. Use

    for prose. We must preserve all substantive info; do not invent or summarize away detail. So we need to keep details like bullet points exactly as given (maybe rephrase? but must preserve info). We can keep them as list items. We need to remove duplicated lines. Ensure no filler. Let's extract content. **About the role** (The role paragraph): "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." We can combine into a paragraph. **Responsibilities** (What You'll Do): List items: - 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. **Requirements / Qualifications** (Your Skills & Abilities (Required Qualifications)): List items: - Bachelor's degree in software engineering or or equivalent experience - 12+ years of experience in software development - Deep understanding of software architecture for real time systems - Experience shipping high-quality safety critical products - Exceptional problem-solving and analytical abilities, with a keen attention to detail - Demonstrated ability to manage multiple projects and priorities in a fast-paced environment. - Demonstrated ability to work in an action-oriented decision-making environment - Strong expertise building and maintaining production software systems, with proficiency in Python and at least one additional language used in engineering tooling environments - Automotive, embedded, safety-related, calibration, or systems-engineering environments. - Large-scale migration from Make or shell-based build orchestration to Bazel. - AI-assisted developer productivity, coding agents, code intelligence, knowledge retrieval, or workflow orchestration. - Evaluation of AI-enabled engineering workflows using measurable quality, adoption, and productivity outcomes. Note: there is also earlier "Hold a bachelor’s degree in software engineering or have equivalent experience, along with 15 years of software development experience." plus other details like real-time software architecture, safety-critical, problem solving, etc. But the required qualifications list seems to be the consolidated list. However we must preserve ALL substantive information; we should not drop the earlier 15 years etc if not duplicated. The required qualifications list says 12+ years, but earlier said 15 years. There's a discrepancy; we must keep both? The instruction: preserve ALL substantive information; do NOT invent or summarize away detail. So we need to include both statements. However the "Your Skills & Abilities (Required Qualifications)" list includes 12+ years, but earlier paragraph says "Hold a bachelor’s degree in software engineering or have equivalent experience, along with 15 years of software development experience." Also earlier mentions "Bring a deep understanding of real-time software architecture and experience shipping high-quality, safety-critical products in automotive, embedded, safety-related, calibration, or systems-engineering environments." etc. Those are similar to qualifications list but we should keep them if not duplicated. We need to decide how to structure. Perhaps we can have a "Requirements" section that includes all the qualification statements from the earlier paragraphs plus the bullet list. But we must avoid duplication. We could combine them, but must preserve all info; we can include both but avoid repeating identical sentences. Let's extract all qualification-related statements: From earlier paragraphs (before "Your Skills & Abilities"): - Hold a bachelor’s degree in software engineering or have equivalent experience, along with 15 years of software development experience. - Bring a deep understanding of real-time software architecture and experience shipping high-quality, safety-critical products in automotive, embedded, safety-related, calibration, or systems-engineering environments. - Demonstrate exceptional problem-solving and analytical abilities, keen attention to detail, and the ability to manage multiple projects and priorities in fast-paced, action-oriented decision-making environments. - Bring strong expertise building and maintaining production software systems, proficiency in Python and at least one additional engineering-tooling language, and experience with AI-assisted developer productivity, coding agents, code intelligence, knowledge retrieval, or workflow orchestration. - Evaluate AI-enabled engineering workflows using measurable quality, adoption, and productivity outcomes. Then the "Your Skills & Abilities (Required Qualifications)" list includes similar items but with slightly different wording: - Bachelor's degree in software engineering or or equivalent experience - 12+ years of experience in software development - Deep understanding of software architecture for real time systems - Experience shipping high-quality safety critical products - Exceptional problem-solving and analytical abilities, with a keen attention to detail - Demonstrated ability to manage multiple projects and priorities in a fast-paced environment. - Demonstrated ability to work in an action-oriented decision-making environment - Strong expertise building and maintaining production software systems, with proficiency in Python and at least one additional language used in engineering tooling environments - Automotive, embedded, safety-related, calibration, or systems-engineering environments. - Large-scale migration from Make or shell-based build orchestration to Bazel. - AI-assisted developer productivity, coding agents, code intelligence, knowledge retrieval, or workflow orchestration. - Evaluation of AI-enabled engineering workflows using measurable quality, adoption, and productivity outcomes. We need to keep all distinct info. Some overlap: bachelor's degree, years of experience (15 vs 12+), deep understanding real-time software architecture, experience shipping high-quality safety critical products, problem-solving, managing multiple projects, fast-paced, action-oriented, expertise building production software systems, proficiency in Python + another language, AI-assisted developer productivity etc, evaluation of AI-enabled workflows. Also unique items: "Large-scale migration from Make or shell-based build orchestration to Bazel." appears only in the list. Also earlier paragraphs mention "Bring strong expertise building and maintaining production software systems, proficiency in Python and at least one additional engineering-tooling language, and experience with AI-assisted developer productivity, coding agents, code intelligence, knowledge retrieval, or workflow orchestration." That's similar to list items. Thus we should include both the 15 years and 12+ years statements (both are substantive). Could combine as "15 years of software development experience (or 12+ years as per required qualifications)" but that would be summarizing. Better to keep both separate bullet points? But they are not in a list originally; they are in prose. We could turn them into list items for clarity, but must preserve info. It's acceptable to reformat into

    • as long as we keep the content. The instruction: Use
      • for any list of duties/requirements/benefits. So we can turn the qualification statements into a list. Thus we will create a

        Requirements

        with a
          containing each distinct qualification statement. We need to ensure we don't lose any nuance: "Hold a bachelor’s degree in software engineering or have equivalent experience, along with 15 years of software development experience." That's one item. "Bring a deep understanding of real-time software architecture and experience shipping high-quality, safety-critical products in automotive, embedded, safety-related, calibration, or systems-engineering environments." That's another. "Demonstrate exceptional problem-solving and analytical abilities, keen attention to detail, and the ability to manage multiple projects and priorities in fast-paced, action-oriented decision-making environments." Another. "Bring strong expertise building and maintaining production software systems, proficiency in Python and at least one additional engineering-tooling language, and experience with AI-assisted developer productivity, coding agents, code intelligence, knowledge retrieval, or workflow orchestration." Another. "Evaluate AI-enabled engineering workflows using measurable quality, adoption, and productivity outcomes." Another. Then from the list: "Bachelor's degree in software engineering or or equivalent experience" (duplicate of first but with typo "or or". We'll keep as is but note duplicate; we could deduplicate but must preserve all substantive info; duplicate is still substantive but repeating same info. The instruction says remove duplicated lines. So we should remove duplicate lines. So we should not include duplicate bachelor's degree statement if it's same meaning. The earlier one includes 15 years; the list one just says bachelor's degree or equivalent experience (no years). Since the earlier includes years, we keep that. The list one is redundant; we can drop it. "12+ years of experience in software development" - we keep as separate item (different from 15 years). So we have both. "Deep understanding of software architecture for real time systems" - similar to earlier "deep understanding of real-time software architecture". Slight difference: earlier includes "real-time software architecture". We'll keep both? They are essentially same; we could deduplicate. The

Similar jobs