Staff Software Engineer – Hypervisor – Software Engineering
Company | Qualcomm |
---|---|
Location | San Diego, CA, USA |
Salary | $134800 – $202200 |
Type | Full-Time |
Degrees | Bachelor’s, Master’s, PhD |
Experience Level | Mid Level, Senior |
Requirements
- Bachelor’s degree in Engineering, Information Systems, Computer Science, or related field and 4+ years of Software Engineering or related work experience.
- OR 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.
Responsibilities
- Design, development and integration of SoC firmware features, diagnostics and test capabilities for QCT boot platforms.
- Strong coordination and collaboration across wide range of technical areas to include software, hardware, ASIC, integration, architecture, and emulation teams.
- Paying attention to the details during all phases of firmware design, development, integration, testing and release – Work with Emulation, HW design teams, as necessary, in verifying and debugging firmware, driver and resolving platform issues.
- Efficient and secure (ie. cognizant of not exposing security exploits) coding plus driving code review of firmware logic updates with all required stakeholders.
- On time execution of defined tasks and deliverables, driving dependencies with other teams to closure.
- Triage of software issues, defect investigation and problem resolution.
- Technical documentation including APIs, manuals, and user guides.
Preferred Qualifications
- Master’s Degree in Computer Science, Engineering, or related field.
- 8+ years of Software Engineering experience.
- 1+ year of work experience with Git, Perforce, or Source Code Management System.
- Strong understanding or experience with C.
- An understanding of computer architecture, operating systems, and kernels. Linux, kernel, bootloader or OS development experience.
- ARM CPU architecture knowledge. IOMMU and ARM SMMU knowledge Hypervisors and virtualization.
- Experience with multi-processing or multi-threading, concurrency, and synchronization. Writing device drivers and interfacing hardware.
- Experience with secure coding.
- Use of debugging tools such as GDB, Lauterbach Trace32 and understanding assembly. Real-time OS. Toolchains and systems libraries (libc etc).
- Python, shell scripting and Linux based development environment.
- Good communication and presentation skills.
- Test development and test automation.
- Contributing to open-source projects.
- Demonstrated independent software design, good analytic and problem-solving skills. Any automotive and functional safety experience may also be relevant.