Location: Portland, OR
Job Type: Full-Time
Experience: 5–10+ Years
Job Summary
We are seeking an experienced Embedded QNX / Android Developer with strong hands-on expertise in C/C++, QNX, Linux, and Android/Android Automotive development. The candidate will be responsible for developing, integrating, debugging, and optimizing platform software for embedded and automotive systems.
The ideal candidate should have strong experience in low-level embedded development, QNX services, Android framework/native development, middleware, IPC, device interfaces, and system-level debugging.
Key Responsibilities
- Develop and maintain embedded software applications and platform components using C/C++.
- Develop software components for QNX Neutrino RTOS and embedded Linux platforms.
- Develop and integrate software for Android / Android Automotive OS (AAOS).
- Develop QNX services, processes, resource managers, and IPC mechanisms.
- Develop Android native components, system services, and platform-level functionality.
- Work with Android HAL, AIDL/HIDL, JNI, Android Framework, and native Android services.
- Develop and integrate middleware and hardware abstraction layers.
- Develop and integrate device drivers and low-level software interfaces.
- Implement and troubleshoot inter-process communication, multithreading, synchronization, and real-time software.
- Integrate software with embedded hardware and automotive ECUs/SoCs.
- Work with communication protocols such as CAN, Ethernet, TCP/IP, UART, SPI, I2C, and USB.
- Debug issues using GDB, QNX Momentics, ADB, logcat, core dumps, system traces, and debugging tools.
- Perform root-cause analysis of software crashes, memory issues, performance problems, and system integration defects.
- Optimize software for CPU, memory, boot time, reliability, and performance.
- Collaborate with BSP, hardware, systems, application, and validation teams.
- Participate in code reviews, design discussions, technical documentation, and software integration activities.
- Work with Git, CMake/Make, Jenkins, and CI/CD environments.
Required Skills
- 5+ years of hands-on embedded software development experience.
- Strong programming skills in C and C++.
- Strong hands-on experience with QNX / QNX Neutrino.
- Strong experience with Linux embedded development.
- Hands-on experience with Android or Android Automotive (AAOS).
- Experience with Android Framework, HAL, AIDL/HIDL, JNI, and native development.
- Strong understanding of multithreading, IPC, synchronization, memory management, and real-time concepts.
- Experience with embedded debugging and troubleshooting.
- Strong knowledge of Git and software development processes.
- Experience with CMake, Make, Gradle, or Yocto.
Preferred Skills
- Experience with automotive infotainment, digital cockpit, telematics, or connected vehicle systems.
- Experience with Qualcomm, NXP, Renesas, or similar automotive platforms.
- Knowledge of CAN/CAN FD, SOME/IP, Ethernet, DoIP, and TCP/IP.
- Experience with QNX Momentics, Lauterbach, GDB, Android Studio, ADB, and Wireshark.
- Knowledge of AUTOSAR Adaptive is a plus.
- Knowledge of ASPICE and ISO 26262 is a plus.
Education
Bachelor's or Master's degree in Computer Science, Computer Engineering, Electrical Engineering, Electronics Engineering, or a related field.
Ideal Candidate
The ideal candidate is a hands-on developer, not primarily a tester, with strong experience developing platform-level embedded software across QNX and Android environments. Experience in automotive infotainment, digital cockpit, or connected vehicle platforms is highly preferred.