Rivian is pushing the boundaries of what vehicle software can do in terms of remote diagnostics and prognostics. The Reliability Diagnostics team develops innovative on-board software features that leverage sensor data to predict failures. This enables us to fulfill Rivian’s goals of simplifying vehicle care and delivering an exceptional service experience to our customers.
We are seeking an experienced Embedded Software Engineer to spearhead the development of the Vehicle Health Monitor—our in-vehicle solution for prognostics. In this role, you will be responsible for architecting and building the core of our software feature that monitors changes in the vehicle's noise and vibration signatures to detect system abnormalities. You will work with a team of top-notch engineers and scientists to build in-vehicle software features. These features enable Rivian Service to perform effective repairs and inform customers about required maintenance for vehicle safety and optimal performance.
Implement diagnostic and prognostic algorithms that uniquely monitor vehicle sensors and signals for system health in C++- Collaborate with data scientists to deploy complex data models into production-ready code to the edge within real-time embedded vehicle software
- Architect solutions that are highly efficient, ensuring minimal impact on system performance, memory, and power consumption in a resource-constrained embedded environment
- Implement data serialization formats like Protocol Buffers (Protobuf) for efficient and structured data transport
- Collaborate with cross-functional teams, including product and UI/UX design teams to define, influence, and deliver compelling service features
- Drive quality through rigorous code reviews, continuous integration/development (CI/CD), and robust test-code implementation, including functional correctness and edge cases
- Define and scope Vehicle Health monitor feature software needs for future Rivian programs
- Grow your skills with continual learning, workshops and conferences
BS/MS in Computer Science, Software Engineering, or similar- 3-5 years of professional experience building and shipping complex, production-quality embedded software
- Proficiency with Embedded C/C++
- Deep understanding of embedded Linux and RTOS fundamentals including multithreading, concurrency, and performance optimization for resource-constrained embedded systems
- Hands-on experience debugging complex systems that involve interfaces to multiple sub-systems and ECUs
- Experience with inter-process/app messaging frameworks and Protobuf-based contracts
- Knowledge of networking protocols (TCP/IP, UDP)
- Experience with code versioning and CI tools (GitLab CI, Bazel) working in multi-repo structure; ability to read/fix build failures and resolve rebase conflicts quickly
Bonus Skills
- Experience in Automotive, Aerospace or Consumer Electronics industry
- Experience with SW development in Kotlin, Java
- Experience working on vehicle communication protocols (e.g., CAN, Ethernet, UDS)
Leadership & Influence
- Ability to spearhead development with minimal supervision, deadline driven mentality to keep progress moving along a producbon schedule
- Ability to collaborate with and influence a mulbdisciplinary team that includes data scienbsts, sodware engineers, and mechanical engineers within the company as well as external partners