Principal Software Engineer, Manipulation
Berkshire Grey · Bedford, MA · 3 wk ago
On-siteEngineeringFull-time
Responsibilities
- Autonomously contribute to and advance the software architecture, technical strategy, and long-term roadmap for robotic manipulation capabilities on the Scoop program.
- Create high-performance software solutions for motion planning, robotic kinematics, control strategies, motion execution, multi-arm coordination, and environment representation.
- Lead complex engineering efforts from requirements and design through implementation, validation, deployment, and operational support.
- Architect and evolve simulation environments, automated tests, and hardware-in-the-loop workflows to validate expected, safe, and robust manipulation performance.
- Lead the diagnosis and resolution of complex issues spanning manipulation software, robotic hardware, controls, sensors, distributed systems, and system behavior.
- Work closely with hardware engineers, controls and perception engineers, product managers, systems engineers, test engineers, and other software teams to integrate manipulation capabilities into broader robotic systems.
- Drive architecture discussions, design reviews, code reviews, technical planning, and major engineering decisions while documenting tradeoffs and ensuring durable outcomes.
- Provide technical leadership and mentorship to senior and developing engineers, strengthening technical judgment and execution across the team.
- Clearly and proactively communicate technical strategy, priorities, progress, tradeoffs, dependencies, and risks to engineering leaders and cross-functional stakeholders.
Requirements
- Bachelor’s degree in Robotics, Computer Science, or a closely related field with 10+ years of professional software development experience in production environments; or a master’s degree with 8+ years of experience.
- Expert-level development skills in Python and strong programming experience in C++.
- Deep understanding of parallel and distributed systems and asynchronous or concurrent programming.
- Extensive experience designing and implementing production software and algorithms for motion planning, motion execution, multi-arm coordination, robotic kinematics, control strategies, and/or environment representation.
- Experience architecting and developing RESTful interfaces, gRPC services and clients, and other reliable communication interfaces for distributed robotic systems.
- Advanced experience with Git-based development workflows, code reviews, issue tracking systems such as Jira, and automated testing, including unit, integration, simulation, and hardware-in-the-loop testing.
- Proven ability to influence multidisciplinary teams, communicate effectively with technical and non-technical stakeholders, and mentor engineers across experience levels.
Qualifications
- Master’s or doctoral degree in Robotics, Computer Science, or a closely related field.
- 12+ years of software development experience in production environments, including significant technical leadership in robotic manipulation systems.
- Advanced experience with ROS or ROS2 architecture, integration, performance analysis, and production deployment.
- Experience leading the development and integration of drivers and software interfaces for robotic hardware, particularly robotic arms.
- Experience establishing robotics simulation tools, test environments, and validation strategies for complex manipulation capabilities.
- Deep experience developing, debugging, and operating production software in the Linux ecosystem, preferably Ubuntu.
- Experience architecting data models and services using NoSQL databases such as MongoDB.
- Experience taking manipulation capabilities from research or prototype stages through robust deployment in real-world customer environments.