About the Role
As a leading technology innovator, Qualcomm pushes the boundaries of what's possible to enable next-generation experiences and drives digital transformation to help create a smarter, connected future for all. As a Qualcomm Software Engineer, you will design, develop, create, modify, and validate embedded and cloud edge software, applications, and/or specialized utility programs that launch cutting-edge, world class products that meet and exceed customer needs. Qualcomm Software Engineers collaborate with systems, hardware, architecture, test engineers, and other teams to design system-level software solutions and obtain information on performance requirements and interfaces. This is an exciting opportunity to join a growing team and contribute to developments key to the business unit’s strategy.
Responsibilities
- Lead and mentor junior firmware developers on the team.
- Drive process and workflow improvement initiatives within the firmware team.
- Architect, design, and implement software and firmware for DSP products, systems, and SoCs, from the requirements stage to deployment.
- Design, develop, code, test, and debug firmware and software.
- Create documents for firmware and software architectures, designs, and algorithms.
- Integrate and validate new software designs.
- Participate in software design and code reviews.
- Develop unit and functional tests for software and firmware developments.
- Plan and schedule development and track development progress.
Requirements
- Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 8+ years of Software Engineering or related work experience.
- Master's degree in Engineering, Information Systems, Computer Science, or related field and 7+ years of Software Engineering or related work experience.
- PhD in Engineering, Information Systems, Computer Science, or related field and 6+ years of Software Engineering or related work experience.
- 4+ years of work experience with Programming Language such as C, C++, Java, Python, etc.
- BS or higher degrees preferred (Computer Science, Computer Engineering, or Electrical Engineering with software experience).
- Strong C/C++ design and programming skills.
- Experience with unit testing and scripting languages such as Python.
- Prior experience in developing and debugging software, including pre-silicon and post-silicon testing.
- Experience developing device drivers and low-level software for HW peripherals such as I2C, SPI, UART, DMA, etc.
- Real-time OS techniques such as preemptive multi-tasking schedulers, multi-threaded execution, semaphores, mutexes, and interrupts.
- Hardware debug and lab experience using JTAG debug tools, oscilloscopes, etc.
- Embedded development for System-On-Chip (SoC) or x86 platforms.
- Linux kernel device driver and user space development is preferred.
- Previous technical leadership experience is preferred.
- Familiarity with SerDes and optical high-speed interfaces is desirable.
- Familiarity with ethernet, switching technologies, and Forward Error Correction is desirable.
- Excellent written and verbal communication skills.
Skills
- C
- C++
- Java
- Python
- Unit testing
- Scripting languages
- Device drivers
- Low-level software
- I2C
- SPI
- UART
- DMA
- Real-time OS
- Preemptive multi-tasking schedulers
- Multi-threaded execution
- Semaphores
- Mutexes
- Interrupts
- Hardware debug
- JTAG debug tools
- Oscilloscopes
- Embedded development
- System-On-Chip (SoC)
- x86 platforms
- Linux kernel device driver
- User space development
- SerDes
- Optical high-speed interfaces
- Ethernet
- Switching technologies
- Forward Error Correction
Location
- Vancouver, BC (remote)
Work Type
- Full-Time
Experience Level
- Senior member
- 8+ years of Software Engineering or related work experience
- 7+ years of Software Engineering or related work experience
- 6+ years of Software Engineering or related work experience
- 4+ years of work experience with Programming Language such as C, C++, Java, Python, etc.
- Prior experience in developing and debugging software
- Previous technical leadership experience
Education Level
- Bachelor's degree in Engineering, Information Systems, Computer Science, or related field
- Master's degree in Engineering, Information Systems, Computer Science, or related field
- PhD in Engineering, Information Systems, Computer Science, or related field
- BS or higher degrees preferred (Computer Science, Computer Engineering, or Electrical Engineering with software experience)
Salary/Compensations
- Highly compensated with generous compensation packages
About the Company
- Qualcomm Canada ULC is a leading technology innovator.
- Our main R&D office is conveniently located in downtown Toronto.
- The candidate will join a team to work on cutting edge optical and electrical silicon technology that shapes the future of AI data centers and high-performance systems.
Equal Opportunity
- Qualcomm is an equal opportunity employer.
- If you are an individual with a disability and need an accommodation during the application/hiring process, rest assured that Qualcomm is committed to providing an accessible process.
- Qualcomm expects its employees to abide by all applicable policies and procedures, including but not limited to security and other requirements regarding protection of Company confidential information and other confidential and/or proprietary information, to the extent those requirements are permissible under applicable law.
