The Diags Software Engineer will join a team in ION R&D with a mandate to develop diagnostic test software code to support H/W and S/W development as well as production testing. The team’s role is to develop “bring-up” software and Test Diags.
Bring-up software is used by H/W designers early in the development cycle to accelerate the delivery of good working H/W boards to the software development team. The team’s work will include the development and integration of low level device drivers, test utilities and 3rd party API’s in close collaboration with the S/W team to ensure maximum code re-use. The test code will verify and stress the product in a lab environment as part of the DVT (Design Verification Tests) in accordance with product specifications.
Test Diags leverage subsets of the bring-up software to create test code that is embedded in the factory test. Test Diags are a key component of the production E2E test strategy; they help drive the best possible test coverage and debug capability while reducing the cost of test.
Key Responsibilities / Functions:
Design and develop Diags software according to the product roadmap in collaboration with Software, Hardware, DVT (Design Verification), FPGA design and Operations production test teams.
Design and develop Diags software from early concept phase, through architecture, prototype / board bring-up to ultimate release of the product to production.
Develop regression tests to confirm that Diags are fault-free.
Provide support for newly released and mature products to optimize manufacturing yields. Provide debug support for difficult product/test problems in manufacturing.
Contribute to the development of a comprehensive E2E production test strategy.
Contribute to and support product design-for-testability to drive optimal test Diags coverage and help reduce the cost of production testing.
Contribute to the development of production test debug guides by documenting Diags routines.
Masters or Bachelor’s degree in Electrical Engineering, Telecommunication Engineering, or Computer Engineering with 2+ years of related up to date experience.
Experience in C/C++ is essential.
Understanding of writing code on low level direct hardware access using device data sheets for accessing embedded controller and their peripherals and associated low level interface protocols; examples include JTAG, SPI, I2C
Comfortable working with S/W development environment tools and Linux.
Well-organized, methodical individual able to work in an environment with time-constraints.
Fluent, both written and orally, in English. Comfortable explaining problems to both H/W and S/W teams.
Desired Qualifications: (Education, Technical Skills/Knowledge)
Knowledge of real time OS and embedded UNIX and using its debug capabilities.
Comfortable reading product hardware schematics and performing digital circuit analysis. Experienced in analyzing and debugging failures.
Understanding of script languages like TCL or PERL for test sequencing
Experience with boot loaders, e.g. u-boot, multi-core processors, PCIe
Detail-oriented person with an ability to develop comprehensive code to thoroughly exercise H/W functionality of an assigned product.
Flexible, creative individual who is able to debug product problems in an environment where debug tools are not always well-developed.
Familiarity with versi