Company:
Qualcomm Canada ULC
Job Area:
Engineering Group, Engineering Group > Software Engineering
General Summary:
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.
Job Overview
- Create software/firmware test plans, addressing requirements traceability matrix and test coverage, with respect to feature requirements.
- Design, develop, execute and maintain automated software/firmware test suites for the purpose of verifying quality and compliance of Qualcomm products at functional, integration and system levels.
- Manually test, where appropriate, the customer experience of installation and deployment of Qualcomm hardware and software in a mobile, compute and automotive environment.
- Assist in the creation of a Quality Engineering/Release engineering process with emphasis on continuous integration and continuous deployment.
- Assist in achieving production-level software readiness, implement customer use-cases, workload analysis models, workload creation, and collaborating with other teams on bring-up/debug/diags.
- Focus on ensuring that existing Operating Systems and customer usage environments run well, while identifying strong opportunity for enhancements, from a power and performance perspective.
Minimum Qualifications:
- 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.
Preferred Qualifications:
- 8+ years of experience in Software/Firmware Validation.
- Demonstrated software test engineering in SW/FW engineering with focus on Data Center Servers (minimum 5 years).
- Strong understanding and experience in software/firmware test automation techniques.
- Extensive experience working with operating systems like Ubuntu Server, RHEL, SUSE, similar or Windows server.
- Work with multiple SW/HW Engineering teams to ensure that all requirements and features of reference platform requirements have been validated at a component, integration, functional and system level.
- Strong programming skills with experience in C and/or Python programming languages.
- Experience developing automated software/firmware test cases for server platforms, supporting bring-up and production SW releases.
Nice to have:
- Prior Experience with SW/FW integration at BIOS/UEFI, BMC firmware, Operating System for x86/ARM64/RISC-V 64bit for server platforms.
- Strong understanding of Server firmware Standards, opensource Implementation and specifications for ARM64-based servers.
Principal Duties and Responsibilities:
- Leverages advanced Software knowledge and experience to design, develop, create, modify, and validate embedded and cloud edge software, applications, and/or specialized utility programs.
- Analyzes user needs, software requirements, and time and cost constraints to design and customize software for optimal operational efficiency.
- Designs and implements software modules for large-scale products and systems.
- Participates in and leads design, coding, unit testing, debugging, and integration efforts to ensure projects are completed to specifications and schedules.
- Performs complex code reviews and regression tests as well as triages and fixes issues to ensure the quality of code.
- Collaborates with individuals outside the software function (e.g., Hardware, Systems, and Test engineers) to ensure solutions work with other components of a specific project.
- Writes detailed technical documentation for complex Software projects.
Level of Responsibility:
- Works independently with minimal supervision.
- Provides supervision/guidance to other team members.
- Decision-making is significant in nature and affects work beyond immediate work group.
- Requires verbal and written communication skills to convey information. May require basic negotiation, influence, tact, etc.
- Has a moderate amount of influence over key organizational decisions (e.g., is consulted by senior leadership to make key decisions).
- Tasks often require multiple steps which can be performed in various orders; extensive planning, problem-solving, and prioritization must occur to complete the tasks effectively.