Embedded Software Engineer, Autonomy

Rivian Rivian · Auto · Belgrade, Serbia · Autonomous Driving

Develops embedded software for Rivian's next-generation autonomy driving platform, focusing on application development, driver development, hardware bring-up, and simulation. Requires C++ and embedded Linux experience.

What you'd actually do

  1. Design, develop, and maintain applications, drivers, and frameworks on high compute embedded platforms.
  2. Collaborate with cross-functional teams to test and integrate software into Rivian vehicles.
  3. Drive triage efforts for hardware/software issues and propose solutions.
  4. Participate in and conduct code reviews to maintain code quality, adherence to coding standards, and knowledge sharing within the team.
  5. Create and maintain comprehensive documentation for software designs, interfaces, and testing procedures.

Skills

Required

  • Bachelor's or Master's degree in Electrical Engineering, Computer Engineering, Computer Science, or a related field.
  • 1+ years of related work experience.
  • 1+ years of experience programming with C++ language.
  • Experience with embedded software development and hardware bring-up.
  • Experience developing, profiling, and optimizing code running on a multi-core embedded Linux target.
  • Experience with Linux device drivers for hardware blocks such as Camera Serial Interface (CSI), Image Signal Processor (ISP), Ethernet, I2C, SPI, UART, UFS, or
  • Experience working with embedded development tools and debuggers.
  • Experience working with version control systems (e.g., Git) and issue tracking tools.
  • Strong understanding of modern SoC architectures, operating system fundamentals, hardware/software interfaces, and abstractions.
  • Strong communication, debugging, problem-solving, and teamwork abilities.

Nice to have

  • Experience with automotive communication protocols such as CAN, UDS, and DOIP is a plus.
  • Experience with any RTOS (e.g., FreeRTOS, QNX, GreenHills, etc.) is a plus.