Q

Senior Lead Engineer - NSP/NPU System Software

Qualcomm · Bengaluru, Karnataka, India

8–15 yrs experiencefull_timePosted 2w ago
Apply now →

Job description

General Summary: Qualcomm's Central Software Engineering (CSE) team is seeking candidates for its NSP System software team in Bangalore. We are seeking candidates with strong system software knowledge and hands-on experience in development, integrate, commercialize and maintenance of system software for CPU, NSP processors and Hardware engines/accelerators comprising in Qualcomm SoCs that meets specified performance, latency, power, robustness, and stability metrics. In this role you will utilize your solid foundation in embedded system software development, operating systems, and device drivers to deploy platform software for complex Multimedia and Deep Learning use cases running on Qualcomm SoCs. Partnering with hardware architecture, platform software, Multimedia, and developer tools teams, you will drive the architecture, design, and development of system software to use SoCs extensive heterogeneous computing capabilities to allow running of compute workloads on device without a need for connection to the cloud for Mobile, Auto, IoT, XR and/or AI inferencing Qualcomm SOCs platforms. **Responsibilities** The selected candidate will have responsibilities in one or more of the following areas: - Architect, design and develop software frameworks across the processors available on the SoCs. - Develop high-performance system drivers for compute resources. - Identify areas of performance optimization in the SoC for both Software and Hardware architectures. - Work closely with our global team to integrate, test, and commercially support our embedded software solutions. - Offsite and occasional onsite work with OEMs and Independent Software Vendors may be required. **Required Skills/Experience** - Strong programming skills in C/C++, and Python. - 4+ years of experience in writing scalable C/C++ multi-threaded, multi-process software applications for Android/Embedded Linux/QNX operating systems. - Experience in system programming, threading, mutex, synchronization, communication, and parallel computing to build highly scalable and efficient applications. - Deep understanding of CPU, DSP, Deep Learning Accelerators (NSP/NPU) architectures, system programming and optimization of Multimedia/ML algorithms on hardware acceleration cores using C/C++, assembly language, OpenCL/CUDA programming frameworks. - Experience with ARM and NSP/Hardware engines Inter-processor communications using RPCs. - Familiarity and hands-on experience with various system analysis tools used for memory, performance and hardware resource management for optimization and stability. - Experience with build systems such as CMake, Make, ninja and Yocto for large scale software. - Familiarity with source control tools (Git, GitHub, GitLab, Perforce, etc.). - Experience in writing documents on software design, algorithms, and interfaces. **Education Requirements** - Required: Bachelor's, Computer Engineering and/or Computer Science, software engineering or closely related discipline with 6-8 yrs of relevant work experience. - Preferred: Master's, Computer Engineering and/or Computer Science, software engineering or closely related discipline with minimum 6 yrs of relevant work experience. **Minimum Qualifications:** Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 3+ years of Software Engineering or related work experience. OR Master's degree in Engineering, Information Systems, Computer Science, or related field and 2+ years of Software Engineering or related work experience. OR PhD in Engineering, Information Systems, Computer Science, or related field and 1+ year of Software Engineering or related work experience. 2+ years of academic or work experience with Programming Language such as C, C++, Java, Python, etc.