Woods Hole Oceanographic Institution (WHOI), a leader in advancing knowledge of the ocean, is searching for a highly motivated and enthusiastic Embedded Software Engineer to join the Scibotics Lab. This is a regular full-time, exempt position, and is eligible for full benefits.
The Scibotics Lab develops autonomous underwater vehicles (AUVs) and new capabilities with innovations in hardware and software that help scientists and society better understand the ocean. We invented the SharkCam, an AUV that locates, tracks, and films marine animals like the North Atlantic white shark. Our team strives to develop non-proprietary software that is accessible to the wider scientific community. Although our focus is on AUVs and their applications, our team works with ROVs, UAVs, biologger tags and novel sensor development such as the midwater oil sampler.
In the spring of 2023, we are opening a brand new, cutting edge robotics lab in WHOI’s newest building: The David Center for Ocean Innovation. Our team has access to cutting-edge maker space equipment, large test tanks, advanced machining, and collaborative collision spaces just to name a few.
We are seeking a highly motivated software engineer to join our team and help us develop embedded software for a series of ambitious projects: protecting the arctic from environmental damage with an AUV capable of detecting and mapping out oil spills under ice; marine megafauna following algorithms in the deep sea; benthic habitat surveys in rough terrain; obstacle avoidance in and around wind turbines; and much more. The ideal candidate will both contribute to existing ideas and technologies as well as bring their own creative ideas to our lab.
You will help the team by:
- Developing ROS (Noetic) nodes to interface with various instruments such as sonars, navigation systems, and depth sensors attached to an embedded Linux computer
- Designing autonomous navigation, perception, and mapping behaviors to allow the vehicle to respond to environmental stimuli like the presence of oil droplets or obstacles
- Developing ROS-based interfaces for AUV data and control management
- Writing and utilizing software tests, including unit tests and functional tests using tools such as Gazebo
- Building visualization and user interface software that allows users to interact with the data being passed through the ROS interfaces
- Integrating the vehicle’s computers with other hardware components such as GPS sensors, power management units, custom digital circuit boards, etc.
- Participating in at-sea expeditions as well as local field operations and testing on large and small boats
- Operating the vehicle during field deployments and testing
We value candidates who excel in multidisciplinary contexts; our ideal candidate will bring both software and electrical engineering experience, but will be prepared to step out of their comfort zone to contribute wherever challenges arise.
A successful candidate, with little supervision, works creatively and independently to establish objectives, meet deadlines, and complete difficult engineering assignments by demonstrating full competency in one or more engineering areas; assists substantively in planning technical aspects of new developments, as well as design, testing, and use of major system components. The candidate must have excellent verbal and written communication skills. We are looking for a team player who values open and frequent communication.
The ideal candidate would fit many (but not necessarily all) of the following qualifications.
- 3+ years of software development experience in Python and/or C++
- Experience developing software using ROS, LCM, or a comparable robotics middleware
- Experience working with embedded Linux systems (Raspberry Pi, etc.)
- Working knowledge of robotics system design (navigation and planning methods, sensing technologies, perception algorithms, etc.)
- Familiarity with electronics: RS-232 communication, microcontrollers, DC power distribution, acoustic transducers, sonar, oscilloscopes, CPU BIOS configuration
- Familiarity with oceanographic sensing technology such as sonar, ADCPs and IMU’s
- Experience creating graphical user interfaces (GUIs) or data visualization tools
- Experience with version control within a team software development environment.