Senior Software Developer – in Test (PCIe, USB and Drivers)
The QNX Test Team is looking for talented test developers to exercise, verify and push the limits on next generation computing platforms. You will be part of a test team responsible for validating the functionality and performance of device drivers for next-gen hardware peripherals on some of the most advanced hardware platforms available. You will contribute directly to platform bring up and delivery for QNX partners and customers in several industry segments including automotive, medical, industrial manufacturing and consumer products.
Technical areas include development and execution of automated testing in the areas of high-speed communication busses (PCIe, USB, SDIO), serial drivers (SPI, CAN, I2C, etc), and wired and wireless networking drivers. The ideal candidate is an individual with an understanding of how communication protocols work, how operating systems and device drivers work and how CPU architectures/ specific hardware platforms affect OS functionality and performance. The candidate should be able to debug complex problems and must possess the ability to implement new verification and validation techniques.
Provide focus on testing the high-speed communication protocols for PCIe and/or USB
Working with BSP & driver development team to analyze and test new features, investigate and resolve customer reported problems and provide interim testing support for experimental software to customers.
Creating or updating test plans and test cases based on new product features, customer requirements or identified problems.
Developing and optimizing automated test cases with continuous improvements in coverage and efficiency
Providing solid traceability from software requirements to test cases to test results
Identifying and running a series of tests against new software builds on reference and/or customer hardware
Analyzing test results, debugging observed issues, generation of defect reports, verifying fixed issues, updating pre-existing defect reports.
Creating test reports based on test results for internal and external audiences with high attention to detail.
Essential Skills and Qualifications:
Bachelor’s degree in computer science, engineering or equivalent
Intermediate or Senior level experience in embedded test, design and engineering
Intimate/expert knowledge of C/C++ is a requirement
Strong working knowledge of Python, Perl and shell scripting
Working knowledge of QNX or other embedded operating system
Familiar with Continuous Integration build systems (Jenkins, Hudson)
Familiar with source versioning, problem reporting and constant integration systems (SVN, Git, JIRA, Jenkins)
Knowledge of formal test theory, test methodology, and ISO9001 quality management.
Experience in developing automated tests and testing tools.
Ability to enable automation for manual tests and automate test result processing.
Able to write clear and concise problem reports
Familiarity with common processor architectures (.e. 32-bit and 64-bit variants of x86/ARM)
Ability to work and participate in a team setting with an open, collaborative communication style
Track record of mentor-ship and skills to develop junior team members
Excellent communication, presentation, and organizational skills are necessary
Enthusiasm, a passion for quality and a desire to learn about new technologies is a requirement!