C
Embedded Systems and BSP Engineer
Chiparama
Palo Alto · On-site Contract Yesterday
About the role
Technical Skills
Must Have:
- Languages: Expert proficiency in C and C++ for resource-constrained, performance-critical embedded systems.
- OS Internals: Deep experience with Linux kernel development, custom driver debugging, and complex Device Tree configuration.
- Protocols: Hands-on experience debugging PCIe (enumeration/stress), I2C, SPI, UART, and Ethernet.
- Automation: Advanced Python and Pytest skills, specifically for building frameworks that interface directly with hardware.
- Version Control: Non-negotiable expertise in Advanced Git (complex rebasing, cherry-picking, and patch management).
Nice To Have:
- Next-Gen Hardware: Experience with high-performance SoCs (NVIDIA Orin, Qualcomm, or custom AI silicon) and automotive-grade peripherals (PMICs, Deserializers).
- Build Tools: Familiarity with the Yocto Project or Android Build System (AOSP) for automated image generation.
- Autonomy/Infotainment Context: Experience with POSIX-based systems (QNX, Linux) and an understanding of multi-core ARM architectures.
- Hardware Debugging: Skilled in using electronic test equipment (oscilloscopes, logic analyzers) to bridge the gap between software and physical circuitry.
Responsibilities
- Use best-practices, experience, & talents to develop software solutions to support hardware bring-up and verification for a next-generation infotainment and autonomy platform.
- Design, develop, and deploy low-level embedded software and BSP components based on complex hardware schematics and datasheets for Linux-based systems.
- Lead the triage and stabilization of critical high-speed and low-speed interfaces (PCIe Gen4, I2C, Camera, Audio) while implementing security strategies for production-ready builds.
- Develop robust hardware-in-the-loop automation frameworks to ensure Start of Production (SOP) readiness.
- Collaborate across multiple disciplines to manage complex multi-repo rebases and build systems, delivering quality code and debugging complex hardware-software interface problems with a high level of efficiency and urgency.
Requirements
- Bachelor’s or Master’s degree in Electrical or Computer Engineering or related field.
- Strong C/C++ programming skills for resource-constrained embedded systems.
- Extensive experience with Linux kernel development, including Device Tree (DTS) configuration and custom driver debugging.
- Expertise in debugging and triaging interface protocols: PCIe (enumeration/stress), I2C, SPI, UART, and Ethernet.
- Advanced proficiency in Python and Pytest for building automated hardware validation frameworks.
- Advanced Git skills, including non-negotiable expertise in complex rebasing, cherry-picking, and patch management across multiple repositories.
- Deep knowledge of Linux internals (process scheduler, memory management, concurrency, synchronization, and subsystem architecture).
- Experience with complex, multi-repo build environments and automated image generation (e.g., Yocto, Android, or custom Make/CMake).
Additional Preferred Skills
- Experience with high-performance SoC platforms (e.g., NVIDIA Orin, Qualcomm) and automotive peripherals (PMICs, Deserializers).
- Knowledge of multi-threaded and multi-core programming in an ARM-based architecture.
- Experience with POSIX-based embedded systems such as QNX or Android.
- Strong electrical system debugging skills, including the use of electronic test equipment (oscilloscopes, logic analyzers) at the hardware level.
- Knowledge of hypervisors, virtualization, and secure boot/key revocation strategies.
- Experience with embedded toolchains, including compilers, linkers, and linker scripts for production-grade software.
Skills
AOSPARMCC++CMakeDevice TreeDockerEthernetGitHardwareI2CInfotainmentLinuxLinux kernelMakeNVIDIA OrinOS InternalsPCIePOSIXPMICPythonPytestQNXSPISoCUARTYocto Project
Don't send a generic resume
Paste this job description into Mimi and get a resume tailored to exactly what the hiring team is looking for.
Get started free