Our team is a subsystem of the global Firmware Engineering Group and is located at Seagate Singapore Design Centre. The mission of System Integration Engineering (SIE) is to develop tests, tools, and methods to identify and document firmware issues and assist in the resolution and verification of those issues in order to achieve the vision of identifying firmware defects prior to delivery of code to Seagate customers with an end goal of the customers detecting zero defects. The test development team designs, develops and maintains test software and toolkits in C/C++/Python/Bash under Linux/Windows to find defects in the controller firmware of Seagate’s leading-edge SAS/SATA/NVMe Hard Disk Drives (HDD). We also customize the Linux kernel and device driver of SAS/SATA/NVMe to support the global SIE test developers and test execution teams in the US. The work of the team is critical to the firmware quality of Seagate’s new HDD.
About The Role - You Will
- Develop and maintain software test suites in C/C++/Python/Bash under Linux and Windows that find defects in SAS/SATA/NVMe HDD controller firmware:
- New host features
- New data flow tests to exercise new workloads
- Event injection tests (intermix resets, aborts, etc. to find timing windows)
- Error injection tests (create media errors and ensure firmware deals with them)
- Customer-unique tests
- Customize Linux kernel and device driver of SAS/SATA/NVMe to support the global SIE test developers and test execution teams in the US and Singapore
- Deliver tests on time to meet firmware program objectives by adopting Scrum methodology in an Agile process
- Conduct failure analysis together with firmware teams and test execution teams, write unit tests to prove the test concept and conduct experiments, and fix the issues in the test software
- Innovate improvements to help the test execution teams with analysis of machine-readable error information in test logs
- Conduct test design review and code review with other software developers in the US
- Develop utilities to automate repetitive tasks
- Study existing test software in order to design or modify the tests to meet the new requirement
- Study the Industry Standard of SAS/SATA/NVMe/PCIe command specs, as well as Seagate specific feature specs, and apply to the test software
- Bachelor’s degree in Computer Science, Software Engineering, Electrical Engineering or relevant disciplines
- Your past experience or work records should demonstrate a strong passion for software or firmware development, debugging, and problem-solving.
- You need to take the initiative to solve the challenging problems timely while working closely with other developers
- You need to be cooperative with good interpersonal skills to work effectively in a cross-functional global team environment
Your Experience Includes
- At least 6 months of significant or extensive project experience in developing and debugging engineering software or firmware in C, C++, Python, Bash, Java, and C#
- Able to use common Linux commands for daily development work.
- Agile Scrum training or experience
- Linux software development training or experience
- Award of any large or moderate scale software competition
- System knowledge of HDD or SSD storage devices
- Seagate prior internship will have an advantage
The Shugart site (named after Seagate’s founder, Al Shugart) is a research and design center. Easily accessible from the One-North MRT Station, many employees choose to take mass-transportation to work. Ample free on-site parking is also available. Being a purpose built building; The Shugart has excellent employee recreational facilities. Take an active break at our badminton courts, table tennis tables, in-house gym and recreation rooms. Our yoga and zumba classes are very popular. We also offer classes and interest groups in photography, gardening and foreign languages, and have various on-site celebrations, and community volunteer opportunities.