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.