Company:
Qualcomm India Private Limited
Job Area:
Engineering Group, Engineering Group > Software Engineering
General Summary:
Qualcomm’s Central Software Engineering (CSE) team is seeking candidates for its Neural Signal Processor (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 May Include, but are not limited to
You will be part of NSP system software team working on design, development, integrate, commercialize and maintenance of system software for CPU, NSP processors and Hardware engines/accelerators (Camera, Video, Audio etc.) comprising in Qualcomm SoCs that meets specified performance, latency, power, robustness, and stability metrics.
Develop software Frameworks, high performance system drivers for compute resources, and application in Android/Linux/QNX and RTOS environments. Develop application specific software demos and examples which enables to benchmark Qualcomm SoC capabilities and help customer to get started on their product development process.
You will work closely with other internal teams within Qualcomm for collection of metrics at various subsystem like CPU, DSP, NSP, GPU etc. to provide a unified execution view in IDE and visualization tools for conventional Multimedia use cases/DL Model execution to enable easy adoption, profiling and debugging of Multimedia/AI software products by internal and external customers.
Ability to look at software deliverables from end user point of view and ease of use, well documented code, design documents. Participate in customer discussions and understand their requirements and implement their requirements in our software solutions.
You will collaborate with cross functional teams, product management, SoC architecture and design teams to implement optimal power, performance, memory, and new architecture specific system software solutions.
You will work closely with our global teams to integrate, test, and commercially support our embedded software solutions across Mobile, Auto, IoT and XR business groups.
Ability to make decisions and construct plans with minimal, conflicting, and sometimes missing information.
Offsite and occasional onsite work with OEMs and Independent Software Vendors may be required.
Minimum Qualifications:
• Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 2+ years of Software Engineering or related work experience.
OR
Master's degree in Engineering, Information Systems, Computer Science, or related field and 1+ year of Software Engineering or related work experience.
OR
PhD in Engineering, Information Systems, Computer Science, or related field.
• 2+ years of academic or work experience with Programming Language such as C, C++, Java, Python, etc.
Required Skills/Experience
Strong programming skills in C/C++, and Python
Excellent programming skills in C++ (11/14/17). Solid foundation and understanding of data structures, algorithms and AI/CV/Multimedia framework architectures and implementation. Good foundation of object-oriented design patterns or other software design paradigms and usage in your area of work.
4+ years of experience writing scalable C++ multi-threaded, multi-process software applications for Android/Embedded Linux/QNX operating systems.
Experience in system software 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/CV/ML algorithms on hardware acceleration cores using C/C++, assembly language, TVM, OpenMP, OpenCL/CUDA programming frameworks.
Experience with ARM and NSP/Hardware Engines Inter-processor communications using RPCs. Expertise in methods for partitioning a solution across hardware and software within an overall systems solution.
Experience with at least one DL frameworks like TensorFlow, Caffe, PyTorch, ONNX etc.
Familiarity and hands-on experience with various system analysis tools used for memory, performance analysis and hardware resource management for optimization and stability.
Experience with build systems such as CMake, Make, ninja and Yocto for large scale software.
Experience with source control tools (Git, GitHub, GitLab, Perforce, etc.)
Experience in writing documents on software design, algorithms, and interfaces using mkdocs/sphinx docs generators.
Mentor and guide team members to successfully execute multiple tasks on time.
Prepare clear and concise reports and recommendations for product teams up to senior executives to help drive business decisions and next generation architecture choices.
Defining and developing automation for the team to operate more efficiently.
Preferred Skills/Experience
A go getter attitude to dive deeper and understand technical requirements.
Ability to contribute to all phases of embedded software development including bring-up activities, design, development, and commercialization of software cycles.
Experience with Linux open-source software development projects (either as a committer, contributor, or community manager) is a plus.
Experience in using NVIDIA NSight systems/NSight compute for application performance analysis.
Knowledge of frameworks and SDKs for Imaging/Computer Vision/Deep Learning (e.g., OpenCV, OpenVX, TensorFlow, PyTorch, NVIDIA CuDNN, Tensor RT etc.).
Engaging with OpenOCD as a user or as a contributor, JTAG interfacing, and GDB/LLDB to debug targets.
Experience with autonomous vehicles domain, standards, and processes (e.g., ISO26262, ASPICE)
Solid working experience in kernel development, Android/Linux/QNX, and all too familiar with OS scheduling, debugging, event handling, real-time requirements.
Knowledge of compiler optimization techniques for kernel compilers, LLVM is a plus.
Excellent Written and Verbal Communication Skills are Required.
Strong verbal and written communication and presentation skills with collaborative work experience, always discussing and learning from each other and driving things forward and making solid progress as one team across geographical regions.
Proven ability to work in a dynamic, multi-tasked environment.
Self-starter who likes to be challenged and solve tough complex issues.
Applicants : Qualcomm is an equal opportunity employer. If you are an individual with a disability and need an accommodation during the application/hiring process, rest assured that Qualcomm is committed to providing an accessible process. You may e-mail myhr.support@qualcomm.com or call Qualcomm's toll-free number found here (https://qualcomm.service-now.com/hrpublic?id=hr_public_article_view&sysparm_article=KB0039028) . Upon request, Qualcomm will provide reasonable accommodations to support individuals with disabilities to be able participate in the hiring process. Qualcomm is also committed to making our workplace accessible for individuals with disabilities.
Qualcomm expects its employees to abide by all applicable policies and procedures, including but not limited to security and other requirements regarding protection of Company confidential information and other confidential and/or proprietary information, to the extent those requirements are permissible under applicable law.
To all Staffing and Recruiting Agencies : Our Careers Site is only for individuals seeking a job at Qualcomm. Staffing and recruiting agencies and individuals being represented by an agency are not authorized to use this site or to submit profiles, applications or resumes, and any such submissions will be considered unsolicited. Qualcomm does not accept unsolicited resumes or applications from agencies. Please do not forward resumes to our jobs alias, Qualcomm employees or any other company location. Qualcomm is not responsible for any fees related to unsolicited resumes/applications.
If you would like more information about this role, please contact Qualcomm Careers (http://www.qualcomm.com/contact/corporate) .
EEO Employer: Qualcomm is an equal opportunity employer; all qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, Veteran status, or any other protected classification