Viabot is an autonomous facility maintenance company with the mission to make clean, safe spaces effortless to maintain. Headquartered in Santa Clara, CA, Viabot builds the Viabot One, a self-charging, self-emptying sweeping robot engineered to keep facilities spotless while delivering valuable operational insights on autopilot. Powered by 3D modeling and dynamic path planning, the Viabot One navigates real-world environments and adapts to changes in its surroundings in real time. Beyond sweeping, the Viabot One continuously maps and monitors facilities, tracking activity and sending intelligent alerts to keep grounds clean and secure. With maintenance-free lithium batteries enabling quiet nightly operation and the ability to recover everything from fine dust to common debris, Viabot has helped facilities across the country achieve over 3.3 billion square feet clean, all with a true set-it-and-forget-it experience. Learn more about us at https://www.viabot.com
About the Role
We are looking for a passionate and hands-on Robotics Software Engineer to join our team. You will play a key role in building and advancing the software modules that power our mobile robots, from navigation and control to sensor integration and system deployment. This is a role for someone who thrives at the intersection of software engineering and physical robotics, and who takes pride in writing code that runs reliably on real hardware in the real world.
Level and Experience
We’re hiring at multiple levels and welcome engineers with 2+ years of hands-on experience in mobile robotics, autonomous vehicles, or drones. Level and scope will be based on your experience, technical depth, and ownership.
What You’ll Do
- Contribute to the development of robotics software components under defined architecture, performance, and reliability requirements
- Work on navigation stack components, including localization, path planning, and motion control, from implementation through field validation
- Implement and integrate ROS-based solutions across the full robotics software stack
- Develop and test high-performance C++ code that runs reliably on embedded and edge hardware
- Rapidly prototype, debug, and deploy solutions on physical robots in both simulation and real-world environments
- Support sensor integration (LiDAR, camera, IMU, GPS) and participate in hardware bring-up and system-level debugging
- Define and contribute to test strategies covering unit, integration, simulation-based, and hardware-in-the-loop testing
- Collaborate closely with cross-functional teams (hardware, algorithms, QA) in an agile environment
- Contribute to code reviews, technical documentation, and design discussions
- Take increasing ownership of features from development through deployment
What You Have
- Master’s degree or higher in Computer Science, Robotics, or a related technical field, or equivalent practical experience
- 2+ years of hands-on experience working with mobile robots, AVs, and/or drones in research, product development, or field deployment
- High proficiency in modern C++ (C++11/14/17), including performance optimization, memory management, multithreading, and debugging in Linux
- Proficiency in Python for scripting, tooling, debugging, and visualization to support development and testing workflows
- Hands-on experience with ROS1 and/or ROS2, including system integration, lifecycle management, and middleware-level debugging
- Good understanding of robotics systems architecture, including sensors, actuators, and embedded hardware integration
- Experience developing or maintaining mobile robot or drone navigation systems, including localization, mapping, and path planning
- Comfortable in Linux-based environments and structured development workflows
- Ability to read, understand, and modify existing robotics codebases, and to debug, test, and optimize software on physical hardware
- Exceptional analytical, communication, and documentation skills, capable of thriving in a dynamic, cross-disciplinary engineering environment
Nice to Have
- Exposure to deep learning, particularly as applied to perception (e.g., object detection, segmentation)
- Familiarity with robotics simulation tools (Gazebo, Isaac Sim) and testing frameworks
- Knowledge of SLAM, perception, and autonomy frameworks
- Exposure to multi-modal sensor systems (wheel encoders, LiDAR, GPS/GNSS, cameras) for integration, synchronization, and validation
- Ability to work across multiple domains: software, hardware, and testing
- Understanding of control systems, kinematics, and dynamics
- Experience with embedded or edge computing platforms
- Familiarity with CI/CD pipelines, version control, and software quality standards
- Startup mindset: proactive, adaptable, and comfortable with ambiguity