As a Sr. Embedded Software Engineer, you will be a technical leader in the development of next-generation charging products. You will architect and implement full-stack embedded Linux solutions—from low-level BSP and kernel drivers to scalable Yocto distributions and automated CI/CD pipelines. By bridging the gap between hardware enablement and secure cloud-ready applications, you will ensure our platforms are highly automated, secure, and optimized for large-scale manufacturing.
1. Core Platform & BSP Architecture
• Define the full lifecycle of BSP development, including bootloader (U-Boot/Barebox) customization and Linux kernel tuning for ARM architectures.
• Work directly with hardware engineers to perform initial board bring-up, debugging signal integrity and power management using oscilloscopes and logic analyzers.
• Develop and maintain high-performance kernel drivers and customize Device Trees to support proprietary hardware peripherals.
• Define the full lifecycle of BSP development, including bootloader (U-Boot/Barebox) customization and Linux kernel tuning for ARM architectures.
• Work directly with hardware engineers to perform initial board bring-up, debugging signal integrity and power management using oscilloscopes and logic analyzers.
• Develop and maintain high-performance kernel drivers and customize Device Trees to support proprietary hardware peripherals.
2. Yocto & Build System Leadership
• Architect modular, scalable Yocto/OpenEmbedded layers that support multiple hardware variants from a single codebase.
• Implement advanced Bitbake techniques (shared state caches, PR servers) to reduce build times and ensure reproducible releases.
• Build and distribute cross-compilation toolchains and QEMU environments to enable "hardware- less" application development.
• Architect modular, scalable Yocto/OpenEmbedded layers that support multiple hardware variants from a single codebase.
• Implement advanced Bitbake techniques (shared state caches, PR servers) to reduce build times and ensure reproducible releases.
• Build and distribute cross-compilation toolchains and QEMU environments to enable "hardware- less" application development.
3. Automation First DevOps & CI/CD
• Design and maintain CI/CD pipelines (GitLab/GitHub Actions) that automate image generation and license compliance checks.
• Architect automated testing rigs that flash builds onto physical hardware and run functional tests (LAVA/Pytest) without human intervention.
• Develop software for contract manufacturers used in factory provisioning, unique device identification, and automated end-of-line functional testing.
• Design and maintain CI/CD pipelines (GitLab/GitHub Actions) that automate image generation and license compliance checks.
• Architect automated testing rigs that flash builds onto physical hardware and run functional tests (LAVA/Pytest) without human intervention.
• Develop software for contract manufacturers used in factory provisioning, unique device identification, and automated end-of-line functional testing.
4. Security & Lifecycle Management
• Implement a Chain of Trust using NXP HAB or TI Secure Boot, alongside encrypted filesystems and OP-TEE.
• Design and manage fail-safe, A/B partitioned update systems (e.g., Mender, RAUC) to ensure maximum uptime for field devices.
• Automate the generation of Software Bill of Materials (SBOM) to ensure audit-ready documentation and security tracking.
• Implement a Chain of Trust using NXP HAB or TI Secure Boot, alongside encrypted filesystems and OP-TEE.
• Design and manage fail-safe, A/B partitioned update systems (e.g., Mender, RAUC) to ensure maximum uptime for field devices.
• Automate the generation of Software Bill of Materials (SBOM) to ensure audit-ready documentation and security tracking.
5. Systems & Application Programming
• Develop high-performance middleware and system services in C/C++ that interface directly with hardware.
• Bridge the gap between low-level drivers and high-level applications, ensuring efficient data flow and resource management.
• Develop high-performance middleware and system services in C/C++ that interface directly with hardware.
• Bridge the gap between low-level drivers and high-level applications, ensuring efficient data flow and resource management.
• Optimize root filesystems and boot times to meet sub-second "Time-to-First-Frame" requirements.
6. Design for Manufacturing & Provisioning
• Architect the "First-Boot" process and develop automated tools for MAC address assignment, serial number injection, and hardware verification.
• Collaborate with hardware designers to ensure test points and debug interfaces are accessible for automated test fixtures (JTAG/Bed-of-Nails).
• Implement automated injection of unique device identities (X.509 certificates) and secure keys during the manufacturing flow.
• Architect the "First-Boot" process and develop automated tools for MAC address assignment, serial number injection, and hardware verification.
• Collaborate with hardware designers to ensure test points and debug interfaces are accessible for automated test fixtures (JTAG/Bed-of-Nails).
• Implement automated injection of unique device identities (X.509 certificates) and secure keys during the manufacturing flow.
Essential Qualifications
• BS or MS in Computer Science, Computer Engineering, Electrical Engineering or a related field.
• 4+ years of industry experience developing C/C++ based applications on embedded Linux.
• 2+ years of experience with build tools such as Make and CMake.
• Strong scripting and automation skills using languages such as Bash or Python.
• Deep experience in microcontroller development with a native understanding of I2C, SPI, UART, and SDIO.
• Experience with implementing CI/CD pipelines using tools like GitLab CI, GitHub Actions, etc.
• A proven passion for low-level Linux development and a "CLI-first" mindset.
• The stamina to navigate 6,000+ page SoC reference manuals without hesitation.
• A genuine curiosity and a track record of being a lifelong learner.
• BS or MS in Computer Science, Computer Engineering, Electrical Engineering or a related field.
• 4+ years of industry experience developing C/C++ based applications on embedded Linux.
• 2+ years of experience with build tools such as Make and CMake.
• Strong scripting and automation skills using languages such as Bash or Python.
• Deep experience in microcontroller development with a native understanding of I2C, SPI, UART, and SDIO.
• Experience with implementing CI/CD pipelines using tools like GitLab CI, GitHub Actions, etc.
• A proven passion for low-level Linux development and a "CLI-first" mindset.
• The stamina to navigate 6,000+ page SoC reference manuals without hesitation.
• A genuine curiosity and a track record of being a lifelong learner.
Desired Qualifications
• Experience with Buildroot and/or Yocto-based build systems for embedded devices.
• Experience in kernel driver development
• Hands-on experience with containerization technologies like Docker.
• Experience with web-based communication protocols, especially gRPC and WebSockets.
• Experience working with CAN and Modbus communication interfaces.
• Experience with Agile development methodologies and using tracking tools like Jira and JAMA
• Experience with designing software to meet functional safety e.g., UL1998, UL5500, etc.
• Experience with Buildroot and/or Yocto-based build systems for embedded devices.
• Experience in kernel driver development
• Hands-on experience with containerization technologies like Docker.
• Experience with web-based communication protocols, especially gRPC and WebSockets.
• Experience working with CAN and Modbus communication interfaces.
• Experience with Agile development methodologies and using tracking tools like Jira and JAMA
• Experience with designing software to meet functional safety e.g., UL1998, UL5500, etc.
THIS IS WHERE YOU’LL WORK:
Department: Charging & Energy
Location: California (Torrance, Irvine, Palo Alto)
Salary Range for Southern California Based Candidates: $135,100.00 - $168,900.00 (actual compensation will be determined based on experience, location, and other factors permitted by law). Salary Range for Northern California Based Candidates: $146,900.00 - $183,600.00 (actual compensation will be determined based on experience, location, and other factors permitted by law). Benefits Summary: Rivian provides robust medical/Rx, dental and vision insurance packages for full-time and part-time employees, their spouse or domestic partner, and children up to age 26. Full Time Employee coverage is effective on the first day of employment. Part-Time employee coverage is effective the first of the month following 90 days of employment.