Job Description:
Our company is seeking an experienced Software Engineering Lead with proven background leading embedded software development execution on mission-critical systems. Responsibilities include guiding adoption of RUST throughout the embedded development, managing integration or conversion of legacy software to RUST, providing best practices and architectural guidance for memory-safe usage of RUST, developing best practices and implementation guidance, and the translation of requirements into working and maintainable solutions. The selected candidate will apply technical proficiency across various stages of our SDLC, gather requirements, and work closely with stakeholders to prioritize and scope tasks, and will be a key team member on a Scrum team and will be instrumental in setting our direction and strategy for product and infrastructure development.
Essential Functions:
Support the engineering team members in embedded software application development specifically with RUST.
Lead the adoption and deployment of RUST and associated techniques, idioms, design patterns, and tooling throughout multiple product lines.
Apply computer science, engineering, and mathematical analysis concepts and principles in the development of software for the target hardware.
Work closely with cross functional members of the engineering organization to develop and evaluate interfaces between hardware and software, and operational performance requirements and design of the overall system.
Lead software development in all phases of the software development life cycle, including requirements analysis, design, implementation, hardware-software integration, and formal test.
Investigate root causes of complex issues, and implement solutions, working independently or with a multi-discipline team.
Develop software test plans and procedures, and other relevant technical documentation.
Utilize modeling tools and equipment to establish operating data, conduct experimental tests, prototype, and evaluate results.
Participate in peer reviews, identify, track and repair defects.
Utilize a variety of software languages (primarily RUST, C/C++, and Python developing code for embedded real time operating systems (VxWorks, Linux, Integrity)).
Serve as the technical mentor and reviewer for more junior engineers.
Ability to travel < 10% to another company location for onboarding, integration or scrum.
Qualifications:
Bachelor s degree in computer engineering, electrical engineering, computer science or related field and a minimum of 9 years of prior relevant experience. Graduate Degree and a minimum of 7 years of prior related experience. In lieu of a degree, minimum of 13 years of prior related experience.
At least 3 years of experience leading software development teams.
At least 5 years of experience with C\C++ development and object-oriented design.
Experience developing RUST software.
At least 5 years of tracking earned value management (EVM).
At least 3 years of experience creating and presenting software proposals including developing and reviewing cost estimates and proposal packages.
2+ years in an agile or other software lead role.
Experience leading large software planning efforts.
Active Department of Defense (DoD) Secret clearance.
Preferred Additional Skills:
Experience developing embedded software systems.
Object-oriented design and implementation experience, with exposure to software modeling and UML tools such as IBM Rhapsody or MagicDraw/Cameo.
Experience developing device drivers and Board Support Packages for real-time embedded systems.
Experience with Information Assurance and/or cryptography.
Experience with NSA Type 1 certification or other SW certification such as DO-178.
Excellent oral and written communication skills.