Company
Qualcomm Innovation Center, Inc.
Job Area
Engineering Group, Engineering Group > Software Engineering
General Summary
As a leading technology innovator, Qualcomm pushes the boundaries of what's possible to enable next-generation experiences and drives digital transformation to help create a smarter, connected future for all. Qualcomm Linux Kernel Engineers design, develop, and optimize kernel and low-level system software, enable cutting-edge SoC technologies, and solve complex problems spanning hardware, firmware, and the operating system.
General Summary
As a Staff Software Engineer, you will contribute to the design, development, optimization, and commercialization of Linux kernel software for Qualcomm’s next-generation platforms. You will collaborate closely with cross-functional hardware and software teams and lead technical efforts in Dynamic Clock and Voltage Scaling (DCVS), Linux scheduling, and system-level power and performance optimization.
Key Responsibilities
- Develop and enhance Linux kernel features in areas such as CPU scheduling, scheduler-driven performance management, and Dynamic Clock and Voltage Scaling (DCVS).
- Design and optimize Scheduler and DCVS technologies for next-generation ARM-based systems, with a focus on achieving optimal performance, power efficiency, and responsiveness.
- Collaborate with cross-disciplinary teams to ensure the successful delivery of high-performance, scalable software solutions.
- Debug and resolve complex software issues using tools like JTAG debuggers.
- Contribute to upstream open-source projects, including the Linux Kernel, as part of Qualcomm’s commitment to the open-source community.
- Drive improvements in system software for ARM and RISC-V based platforms.
- Analyze system requirements, understand and propose corresponding system architecture. Create and maintain technical documentation for system architecture, requirements, and development processes.
- Pre-Silicon Development on the FPGA based platform and QEMU.
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.
Preferred Qualifications
- Master’s degree in Computer Science, Engineering, or a related field, with 5+ years of software development experience, or equivalent.
- Strong experience in Linux Kernel development, especially in areas such as DCVS, schedulers, and memory management and device trees.
- Solid knowledge of ARM and RISC-V architecture and its extensions is plus.
- Solid understanding of computer system architecture (core, cache, memory models, bus architecture, etc.). Experience in Board and SOC bringup, Device drivers, peripheral buses (SPI, I2C, USB), Memory controllers for DDR
- Familiarity with tools like SCM tools (e.g., GIT) and debugging technologies like JTAG debuggers.
- Prior contributions to open-source projects (e.g., Linux Kernel).
- Strong debugging skills and practical experience with ARM based platforms.
- Proficiency in using tools and frameworks for system and software performance management.
- Hands-on experience with software development methodologies for Embedded Systems.
Job description provided by Qualcomm.
View the original posting