Job Description
About The Job
Berkshire Grey is a leader in the field of AI and robotics, providing innovative solutions for e-commerce, retail replenishment, and logistics. Our technology automates complex pick, pack, and sort operations.
As a Principal Software Engineer, Manipulation on Berkshire Grey’s Scoop program, you will serve as a senior technical leader responsible for advancing the manipulation capabilities of our robotic solutions. You will define architecture, set technical direction, and develop advanced software that enables robots to interact with their environments and complete complex, real-world tasks.
You will lead work across motion planning, kinematics, control strategies, motion execution, multi-arm coordination, environment representation, simulation, and robotic hardware integration. This role requires deep technical judgment, hands-on software development, cross-functional leadership, and autonomous contribution to manipulation capabilities from concept and design through validation, production deployment, and long-term support.
This is an ideal role for a principal engineer who enjoys solving difficult robotics problems, guiding major technical decisions, mentoring other engineers, and seeing advanced manipulation software operate reliably on production systems.
Responsibilities
- Autonomously contribute to and advance the software architecture, technical strategy, and long-term roadmap for robotic manipulation capabilities on the Scoop program.
- Design, develop, deploy, and support advanced robotic manipulation software operating in production environments.
- Create high-performance software solutions for motion planning, robotic kinematics, control strategies, motion execution, multi-arm coordination, and environment representation.
- Set technical direction for manipulation systems and 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.
- Raise engineering standards for software design, performance, testing, observability, reliability, deployment, and maintainability across manipulation systems.
- 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.
Minimum Qualifications
- 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.
- Deep knowledge of system design principles, software architecture, and design patterns, with a record of evolving complex systems over time.
- Demonstrated ability to set technical direction and deliver well-designed, well-implemented, and thoroughly tested solutions that meet demanding internal and customer requirements.
- Ability to lead ambiguous or ill-defined technical problems from initial investigation through architecture, planning, implementation, deployment, and operational support.
- 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.
Preferred 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.
- Deep experience with Python’s asyncio library or similar asynchronous programming frameworks.
- 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.
6110-2610BG