Overview
Develop embedded software and hardware drivers for next-generation low-power accelerator and multi-DSP platforms on Qualcomm Snapdragon products, as part of Qualcomm's AI Software organisation.
What you'll do
- Design, implement, integrate and test embedded software, firmware and runtime components for low-power accelerator and DSP subsystems.
- Develop and maintain hardware drivers for machine-learning accelerators, including device initialisation, resource management, interrupt handling, power-state transitions and error recovery.
- Design software for multi-DSP and heterogeneous compute architectures, including workload partitioning, synchronisation and coordination across processors.
- Implement and optimise inter-processor communication mechanisms such as shared-memory transport, message queues, signalling, interrupts and remote procedure calls.
- Develop robust memory-management solutions covering static and dynamic allocation, memory pools, shared memory, virtual-to-physical address translation, cache coherency and DMA handling.
- Analyse and optimise embedded software for latency, throughput, memory footprint and power consumption on target platforms.
- Debug complex system-level issues involving operating systems, drivers, firmware, concurrency, memory corruption and processor interactions using target debugging and profiling tools.
- Build unit, integration and system-level test frameworks for embedded software and hardware-driver validation.
- Collaborate with hardware, systems, firmware and platform software teams on architecture, bring-up, integration, validation and commercialisation.
What you'll need
- Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 2+ years of Systems Engineering or related work experience, OR Master's degree in Engineering, Information Systems, Computer Science, or related field and 1+ year of Systems Engineering or related work experience, OR PhD in Engineering, Information Systems, Computer Science, or related field.
- Strong embedded C programming skills, with hands-on experience in low-level software development.
- Strong understanding of operating-system concepts, including processes and threads, scheduling, synchronisation, interrupts, timers, virtual memory and device-driver models.
- Hands-on experience with RTOS and/or embedded Linux environments, including board bring-up, kernel-facing interfaces and system debugging.
- Deep understanding of memory handling in embedded systems, including stack and heap usage, memory pools, alignment, fragmentation, memory protection, cache behaviour and coherency.
- Experience with multi-core, multi-DSP or heterogeneous processor architectures and associated concurrency challenges.
- Experience implementing inter-processor communication using shared memory, mailboxes, message queues, interrupts, RPC or equivalent mechanisms.
- Experience developing hardware drivers, preferably for accelerator, DSP, NPU or other high-performance compute blocks.
- Good understanding of computer architecture, including CPU/DSP pipelines, caches, MMU/IOMMU, DMA, bus interfaces and memory-mapped I/O.
- Experience with multi-threaded programming, POSIX/Pthreads, synchronisation primitives and race-condition analysis.
- Proficiency with embedded debugging and profiling tools such as JTAG, trace tools, crash dumps, logic analysers and performance profilers.
- Strong fundamentals in data structures, algorithms, software design and fixed-point programming.
- Strong communication skills and the ability to work effectively with cross-functional, geographically distributed teams.
- Educational qualification: Bachelor's, Master's or PhD degree in Electrical Engineering, Electronics and Communication, Computer Science or a related field.
Nice to have
- Working knowledge of C++ is desirable.
- Strong system-level understanding of SoC architecture, including CPU, DSP, NPU/AI accelerators, memory hierarchy, cache coherency, DMA engines, buses, and interconnects, with the ability to analyze hardware-software interactions effectively.
- Proven experience interpreting hardware architecture specifications, programming guides, register descriptions, and functional specifications to design, develop, and optimize low-level software and hardware drivers.
- Hands-on experience developing and debugging hardware drivers based on hardware documentation, including device initialization, interrupt handling, power management, resource management, error recovery, and performance optimization.
- Strong understanding of system bring-up, boot flows, clock and reset frameworks, power domains, memory subsystems, and platform resource management.
- Familiarity with secure execution environments, memory protection mechanisms, fault-tolerant embedded software design, and system reliability considerations.
- Experience with performance analysis and optimization using hardware performance counters, processor-specific instruction sets, compiler optimizations, and low-level profiling techniques.
Details
- Location: Hyderabad, Telangana, India.
- Work within Qualcomm's AI Software organisation, Engineering Group, Systems Engineering.
Read the full description and apply on the company’s own careers page.