Job description
We have an exciting opportunity for a Senior Software Development Engineer in Test for our Software Development/Test Engineering team. This is a role for someone who will be responsible, alongside the team, for developing our Test Automation Framework to support our NextGen solutions within our Payment System programs. A strong quality mindset is required for the role to warrant internal developed robust software Agile deliveries by the team within the program.
You will use your expertise in Core Java development to build complex systems and frameworks. In doing so you will also demonstrate your breadth of expertise in specific frameworks and tools to architect, design and implement distributed systems and frameworks to support test. This role has the added benefit for you to remain hands on.
You will also be friendly and approachable with a love for the craft of software development. You have a desire to continually improve your own skills and the ability to transfer those skills to the junior members of your team who you will mentor and, of course, you love seeing your software in production.
You will
- Drive quality engineering, exploratory testing and test automation with a focus on improving the quality of software which includes development of tests based on requirements
- Support a team of quality assurance and software testing professionals, promoting the established processes, standards and technical tooling needed to ensure the quality of software delivered to our software sale customers
- Support and contribute technical, process and procedural improvements that drive software quality and deliver value to our customers
- Support the customer engagement and build strong relationships with your peers across the customer’s quality assurance and testing organisation
- Drive the successful acceptance by the customer of the software delivery
- Establish and develop detailed test plans based on your sized testing estimates
You will also:
- Be an excellent clear strong effective communicator - spoken and written English
- Be a contributor to mentoring your team to develop them further in being successful in their role
- Work with the wider quality assurance and software testing organisation to strengthen and harmonise the tools, frameworks, processes and procedures needed to improve software quality
- Analyse, detect and address test suites to ensure test packs (i.e. regression) contain intelligent test scenarios which provide maximum test coverage
- Support your Test Lead or Test Manager with test and progress reports, and be capable of highlighting risks
- Assess, select and adopt key tools and frameworks to drive automation at all levels across the team
- Automate tests through selection of pragmatic technologies and frameworks
- Understands and follows QA standards, processes, tools and methodologies and partner with other functions to communicate testing requirements
- Work with the wider engineering team to resolve issues that impede testing and software quality
- Possess a sense of urgency to get the job done without compromising quality
- Comprehend our delivery scope and can demonstrate flexibility to adjust accordingly with priorities
You will have experience with:
- Java 8+
- Spring Framework
- One or more build tools, e.g. Maven, Gradle etc.
- One or more open source JEE servers, e.g. Tomcat, Jetty, Websphere App Server etc.
- Automation testing experience with the ability to create test automation frameworks using open-source technologies, such as Selenium Webdriver, Cucumber/JBehave, Gherkin, and APIs.
- Experience with Oracle, IBM DB2 or PostgreSQL including DB scripting.
- Experience of testing real-time applications (ideally in the payments space)
- Automation at acceptance test level
- Experience using various message serialisation formats such as JSON, XML.
- Writing exemplary quality test code and code reviews.
- Experience with web-based technologies such as REST, SOAP and Web-Sockets
- Testing APIs both manually and using automation
- Platform tests – testing a platform consisting of multiple services end to end
- Familiarity with UNIX/Linux environments and shell scripting.
- Delivery focused
- Agile Scrum
and you may also have experience with:
- Financial services and/or Payment Systems domain
- Cloud based environment (AWS / Azure)
- Scripting Programming language experience (Python or Ruby)
- Experience with Jenkins
- Experience with Git
- Knowledge of queuing technologies (RabbitMQ, Kafka etc).
- Knowledge of Docker.
- Jira and Confluence.
- Familiarity with Infrastructure as code concepts using tools like Ansible, Chef, Terraform etc.
- Knowledge of Cloud technologies
In return, you will join a thriving team on an exciting journey within a payments program where there are opportunities to grow and self-develop your skills. You will learn elements of how different payment systems operate within the financial services sector and be instrumental to driving quality in our deliveries.
On top of the compensation, bonus schemes, time-off, benefits and perks, the role also offers;
- A hybrid working model with some on-site office work (flexible),
- Additional flexible working such as ‘Work from anywhere’ of up to 4 weeks a year,
- Training of new skills and receiving mentorship using ‘Unlocked’, and
- Other educational portals, to name a few.
All activities involving access to Mastercard assets, information, and networks comes with an inherent risk to the organization and, therefore, it is expected that every person working for, or on behalf of, Mastercard is responsible for information security and must:
- Abide by Mastercard’s security policies and practices;
- Ensure the confidentiality and integrity of the information being accessed;
- Report any suspected information security violation or breach, and
- Complete all periodic mandatory security trainings in accordance with Mastercard’s guidelines.