Software Engineer in Test, Engineering Productivity
Our Test Automation squad is a small squad within our Engineering Productivity team whose mission is to provide scalable and reliable test automation so that developers can focus on testing their code changes with fast, effective feedback.
Our core beliefs:
- Quality assistance - Developers own the quality of their own code, which includes implementing test coverage. Testing isn’t a separate practice, its intimately part of software development.
- Enablers for developers - TestAuto squad does not write test code, but enables developers to test their own code. We provide the infrastructure, automation and “scaffolding” (test fixtures, test doubles/mocks) that developers can use to write and run their tests.
- Speed and quality - provide an excellent testing experience for developers that allows them to move fast without breaking things. A balanced test pyramid, built on fast unit tests, provides fast feedback and higher level end-to-end tests give increasing confidence that the code is working as intended. Automated tests provide the safety net to make code changes with confidence that functionality doesn’t regress.
As part of this role, you will have the opportunity to work alongside engineers across the full stack (front-end, backend) and across all engineering teams. The key to success will be building relationships with developers to ensure you understand the challenges they face with making their code testable and implementing test coverage for it, and then helping them solve that.
Example initiatives you will support / lead:
- Migrate Protractor UI tests to Cypress.io framework to reduce test flakiness, and improve developer productivity with a better local test runner to run and troubleshoot UI tests.
- Parallelize long running end-to-end test suites across multiple Jenkins machines to provide a scalable solution that allows developers to add new tests while keeping test runtimes close to an hour.
- Speed up integration tests with in-memory database storage
- Work with developers to document good testing practices and help socialize them to promote their adoption.
We value people who are passionate about testing, eager and willing to tackle any problem no matter how hard it may seem, and thrive on working closely and collaboratively with developers.
- Developing software with Python
- Experience designing CI/CD pipelines (using Jenkins for example) and test automation from scratch
- Experience working with large scale test automation
- Passionate about testing
- Understand how to break software and identify edge cases
- Testing frameworks such as py.test
- Bash scripting on Linux / Mac