PRINCIPAL SOFTWARE TEST ENGINEER
Role details
Job location
Tech stack
Job description
Your tasks Product software team is responsible for providing customer facing software that runs on our industry-leading all-optical network switch. The team is responsible for managing two different software stacks running on different PCBs. The network software (NIC SW) implements various L2/L3 protocols and allows customers to communicate with the optical switch using the desired interfaces that includes TL1, Netconf, Restconf and WebUI. The control software (DSP SW) is a bare metal stack that receives user commands through NIC SW and controls the movement and position of piezoelectric actuators.
The Principal Software Test Engineer role involves hands-on technical contributions, leadership, and collaboration to ensure the delivery of high-quality software products.
Test strategy and planning:
Collaborate with the Principal Software Engineer, System Engineer and Manager to develop comprehensive test strategies for projects, considering product knowledge and design constraints.
Work closely with cross-functional teams to define project scopes and contribute to planning and estimation of testing efforts.
Test execution and technical expertise:
Demonstrate proficiency in test planning, execution, and reporting.
Lead the development and review of software verification plans in collaboration with Test Engineers.
Utilize hands-on experience to integrate software with hardware, understanding various hardware protocols (I2C, UART, SPI, USB) and effective use of scope and logic analysers.
Analyse testing results, identify improvement opportunities, and drive the implementation of changes.
Test Automation
Develop and implement automated testing frameworks and scripts to enhance testing efficiency.
Collaborate with the development team to integrate automated testing into the continuous integration/continuous deployment (CI/CD) pipeline.
Cross-Functional Collaboration:
Work closely with cross-functional teams to address potential software issues during production and in the field, ensuring timely resolution. Collaborate with production, New Product Introduction (NPI), and customer support teams to enhance overall product quality.
Leadership and Mentorship:
Lead and support testing teams in overcoming technical challenges during the testing process.
Conduct effective design and code reviews to enhance team efficiency.
Mentor and train team members on testing methodologies, product features, and best practices for software testing.
Process Orientation:
Produce relevant project artifacts as required by the testing process.
Provide specific documentation related to test plans, test cases, and test results to meet regulatory compliance and organizational requirements.
Continuous Improvement:
Proactively identify areas for process improvement within the testing process and contribute to the overall improvement of the software development lifecycle., Stay abreast of industry best practices and emerging technologies to continually enhance testing methodologies.
Requirements
Your profile 10+ years of relevant experience in developing test case for embedded software along with experience of developing hardware and software integration test cases. Ability to find hardware faults through software.
10+ years' experience in developing test automation. Strong proficiency in Python programming language, including the ability to write clear, maintainable, and efficient code for test automation. Experience with popular Python test automation frameworks such as Nose and PyTest.
Experience integrating automated tests into CI/CD pipelines using tools like Jenkins, or GitLab CI.
Use of Linux as a basic working environment and ability to write shell scripts.
Solid understanding of testing methodologies, including unit testing, integration testing, and end-to-end testing.
Strong debugging skills and the ability to troubleshoot issues in both the testing code and the application under test.
Familiarity with Agile and Scrum methodologies, and experience working in an Agile development environment.
Desirable skills
Knowledge of containerization tools like Docker and container orchestration tools like Kubernetes for creating scalable test environments.
Understanding of basic security testing principles and the ability to integrate security testing into the test automation process. Use of Nessus or Qualys scanners
Familiarity with performance testing tools such as JMeter or Locust, and the ability to conduct performance testing using Python.
Experience with cloud services such as AWS, Azure, or Google Cloud Platform, and the ability to leverage them for testing purposes., Relevant certifications in Python programming or software testing (e.g., ISTQB, Certified Agile Tester) would be a plus.
Benefits & conditions
Why HUBER+SUHNER Polatis? Our aim is to be the employer of choice and as such you can be assured of a market leading remuneration package that matches your skills and experience.
Your employment and development is at the heart of our "Fundamentals".
We have an entrepreneurial and collaborative culture within the business. We can't wait to hear from you!