1 day old

Software Design/Development Firmware for Machine Learning Accelerator(Boulder, CO or San Diego, CA)

Qualcomm Inc.
San Diego, CA 92101
Apply Now
Apply on the Company Site


Company:

Qualcomm Technologies, Inc.

Job Area:

Engineering Group, Engineering Group > Software Engineering

Job Overview:

Qualcomm is a company of inventors that unlocked 5G ushering in an age of rapid acceleration in connectivity and new possibilities that will transform industries, create jobs, and enrich lives. But this is just the beginning. It takes inventive minds with diverse skills, backgrounds, and cultures to transform 5Gs potential into world-changing technologies and products. This is the Invention Age - and this is where you come in.

Qualcomm CR&D is looking for a software developer to work within an existing team to add firmware support for machine learning Edge and Datacenter use cases. The development target is Qualcomms next generation high-performance inference accelerator.

Candidate should have a background in embedded software development such as: board support packages, device driver development, RTOS, secure boot, trust-zone, low-speed peripheral interfaces (I2C/SPI/UART), chipset power blocks, clock tree management, PCIe and efficient data movement using DMA.

Ideal candidates for this role will demonstrate:

  • Masters - Computer Science, Bachelors - Engineering, Bachelors - Information Systems

  • Experience with development in C/C++ including debug and testing, preferable using GNU/LLVM tools) on embedded platforms using stop-mode debug tools such as JTAG/SWD

  • Experience working with BSP development including device driver development, board-bring-up, RTOSs, secure boot & trust zone

  • Experience with development of peripheral drivers.

  • Knowledge of RTOS, SoC architecture (core, cache, memory, bus architecture, IOs, etc.) and common hardware blocks and multi-threaded programming

  • Experience with Source Code and Configuration management tools such as git/Gerrit

  • Willingness to work in a structured software development environment with ability to work on low-level implementation (code & test)

  • Willingness to work in a high-caliber international/multi-site team

  • Good English communication (written and verbal) and positive interpersonal skills

  • Familiar with high speed interfaces such as PCIe and LPDDR

  • Familiar with implementing systems with high reliability expectations such as use of ECC, PCI AER fields.

  • Familiar with low speed interfaces such as I2C, SPI, SPMI, AVSBus & PMBus

  • Familiar working with software running on Qualcomms QuRT RTOS (ARM Cortex-A CPUs and Hexagon DSPs)

  • Familiar with Qualcomms Core Software infrastructure e.g. Glink, QDSS, SOC power control algorithms such as dynamic frequency/voltage scaling.

  • Experience working with and familiarity with important SOC building blocks like interrupt controller & timers

  • Software development and debug tools including compilers, profilers, source control systems, emulators, JTAG and serial debuggers, and logic analyzers

Other information about the role:

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.

The responsibilities of this role include:
Working under some supervision.
Making decisions that are moderate in impact; errors may have relatively minor financial impact or effect on projects, operations, or customer relationships; errors may require involvement beyond immediate work group to correct.
Using verbal and written communication skills to convey information that may be somewhat complex to others who may have limited knowledge of the subject in question. May require basic negotiation and influence, cooperation, tact, and diplomacy, etc.
Having a moderate amount of influence over key organizational decisions (e.g., is consulted by senior leadership to provide input on key decisions).
Completing tasks with multiple steps that can be performed in various orders; some planning and prioritization must occur to complete the tasks effectively; mistakes may result in some rework.
Exercising creativity to draft original documents, imagery, or work products within established guidelines.
Using deductive and inductive problem solving; multiple approaches may be taken/necessary to solve the problem; often information is missing or incomplete; intermediate data analysis/interpretation skills may be required.
May be solicited during strategic planning period.

The responsibilities of this role do not include:
Financial accountability (e.g., does not involve budgeting responsibility).

Principal Duties & Responsibilities
Completes assigned coding tasks to specifications on time without significant errors or bugs.
Adapts to changes and setbacks in order to manage pressure and meet deadlines.
Collaborates with others inside project team to accomplish project objectives.
Communicates with project lead to provide status and information about impending obstacles.
Quickly resolves complex software issues and bugs.
Gathers, integrates, and interprets information specific to a module or sub-block of code from a variety of sources in order to troubleshoot issues and find solutions.
Seeks others' opinions and shares own opinions with others about ways in which a problem can be addressed differently.
Participates in technical conversations with tech leads/managers.
Anticipates and communicates issues with project team to maintain open communication.
Makes decisions based on incomplete or changing specifications and obtains adequate resources needed to complete assigned tasks.
Prioritizes project deadlines and deliverables with minimal supervision.
Resolves straightforward technical issues and escalates more complex technical issues to an appropriate party (e.g., project lead, colleagues).
Writes readable code for large features or significant bug fixes to support collaboration with other engineers.
Determines which work tasks are most important for self and junior engineers, stays focused, and deals with setbacks in a timely manner.
Unit tests own code to verify the stability and functionality of a feature.

Physical Requirements

Frequently transports between offices, buildings, and campuses up to mile.

Frequently transports and installs equipment up to 5 lbs.

Performs required tasks at various heights (e.g., standing or sitting).

Monitors and utilizes computers and test equipment for more than 6 hours a day.

Continuous communication which includes the comprehension of information with colleagues, customers, and vendors both in person and remotely.

Applicants: If you need an accommodation, during the application/hiring process, you may request an accommodation by sending email toaccommodationsupport

To all Staffing and Recruiting Agencies:Our Careers Site is only for individuals seeking a job at Qualcomm. Staffing and recruiting agencies and individuals being represented by an agency are not authorized to use this site or to submit profiles, applications or resumes, and any such submissions will be considered unsolicited. Qualcomm does not accept unsolicited resumes or applications from agencies. Please do not forward resumes to our jobs alias, Qualcomm employees or any other company location. Qualcomm is not responsible for any fees related to unsolicited resumes/applications.

If you would like more information about this role, please contact Qualcomm Careers.


We are engineers, scientists and business strategists. We are from many different countries and speak many different languages. We come from diverse cultures and have unique perspectives. Together, we focus on a single goalwe invent breakthrough technologies that transform how the world connects, computes, and communicates.

Employment Notices for US-based Job Postings

Equal Employment Opportunity

"EEO is the Law" Poster Supplement

Pay Transparency NonDiscrimination Provision

Employee Polygraph Protection Act

Family Medical Leave Act

Rights of Pregnant Employees

Discrimination and Harassment

California Family Rights Act

Prepare and succeed

Qualcomm Interview FAQs

Employment Fraud Alert

We have received reports of employment scams that seek financial or personal information from job candidates. Please note these communications are fraudulent. Click here to view our Employment Fraud Alert.

Posted: 2021-06-11 Expires: 2021-07-12
Sponsored by:
ADP Logo

Before you go...

Our free job seeker tools include alerts for new jobs, saving your favorites, optimized job matching, and more! Just enter your email below.

Share this job:

Software Design/Development Firmware for Machine Learning Accelerator(Boulder, CO or San Diego, CA)

Qualcomm Inc.
San Diego, CA 92101

Join us to start saving your Favorite Jobs!

Sign In Create Account
Powered ByCareerCast