Rivian is looking to develop firmware and controls for power conversion systems, including vehicle and energy products, and needs a candidate to support the full software development lifecycle for power electronics and support ECUs.
Requirements
- Fluency in state-of-the-art embedded software practices using the C programming language
- Proficiency in version control software processes and techniques (GitFlow, GitLab)
- Ability to write testing scripts for using scripting languages (Python)
- Knowledge of software build procedures and the ability to maintain build scripts (SCons preferred, CMake, Makefile)
- Strong background in real-time software component design and testing
- Proficiency in a variety of embedded architectures, from bare metal to RTOS implementations
- Deep understanding of modern multi-core 32-bit embedded controller peripherals and architecture
Responsibilities
- Specification, design, implementation, and testing of both bare metal and RTOS low-level software for power electronics applications
- Work with/resolve ambiguity in requirements/specifications/designs
- Design and specify interfaces between application software and firmware
- Design, develop, implement, and test multicore interfaces and applications
- Develop multicore, timing critical software architectures
- Create elegant, efficient real time software components and interfaces
- Develop software component testing methodologies and implementations to ensure maturity/stability/release readiness
Other
- At least a bachelor’s degree in computer engineering, electrical engineering or computer science. Master’s degree preferred
- 3+ years of software development experience with real-time embedded C systems
- Ability to work with hardware and debuggers at a bench and HIL level to verify software operation
- Ability to document requirements, software design and test procedures and results
- Must be eligible to work in the United States