This list contains only the countries for which job offers have been published in the selected language (e.g., in the French version, only job offers written in French are displayed, and in the English version, only those in English).
As a Senior Staff Software Engineer on the Spot team, you will be part of a highly collaborative group that is passionate about innovation - and of course, robots! In this role, you will define and create key software infrastructure components which lets our robots operate in a performant, reliable, secure, and scalable fashion. You’ll work closely with other software developers, hardware developers, and product managers to deliver great robots to our customers.
Job Responsibility:
Create toolchains for building, verifying, and deploying system images across a variety of computer architectures
Address systems performance issues: Debug issues encountered in the field, build instrumentation and diagnostic tools, and architect high-performance infrastructure components such as IPC systems or process/thread scheduling approaches
Enable new hardware innovations: Derisk designs during early phases, create overall software system architecture, and create device drivers or kernel support where needed
Ensure the security of our products using techniques like Secure Boot, Disk Encryption, Process Sandboxing, and Access Controls
Communicate designs and best practices across the broader organization
Mentor junior engineers and share your expertise
Requirements:
Linux expertise - at both kernel and user spaces. You should have a deep understanding of processes, threads, interrupt handling, file systems, IPC mechanisms, memory management, systemd, and other components
8+ years of prior software development in C/C++, as well as shell scripting or Python
Excellent debugging skills - both overall methodology as well as knowledge of available tools
Performance optimization of systems
Eligible to work in the United States
Nice to have:
Embedded Linux and Real Time Linux experience
Working knowledge of hardware-accelerated compute pipelines (GPUs, ML accelerators, DSPs, etc)
Experience with common hardware protocols such as PCIe, Ethernet, I2C, SPI, etc
Hardware bring-up and debugging, including the ability to read schematics/datasheets and use common tools