General Summary
Qualcomm's Cloud Business Unit is seeking an experienced Software Engineer to work on Linux user-space software for machine learning applications. The primary development target is the Qualcomm AI100 inference accelerator and related products. This role involves architectural design, implementation, integration, and performance optimization of Linux-based software components.
The ideal candidate will bring strong expertise in Modern C++ (C++11 / 14 / 17) , Linux user-space development, inter-process communication (e.g., gRPC), system profiling, and performance tuning.
Key Responsibilities
- Design and implement user-space Linux software components and APIs for ML inference applications.
- Develop and maintain Linux user-mode drivers and inter-process communication (IPC) mechanisms.
- Perform system profiling and code optimization for performance-critical components.
- Contribute to software integration, debugging, and functional / performance testing.
- Collaborate closely with hardware, firmware, and platform teams to ensure seamless system-level functionality.
- Participate in code reviews, design reviews, and continuous improvement of development processes.
Required Skills & Experience
3+ years of hands-on experience in Linux user-space development , including :IOCTL interface developmentMulti-threaded programmingAPI and tool developmentProficiency in Modern C++ (11, 14, 17) and solid understanding of object-oriented design and design patterns.Experience with gRPC , protocol buffers, and inter-process communication architectures.Programming experience in C, C++, and Python .Strong debugging and testing skills, with experience in unit testing frameworks like GoogleTest .Familiarity with real-time embedded operating systems and SoC architectures .Experience with UML , requirement traceability, and peripheral driver development.Hands-on with source control systems (e.g., Git ) and configuration management tools.Exposure to software development tools : compilers, profilers, emulators, JTAG, logic analyzers.Clear and effective communication skills (written and verbal) and strong team collaboration mindset.Minimum Qualifications
Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 2+ years of software engineering experienceORMaster's degree in Engineering, Information Systems, Computer Science, or related field and 1+ year of software engineering experienceORPhD in Engineering, Information Systems, Computer Science, or related field2+ years of academic or work experience with programming languages such as C, C++, Java, or PythonSkills Required
Git, Python, C++, Linux, Continuous Integration, SOC design, Software Engineering, Software Testing