About the position
As a leading technology innovator, Qualcomm pushes the boundaries of what is possible to enable next-generation experiences and drive digital transformation to help create a smarter, connected future for all. As a Qualcomm Software Engineer, you will design, develop, create, modify, and validate embedded and cloud edge software applications across subsystems—Multimedia, AI/Gen AI, and Computer Vision—and/or specialized programs that launch cutting-edge, world-class products that meet and exceed customer needs. Qualcomm Software Engineers collaborate with systems, hardware, architecture, and test engineers, as well as other teams, to design system-level software solutions and obtain information on performance requirements and interfaces. Design and develop Multimedia, AI, and Gen AI SDKs/framework components to facilitate end-application development across various categories of IoT products, such as Drones, IP/security/Sports cameras, AI boxes, Home appliances and media devices.
Responsibilities
- Contribute to the architecture, design, and development of AI, GenAI, and multimedia SDKs that enable application developers to build commercial-quality applications.
- Design and develop GenAI large language model (LLMs) and vision-language model (VLMs) inference workflows, including pre-processing, inference, post-processing, and orchestration.
- Design and develop multi-stream AI and chained AI/GenAI pipelines for real-world IoT products and applications.
- Own the design and development of GStreamer-based plugins for the QIM SDK (Qualcomm Intelligent Multimedia SDK) on Qualcomm hardware platforms, including authoring design documents, developing production-quality software, creating unit tests, and providing ongoing technical support.
- Drive feature design, implementation, debugging, and system integration to ensure high-quality delivery on schedule.
- Lead code reviews, regression testing, and issue triage to uphold strong engineering standards and product quality.
- Collaborate effectively with cross-functional stakeholders and project teams to align technical execution with broader product and program objectives.
- Author and review technical documentation for software components and features to support development, integration, and long-term maintainability.
Requirements
- Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 4+ years of Software Engineering or related work experience.
- Master's degree in Engineering, Information Systems, Computer Science, or related field and 3+ years of Software Engineering or related work experience.
- 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.
Nice-to-haves
- 5+ years of experience programming in C and C++, with a strong track record of building high-performance software for embedded and industrial systems.
- 5+ years of experience designing and leading real-time embedded and industrial software solutions, with strong hands-on technical execution.
- Strong experience with AI and GenAI inference frameworks such as PyTorch, TensorFlow, ONNX Runtime, Llama.cpp, and LiteRT, along with a solid foundation in AI concepts, model architectures, tensor layouts, tensor transformations, and tensor-processing mathematics.
- 2+ years of experience with GStreamer, including development of AI and multimedia applications using open-source media pipelines.
- Hands-on experience with GenAI orchestration frameworks such as LangChain and LlamaIndex, including building agent-based systems and retrieval-augmented generation (RAG) pipelines and applications.
- Hands-on experience with multimedia frameworks across Android, Tizen, and other operating systems, with deep understanding of hardware abstraction layers (HALs) for camera, audio, video, graphics/display, computer vision, and USB/UVC.
- Strong knowledge of Android system architecture, including AIDL/HIDL, Binder, system and vendor services, and Java/JNI integration.
- Experience building AI applications for vision and audio use cases, including classification, object detection, segmentation, and pose estimation, as well as GenAI-powered applications. Strong ability to handle tensor pre-processing and post-processing and integrate AI models into end-to-end pipelines across inputs such as camera, audio, and text.
- Strong background in Linux system-level programming, including multithreading, concurrency, DMA/ION memory handling, IPC mechanisms such as Binder and gRPC, and zero-copy architectures.
- Hands-on experience writing OpenGL ES (GLES) and GLSL shaders and working with programmable graphics/GPU pipelines.
- Hands-on experience writing Vulkan shaders and working with modern programmable graphics pipelines.
- Hands-on experience with Docker and container technologies, including famili