Company:
Qualcomm Technologies, Inc.
Job Area:
Engineering Group, Engineering Group > Software Engineering
General Summary:
Seeking an exceptional architect to join us in our mission to innovate and deliver the most advanced and scalable compute platform architectures in the industry. This role will play a central role in the evolution of automotive cockpit, ADAS/autonomous driving and high-performance compute platforms. Job activities span the whole product life cycle from early R&D to commercial deployment. The environment is fast-paced and requires cross-functional interaction on a daily basis so good communication, planning and execution skills are a must.
Responsibilities:
* Software Architecture, design and development of software for Automotive Compute platform including DSP/NSP/GPU processors in Qualcomm SoCs to meet specified safety, performance, power and stability requirements.
* Collaborate across functional boundaries in defining software architecture, design, SDK and tools.
* Actively engage with Automotive OEMs, Tier-1s and ISVs to implement solutions based on Qualcomm Automotive Compute Platforms.
* Working with systems and HW/SW architecture teams to define Qualcomm’s next generation NSP/GPU Compute solutions.
Minimum Qualifications:
1. Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 2+ years of Software Engineering or related work experience.
OR
Master's degree in Engineering, Information Systems, Computer Science, or related field and 1+ year of Software Engineering or related work experience.
OR
PhD in Engineering, Information Systems, Computer Science, or related field.
2. 2+ years of academic or work experience with Programming Languages such as C, C++, Java, Python, etc.
Preferred Qualifications:
* 2-6 years of relevant experience in one or more of the domains below.
* Solid hands-on software design and development experience on complex embedded SW platforms.
* Demonstrated experience working with heterogeneous computing platforms consisting of CPUs, GPUs, DSPs, and neural accelerators.
* Extensive system software development experience – including BSP, firmware and device drivers.
* 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.
* Understanding of SoC level Clock, Power & Thermal management.
* Strong programming experience in C/C++.
* Understanding of ARM architecture.
* SoC architectures including heterogeneous compute environments, NoC/interconnect, memory-systems, multicore, cache hierarchies, I/O, coherency etc.
* Exposure to core kernel features like memory management, scheduler, system performance (e.g., CPU load, bandwidth, latency, cache/memory) analysis and optimizations.
* Knowledge of frameworks and SDKs for Vision/Deep Learning (e.g. OpenCV, OpenCL, PyTorch, TensorFlow etc.).
* Understanding of ML/AI models/workloads and performance tuning.
* Exposure to Automotive processes like ASPICE, Cybersecurity and functional Safety.
* Excellent verbal and written communication skills.
Principal Duties and Responsibilities:
* Applies Software knowledge and experience to design, develop, create, modify, and validate embedded and cloud edge software, applications, and/or specialized utility programs.
* Analyzes user needs and software requirements to design and customize software for optimal operational efficiency.
* Designs and implements software modules for products and systems.
* Participates in the design, coding for large features, unit testing, significant debugging fixes, and integration efforts to ensure projects are completed to specifications and schedules.
* Performs code reviews and regression tests as well as triages and fixes issues to ensure the quality of code.
* Collaborates with others inside project team to accomplish project objectives.
* Writes technical documentation for Software projects.
Level of Responsibility:
* Works under supervision.
* Decision-making may affect work beyond immediate work group.
* Requires verbal and written communication skills to convey information. May require basic negotiation, influence, tact, etc.
* Tasks do not have defined steps; planning, problem-solving, and prioritization must occur to complete the tasks effectively.
#J-18808-Ljbffr