Onsite/Hybrid โ Hybrid
Job Summary:
- The Embedded Software Engineer will develop and maintain robust application software for Client transport refrigeration units, with a specialized focus on the Rust programming language. This engineer will create software that runs within Embedded Linux and Real-Time Operating System (RTOS) environments.
- Working directly from incoming requirements, you will collaborate closely with the platform''s technical lead to derive and document low-level designs.
- Additionally, you will be responsible for upholding software engineering standards through peer reviews, unit/integration testing, and documentation practices, while providing mentorship and guidance to engineers who are new to embedded software development.
Core Job Responsibilities:
- Design, develop, and deliver maintainable, safe, and concurrent embedded applications using Rust.
- Consume higher-level system and functional requirements to derive, document, and execute detailed low-level software designs in collaboration with the platform technical lead.
- Drive software quality and adherence to software development processes through comprehensive unit and integration testing, rigorous peer code reviews, and high documentation standards.
- Provide active mentorship and guidance to team members who are new to embedded software development or the Rust programming language.
Education and/or Experience Required:
- Bachelorโs Degree in Electrical Engineering, Computer Engineering, Computer Science (or similar discipline).
- 5+ years of total embedded software development experience is required.
- Demonstrated experience developing Rust applications with a portion of your career dedicated to deploying these Rust applications into a production environment.
Essential Skills or Knowledge:
- Strong proficiency in the Rust programming language, including a deep understanding of its ownership model, memory safety guarantees, and concurrency patterns.
- Proven experience developing software for Embedded Linux and open RTOS operating systems.
- Hands-on commitment to robust software development practices, including unit testing, integration testing, code reviews, and technical documentation standards.
- Experience with software tools such as Git version control system, Jira, or Azure DevOps.
- Computer Science principles such as data structures, algorithms, and system architecture.
- Ability to translate functional requirements into clear, maintainable low-level software designs.