Qualcomm is seeking an embedded software engineer for the Core Platform Kernel Services Software team. The successful candidate will contribute significantly to all stages of software development, documentation, design, implementation, and testing, while also owning and defining roadmaps for significant areas of the IPC stack.
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
Working under close supervision
Taking responsibility for own work and making decisions with limited impact; Impact of decisions is readily apparent; errors made typically only impact timeline (i.e., require additional time to correct)
Using verbal and written communication skills to convey basic, routine information about day-to-day activities to others who are fully knowledgeable in the subject area
Completing most tasks with multiple steps which can be performed in various orders; some planning and prioritization must occur to complete the tasks effectively; mistakes may result in some rework
Exercising some creativity to troubleshoot technical problems or deal with novel circumstances
Using deductive problem solving to solve moderately complex problems; most problems have defined processes of diagnosis/detection; some limited data analysis may be required
Qualification
Required
Bachelor's degree in Engineering, Information Systems, Computer Science, or related field
Preferred
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 drivers
Knowledge of interprocessor communications, reset controller hardware and crash debug sequence
Experience with Windows OS, Visual Studio/LLVM compiler and Windows Performance Analyzer (WPA) tools is preferred
Experience in Compiler and JIT technologies is a plus
Experience with optimizing for popular CPU software benchmarks is a plus
Familiarity with ETM will be a plus
Experience on Python/Perl will be a plus
Assembly and C++ language experience is a plus
Familiarity with Security Architecture in embedded systems is a plus
Benefits
Competitive annual discretionary bonus program
Opportunity for annual RSU grants (employees on sales-incentive plans are not eligible for our annual bonus)
Highly competitive benefits package is designed to support your success at work, at home, and at play
Qualcomm designs wireless technologies and semiconductors that power connectivity, communication, and smart devices.