Staff Systems Software Engineer – Sensors
Qualcomm
- Santa Clara, CA
- Permanent
- Full-time
Multimedia SystemsGeneral Summary:Sensors-based technology has a wide range of applications including navigation, gaming, smart user interface, multimedia, virtual reality, and augmented reality. This challenging position offers the opportunity to work with leading edge sensor technologies embedded in smartphones, automotive, IOT, smartwatches as well as other consumer electronics devices. Job activities span the whole product life cycle from early R&D to commercial deployment. The successful candidate will work with systems, software, and integration/test engineers in the QCT sensors group.Job responsibilities include:
- Leading a team of engineers, including mentoring and coaching junior engineers.
- Tracking project schedules and deliverables, and keeping stakeholders informed
- Working with global systems and software teams.
- Architecting software frameworks & module implementations on variety of cores like GPU, CPU, embedded MCU cores experience.
- Coding in C & C++ as its main programming language, ideally in new modern C++ standards (C++17/20) and unit testing and system testing using modern testing frameworks like Google Test.
- Coding in embedded software development in C/C++ for fixed & floating-point based designs, implementing system algorithms, performance testing, debugging, verifying, optimizing, and tuning the implementations.
- Programming in one interpreted language (Python, Perl, Ruby).
- Familiarity with SOC architecture to be able to design, develop modeling tools.
- Making effective engineering tradeoffs between performance, memory, power consumption, and computational complexity.
- Guide the team on development of system applications and tools in C++, both internal and customer oriented. Programming experience in Java is a plus.
- Creating reports on algorithm evaluation results and delivering complete design and user documentation.
- New technology demonstrations, interfacing with customers and sensor vendors as well as partnering with internal and external teams.
OR
Master's degree in Engineering, Information Systems, Computer Science, or related field and 3+ years of Systems Engineering or related work experience.
OR
PhD in Engineering, Information Systems, Computer Science, or related field and 2+ years of Systems Engineering or related work experience.*Works in the lab, can use hazardous chemicals (e.g., glue, machinery).Preferred Qualifications4+ years of experience in the following areas:
- Hands on experience in house application tool development such as C++ QT Creator, C# WinForms or similar.
- Hands-on experience on ML frameworks such as PyTorch and TensorFlow
- Experience implementing basic machine learning algorithms such as SVM’s, neural nets, etc. in C.
- The ability to implement MATLAB-coded algorithms in C, including both floating and fixed-point implementations.
- Embedded/Mobile programming with experience in optimization of algorithms to support low power and/or low memory footprint.
- Multi-threaded programming experience.
- Experience with the development of compilers or interpreters and LLVM is a plus.
- Detail oriented, taking a thorough and analytical approach, producing complete documentation.
- Experience with ARM, RTOS, and JTAG.
- Experience with modifying device drivers.
- Experience with test development, troubleshooting and problem resolution on embedded software platforms.
- Basic understanding of Linear algebra, probability & statistics .
- Excellent written, verbal, and presentation skills.
- Strong analytical skills and ability to work in a dynamic and fast paced team environment.
- Strong technical leadership and coaching skills.