Rivian is on a mission to keep the world adventurous forever. This goes for the emissions-free Electric Adventure Vehicles we build, and the curious, courageous souls we seek to attract.
As a company, we constantly challenge what’s possible, never simply accepting what has always been done. We reframe old problems, seek new solutions and operate comfortably in areas that are unknown. Our backgrounds are diverse, but our team shares a love of the outdoors and a desire to protect it for future generations.
We operate development centers in Plymouth, Michigan; Southern California (Irvine, Carson & LA); Silicon Valley (San Jose and Palo Alto); Vancouver, British Columbia; and Surrey, England; as well as a manufacturing facility in Normal, Illinois.
The well qualified candidate will be responsible for the specification, design, implementation and testing of various software components for power electronics and support ECUs. Designing for these ECUs will require proficiency in various embedded architectures from bare metal to FPGA. Typical component examples involve complex PWM, A/D, D/A, resolver interface/processing, low latency discrete board-to-board communication, complex timer applications for waveform generation/control and all associated test, diagnostics and validation. This position will require a deep understanding of modern multi-core 32-bit embedded controller peripherals and architecture, as well as state of the art FPGA devices. HAL development will require design of elegant API layers for bare-metal, RTOS and FPGA implementations.
- Design and support bare-metal, RTOS and FPGA implementations for EPC applications
- Design and support embedded FPGA components and interface/driver software
- Create elegant/efficient real time software components and interfaces
- Proficiency and experience in C coding and best practices
- Proficiency and experience in Verilog or VHDL. Experience with IDEs, such as Quartus is desirable
- Knowledge in Python, scripting, build and test software/tools
- Develop software component test cases to ensure maturity/stability
- Work with hardware at a bench and HIL level to guarantee software operation
- Design with ISO-26262 awareness, for compliance and support
- Document requirements, software design and test procedures/results
- Guide and mentor junior team members to support in-house team growth
- Expert fluency in state-of-the-art embedded software practices using the C programming language
- Expert fluency of FPGA Verilog or VHDL and development tools. Soft core implementation experience preferred
- Knowledge and experience with testbenches for FPGA verification
- Knowledge of communication protocols such as CAN, SPI and LIN
- Experience/proficiency with Jira, Jama, SharePoint
- Experience/proficiency with embedded debugging tools such as PLS/ UAD, Lauterbach, Quartus or similar
- Experience/proficiency with communication tools such as Wireshark, CANalyzer, CANoe or VSpy, Peak-CAN
- Proficiency in version control software processes and techniques (GitFlow)
- Ability to optimize build/test flow using scripting languages such as Python/Unix shell
- Strong background in software component design and testing
- Knowledge of ISO-26262 practices
- A college degree in an applicable engineering field
Rivian is an equal opportunity employer and complies with all applicable federal, state, and local fair employment practices laws. All qualified applicants will receive consideration for employment without regard to race, color, religion, national origin, ancestry, sex, sexual orientation, gender, gender expression, gender identity, genetic information or characteristics, physical or mental disability, marital/domestic partner status, age, military/veteran status, medical condition, or any other characteristic protected by law.
Rivian is committed to ensuring that our hiring process is accessible for persons with disabilities. If you have a disability or limitation, such as those covered by the Americans with Disabilities Act, that requires accommodations to assist you in the search and application process, please email us at email@example.com.
We take your privacy seriously. For details please see our Candidate Privacy Notice.