Westpac NZ - Senior Automation Quality Engineer
Apr-2021 - Nov-2023
Intro
During my time at Westpac, I worked as a roving Automation Quality Engineer across various teams. This role involved learning about different product domains and technology stacks, both for the products, infrastructure, and their automation suites. It was a challenging yet rewarding experience that kept me engaged and encouraged continuous learning. My focus was always on thorough testing, addressing immediate issues and anticipating future challenges to drive project success.
References
- 2023 Stephen Stuart Reference. Stephen was my People Lead for my duration at Westpac
- 2023 Kate Nesmeylova Reference Check for TTC Global. Kate was the Quality Engineering Chapter Area Lead for Westpac
- 2023 Hannah Gray Reference. Hannah was team lead for the Test Environments team I was part of for 10 months
linkedin Recommendations
- 2023 Isaac Carrington Head of Platform Engineering
- 2023 Catherine Lupton Test Manager
MF8TL Team - Legacy API Server Replacement
This team implemented a replacement of a legacy API Server used by the bank's mobile and web apps. The old system had a mature API automation suite implemented using Java, TestNG, and REST-assured.
My contributions
- Refactored the automation suite for use with the new server.
- Streamlined code, reduced duplication, and used method overloading to centralise request and response handling, which also facilitated logging to Splunk.
- Enhanced the API automation by crafting new test scenarios, adhering to established patterns such as service classes and POJOs (Plain Old Java Objects).
- Adapted testing tools and processes from the legacy system for seamless integration with the new implementation.
- Developed Splunk dashboards to monitor the progress of the new solution's implementation against the legacy system.
Test Environments Team - React Web App to Visualise Test Environments
The BS11 Outsourcing policy for banks by the RBNZ requires banks like Westpac NZ to have systems and processes to be able to replace any outsourcing by the start of the next business day. For Westpac NZ this includes severing all links to its parent Westpac Banking Corporation in Australia, within a matter of hours. Furthermore, BS11 requires credible evidence of this capability.
The Test Environments Team was established to manage the test environments necessary for Westpac NZ to demonstrate a separation event. My main responsibility within this team was to build a small web app (UI and API) for visualising systems, and their interconnections across various test environments. My role primarily focused on JavaScript web app development, but I often provided insights from a tester's perspective and liaised with the Westpac Quality Engineering Chapter for their feedback.
My work
- Developed a small web app (UI and API) using Node.js, Express.js, and React..
- Created node maps illustrating system interconnections across various test environments using mermaid.js.
- Provided insights from a tester's perspective and liaised with the Westpac Quality Engineering Chapter.
Observability Squad - Platform Engineer and Splunk Champion
The Observability Squad, a Platform Engineering team tasked with supporting Splunk and other observability tools like Dynatrace, I had the opportunity to learn and grow in the role of "Splunk Champion". I was encouraged into this role by Isaac Carrington(Head of Platform Engineering) despite limited prior platform engineering experience.
In my role, I:
- Acquired skills in Platform Engineering (Docker, Linux VM's, Terraform, Bash, HashiCorp Vault)
- Supported internal Splunk users for (Searching, analysis, dashboard creation, PagerDuty integration)
- Managed a distributed instance of Splunk Enterprise (Indexers, search heads, forwarders, event collectors, role-based access controls)
- Introduced the Quality Engineering Chapter to use Splunk for Reporting and Dashboarding the results from their automation suites
Moreover, as the "Splunk Champion", I strived to help people see the customer's experience through the data being collected. When onboarding new systems, I guided users through a series of questions aimed at maximizing the Splunk system. Focusing on how best to monitor the solution's performance and errors, as well as on the quality of the information being logged, to really enable efficient issue resolution.
Ultimately, the goal of observability is to swiftly remediate critical issues by
- Detecting them,
- Understanding their impact, and
- Resolving them promptly.
D365 KiwiSaver Squad - Java API and UI Automation
In response to IRD's review of default KiwiSaver providers in 2021, the Westpac-run BT Funds emerged as one of the continuing providers, necessitating the enrollment of approximately 40,000 clients. To manage this influx efficiently, the D365 KiwiSaver Team undertook the creation of a D365 workflow for streamlined enrollment processing. This involved developing an API interface to handle requests from IRD, along with automating basic flows and supporting staff with exception cases through the D365 UI. The solution utilized micro-services, Kafka event queues, Azure Event Hub queues, and Azure functions.
My Contributions:
- Contributed to system design, test planning, and testing, and developed automation suites for both API and D365 web UI.
- Utilized Java, with Cucumber (BDD), REST-assured for API automation, and Selenium WebDriver for UI automation.
- Implemented Page Object Models (POMs) for the web UI automation suites.
- Played a pivotal role in monitoring project subsystems using Splunk, introducing session IDs for comprehensive tracking of data and actions throughout the pipeline.
Mobile Squad - Testing and Automating Mobile Banking Apps
In my first role at Westpac, I tested Westpac's iOS and Android consumer banking apps.
I contributed to
- Automating the new features developed by the team (Appium, XCUITest).
- App design and UX to test that new features were beautiful, simple and accessible for a wide range of users. (ie. "shifting-left")
- Using Charles Proxy to intercept and modify API calls to facilitate alternative and negative testing scenarios.
- Maintaining the on-device mocks (compiled into the debug builds of the apps).
- Release testing activities.