What are the responsibilities and job description for the Senior Staff Embedded Software Engineer position at Boston Dynamics?
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.
Day To Day Activities
Day To Day Activities
- 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.
- 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.
- 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.