You will be working on enabling authentication (Secure Boot, Verified Boot), attestation (DICE, measurements), and strengthening the platform images to utilize SELinux, seccomp, IMA, and immutable images. Also, establish physical anti-tempering, device integrity, and physical security needs to establish a foundation for scalable robotic deployments.
This role works closely with product, infrastructure, security, hardware, and platform teams, as well as external silicon and hardware vendors. You will be deeply hands-on, owning early prototypes through production-ready platform software and technical standards.
Preferred Qualifications:
- Strong background in operating systems development.
- Proficiency in C programming and kernel-level debugging.
- Several years of hands-on Unix/Linux kernel development experience preferred.
- Knowledge of security technologies including TPM, Secure Boot, kernel signing, and encryption frameworks.
- In depth knowledge of ARM, Intel, and AMD platforms and what chipsets do.
- Familiarity with Python and Bash scripting for development and automation tasks.
Internal Responsibilities
Responsibilities
Software Development and Coding:
Designs software solutions and analyzes and identifies requirements to achieve business and operational goals, sharing results with manager upon completion.
Adheres to and improves execution of all phases of the software development lifecycle; provides guidance and coaching to engineers to drive improvements.
Utilizes advanced knowledge to develop and guide new software features and enhancements leading design specifications, ensuring accessibility, and develops documents to clarify software design and code.
Leads code reviews in multiple areas to help drive improvements.
Conducts debugging and troubleshooting to identify and fix complex software issues.
Develops fixes for identified issues.
Implements comprehensive software testing (e.g., functional and non-functional testing), quality assurance processes, software error logging, monitoring, and observability for effective debugging, sharing work with manager and/or lead upon completion.
Conducts performance profiling and optimization of coding, building scalable solutions, and anticipating and resolving potential outcomes.
Troubleshoots and resolves complex issues related to application programming interface (API) functionality and integration. Implements complex API versioning, lifecycle, and interoperability strategies.
External Responsibilities
Responsibilities
Software Development and Coding:
Designs software solutions and analyzes and identifies requirements to achieve business and operational goals, sharing results with manager upon completion.
Adheres to and improves execution of all phases of the software development lifecycle; provides guidance and coaching to engineers to drive improvements.
Utilizes advanced knowledge to develop and guide new software features and enhancements leading design specifications, ensuring accessibility, and develops documents to clarify software design and code.
Leads code reviews in multiple areas to help drive improvements.
Conducts debugging and troubleshooting to identify and fix complex software issues.
Develops fixes for identified issues.
Implements comprehensive software testing (e.g., functional and non-functional testing), quality assurance processes, software error logging, monitoring, and observability for effective debugging, sharing work with manager and/or lead upon completion.
Conducts performance profiling and optimization of coding, building scalable solutions, and anticipating and resolving potential outcomes.
Troubleshoots and resolves complex issues related to application programming interface (API) functionality and integration. Implements complex API versioning, lifecycle, and interoperability strategies.