logo

Robotics Software Engineer (Python/C++)

Project Description

Our mission is to save money, property, and lives by moving utilities underground. The company is developing technology to efficiently and safely bore through any geology. Our innovative technology is faster and more efficient than conventional tunneling methods, making small-diameter infrastructure economically viable.

The Robotics Software Engineer will be a part of the product development group, consisting of Robotics, Mechanical Engineering, and Manufacturing. The primary function of this role is to develop software solutions for controls, interfacing, data communication, and data logging/querying.

Responsibilities

  • Develop software for monitoring autonomous performance, perception, robotic controls and actuation for deployment on microcontrollers, SOCs, and linux/windows machines.
  • Develop user interfaces, algorithms, and communication channels for real-time performance.
  • Work with various communication protocols such as serial, TCP/IP, modbus, SPI, CAN, I2C, SBUS, etc.
  • Set up databases and develop nodes for populating databases from real-time data generated by sensors and users.
  • Create and maintain documentation for robotic systems.
  • Work within the robotics team and teams of other disciplines.
  • Develop and maintain safety-critical robotic software.

Requirements

  • Visa and availability (or able to get) to travel every 2-3 months to SF and perform in situ testing of the machine.
    Work overtime (50 hour weeks approx during those seasons)

  • B.S or M.S in Robotics, Computer Science, Mechanical Engineering, Electrical Engineering, or equivalent experience.

  • 3+ of industry experience in developing production robotics software.

  • Fundamental understanding of robotics concepts in perception, localization, planning, controls, and communication.

  • Ability to write clean, well-tested, and efficient C++ and Python3 code.

  • Strong software fundamentals such as data structures, algorithms, and object oriented programming.

  • Familiarity with Git, CI/CD pipelines, build systems, unit testing, and code reviews.

  • Experience in developing software in Linux environments.

Nice to Have

  • Prior experience in working with autonomous systems such as self-driving vehicles, drones, mobile robots, and robotic arms.

  • Familiarity with ROS or similar publisher/subscriber middleware.

  • Experience in bringing up and debugging new hardware.

  • Experience in firmware development for embedded systems.

  • Experience in developing software infrastructure tools and maintaining CI/CD pipelines.

  • Contribution to the open-source community and projects that we can review.

Have some questions about this position?

We are happy to support you and respond any questions you have.

Talk to the recruiter