Embedded Software Engineer

Ulysses

San Francisco (CA)

On-site

USD 120,000 - 180,000

Full time

14 days+

Get more replies from employers

Send a job-specific resume in minutes.

Job summary

Ulysses seeks an Embedded Systems Engineer to own firmware, electronics integration, and low‑level hardware for autonomous underwater and surface systems. You will author embedded code for sensor drivers, control loops, communication stacks, and power management, while debugging boards and contributing to PCB design.

You will collaborate across electrical, mechanical, and acoustics teams to bring up new boards, diagnose faults, and ship embedded platforms that support autonomy and navigation

Qualifications

  • 2+ years of professional embedded software development in C and/or C++ on bare-metal or RTOS-based systems.
  • Strong understanding of microcontroller peripherals, memory maps, clocks, DMA, and interrupt controllers.
  • Experience writing production-quality device drivers for UART, CAN, Ethernet, or similar interfaces.
  • Hands-on hardware bring-up: reading schematics, using scopes/logic analyzers, and debugging at the board level.
  • Familiarity with real-time operating systems (FreeRTOS, Zephyr, NuttX, or similar).
  • Experience with version control (Git) and CI/CD for embedded targets.

Responsibilities

  • Prototype embedded hardware from modules and custom PCBs; wire up prototypes and validate subsystems on the bench before production.
  • Debug and rework PCBs using oscilloscopes, logic analyzers, and multimeters to resolve signal integrity and power issues.
  • Collaborate with electrical engineers on schematic capture, component selection, and layout reviews; contribute to DFx input.
  • Design, implement, and maintain embedded firmware for sensors, actuators, and power management.
  • Bring up new hardware; write and debug BSPs, drivers, and bootloaders for custom electronics.
  • Build and own communication stacks (Serial, Ethernet, CAN, acoustic interfaces) for real-time subsystems.
  • Develop real-time control and data acquisition: timing loops, interrupts, DMA, RTOS scheduling.
  • Develop robust logging, diagnostics, and fault handling for deep-ocean operations.
  • Support field deployments: ocean testing, mission monitoring, post-mission triage.
  • Drive production readiness: firmware updates, manufacturing tests, calibration routines.
  • Review and improve AI-generated embedded software for robustness and safety.
  • Create modular internal libraries portable across MCUs.

Skills

C/C++
Embedded systems
Bare-metal/RTOS
MCU architectures
Device drivers
UART/CAN/Ethernet
RTOS experience
Git/CI/CD
Hardware bring-up
Python scripting

Tools

Oscilloscopes
Logic analyzers
Debuggers
Soldering
PCB design basics

Job description

About us

Ulysses is the ocean company. We design, manufacture, and operate autonomous vehicles for surface and subsea operations — taking on the most critical tasks across defense, commercial, and scientific missions. Our vertically integrated platform includes Mako, a modular AUV with 72-hour endurance and more onboard compute than any vehicle in its class; Leviathan, an autonomous surface vessel mothership; and Kraken, our automated launch-and-recovery system that closes the loop between surface and subsea with zero human intervention.

The ocean covers 71% of the Earth's surface and drives a $2.6 trillion global economy, yet it remains the least monitored domain on the planet. We're changing that — building autonomous systems that collapse the cost of ocean operations by orders of magnitude so that persistent coverage becomes the baseline, not the exception. We operate globally today across defense, ocean science, and commercial survey, working with partners including the U.S. Navy, the Government of Australia, the Great Barrier Reef Foundation, and The Nature Conservancy.

Founded in 2023 and headquartered in San Francisco, Ulysses has raised $48 million in funding from Andreessen Horowitz, Booz Allen Ventures, Harpoon Ventures, Pebblebed, Lowercarbon Capital, and others. Our team is lean, hands‑on, and fast — we prototype in the shop, test on the water, and ship. If you want to work at the frontier, there's no frontier bigger than the ocean.

About the Role

We're looking for an Embedded Systems Engineer to own the firmware, electronics integration, and low‑level hardware that make our underwater robotic systems work. You'll write the embedded code that runs on our hardware - sensor drivers, real‑time control loops, communication stacks, and power management - while also getting hands‑on with the electronics: debugging and reworking PCBs, building up embedded systems from modules and development boards, and contributing to PCB design for new subsystems.

This is a deeply hands‑on role that lives at the boundary between electronics and software. You'll work directly with electrical, mechanical, and acoustics engineers to bring up new boards, probe signals, diagnose hardware faults, and build the embedded platforms that our autonomy and navigation software depends on. You'll see your work go from bare PCBs on a bench to ocean deployment, and you'll be the person debugging it, scope in one hand, debugger in the other, at every stage.

