Embedded Software Engineer
Role details
Job location
Tech stack
Job description
We are seeking an experienced Embedded Software Engineer to lead the modernization of build automation and CI/CD pipelines for critical undersea warfare systems. This high-visibility role is part of an initiative aimed at transforming legacy workflows into scalable, modular GitLab-based pipelines. You will collaborate with DevOps engineers, software developers, and cross-functional teams to define and implement the future build flow architecture. This hands-on architecture role offers opportunities to shape long-term technical direction and engage deeply with site-wide modernization efforts., * Participate in a cross-functional team to evaluate a large, complex legacy code base, assess the current CI/CD pipeline, and create a strategic roadmap for modernizing the code to enable modular builds.
- Work closely with stakeholders to validate and ensure the quality and effectiveness of all proposed enhancements.
- Identify technical obstacles from technical debt or system requirements and develop pragmatic solutions.
- Build expertise with existing shared CI/CD capabilities to integrate them into proposed build enhancements for modular builds.
Requirements
- Bachelor's degree in Computer Science, Software Engineering, Computer Engineering, or a comparable STEM discipline.
- 7+ years of experience with Embedded C programming for large defense systems.
- Experience with GitLab and CI/CD pipeline strategies to streamline software delivery.
- Knowledge of software engineering concepts and principles associated with modular components.
- Experience with software build technologies (e.g., make, Gradle, or Bash scripting).
- Ability to obtain a Secret clearance is a must, but ideally having an Active Secret Clearance
Additional Skills & Qualifications
- Leadership in architecting and designing large, complex legacy software systems with expertise in C or C++.
- Experience in Automation & DevOps, including CI/CD definition, Infrastructure as Code, automated testing, and release pipeline construction.
- Proficiency in software design fundamentals, such as design patterns, architectural styles, and SOLID principles.
- Experience designing and implementing microservices solutions.
- Problem-solving skills with the ability to perform trade-off analyses.
- Expertise in API design and integration.
- Experience with static application security testing (SAST) tools.
- Familiarity with binary management repositories.
- Proficiency in Agile, Scrum, and DevOps practices.