Senior Embedded Software Engineer
Palo Alto, CA (100% on-site)
Duration:
initial 9-month contract
Pay:$84-89/hr
We are seeking an experienced Embedded Software Engineer to develop and support software solutions for hardware bring-up and verification of a next-generation platform in the automotive or advanced embedded systems space. This role focuses on low-level software development, hardware-software integration, and system stabilization for production readiness.
Key Responsibilities
- Design, develop, and deploy low-level embedded software and Board Support Package (BSP) components for Linux-based systems.
- Support hardware bring-up and verification using complex schematics and datasheets.
- Lead debugging, triage, and stabilization of critical interfaces, including high-speed and low-speed protocols.
- Implement security strategies to support production-grade system builds.
- Develop and maintain hardware-in-the-loop (HIL) automation frameworks to ensure readiness for production milestones.
- Collaborate with cross-functional teams to manage complex multi-repository codebases and build systems.
- Diagnose and resolve complex hardware-software integration issues with efficiency and urgency.
- Deliver high-quality, maintainable code in a fast-paced development environment.
Required Qualifications
- Bachelor’s or Master’s degree in Electrical Engineering, Computer Engineering, or a related field.
- Strong programming expertise in C/C++ for resource-constrained embedded systems.
- Extensive experience with Linux kernel development, including Device Tree (DTS) configuration and custom driver debugging.
- Hands-on experience debugging hardware interface protocols such as PCIe, I2C, SPI, UART, and Ethernet.
- Advanced proficiency in Python, including experience with Pytest for hardware validation and automation frameworks.
- Deep understanding of Linux internals, including process scheduling, memory management, concurrency, and synchronization.
- Advanced expertise in Git, including complex rebasing, cherry-picking, and multi-repository patch management.
- Experience working with complex build systems and automated image generation (e.g., Yocto, Android, or custom build frameworks).
Preferred Qualifications
- Experience with high-performance SoCs and embedded platforms (e.g., automotive or AI-focused chipsets).
- Knowledge of multi-core and multi-threaded programming in ARM-based architectures.
- Familiarity with POSIX-based operating systems such as embedded Linux, Android, or QNX.
- Strong hardware debugging skills, including use of oscilloscopes and logic analyzers.
- Understanding of virtualization, hypervisors, and secure boot or key management strategies.
- Experience with embedded toolchains, including compilers, linkers, and linker scripts.
Technical Skills Summary
Must Have
- C/C++ (embedded, performance-critical systems)
- Linux kernel development and driver debugging
- Interface protocol debugging (PCIe, I2C, SPI, UART, Ethernet)
- Python automation (Pytest, hardware interaction)
- Advanced Git (rebasing, patching, multi-repo workflows)
Nice to Have
- High-performance SoCs and embedded hardware platforms
- Yocto or Android build systems
- ARM architecture and multi-core systems
- Hardware debugging with lab equipment
...