What You’ll Do
  • Prototype embedded hardware: Assemble embedded systems prototypes from off‑the‑shelf modules, breakout boards, and Ulysses’ custom PCBs. Select components, wire up prototypes, and get new subsystems running on the bench before they go into production.

  • Debug and rework PCBs: Use oscilloscopes, logic analyzers, multimeters, and soldering tools to diagnose board‑level issues - signal integrity problems, power rail faults, incorrect component values, and layout mistakes.

  • Contribute to PCB design: Collaborate with electrical engineers on schematic capture, component selection, pin mapping, and layout review. Provide firmware‑informed input on design‑for‑test, connector placement, and debug access.

  • Design, implement, and maintain embedded firmware for robotic subsystems: sensor interfaces, actuator control, power management, and inter‑processor communication.

  • Bring up new hardware: Write and debug board support packages, peripheral drivers, and bootloaders for custom electronics.

  • Build and own communication stacks: Serial protocols, Ethernet, CAN bus, and acoustic modem interfaces that connect subsystems reliably in real time.

  • Implement real‑time control and data acquisition: Timing‑critical loops, interrupt‑driven architectures, DMA pipelines, RTOS, and deterministic scheduling.

  • Develop robust logging, diagnostics, and fault‑handling: The system needs to tell you what went wrong when it's 200 meters underwater and you can't attach a debugger.

  • Support field deployments: Prepare embedded systems for ocean testing, support real‑time monitoring during missions, and lead post‑mission hardware and software triage.

  • Drive production readiness: Firmware update mechanisms, manufacturing test fixtures, calibration routines, and configuration management for fleet deployment.

  • Verify AI written software: Review and update and correct embedded software written initially by AI, and ensure the software is robust, memory safe, and production ready.

  • Create and maintain internal software libraries: Design portable, and modular code that can easily be ported to new projects and microcontrollers.

About You

You think in registers and interrupts, but you’re just as comfortable picking up a soldering iron or probing hardware with a scope. You can read a schematic, spot and fix a hardware error on a PCB, and write the necessary software drivers to bring boards to life. You’ve shipped embedded systems that ran in the real world, and you understand that reliable hardware and reliable firmware are largely the same problem.

Requirements
  • 2+ years of professional embedded software development in C and/or C++ on bare‑metal or RTOS‑based systems

  • Strong understanding of microcontroller architectures: peripherals, memory maps, clocks, DMA, interrupt controllers

  • You understand microcontroller software architecture better than AI, and are comfortable reviewing and correcting such software.

  • Experience writing production‑quality device drivers for common interfaces: UART, CAN, Ethernet, ADC/DAC

  • Hands‑on experience with hardware bring‑up: reading schematics, using oscilloscopes, logic analyzers, and debuggers to diagnose issues at the board level

  • Familiarity with real‑time operating systems (FreeRTOS, Zephyr, NuttX, or similar) and real‑time design patterns

  • Familiarity with embedded software standards (MISRA C, BARR‑C etc.)

  • Practical experience with communication protocol stacks such as CAN, Ethernet/UDP, or similar

  • Comfortable with version control (Git), CI/CD for embedded targets, and automated test frameworks

  • Ability to work across the hardware/software boundary and communicate effectively with electrical and mechanical engineers

Nice‑to‑Haves
  • Experience with PCB design (schematic capture and layout) for simple to moderately complex boards

  • Familiarity with robotic or autonomous system architectures, sensor fusion pipelines, or navigation system interfaces

  • Experience with underwater or marine systems, and harsh‑environment deployments

  • Background in signal processing or DSP on embedded platforms (filtering, FFT, fusion)

  • Experience with Python for test automation, scripting, and data analysis alongside your embedded C/C++ work

  • Exposure to FPGA or HDL design for high‑speed data acquisition or signal processing

  • Experience building firmware update (OTA/bootloader) and fleet management infrastructure

  • Experience with discrete control systems, stability analysis, PID controller, state‑space control etc.

Get your free, confidential resume review.
or drag and drop your file here.
Similar jobs

Similar jobs worth comparing

Electronics Engineer
Electronics Engineer

Ulysses • San Francisco (CA)

On-site
USD 120,000 - 190,000
Software Engineer
Software Engineer

Ulysses • San Francisco (CA)

On-site
USD 140,000 - 210,000
Technical Operations
Technical Operations

Ulysses • San Francisco (CA)

On-site
USD 110,000 - 170,000
Electronics Technician
Electronics Technician

S27a • San Francisco (CA)

On-site
USD 80,000 - 110,000
Embedded Systems Engineer, Autonomous Ocean Robots
Embedded Systems Engineer, Autonomous Ocean Robots

Ulysses • San Francisco (CA)

On-site
USD 120,000 - 180,000
Subsea Acoustics Engineer
Subsea Acoustics Engineer

Ulysses • San Francisco (CA)

On-site
USD 150,000 - 210,000
Robotics Engineer
Robotics Engineer

EVONA • Boston (MA)

On-site
USD 140,000 - 180,000
Embedded Firmware Engineer
Embedded Firmware Engineer

Socket.dev • Bristol (RI)

On-site
USD 110,000 - 150,000
Mechanical Engineer
Mechanical Engineer

Ulysses • San Francisco (CA)

On-site
USD 120,000 - 180,000
Senior Embedded Software Engineer, Maritime
Senior Embedded Software Engineer, Maritime

Anduril Industries • Costa Mesa (CA)

On-site
USD 100,000 - 120,000