Key Responsibilities
- Analyze software requirements, determine the feasibility of design within the given constraints, consult with architecture and HW engineers, and implement software solutions best suited for Qualcomm's SOCs.
- Analyze and identify system level issues, interface with the software development, integration, and test teams
- Lead high performing teams towards system design and deliverables.
- Proven track record of leading teams in Machine learning software engineering.
- Strong foundation of Mathematical modeling of problems and linear algebra, coupled with state of the art algorithms in ML/AI space.
- Improve and optimize key Deep Learning models on Qualcomm AI 100.
- Build deep learning framework extensions for Qualcomm AI 100 in upstream open-source repositories.
- Collaborate and interact with internal teams to analyze and optimize training and inference for deep learning.
- Build software tools and ecosystem around AI SW Stack.
- Work on vLLM, Triton, ExecuTorch, Inductor, TorchDynamo to build abstraction layers for inference accelerator.
- Optimize workloads for both scale-up (multi-SoC) and scale-out (multi-card) systems.
- Optimize the entire deep learning pipeline including graph compiler integration.
- Apply knowledge of software engineering best practices.
Desirable Skills and Aptitudes
- Deep Learning experience or knowledge – LLMs, Natural Language Processing, Vision, Audio, Recommendation systems.
- Knowledge of the structure and function of different components of Pytorch, TensorFlow software stacks.
- Excellent C/C++/Python programming and software design skills, including debugging, performance analysis, and test design.
- Ability to work independently, define requirements and scope, and lead your own development effort.
- Well versed with open-source development practices.
- Strong developer with a research mindset – strives to innovate.
- Avid problem solver – should be able to find solutions to key engineering and domain problems.
- Knowledge of tiling and scheduling a Machine learning operator is a plus.
- Experience in using C++ 14 (advanced features)
- Experience of profiling software and optimization techniques
- Hands on experience writing SIMD and/or multi-threaded high-performance code is a plus.
- Experience of ML compiler, Auto-code generation (using MLIR) is a plus.
- Experiences to run workloads on large scale heterogeneous clusters is a plus.
- Hands-on experience with CUDA, CUDNN is a plus.
Qualifications:
- Bachelor's / Masters/ PHD degree in Engineering, Machine learning/ AI, Information Systems, Computer Science, or related field.
- 8+ years Software Engineering or related work experience.
- 8+ years’ experience with Programming Language such as C++, Python.
Minimum Qualifications:
• Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 4+ years of Software Engineering or related work experience.
OR
Master's degree in Engineering, Information Systems, Computer Science, or related field and 3+ years of Software Engineering or related work experience.
OR
PhD in Engineering, Information Systems, Computer Science, or related field and 2+ years of Software Engineering or related work experience.
• 2+ years of work experience with Programming Language such as C, C++, Java, Python, etc.