Westpac NZ - Senior Automation Quality Engineer

From Vincents CV Wiki
Revision as of 23:21, 7 May 2024 by DirksWikiAdmin (talk | contribs) (Observability Squad - Platform Engineer and Splunk Champion)

Jump to: navigation, search

Apr-2021 - Nov-2023

Intro

During my time at Westpac, I worked as a roving 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 ensure project success.

References

linkedin Recommendations

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 lacking 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 results from automation suites

Moreover, as the "Splunk Champion", I really 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 value extracted from Splunk data, focusing on monitoring solution's performance, error detection, and information quality being recording for efficient issue resolution.

Ultimately, the goal of observability is to swiftly remediate critical issues by detecting them, understanding their impact, and resolving them promptly. Therefore, its paramount that system monitoring information is timely and good in order to achieve this objective.

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 six remaining providers. With approximately 40,000 clients set to enroll with Westpac's BT Funds, the surge threatened to overwhelm existing staff and jeopardize IRD mandated service level objectives. To streamline the onboarding process, the D365 KiwiSaver Team was tasked with creating a D365 workflow to automate key steps. This involved developing an API interface to handle incoming requests from IRD, checking for existing bank client data, and creating new client accounts as needed. While basic flows were automated, the D365 UI was needed for handling exception cases. The solution involved micro-services, Kafka event queues, Azure Event Hub queues, and Azure functions to process requests efficiently.

In my role within the team, I contributed to system design, test planning, testing, and creating automation suites for both the API and D365 web UI. The automation was implemented in Java, with Cucumber (BDD), REST-assured, and Selenium WebDriver. Through developing the automation suites, learning to use Page Object Models (POM's) to create maintainable web UI automation suites. Splunk played a crucial role in monitoring the project's various subsystems, I was able to show the team how to add and use session ids to track the progression of information and actions through the pipeline.

Mobile Squad - Testing and Automating Mobile Banking Apps

In my first role at Westpac, I tested iOS and Android consumer banking apps, and contributed to automating the new features developed by the team (Appium, XCUITest). I took a "shift-left" approach, for example, contributing early to the app design (UX) to make sure the new features were user-friendly and accessible across a range of user demographics. I also learned to use Charles Proxy to intercept and modify API calls to simulate alternative and negative scenarios, and I helped to maintain on-device mocks (compiled into the debug builds of the apps). During release phases, I actively participated in testing activities.