Jobs · Rhode Island

Embedded Firmware Engineer

Cubit Capital · Providence, RI · Yesterday
Full-time

About the role

The Embedded Firmware Engineer (Mid-Level) position at Vatn Systems involves designing, building, and maintaining firmware for autonomous underwater vehicles (AUVs). This role requires expertise in C and C++ for embedded microcontrollers and embedded Linux platforms, as well as hands-on experience with various communication protocols and real-time constraints.

Responsibilities

  • Design, build, and maintain efficient, reliable firmware in C and C++ for embedded microcontrollers (bare-metal and RTOS).
  • Develop system-level software and services in Go, C, and C++ on embedded Linux boards.
  • Bring up new hardware: board bring-up, bootloaders, device drivers, and board support packages.
  • Implement and debug communication between subsystems over interfaces such as UART, SPI, I2C, CAN, and Ethernet.
  • Integrate sensors, actuators, and peripherals, and implement real-time control and telemetry paths.
  • Optimize firmware for performance, memory footprint, and power.
  • Collaborate with electrical, mechanical, and autonomy engineers to translate system requirements into robust embedded solutions.
  • Write and maintain unit and integration tests, and support hardware-in-the-loop testing.
  • Participate in code reviews, providing and receiving constructive feedback to improve our engineering practices.
  • Troubleshoot, debug, and upgrade existing firmware, including on-vehicle and field debugging.

Requirements

  • Required Qualifications:
    • Degree in Electrical Engineering, Computer Engineering, Computer Science, or a related technical field (or equivalent practical experience).
    • 3–5 years of professional embedded software/firmware development experience.
    • Strong proficiency in C and C++ for embedded microcontrollers (bare-metal and/or RTOS).
    • Hands-on experience developing firmware for STM32 microcontrollers (e.g., STM32CubeMX/HAL, LL drivers, or bare-metal register-level programming).
    • Experience developing on embedded Linux platforms.
    • Solid understanding of hardware/software integration: reading schematics and datasheets, and debugging with oscilloscopes, logic analyzers, and JTAG/SWD.
    • Experience with embedded communication protocols (e.g., UART, SPI, I2C, CAN, Ethernet).
    • Familiarity with real-time constraints, interrupts, DMA, and low-level memory management.
    • Experience writing firmware for power-constrained and/or resource-limited systems (battery power budgets, tight memory/timing footprints).
    • Proficiency with version control systems, specifically Git.
    • Excellent problem-solving skills and the ability to work effectively in a team environment.
    • United States Citizen or Permanent Resident.
    • Ability to gain a security clearance.
  • Nice-to-Haves:
    • Experience with cross-compilation, build systems (e.g., CMake, Make, Yocto/Buildroot), and toolchains for embedded targets.
    • Experience developing with Go.
    • Experience with serialization protocols like Protobufs, DDS, etc.
    • Familiarity with robotics middleware or modern robotics frameworks (e.g., ROS 2).
    • Experience with CI/CD pipelines for embedded software and automated hardware testing.
    • Knowledge of containerization and deployment on edge devices.
    • Experience with maritime sensors, underwater acoustics, or subsea systems.
    • Familiarity with functional safety or safety-critical software development practices.

Qualifications

  • Required Qualifications:
    • Degree in Electrical Engineering, Computer Engineering, Computer Science, or a related technical field (or equivalent practical experience).
    • 3–5 years of professional embedded software/firmware development experience.
    • Strong proficiency in C and C++ for embedded microcontrollers (bare-metal and/or RTOS).
    • Hands-on experience developing firmware for STM32 microcontrollers (e.g., STM32CubeMX/HAL, LL drivers, or bare-metal register-level programming).
    • Experience developing on embedded Linux platforms.
    • Solid understanding of hardware/software integration: reading schematics and datasheets, and debugging with oscilloscopes, logic analyzers, and JTAG/SWD.
    • Experience with embedded communication protocols (e.g., UART, SPI, I2C, CAN, Ethernet).
    • Familiarity with real-time constraints, interrupts, DMA, and low-level memory management.
    • Experience writing firmware for power-constrained and/or resource-limited systems (battery power budgets, tight memory/timing footprints).
    • Proficiency with version control systems, specifically Git.
    • Excellent problem-solving skills and the ability to work effectively in a team environment.
    • United States Citizen or Permanent Resident.
    • Ability to gain a security clearance.

Similar jobs