#Senior Embedded Software Engineer

QualcommSan Diego, CA
5d

About The Position

This position is not eligible for Qualcomm immigration sponsorship. Qualcomm is seeking a senior embedded software engineer with 3+ years of experience 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.

Requirements

  • 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+ years of academic or work experience with Programming Language such as C, C++, Java, Python, etc.

Nice To Haves

  • 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.

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.
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service