Embedded Firmware Engineer
Cubit Capital · Bristol, RI · Yesterday
Full-time
About the role
The Embedded Firmware Engineer (Mid-Level) position at Vatn Systems is for a proactive engineer who designs, develops, and maintains firmware for the company's autonomous underwater vehicles (AUVs).
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.
- Able 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:
- Education: Bachelor's degree in Electrical Engineering, Computer Engineering, Computer Science, or a related technical field.
- Experience: 3-5 years of professional embedded software/firmware development experience.
- Programming Languages: Proficient in C and C++ for embedded microcontrollers (bare-metal and/or RTOS).
- Hardware Development: Hands-on experience with STM32 microcontrollers, embedded Linux platforms, and embedded communication protocols.
- Software Development: Solid understanding of hardware/software integration, real-time constraints, interrupts, DMA, and low-level memory management.
- Power Management: Experience with power-constrained and resource-limited systems.
- Version Control: Proficiency with Git.
- Problem Solving: Excellent problem-solving skills and ability to work effectively in a team environment.
- Security Clearance: United States Citizen or Permanent Resident.
- Nice-to-Haves:
- Additional Languages: Experience with Go, serialization protocols, robotics middleware, CI/CD pipelines, containerization, and edge devices.
- Functional Safety: Familiarity with functional safety or safety-critical software development practices.