Role Summary
* In this role, you will develop and implement mission-critical embedded software systems using Rust. You will guide the adoption of Rust throughout embedded development, manage integration or conversion of legacy software, and provide architectural guidance for memory-safe Rust usage. You will translate requirements into working, maintainable solutions and apply technical expertise across all stages of the software development lifecycle. You will collaborate with cross-functional teams to evaluate interfaces between hardware and software and ensure robust, high-quality software delivery. Education & Job Requirements
* Must have U.S. citizenship.
* Must have a minimum of a Bachelor’s or Master’s degree in Computer Engineering, Electrical Engineering, Computer Science, or a related field.
* Must have a minimum of 3 years of experience developing Rust software for production systems with a deep understanding of the language.
* Must have experience with C/C++ development and object-oriented design.
* Must have experience with the development of embedded systems.
* Must have excellent oral and written communication skills. Preferred Skills
* You will have experience converting C/C++ code to Rust.
* You will have experience developing Rust software for embedded systems.
* You will have object-oriented design and implementation experience, with exposure to software modeling and UML tools such as IBM Rhapsody or MagicDraw/Cameo.
* You will have experience developing device drivers and Board Support Packages for real-time embedded systems.
* You will have experience with Information Assurance and/or cryptography.
* You will have experience with NSA Type 1 certification or other software certifications such as DO-178. Job Duties / Functions
* You will be supporting engineering team members in embedded software application development, specifically with Rust.
* You will be leading the adoption and deployment of Rust and associated techniques, idioms, design patterns, and tooling throughout multiple product lines.
* You will be applying computer science, engineering, and mathematical analysis concepts and principles in the development of software for the target hardware.
* You will be working closely with cross-functional engineering members to develop and evaluate interfaces between hardware and software, and operational performance requirements.
* You will be supporting all phases of the software development lifecycle, including requirements analysis, design, implementation, hardware-software integration, and formal testing.
* You will be investigating root causes of complex issues and implementing solutions independently or with a multi-disciplinary team.
* You will be developing software test plans and procedures, and other relevant technical documentation.
* You will be utilizing modeling tools and equipment to establish operating data, conduct experimental tests, prototype, and evaluate results.
* You will be participating in peer reviews, identifying, tracking, and repairing defects.
* You will be utilizing a variety of software languages, primarily Rust, C/C++, and Python, for embedded real-time operating systems (VxWorks, Linux, Integrity).