IN
0 suggestions are available, use up and down arrow to navigate them
Staff Engineer - NSP/NPU System Softw...

Apply to this job.

Think you're the perfect candidate?

Staff Engineer - NSP/NPU System Software

Qualcomm Bengaluru, Karnataka (Onsite) Full-Time

Company:

Qualcomm India Private Limited

Job Area:

Engineering Group, Engineering Group > Software Engineering

General Summary:

Job Description

As a lead architect of Neural Signal Processor (NSP) SDK team you will be responsible for design, development, integrate, commercialize and maintaining 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 lead a team of engineers to architect, design, development, integrate, commercialize and maintaining 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
  • 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 on 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 discussion and understand their requirements and implement their requirements in software deliverables
  • 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 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.

Required Skills/Experience

  • Strong programming experience 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 work.
  • 8+ 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 
  • 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 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
  • Mentor and guide engineers to successfully execute multiple programs.
  • 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

    Minimum Qualifications:

    • Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 8+ years of Software Engineering or related work experience.
    OR
    Master's degree in Engineering, Information Systems, Computer Science, or related field and 7+ years of Software Engineering or related work experience.
    OR
    PhD in Engineering, Information Systems, Computer Science, or related field and 6+ years of Software Engineering or related work experience.

    • 4+ years of work experience with Programming Language such as C, C++, Java, Python, etc.

    Excellent Written and Verbal Communication Skills are Required

    • Strong written and verbal communication 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

    Education Requirements

    • Required: Bachelor's, Computer Engineering and/or Computer Science, software engineering or closely related discipline with 12-15yrs of relevant work experience
    • Preferred: Master's, Computer Engineering and/or Computer Science, software engineering or closely related discipline with minimum 12yrs of relevant work experience

    Applicants: If you need an accommodation, during the application/hiring process, you may request an accommodation by sending email to 

    Email blocked - click to apply?subject=Accommodation%20Support"> 

    Although this role has some expected minor physical activity, this should not deter otherwise qualified applicants from applying. If you are an individual with a physical or mental disability and need an accommodation during the application/hiring process, please call Qualcomm’s toll-free number found

    for assistance. Qualcomm will provide reasonable accommodations, upon request, to support individuals with disabilities as part of our ongoing efforts to create an accessible workplace.

    Qualcomm is an equal opportunity employer and supports workforce diversity.

    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

    . ]]>

    Recommended Skills

    • Algorithms
    • Architecture
    • Artificial Intelligence
    • Assembly Language
    • Automation
    • C (Programming Language)

    Apply to this job.

    Think you're the perfect candidate?

    Help us improve CareerBuilder by providing feedback about this job:

    Job ID: 3059660

    CareerBuilder TIP

    For your privacy and protection, when applying to a job online, never give your social security number to a prospective employer, provide credit card or bank account information, or perform any sort of monetary transaction. Learn more.

    By applying to a job using CareerBuilder you are agreeing to comply with and be subject to the CareerBuilder Terms and Conditions for use of our website. To use our website, you must agree with the Terms and Conditions and both meet and comply with their provisions.