About this role
Job Requirements
At Quest Global, it’s not just what we do but how and why we do it that makes us different. With over 25 years as an engineering services provider, we believe in the power of doing things differently to make the impossible possible. Our people are driven by the desire to make the world a better place—to make a positive difference that contributes to a brighter future. We bring together technologies and industries, alongside the contributions of diverse individuals who are empowered by an intentional workplace culture, to solve problems better and faster.
Key Responsibilities
• Design, develop, integrate, and maintain embedded software applications and platform components
using C/C++.
• Develop and integrate software components for QNX Neutrino RTOS and Embedded Linux.
• Develop QNX services, processes, resource managers, and IPC mechanisms.
• Design and develop device drivers and low-level hardware interfaces.
• Implement and troubleshoot inter-process communication (IPC), multithreading, synchronization,
interrupts, and real-time software.
• Develop software for embedded platforms and automotive ECUs/SoCs, including ARM Cortex-A and
Cortex-R based systems.
• Work with communication interfaces and protocols including CAN/CAN FD, Ethernet, TCP/IP, UART,
SPI, I2C, and USB.
• Perform software debugging and system-level troubleshooting using tools such as GDB, QNX
Momentics, and Lauterbach.
• Conduct root-cause analysis of software crashes, memory issues, deadlocks, performance bottlenecks,
boot-time issues, and system integration defects.
• Optimize software for CPU and memory utilization, boot time, reliability, latency, and overall system
performance.
• Develop and maintain unit tests, integration tests, and support technical documentation.
• Collaborate closely with BSP, hardware, systems, application, and validation teams throughout the
software development and integration lifecycle.
• Participate in software architecture and design discussions, code reviews, technical documentation,
and integration activities.
• Support software development processes including Git-based development, issue tracking, CI, code
review, and release activities.
• For Lead Engineer candidates, provide technical leadership, mentor engineers, drive technical
solutions, and take ownership of complex system-level issues
We are known for our extraordinary people who make the impossible possible every day. Questians are driven by hunger, humility, and aspiration. We believe that our company culture is the key to our ability to make a true difference in every industry we reach. Our teams regularly invest time and dedicated effort into internal culture work, ensuring that all voices are heard.
We wholeheartedly believe in the diversity of thought that comes with fostering a culture rooted in respect, where everyone belongs, is valued, and feels inspired to share their ideas. We know embracing our unique differences makes us better, and that solving the worlds hardest engineering problems requires diverse ideas, perspectives, and backgrounds. We shine the brightest when we tap into the many dimensions that thrive across over 21,000 difference-makers in our workplace.
Work Experience
- Requirements
Must Have
• Bachelor's degree or higher in Computer Science, Electronics, Information Technology, Telecommunications, Automation, Mechatronics Engineering, or a related field.
• 7+ years of hands-on embedded software development experience.
• Strong programming skills in C and C++.
• Strong hands-on experience with QNX / QNX Neutrino RTOS.
• Strong experience with Embedded Linux development.
• Strong understanding of:
o Multithreading and SMP
o Inter-process communication (IPC)
o Synchronization mechanisms
o Interrupting handling
o Memory management
o Scheduling and task management
o Real-time operating system concepts
o Middleware development
• Hands-on experience developing software for embedded platforms and SoCs based on ARM Cortex-A
and/or Cortex-R architecture.
• Experience with inter-processor communication, including sockets and/or RPMsg.
• Strong experience in system-level debugging, troubleshooting, and root-cause analysis.
• Hands-on experience designing, developing, and testing device drivers and low-level software
interfaces.
• Good knowledge of hardware communication interfaces including I2C, SPI, and UART, particularly in
the context of device-driver development.
• Strong experience developing software for real-time embedded systems.
• Experience with CMake and Make.
• Strong knowledge of Git and modern software development workflows.
• Experience with software development and integration tools such as Jira, Git, SVN, or equivalent.
• Experience developing unit and integration test cases and related technical documentation.
• Good understanding of software development, integration, debugging, and release processes.
Good to Have:
• Experience with Android / Android Automotive OS (AAOS).
• Experience with Android Framework, HAL, AIDL, and/or HIDL.
• Experience developing BSPs, device drivers, bootloaders, or other low-level platform software.
• Experience in automotive infotainment, digital cockpit, telematics, or connected vehicle systems.
• Experience with Renesas R-Car or similar automotive SoC platforms.
• Working knowledge of CAN/CAN FD, Ethernet, and TCP/IP.
• Experience working in multi-OS environments using hypervisors.
• Experience with Agile software development methodologies.
• Knowledge of static analysis, code quality, and code coverage tools.
• Knowledge of embedded processor architectures and hardware accelerators such as ISP, GPU, NPU,
and related subsystems.
• Strong problem-solving, communication, and cross-functional collaboration skills