Staff Systems Engineer - Software
Apptronik is building robots for the real world to improve human quality of life and to help solve the ever-increasing labor shortage problem. Our team has been building some of the most advanced robots on the planet for years, dating back to the DARPA Robotics Challenge. We apply our expertise across the full robotics stack to some of the most important and impactful problems our society faces, and expect our products and technology to change the world for the better. We value passion, creativity, and collaboration to help us overcome existing technological barriers in the industry to create truly innovative products.
You will join a team developing state-of-the-art general-purpose robots designed to operate in human spaces and with human tools. It is designed to work alongside humans, mobilize to human spaces, and manipulate the world around it.
Job Summary
As a Staff Systems Engineer for robot software, you play a pivotal role in the development of advanced, general-purpose robots designed to operate in human environments and work with human tools. This position demands a high degree of ownership and responsibility, driving projects across the engineering from conception to completion. You will be responsible for leading software design project efforts for general and specific use and test cases.
Essential Duties and Responsibilities
- Drive cross-functional engineering teams to design, develop and maintain scalable and reliable platform software solutions that support the deployment and operating of robotic systems.
- Lead cross-functional, multidisciplinary teams to develop software requirements, architectures, implementation schedules, and test plans for full-stack robotic systems.
- Lead and support Root Cause Analysis on complex hardware-software-control integration and operational bugs.
- Design and develop APIs, services and frameworks to allow for unique prototype robot use cases, research and development investigations as well as off nominal test scenarios.
- Troubleshoot and debug complex issues in both development and production environments, ensuring rapid prototyping and minimal downtime.
- Design and develop fault detection, diagnostics, and recovery plans to enhance system robustness and uptime.
- Support the validation team by developing segmented robot or subsystem control software to allow for efficient test execution and data collection
Skills and Requirements
Strong modern C++, OOP skills, multi-threading, and Linux application developmentExperience with container orchestration technologies (Kubernetes, Docker).Communication networking (EtherCAT, CAN)Proficiency with robotics packages (ROS, URDF, MuJoCo, Eigen, etc.)Proven experience with controls software integration, especially with hardware abstraction layers for sensors and actuatorsStrong understanding of distributed systems, microservices architecture, and API design principles.Education and / or Experience
Bachelor's degree in computer science, Engineering, or related field; master's degree in computer science or equivalent preferred.8+ years of experience in software engineering, with a focus on RTOS and software design for real-time / latency-sensitive systems.Physical Requirements
Prolonged periods of sitting at a desk and working on a computerMust be able to lift 15 pounds at timesVision to read printed materials and a computer screenHearing and speech to communicatePerks
Competitive salary w / benefitsHighly motivating equity incentive packageFlexible work hours policyProfessional development opportunitiesGenerous Paid Time Off (PTO)401k plan