B

Senior Software Engineer

Boston Dynamics, Inc.
Full-time
On-site
Waltham Office (POST) United States of America

As a Senior 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:

  • 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.

Required Skills:

  • 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.

Desired Skills:

  • 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.