The teamThis role is part of the Runtime team, but will include deep collaboration with the Research, Hardware, and Fleet teams.
In this role you will:- Drive the architecture and implementation of embedded firmware for devices crucial to PI's data collection goals
- Work with hardware and software teams to ensure the new devices we are building work seamlessly with existing and future data pipelines
- Embedded Linux System Bring-up: Lead the integration of embedded Linux devices with real-time sensor processing. This includes developing drivers for high-speed sensors, BSP development and customization, kernel configuration and debugging, hardware bring-up, and performance tuning across the hardware/software boundary.
- Hardware/Software Debugging: Use hardware abstraction tools and laboratory equipment to identify and resolve complex timing issues, race conditions, and hardware-software interface bugs.
- Power Optimization: Analyze and reduce power consumption for battery-operated devices, including on radio sleep states and sensor low-power modes.
What we hope you'll bring:- BS/MS in Computer Science, Electrical Engineering, or related field.
- Strong software engineering and infrastructure skills, including building data pipelines, evaluation frameworks, and tools for rapid iteration.
- Comfort working hands-on with hardware.
- Strong communication skills for collaborating with hardware, software, and research teams
- Demonstrated experience leading initiatives from concept to production on aggressive schedules, and turning ambiguous product goals into functional requirements
- Experience leading initial board bring-up and software design for first-of-their-kind embedded devices.
- Hands-on experience with SPI, I2C, UART, USB, and the ability to debug complex hardware-software interactions.
- Experience architecting, implementing and debugging concurrent and multithreaded firmware services
- Deep understanding of modern operating systems, computer architecture, and trade-offs between compute, memory, and storage.
- Experience bringing up and integrating sensors on embedded systems; camera system bring-up, integration, and tuning is a plus.
- Proficiency in C++
- Familiarity with Bash scripting and Python for tooling and automation.
Bonus points if you have:- Nice to have: Direct experience with Linux Kernel development, including writing or debugging drivers, managing device trees, or optimizing kernel-space performance.
Pursuant to the San Francisco Fair Chance Ordinance, we will consider for employment qualified applicants with arrest and conviction records.