Company:
Qualcomm Technologies, Inc.
Job Area:
Engineering Group, Engineering Group > Software Engineering
General Summary:
This position offers hands-on system embedded software design and development to bring the next generation of Qualcomm Snapdragon products in Automotive working with multiple technology teams, Ter1s, OEMs and industry partners. The engineer will be involved in the next generation of embedded automotive software for automotive solutions. In this role, there will be opportunities across the software stack including application, user spaces such as Android and real-time Linux as well as Qualcomm Ride Vision Autonomous driving stack, enabling full capabilities of Qualcomm Snapdragon hardware. The engineer will work closely with cross-functional teams across multiple locations to develop, integrate, debug, and demonstrate various software stacks on Qualcomm reference platforms. Work assignments require theoretical and practical knowledge in the areas of C/C++ programming and real-time operating systems, along with power and performance expertise on embedded systems. The candidate should also be familiar with embedded system hardware and board design. Experience with ADAS, vehicle network or external module peripherals is welcome.
Minimum Qualifications:
- Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 4+ years of Software Engineering or related work experience.
- OR Master's degree in Engineering, Information Systems, Computer Science, or related field and 3+ years of Software Engineering or related work experience.
- OR 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.
Job Responsibilities:
- This role includes software design and development, integration, debugging and demonstration of Automotive software.
- You will work on various technologies areas in ADAS and Infotainment in the Framework and application layers.
- Development/testing will involve enabling new end to end use cases on prototype and demo vehicles.
- Leadership skill to work with various teams to collect the requirements and work with various teams to demonstrate automotive use-cases.
- Debug and fix complex problems involving multiple modules from framework, middleware to interface layers to hardware.
Preferred Qualifications:
- C/C++ and JAVA programming skills and a good understanding of Data Structures and Algorithms.
- Object Oriented Design and Programming.
- Debugging skills in C/C++ using debugging tools like GNU tools.
- Experience with RTOS and Hypervisor (e.g., QNX).
- Experience using git for development; patch/tree management.
- ARM processors and/or embedded software development on mobile devices or Automotive platforms.
- Excellent communication, interpersonal, and teamwork skills.
- Independent and motivated problem solver.
- 4+ Years professional work experience in embedded/automotive software and/or driver development on ARM SoCs on Linux/Android etc.
- 4+ Years experience with Programming Language such as C, C++, Python, etc.
- 4+ Years experience with architectural capability analysis in addressing system design challenges such as multi-OS virtualization and multi-domain boot architecture.
- 4+ Years experience with low level software/hardware interface design and debugging.
- 4+ Years experience with industry standard software development tools: HSW/HE debuggers, code revision control systems (GIT, Perforce), IDEs and build tools.
- Prior experience with Qualcomm MSM software platforms is a big plus.
- Experience in coordination with multiple technology teams, program and product teams, and test engineering.
- Experience in bottoms-up and top-down design based on analysis of E2E use cases.
- Experience with software development processes such as Automotive SPICE/CMM/ASIL-A.
- Experience in system performance estimation (eg. bandwidth, memory, power) and characterization for concurrent use cases.
- Excellent oral and written communication skills to work with developers across the different sites.
Level of Responsibility:
- Works independently with minimal supervision.
- Provides supervision/guidance to other team members.
- Decision-making is significant in nature and affects work beyond immediate work group.
- Requires verbal and written communication skills to convey information. May require basic negotiation, influence, tact, etc.
- Has a moderate amount of influence over key organizational decisions (e.g., is consulted by senior leadership to make key decisions).
- Tasks often require multiple steps which can be performed in various orders; extensive planning, problem-solving, and prioritization must occur to complete the tasks effectively.