
Senior Staff Engineer
- Bangalore, Karnataka
- Permanent
- Full-time
Software EngineeringGeneral Summary:OverviewQualcomm's software CPU (aka application processor) architecture group develops long-term software roadmaps (for a horizon of three to five years). It is responsible for defining architecture specifications, developing prototypes, and engaging with the software and hardware worldwide partners to influence products development. It is also acting as an operational execution team enabling commercialization of the most up-to-date worldwide CPUs integrated in Snapdragon's chipsets for markets such as: Handsets, IOT devices, Automotive, Compute/Laptops, XR, etc.The team is currently looking for an experienced CPU software architect who can contribute to architecting of HW/ SW interface and design and development of low level firmware for CPU bootstrapping, power controller etc. He or she, will specifically be engaged in the following domains:a) Micro-code optimizationb) Design and development of firmware of idle and active CPU power managementc) CPU software/hardware design trade-offsd) Debugging of critical SW issues that are artifacts of any high-performance CPU microarchitecture (prefetching, speculation, memory ordering etc...)e) Definition of short and long-term SW architecture roadmap in accordance with Arm's architecture ISA evolutionf) Represent the CPU SW teams in engagements with Arm architects and third-party software partners (e.g., Google, MSFT, etc.)Since the contributions of the CPU software organization affect a large span of products, the function provides an uncommon exposure to multiple technology domains related to system-on-chip development. To fully benefit from the role's opportunities, the candidate must demonstrate a motivation to influence the products roadmap, as he or she, will directly contribute to Qualcomm's most innovative products.Skills/Experience:a) 13+ years of experience in designing and developing low-level software/firmware using C, C++, and ARM assembly for high-performance, resource-constrained embedded systems.b) Expert, hands-on knowledge of on ARM v8/v9-A series CPU architectures. Deep knowledge of the RISC-V ISA is a significant advantage.c) Proven expertise in ARM system specifications, including hands-on implementation or extensive customization of PSCI (Power State Coordination Interface), SCMI (System Control & Management Interface), and ARM Trusted Firmware-A (TF-A),.d) Deep understanding of System on Chip (SoC) architecture, including hardware coherency (CPU-to-CPU and I/O coherency), cache management, and the intricacies of Memory Management Units (MMU) and Translation Lookaside Buffers (TLB).e) Extensive experience with system power management architectures: Low Power Modes (LPM) and CPU idle/active state management.f) Mastery of the C programming language for writing robust, efficient, and portable firmware and system-level code.g) In-depth knowledge of boot architecture and secure boot sequences, including hands-on experience with UEFI, ACPI specification and bootloaders.h) Proven expertise in system software fundamentals: OS kernel internals, task scheduling, atomics, synchronization primitives, and memory management.i) Expertise in embedded systems SW design, including real-time operating systems (RTOS). Proven experience with the Zephyr RTOS for prototyping, driver development, and power management is highly desirable.j) Familiarity with the internals of OS kernels (Linux or Windows) and their interaction with CPU and SoC features. Experience in device driver development is an added advantage.k) Effective problem-solving and analytical skills, with a proven ability to debug complex, system-level issues.l) Critical thinking skills, with the ability to make architectural trade-offs and define long-term software roadmaps.m) Excellent verbal and written communication skills, with experience engaging internally and with external partners (e.g., Arm, SiFive, Google, Microsoft).Minimum Qualifications:
- Bachelor's degree in engineering, Information Systems, Computer Science, or related field and 10+ years of Software Engineering or related work experience.
- 8+ years of work experience with Programming Language such as C, C++, ARM/ RISC-V ASM, Python, etc.
OR
Master's degree in Engineering, Information Systems, Computer Science, or related field and 5+ years of Software Engineering or related work experience.
OR
PhD in Engineering, Information Systems, Computer Science, or related field and 4+ years of Software Engineering or related work experience.
- 3+ years of work experience with Programming Language such as C, C++, Java, Python, etc.