About the Role
Boston Dynamics is seeking a highly motivated and experienced Software Engineer to build, maintain, and write tests for the Spot team. In this role, the Software Engineer will play a critical part in designing, developing, and delivering cutting-edge automated testing tools for advanced quadruped robots.
As a Software Engineer in Test on the Spot team, the role requires driving automation infrastructure and testing best practices not just for Spot, but across the Boston Dynamics family of robots. Initially focused on Spot, the Software Engineer will help define and create state-of-the-art automation using on-device and simulation testing on human-robot interactions and autonomy with Spot, the world’s most capable mobile robot.
A successful candidate will have:
-
A strong understanding of how modern automated testing practices fit within the end-to-end software development lifecycle
-
Experience using and understanding robotic simulation software or similar simulation software to emulate hardware in a virtual environment
-
Hands-on experience writing automation against embedded software and web user interfaces
-
Experience creating, managing, and enhancing test infrastructure within a Continuous Integration system, and experience deploying at scale against multiple repositories/branches
-
A mindset that encourages continuous improvement across people, processes and code.
-
An understanding of the role that data and metrics play in the quality space
-
Creativity and a passion for writing and maintaining code to support critical testing software that developers and test engineers will use on a daily basis.
Responsibilities will include:
-
Designing, developing, and implementing automated test infrastructure covering a wide variety of areas: firmware, simulation, VM, applications including:
-
Robot simulation test infrastructure
-
Embedded, “Hardware-in-the-Loop” test infrastructure
-
Front-end Web application test infrastructure
-
-
Writing new automated tests and managing those tests through the full lifecycle, including requirements analysis, design, implementation, deployment, and adoption.
-
Participating in code reviews and contributing to the overall quality of both the test and product codebases
-
Contributing to the creation and maintenance of technical documentation.
-
Collaborating with product software developers and DevOps to understand requirements and identify test cases
-
Staying up-to-date with the latest advancements in embedded simulation and firmware development
-
Mentoring junior engineers and sharing expertise.
Detailed Requirements:
-
A Bachelor's degree in Computer Science, Computer Engineering, Electrical Engineering, or a related field.
-
4+ years of experience as a Software Engineer in Test or a related role.
-
Expert-level proficiency in Python and shell programming and intermediate experience with Javascript, Typescript or similar web development languages. Familiarity with C++ would also be beneficial.
-
Extensive experience with git and Github to manage codebases
-
Extensive experience with build tools and Continuous Integration applications. Preferably Bazel and BuildKite, but experience with similar tools such as Make/CMake, Jenkins, Github Action, GitLab, CircleCI is acceptable.
-
Extensive experience with Python unit and integration test tools, preferably Pytest.
-
Proven experience with robotic or autonomous system simulation software, such as Gazebo, Nvidia Isaac, AWS RobotMaker, etc.
-
Experience with writing and maintaining test and related infrastructure for embedded systems
-
Excellent debugging and problem-solving skills with a strong analytical mindset.
Top Skills
What We Do
Boston Dynamics builds advanced mobile manipulation robots with remarkable mobility, dexterity perception and agility. We use sensor-based controls and computation to unlock the potential of complex mechanisms. Our world-class development teams develop prototypes for wild new concepts, do build-test-build engineering and field testing and transform successful designs into robot products. Our goal is to change your idea of what robots can do.