1 day ago
Hyderābād, IndiaSenior
Responsibilities
- Design, implement, integrate, and test embedded software, firmware, runtime components, and hardware drivers for low-power accelerators and DSP subsystems.
- Develop drivers covering device initialization, resource management, interrupt handling, power-state transitions, and error recovery.
- Design software for multi-DSP and heterogeneous compute architectures, including workload partitioning, synchronization, and processor coordination.
- Implement inter-processor communication using shared memory, message queues, signaling, interrupts, and RPC mechanisms.
- Develop memory-management solutions involving allocation, memory pools, shared memory, address translation, cache coherency, and DMA.
- Optimize embedded software for latency, throughput, memory footprint, and power consumption.
- Debug system-level issues involving operating systems, drivers, firmware, concurrency, memory corruption, and processor interactions.
- 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 commercialization.
Requirements
- Bachelor’s degree in Engineering, Information Systems, Computer Science, or a related field plus 2+ years of systems engineering or related experience; alternatively, a master’s degree plus 1+ year of experience or a PhD.
- Strong embedded C programming and low-level software development experience; C++ knowledge is desirable.
- Strong understanding of operating-system concepts, including processes, threads, scheduling, synchronization, interrupts, timers, virtual memory, and device-driver models.
- Hands-on experience with RTOS and/or embedded Linux, including board bring-up, kernel-facing interfaces, and system debugging.
- Deep knowledge of embedded memory handling, including stack and heap usage, memory pools, alignment, fragmentation, memory protection, cache behavior, and coherency.
- Experience with multi-core, multi-DSP, or heterogeneous processor architectures and concurrency challenges.
- Experience implementing inter-processor communication using shared memory, mailboxes, message queues, interrupts, RPC, or equivalent mechanisms.
- Experience developing hardware drivers, preferably for accelerators, DSPs, NPUs, or other high-performance compute blocks.
- Understanding of computer architecture, including CPU/DSP pipelines, caches, MMU/IOMMU, DMA, bus interfaces, and memory-mapped I/O.
- Experience with multithreaded programming, POSIX/Pthreads, synchronization primitives, and race-condition analysis.
- Proficiency with embedded debugging and profiling tools such as JTAG, trace tools, crash dumps, logic analyzers, and performance profilers.
- Strong fundamentals in data structures, algorithms, software design, and fixed-point programming.
- Preferred qualifications include SoC architecture, hardware specifications, system bring-up, boot flows, clock and reset frameworks, power domains, secure execution environments, fault-tolerant embedded software, hardware performance counters, processor-specific instruction sets, compiler optimization, and low-level profiling experience.
- Strong communication and cross-functional collaboration skills.
About Qualcomm
Qualcomm is a public semiconductor company headquartered in San Diego, founded in 1985, that designs and sells wireless chipsets and platforms for mobile devices, automotive, IoT, and networking, notably the Snapdragon application processors and 5G modems. It also licenses a large portfolio of cellular patents to device makers, generating revenue alongside chip sales; its technology underpins many Android smartphones and emerging automotive and edge-compute systems, and it trades on NASDAQ as QCOM.
