Job Title: Embedded BSP Software Engineer
Location: Portland, OR
Job Type: Full-Time
Job Summary
We are seeking an experienced BSP (Board Support Package) / Kernel / QNX Software Engineer to develop, integrate, debug, and optimize embedded software platforms. The ideal candidate will have strong experience in Linux Kernel, device drivers, board bring-up, QNX, embedded C/C++, and system-level debugging.
Key Responsibilities
- Develop, debug, test, and maintain Linux Kernel and device drivers.
- Perform hands-on board bring-up, hardware/software integration, and system debugging.
- Develop and optimize embedded software for performance, memory usage, and system stability.
- Develop software using C/C++, Python, and scripting languages.
- Work with communication protocols including UART, SPI, I2C, Ethernet, and USB.
- Understand and support boot processes, boot flows, OS development, system updates, and security mechanisms.
- Work with hypervisors and virtualization technologies, including QNX Hypervisor.
- Develop and maintain test automation for embedded software and BSP validation.
- Troubleshoot complex system-level issues across hardware, firmware, kernel, and applications.
- Support Agile development, DevOps practices, and CI/CD pipelines.
- Collaborate with hardware, firmware, systems, and application software teams.
- Document technical issues, solutions, test results, and development activities.
Required Qualifications
- Strong experience with Linux Kernel and device driver development.
- Hands-on experience with embedded board bring-up.
- Strong programming skills in C/C++ and Python.
- Experience with system performance and memory optimization.
- Good understanding of UART, SPI, I2C, Ethernet, and USB.
- Understanding of embedded operating systems, security protocols, and software update mechanisms.
- Knowledge of bootloaders, boot processes, and system initialization.
- Understanding of hypervisors and virtualization.
- Experience with embedded software testing and test automation.
- Familiarity with Agile, DevOps, and CI/CD environments.
- Strong communication, problem-solving, and organizational skills.
Preferred Qualifications
- 10+ years of embedded software development experience.
- Experience with QNX / QNX Hypervisor.
- Experience with automotive infotainment systems.
- Knowledge of TCP/IP, HTTP, and HTTPS.
- Experience with Bluetooth and Wi-Fi technologies.Familiarity with satellite connectivity solutions.
- Experience working with complex embedded platforms and production systems.
Education
- Bachelor's or Master's degree in Computer Science, Electrical Engineering, Computer Engineering, or a related field.