
Lead Staff Software Engineer, Embedded, Autonomy
Role summary
Rivian is seeking a Lead Staff Engineer to develop embedded software for its next-generation autonomy driving platform. This role involves architecting, designing, developing, and testing platform software, focusing on application development, driver development, hardware bring-up, and simulation. The engineer will lead feature development with cross-functional teams, optimize system performance, and ensure code quality through reviews. Responsibilities include mentoring junior and senior engineers, driving the technical roadmap, and contributing to team growth and hiring. A Bachelor's or Master's degree in a related field and 8+ years of experience in C/C++ and embedded software development are required.
In this position, you will be a Lead Staff Engineer developing embedded software for Rivian’s next-generation autonomy driving platform. You will architect, design, develop, and test platform software to support Rivian’s cutting-edge autonomy stack. You will lead feature development involving cross-functional teams and oversee features from concept to deployment. Focus areas will include application development, driver development, hardware bring-up, and simulation.
- Architect, design, develop, and maintain applications, drivers, and frameworks on high compute embedded platforms.
- Lead feature development involving cross-functional teams through multiple phases of the SDLC.
- Collaborate with hardware engineers to bring-up hardware and integrate software with various vehicle components and systems.
- Identify and implement optimizations to enhance system performance, memory utilization, and power efficiency.
- Participate in and conduct code reviews to maintain code quality, adherence to coding standards, and knowledge sharing within the team.
- Create and maintain comprehensive documentation for software designs, interfaces, and testing procedures.
- Develop and execute test plans to validate software functionality, safety, and reliability in compliance with automotive standards.
- Keep up with industry trends, emerging technologies, and best practices to contribute to continuous improvement within the team.
- Mentor and coach junior and senior engineers, fostering a culture of technical excellence and potentially overseeing a dedicated sub-team of embedded developers.
- Drive the technical roadmap for the Autonomy platform and assist in resource planning, hiring, and team growth strategy.
- Bachelor's or Master's degree in Electrical Engineering, Computer Engineering, Computer Science, or a related field.
- 8+ years of related work experience.
- Experience programming with C and C++ languages.
- Experience with bleeding-edge 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 PCIe.
- Proven track record of mentoring engineers or leading small-to-medium technical teams.
- Experience in project management, sprint planning, or defining engineering processes within a high-growth environment.
- 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.
- 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.
Sample Rivian and VW Group Technology interview questions
- 1
Design a distributed rate limiter.
system designmedium - 2
Build a distributed system for efficient data replication.
system designmedium - 3
Merge Overlapping Intervals Merge overlapping intervals in an array. Input: intervals = [[1,4],[4,5]] Output: [[1,5]] Explanation: The intervals touch exactly at the 4 mark, so they are successfully merged into a single continuous interval.
codingmedium - 4
Product of Array Except Self Calculate the product of an array except for self without using division. Input: nums = [-1,1,0,-3,3] Output: [0,0,9,0,0] Explanation: The single zero zeros out all products except at its own index, which cleanly multiplies the remaining elements.
codingmedium - 5
Search for a Word in a 2D Board Search for a word in a 2D board of characters. Input: board = [["C","A","A"],["A","A","A"],["B","C","D"]], word = "AAB" Output: TRUE Explanation: DFS traverses adjacent matching letters perfectly, finding "AAB" without improperly revisiting any cells.
codingmedium
Sign up for a personalized interview prep pack tailored to this role.