Staff Engineer – DSP/NSP Firmware Lead – Software Engineering
Company | Qualcomm |
---|---|
Location | San Diego, CA, USA |
Salary | $134800 – $202200 |
Type | Full-Time |
Degrees | Bachelor’s, Master’s, PhD |
Experience Level | Senior, Expert or higher |
Requirements
- Bachelor’s degree in Engineering, Information Systems, Computer Science, or related field and 4+ years of Software Engineering or related work experience.
- Master’s degree in Engineering, Information Systems, Computer Science, or related field and 3+ years of Software Engineering or related work experience.
- 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.
- 10-15 years of relevant experience in one more of the domains below
- Solid hands-on software design and development experience on complex embedded compute platforms.
- Demonstrated experience working with heterogenous SoCs consisting of CPUs, GPUs, DSPs, and neural accelerators.
- Extensive system software development experience – including co-processor firmware, device drivers and board-support packages etc.
- Strong working knowledge of operating systems including QNX, Linux and other RTOSs, as well as hypervisors/virtualization technologies.
- Deep understanding of OS internals – scheduler, cache/memory handling, interrupt processing, MMU/SMMU, IPCs etc.
- Working knowledge of peripherals and interfaces – e.g., PCIe, AI Accelerators etc.
- Good understanding of SoC level power and limits management, error/fault aggregation and management.
- Strong programming experience in C/C++ , as well as hands-on experience debugging complex software.
- Experience using industry standard development tools – e.g., requirements management, modeling, tool-chains, IDEs, configuration management etc.
- Ability to lead and contribute to multiple phases of software development – from concept reviews, planning, architecture, bring-up, design and deployment.
- Demonstrated ability to work with engineers, partners and customers, and across the different geographical sites and technology domains.
- Excellent verbal and written communication skills.
Responsibilities
- Architecture, design and development of software for DSP/NPU processors in Qualcomm SoCs that meets specified performance, latency, power, robustness, and stability metrics.
- Collaborate across functional boundaries in defining architecture, design, SDK and profiling tools.
- Actively engage with Automotive OEMs, Tier-1s and ISVs to implement systems based on of Qualcomm Automotive platforms.
- Working with architecture team to define Qualcomm’s next generation NPUs.
Preferred Qualifications
- SoC architectures including heterogeneous compute, NoC/interconnect, memory-systems, multicore, multi-die, cache hierarchies, shared memory, I/O, coherency, and security
- Hands on SW development experience ranging from core kernel features like memory management, scheduler, and driver development
- Experience in system performance (e.g., CPU load, bandwidth, latency, cache/memory performance etc.) analysis and optimizations.
- Understanding of ARM architecture
- Knowledge of frameworks and SDKs for Vision/Deep Learning (e.g. OpenCV, OpenCL, PyTorch, TensorFlow etc.).
- Working knowledge of image sensor data flow pipelines – e.g. image capture, pre/post-processing routines, encode/decode and rendering blocks etc.
- Prior experience in design of automotive-grade SW for ADAS/Autonomy systems
- Analyze ML/AI workloads on HW accelerators and SW stacks through simulation and on-device characterization.
- Define, model and tune algorithms for ML/AI compilers, kernels and HW features to improve mappings of ML/AI workloads on existing and future HW.