Lead Software Development Engineer in Test eHarmony
Job Summary:Â We are looking for engineers who are passionate about software and testing. The ideal candidate will be someone who is detail oriented and has the capacity to quickly grasp the inner workings of the software that they are testing. These engineers will spend the majority of their time writing code in Java and Groovy. We are looking for engineers who have the curiosity to know how code works at its core. Â Testing culture at eHarmony:
- Here at eHarmony, testers are developers who are perfectionists and have an ingrained drive to ensure that every piece of code meets the highest standards of quality.
- We have adopted Scrum as our agile development methodology. Software engineers in Test are expected to be active participants of the sprint planning process.
- By practicing Test Driven Development we ensure that testing is part of the development cycle. Not an after-thought. Testers are responsible for acceptance tests while developers focus on unit tests.
- We have a Continuous Integration environment that kicks off a suite of integration tests every time we do a build.
- Developers and testers are expected to work together and even pair program. Testers are expected to work with developers to write performance tests to ensure that the software that is shipped is not just defect free but also performs under load.
- We are investing heavily in the concept of Continuous Delivery. We are so passionate about this that we have taken the lead in hosting regular meet-ups that discuss this topic. We value engineers who are passionate about testing because integration/acceptance testing is an integral part of the Continuous Delivery process.
- Lastly, we strongly believe that good testing practices will ensure that we agile, not just in terms of processes but also in terms of delivering features.
- Participate in the Scrum planning sessions. Analyze the requirements and help with defining the acceptance criteria for the features that are being developed.
- Work closely with the Product team to understand their expectations of how a feature would function.
- Work in tandem with the developers to write integration tests in Selenium-based testing framework.Â
- Organize feature demos for the Product and Engineering leadership team.Â
- Work with the release engineers to automate the execution of the acceptance tests in Jenkins (our continuous integration server).
- Maintain and deploy builds to the QA environment.
- Work with the Operations team to debug acceptance testing failures that are related to the testing environment.
- Actively participate in code reviews conducted by the developers.
- Actively monitor post-release metrics to identify any defects that may have slipped through the cracks.
- Be the first point of contact for any defects found in Production. If a defect is found in Production, developers and testers are expected to write tests that expose the defect before any fix is attempted.
- Evaluate existing testing methodologies and suggest new techniques that will help us deliver high-quality features faster.
- Improve, maintain, and execute automated functional, regression, acceptance and performance testing codebase.
- Maintain a solid understanding of QA workflows, automation best practices, and agile methodologies.
- Maintain proficiency in application and use of systems, tools, and processes within the Technology department.
- Mentor junior members of the team and provide training and support.
- Take a lead role in QA Roadmap initiatives.
- Bachelor degree in software engineering, computer science, or related field + 5 years of experience as software engineer, software automation engineer, technical quality engineer, or related field.
- 2 years of experience in Linux, Java, SQL, CI Tools (e.g. Jenkins), Bug tracking tools (Bugzilla or JIRA), and UI test automation using Selenium. Â
- Great to have: Agile methodologies, Rally, HadoopÂ
- Experience in identifying bottlenecks for scalability and performance
- Experience in development of automation tools and frameworks for performance testing, measurement and analysis
- Experience in performing load, stress, endurance and capacity testing including planning activities through reporting, in mid-large scale application systemsÂ
- Experience with Grinder, JMeter, or LoadRunner a plus