Embedded Autonomous Software Engineer

Open Ocean Robotics

Open Ocean Robotics

Software Engineering
Victoria, BC, Canada
Posted on Thursday, July 27, 2023

Operating on the oceans around the world from Victoria BC, Open Ocean Robotics is a rapidly growing start-up transforming how we understand our oceans through better data. We are leaders in solar-powered autonomous vehicles, also called Uncrewed Surface Vehicles (USVs), that voyage across a wide variety of challenging ocean environments.

We’re driven by a pioneering spirit to push boundaries and make the seemingly impossible, possible. Together, we can achieve that goal, growing our team of highly skilled people and offering you the opportunity to tackle big challenges with solutions that make a difference.

Are you passionate about the oceans, data collection, embedded technology, machine learning, and robots? Are you skilled at building, debugging, and testing embedded code? If so, we would love to hear from you.

The successful candidate will work closely with other members of the vessel software team, as well as electrical/mechanical engineers and cloud software developers to understand requirements, write C++ and/or Rust code, unit tests, and build systems to automatically deploy code to USVs.

We are an equal opportunity employer and are committed to a diverse and inclusive workforce. We encourage applicants who reflect diversity in thinking and background as we continue to develop our culture of inclusiveness for all.

We are seeking an innovative and creative Senior Autonomous Systems Software Engineer to be part of our team; someone who is passionate about creating high quality, robust software for autonomous robots, creating systems to manage software updates and writing test automation to validate the end to end. You are an experienced software engineer with a love of the ocean, robotics, or both. Your job will involve designing, developing, testing, and monitoring onboard C3 (Command, control, and communications) for our USV, DataXplorer.

Starting with the various onboard systems such as navigation, data collection, or telemetry management, this role could evolve into supporting our data analytics platform and services.

Any experience with unmanned systems such as UAV, USV or other autonomous vehicles would be considered a asset for your application.

In this role you will:

  • Perform all phases of development lifecycle including requirements definition, software/systems architecture, implementation, testing, and integration.
  • Attend, contribute and sometimes drive software design architecture meetings.
  • Learn the codebase to advance the DataXplorer USV platform or fix bugs while improving your coding skills in C++ and Rust.
  • Write, maintain and debug code for onboard USV software systems and/or deployment pipelines.
  • Monitor the technical performance of internal systems.
  • Contribute to technical support for our vessel operations team.
  • Help drive the technical architecture and tooling that enables the vessel to operate.

As our ideal candidate you will have:

  • 7+ years’ experience as an embedded software developer in C, C++ and/or Rust as a critical team member.
  • Strong familiarity with hub and spoke software architecture
  • Good verbal and written communication skills.
  • Strong analytical and troubleshooting skills, technical aptitude, attention to detail with a can-do self-starting attitude.
  • Ability to understand and translate business requirements to technical specifications.
  • Knowledge of industry standard best practices and willingness to follow them, as related to embedded software development.
  • Experience working in a fast-paced agile environment.
  • Working knowledge of control theory, sensor integration and electronics is an asset.
  • Experience with Linux based systems with aarch64 Linux.
  • Experience with testing frameworks, e.g. Google Test, Google Mock.
  • Familiarity with pub/sub socket-based message queuing infrastructures.
  • Familiarity with communication protocols, UART, I2C, SPI, CAN Bus etc...
  • Familiarity with networking concepts: TCP/IP, UDP, DHCP, DNS, Linux network configuration.
  • Familiarity with authentication and authorization fundamentals, e.g. certificate authentication, basic authentication, key-pair authentication.
  • Experience with relational and no-SQL data stores is an asset, e.g. Redis, Elastic Search, Postgres.
  • Bonus: Background and understanding of unmanned systems such as UAV, USV or other autonomous vehicles.
  • Bonus: Familiarity with communication systems such as Cellular networks, and Iridium Certus

This is a position based in Victoria, BC. Open Ocean Robotics does not sponsor work visas.