We are seeking a highly experienced and motivated Principal Software Architect to join our Stretch Perception teams. In this pivotal role, you will be instrumental in scaling and productionizing our critical software systems. You will be responsible for designing and optimizing the tools and infrastructure that are essential to the team's success, acting as a technical leader who empowers the team towards achieving high system performance. You will also provide mentorship to other engineers, advocating for best practices and fostering a culture of high-quality work.
Our teams are responsible for enabling the Stretch robot to understand the environment it operates in. This includes identifying objects for manipulation, recognizing obstacles to avoid, and ensuring safe interaction with the robot’s surroundings. We also develop and maintain key infrastructure that facilitates the continuous development of these advanced capabilities. Additionally, we regularly conduct on-robot testing and perform in-depth log analysis to continually enhance the performance and reliability of our products.
In this role, you will:
Develop a deep and comprehensive understanding of the team’s systems and their interdependencies.
Collaborate closely with team members to understand and prioritize key requirements and needs.
Propose, design, and implement innovative strategies to maximize the performance of real-time on-robot systems, including system architecture, tooling, infrastructure, and processes.
Design, implement, and maintain critical off-robot infrastructure, including data aggregation, log analysis, data visualization, and large-scale processing solutions.
Serve as a go-to technical leader on the team, championing software best practices and driving excellence.
Collaborate with adjacent teams (e.g., other robotic disciplines, software teams) to ensure strategic alignment.
Work closely with engineering leaders to identify and capitalize on key opportunities for innovation and growth.
We are looking for:
12+ years of experience in a software engineering role.
BS or MS in Computer Science or a closely related technical field.
Expert-level software development skills, particularly in C++, with a strong command of software architecture, design patterns, and performance optimization techniques.
Experience facilitating rapid development in complex systems, including testing.
Experience defining measurable, actionable work items (tasks, stories, epics) that are ready to delegate.
Excellent communication and collaboration skills.
An eagerness to teach and help a team grow their knowledge.
Familiarity with robotics, computer vision, point cloud processing, and/or ML perception methodologies.
Familiarity with sensor and/or compute hardware (cameras, depth cameras, GPUs) is a plus.