Embedded Software EngineerQualcomm is seeking an embedded software engineer for the Core Platform Kernel Services Software team.The Core Platform Kernel Services software team develops and deploys drivers and Kernel Services responsible for achieving IPC and System level Debug to multiple subsystems on Qualcomm SOCs. These SOCs serve customers across the Mobile Handset, Compute, Automotive, XR/AR, Cloud AI, IoT and IIOT market segments. The Kernel Services team develops protocols and algorithms that are central to critical operations performed by all functions of the SOC such as Sensing, Image Capture, Audio functions among hundreds of others. The team owns, maintains and develops drivers across multiple operating systems including, QuRT OS, Windows, Linux, QNX, FreeRTOS, Zephyr among others. The team actively develops open-source solutions to achieve highly performance efficient and feature rich yet configurable IPC across subsystems. The team actively engages with the open-Source community to upstream and augment associated solutions as well.The multiple number of drivers and Services constantly evolve and find utility in various applications across multiple tiers of application across chipsets.
The team works actively with OEMs, ODMs, Carriers, OS providers, etc. to perform requirements analysis towards catering to new and complex use cases on a regular basis. The successful candidate will not only have the opportunity to contribute significantly to all stages of software development, documentation, design, implementation and testing but also will have the opportunity to own and define roadmaps for significant areas of the IPC stack.The opportunity to significantly contribute to a team that is central to every chipset that Qualcomm produces puts a great deal of responsibility to deliver high quality and highly performing solutions on a regular basis. The successful candidate should have a growth mindset willing to constantly learn new technologies and adapt to new requirements from evolving use cases. It is an expectation from all successful candidates to innovate and efficiently productize these innovations to achieve market differentiation across our product families.Minimum Qualifications:Bachelor's degree in Engineering, Information Systems, Computer Science, or related field.Preferred Qualifications:Masters in Computer Science, Engineering, or related field.Experience in C and Data structures.In-depth knowledge of Windows development environment and functionality and architecture especially driver module.Excellent debugging and problem-solving skills in Linux Kernel. Familiar with ARM CoreSight architecture will be a plus.Good understanding of CPU Architecture, Memory and Bus architecture and how that impacts software performance.Able to debug complex problems across multiple layers of hardware, OS, compiler, and driversKnowledge of interprocessor communications, reset controller hardware and crash debug sequenceExperience with Windows OS, Visual Studio/LLVM compiler and Windows Performance Analyzer (WPA) tools is preferredExperience in Compiler and JIT technologies is a plusExperience with optimizing for popular CPU software benchmarks is a plusFamiliarity with ETM will be a plus.Experience on Python/Perl will be a plus.Assembly and C++ language experience is a plusFamiliarity with Security Architecture in embedded systems is a plus.Principal Duties and Responsibilities:Develops, creates, and modifies general computer applications software or specialized utility programs.
Analyzes user needs and develops software solutions. Designs software or customizes software for client use with the aim of optimizing operational efficiency. May analyze and design databases within an application area, working individually or coordinating database development as part of a team. Modifies existing software to correct errors, allow it to adapt to new hardware, or to improve its performance. Analyzes user needs and software requirements to determine feasibility of design within time and cost constraints. Confers with systems analysts, engineers, programmers, and others to design system and to obtain information on project limitations and capabilities, performance requirements and interfaces.
Stores, retrieves, and manipulates data for analysis of system capabilities and requirements. Designs, develops, and modifies software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design.Level of Responsibility:Communicates issues with team lead and peers.Adapts to changes and setbacks to meet deadlines.Communicates with project lead to provide status and information about impending obstacles.Collaborates with others inside project team to accomplish project objectives.Gathers, integrates, and interprets information specific to a module or sub-block of code from a variety of sources to troubleshoot issues and find solutions.Collaborates with individuals within domain to complete the team's work.Stays focused and deals with setbacks in a timely manner.Seeks out learning opportunities to increase own knowledge and skill.Completes assigned coding tasks to specifications on time without significant errors or bugs.Resolves straightforward software issues and bugs within a reasonable amount of time.Actively seeks answers for new challenges.Prioritizes project deadlines and deliverables with close supervision.Is receptive to others' suggestions about ways in which a problem can be addressed differently.Escalates technical issues to an appropriate party (e.g., project lead, colleagues).Networks with colleagues within domain to gain insight, ideas, and connections.Qualcomm is an equal opportunity employer. If you are an individual with a disability and need an accommodation during the application/hiring process, rest assured that Qualcomm is committed to providing an accessible process. You may e-mail or call Qualcomm's toll-free number found here . Upon request, Qualcomm will provide reasonable accommodations to support individuals with disabilities to be able participate in the hiring process. Qualcomm is also committed to making our workplace accessible for individuals with disabilities.Pay range and Other Compensation & Benefits :$94,200.00 - $141,200.00