Software Engineer, Autonomy
Role details
Job location
Tech stack
Job description
We're looking for software engineers with deep expertise in software engineering and robot autonomy-including perception, localization, mapping, and planning. Help us bring our robots to life and join our mission to automate the construction industry, creating affordable, beautiful, high-quality housing for everyone.
At Monumental, we're building an operating system to enable on-site construction with robotics. Our software stack covers everything from 3D reconstruction (via photogrammetry) of construction sites, design of 3D structures, supply chain management, path planning, and inverse/forward kinematics for our robots.
Some of the challenges you might work on include:
- Designing and modeling a localization and control system for our autonomous ground vehicles to navigate construction sites
- Building obstacle detection for uneven and dynamic terrains with moving people, robots, and objects
- Developing planning and decision-making code to accomplish tasks robustly
- Implementing production-level code at the appropriate level (embedded firmware in C++, or our application layer in Rust) to bring your algorithms to life
What you'll be responsible for
- Designing and implementing localization algorithms (e.g., visual-inertial SLAM), ensuring the use of appropriate sensors and logic to determine world-space position, including sensor fusion as needed
- Designing and implementing motion planning and autonomy behaviors, both for early prototypes and production use, using C, C++, Rust, or Python (not Matlab simulations)
- Designing and building tools for debugging, analysis, and performance evaluation of your algorithms
- Applying software engineering best practices and writing production-level code
- Conducting root cause analysis and general debugging when issues arise
- Taking full ownership of projects, from idea to prototype to finished product
Requirements
- Experience implementing algorithms for localization, mapping, perception, and motion/behavior planning in real robotic systems
- Practical and theoretical knowledge in modeling, signal processing, motion planning, sensor fusion, collision avoidance, and SLAM
- Industry experience building and deploying production systems in C, C++, Python, Rust, or similar languages
- Strong software engineering skills and best practices, including version control with git, unit testing, and automated deployment
- Basic familiarity with Linux systems and conventions (e.g., comfortable SSH'ing into machines to troubleshoot issues)
- Experience in troubleshooting and root cause analysis
- Preferred: experience building prototypes in a zero-to-one environment and/or top student teams
- B.Sc. in Electrical, Mechanical, Mechatronics, Controls System Engineering, or equivalent