Qualcomm Software Designer – Application Firmware Development for Machine Learning in San Diego, California
Software Designer – Application Firmware Development for Machine Learning
Qualcomm Technologies, Inc.
Corporate Research & Development at http://www.qualcomm.com/about/research
Engineering - Software
California - San Diego
Colorado - Boulder
Qualcomm CR&D is looking for an experienced embedded software developer for development of service level code to supervise and control a machine learning application. An ideal candidate should be familiar with: embedded software development using JTAG running under an RTOS and have implemented reliable inter-processor communication mechanisms between a host and target SOC.
You will join the CR&D software team working on many areas but with an initial focus on embedded software development for a machine learning project where you will be responsible for development, testing, integrating for both research and commercial applications.
You will be collaborating with a variety of internal teams within CR&D as well as with Qualcomms commercial division (QCT) covering multiple engineering disciplines including: software, systems and hardware. As a successful applicant to CR&D, the ideal candidate should have a diverse skill set including a strong background in embedded software development and development of device drivers for both Linux and firmware environments.
All Qualcomm employees are expected to actively support diversity on their teams, and in the Company.
Bachelor's degree in Engineering, Information Systems, Computer Science, or related field.
5+ years Software Engineering or related work experience.
2+ years experience with Programming Language such as C, C++, Java, Python, etc.
Experience in C/C++ development (debug and testing, preferable using GNU/LLVM tools) on embedded platforms using stop-mode debug tools such as JTAG/SWD
Experience working with problems associated with embedded systems such as; development in resource constrained systems, use of RTOS, efficient logging infrastructure, power management, watchdog services & crash dumps
Experience in implementation of inter-processor communication mechanisms (share message, message exchange) and associated state machine management and message packing/unpacking
C/C++ development of middleware using Object Orientated Design principals and have some level of familiarity with the use of design patterns
Experience with Source Code and Configuration management tools, git knowledge is required
Some level of understanding of the principals of machine learning
Scripting languages such as Python
Familiar working with software running on bare-metal and RTOS based targets using CPUs common to embedded applications such as ARM Cortex-A CPUs and/or DSPs
Software development and debug tools including compilers, profilers, source control systems, emulators, JTAG and serial debuggers, and logic analyzers
Required: Bachelor's, Computer Engineering and/or Computer Science
Preferred: Master's, Computer Engineering and/or Computer Science
EEO Employer: Qualcomm is an equal opportunity employer; all qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, Veteran status, or any other protected classification.