Staff Software Engineer, Linux Tools & Host Software (Multiple locations)
Role details
Job location
Tech stack
Job description
We are hiring a hands-on systems software engineer to design, maintain, and improve Linux tools and services used on hosts equipped with our PCIe-based accelerator devices., * Design, implement, and maintain Linux services and tools in modern C or Rust
- Integrate with IPC/RPC techniques such as TCP/IP, Unix domain sockets and messaging libraries
- Build CLI tools that are user-friendly, have built-in help, are intuitive and don't crash
- Serialize and deserialize to formats (JSON, binary, etc) to integrate with other endpoints
- Create shared libraries that export user-friendly APIs for developers using our products
- Use containers where it makes sense, for example, to standardize builds, and manage dependencies
- Use a rich ecosystem of AI tools to turbo boost your development
- Use a variety of Linux distributions
- Create packages (DEB/RPM)
- Document plentifully
Requirements
Do you have experience in Tooling?, You cross over between userspace and the Linux kernel- or even QNX- when given the chance. You relish the opportunity to work on the kernel even if you have mostly worked in userspace. You are excited to work on accelerator products for video, AI and whatever else comes along.
You deliver software that is reliable and a joy to use., * Linux software development experience using modern C and/or Rust
- Familiarity with CMake, make, gcc or clang, gdb, valgrind, and git
- Practical experience writing TCP/IP socket programs
- CLI tool development with a user-first mindset
Nice to Have:
-
Knowledge of video application pipelines and GStreamer, FFmpeg, V4L2, or OpenCV
-
Knowledge of TCP/IP (IPv4/v6, TCP, UDP, TUN/TAP, veth, bridging)
-
Knowledge of Linux system management (users, disks, networks)
-
Experience with PCIe and host-device concepts
-
Interest in Linux kernel development or QNX
-
Exposure to AI accelerator software stacks
-
Understanding of DMA, DMABUF, and IOMMU
-
Experience flashing firmware
-
Python or bash scripting, * Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 4+ years of Software Engineering or related work experience., 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.
Benefits & conditions
4.04.0 out of 5 stars Raleigh, NC $121,400 - $202,200 a year, 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.
Pay range and Other Compensation & Benefits : $121,400.00 - $202,200.00
The above pay scale reflects the broad, minimum to maximum, pay scale for this job code for the location for which it has been posted. Even more importantly, please note that salary is only one component of total compensation at Qualcomm. We also offer a competitive annual discretionary bonus program and opportunity for annual RSU grants (employees on sales-incentive plans are not eligible for our annual bonus). In addition, our highly competitive benefits package is designed to support your success at work, at home, and at play. Your recruiter will be happy to discuss all that Qualcomm has to offer - and you can review more details about our US benefits at this link .