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.
This is what you'll Need:
-
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.