Robotics Software Engineer, Autonomy
- San Francisco, CA, United States
$140,000 to $200,000 USD / year
Applications open in a new tab.
Job details
- Pay
- $140,000 to $200,000 USD / year
- Posting language
- English
Original job description
Join Us, and Ship Robots Weave was founded to build the robots we’d want to have in our own home. We believe the next generation of robotics will transform everyday life by enabling people to do more and to reclaim time to spend on what’s important. We also believe robots are in a sense like any other product: to matter, they have to ship. Our robots are already operating in real homes and businesses, giving us the opportunity to rapidly improve from real-world experience. With a growing team, strong customer demand, and capital for expansion, we’re entering an exciting stage of growth - and we’re looking for people with exceptional talent and standards to help bring home robotics to millions of households. The Role Weave is building robots that work in real customer homes. We’re looking for a software engineer with strong robotics fundamentals who enjoys developing algorithms, designing systems, and making them work on physical machines. You’ll develop software for localization, motion planning, and autonomy, with a role in the architecture that connects these capabilities. The work spans mathematical modeling, algorithm development, sensor integration, and system validation. You should enjoy making thoughtful design decisions and following an idea from its formulation through implementation and measured performance on a robot. We value strong fundamentals, practical judgment, and curiosity across disciplines. You might bring years of experience developing robotic systems, or a smaller set of substantial projects that demonstrate depth and resourcefulness. There’s room to investigate new methods and deepen your expertise, with success measured by what our robots can reliably do. What You'll Do
- Localization and state estimation: Develop algorithms that combine IMUs, cameras, wheel odometry, and other measurements to estimate robot motion and maintain reliable localization.
- Trajectory analysis and motion planning: Analyze robot trajectories and develop planning algorithms that account for geometry, kinematics, obstacles, and execution constraints.
- System architecture and validation: Make system-level decisions about computation, timing, data flow, and component responsibilities. Define metrics and validation methods to assess accuracy, latency, robustness, and overall behavior.
- AI and autonomy: Assess research in AI and robotics, evaluate emerging autonomy architectures, and integrate promising approaches where they improve robot capabilities and reliability.
- Sensors and hardware: Integrate and characterize sensors, manage calibration and synchronization, and understand how hardware limitations and environmental conditions affect algorithm performance.
- Software architecture: Design maintainable C++ and Python software, clear interfaces, and reliable communication across the robotics stack, using ROS 2 and other frameworks or custom infrastructure as appropriate.
What You'll Bring
- Hands-on robotics experience: You’ve implemented and tested algorithms on physical systems and worked through the gap between a clean formulation and imperfect hardware.
- Strong mathematical foundations: You’re comfortable with linear algebra, coordinate transformations, probability, and numerical optimization. You can reason about uncertainty, assumptions, and failure modes.
- Depth in a core robotics discipline: Substantial experience in state estimation, sensor fusion, SLAM, motion planning, trajectory optimization, or control, with an interest in learning adjacent areas.
- Algorithmic understanding: You understand the principles behind the methods you use. Relevant experience might include Kalman or particle filtering, factor graphs, bundle adjustment, graph search, constrained optimization, or model predictive control.
- Strong software engineering: Experience implementing algorithms in C++, using Python or similar tools for experimentation and analysis, and contributing to maintainable software within a team.
- Experimental judgment: You can design an informative experiment, compare results against ground truth or other meaningful references, and distinguish an algorithmic limitation from an integration or sensor problem.
- Curiosity and ownership: You’re willing to investigate unfamiliar parts of the system and carry a problem through to a tested solution.
Nice To Have
- Experience integrating multiple sensor modalities, including cameras, IMUs, wheel encoders, LiDAR, or radar.
- Experience with sensor characterization, calibration, system identification, or parameter estimation.
- Experience deploying algorithms under onboard compute, power, or latency constraints.
- Familiarity with ROS or ROS 2.
- Experience with mobile robots or mobile manipulators.
- Experience evaluating learned methods for perception, estimation, or planning.
You don’t need experience in every area listed. We’re interested in the systems you’ve built, the fundamentals you understand deeply, and how you approach problems you haven’t solved before.
More about this job
Skills
- Robotics
- Estimating
- Research
- C++
- Python
- Communication skills
- SLAM