Difference between revisions of "Westpac NZ - Senior Automation Quality Engineer"

From Vincents CV Wiki
Jump to: navigation, search
m (References)
m (Westpac)
 
(42 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
'''Apr-2021 - Nov-2023'''
 +
 +
== Westpac ==
 +
During my time at Westpac, I worked as a roving Automation Quality Engineer across various teams. This role involved learning about different product domains, as well as the technology stacks used for the product, infrastructure, and 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 - Full List|References]]==
 +
* [https://dirksonline.net/CV/Reference%20for%20Vincent%20from%20Stephen%20Stewart.pdf 2023 '''Stephen Stuart'''] Reference. ''Stephen was my People Lead for my duration at Westpac''
 +
* [https://dirksonline.net/CV/Kate%20Nesmyelova%20-%20TTC%20Reference_check%20For%20Vincent_Dirks%202023.pdf 2023 '''Kate Nesmyelova'''] Reference Check for [[Water Services Reform, DIA - Senior Test Automation Engineer|TTC Global]]. ''Kate was the Quality Engineering Chapter Area Lead for Westpac''
 +
* [https://dirksonline.net/CV/Hannah%20Gray%20Reference%20letter%20for%20Vincent%20Dirks%202023.pdf 2023 '''Hannah Gray'''] Reference. ''Hannah was team lead for the Test Environments team I was part of for 10 months''
 +
'''linkedin Recommendations'''
 +
: [https://dirksonline.net/CV/2023%20Isaac%20Carrington%20-%20LinkedIn%20Recommendation.jpg 2023 '''Isaac Carrington'''] Head of Platform Engineering
 +
: [https://dirksonline.net/CV/2023%20Catherine%20Lupton%20-%20LinkedIn%20Recommendation.jpg 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 [https://www.java.com/en/ '''Java'''], [https://testng.org/ '''TestNG'''], and [https://rest-assured.io/ '''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 [https://www.splunk.com/ '''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 [https://www.rbnz.govt.nz/regulation-and-supervision/oversight-of-banks/standards-and-requirements-for-banks/banks-outsourcing-policy BS11 Outsourcing policy for banks] by the [https://www.rbnz.govt.nz/ RBNZ] requires banks like [https://www.westpac.co.nz/ 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 [https://en.wikipedia.org/wiki/Westpac 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 [https://nodejs.org/en '''Node.js'''], [https://expressjs.com/ '''Express.js'''], and [https://react.dev/ '''React''']..
 +
* Created node maps illustrating system interconnections across various test environments using [https://mermaid.js.org/ '''mermaid.js'''].
 +
* Provided insights from a tester's perspective and liaised with the Westpac Quality Engineering Chapter.
  
'''Apr-2021 - Nov-2023'''
+
==Observability Squad - Platform Engineer and Splunk Champion==
 +
 
 +
The Observability Squad, a Platform Engineering team tasked with supporting [https://www.splunk.com/ Splunk] and other observability tools like [https://www.dynatrace.com/ Dynatrace], I had the opportunity to learn and grow in the role of "'''Splunk Champion'''". I was encouraged into this role by [https://dirksonline.net/CV/2023%20Isaac%20Carrington%20-%20LinkedIn%20Recommendation.jpg 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'''.
  
===Intro===
+
Ultimately, the goal of observability is to swiftly remediate critical issues by
At Westpac I worked as a roving Quality Engineer across a number of teams. Learning new product domains, and technology stacks for both the product as well as the automation. It was fun and exciting, keeping me on my toes to quickly adapt and pickup new knowledge and skills. The common thread was always testing through learning and discovering the product and project. Identifying the biggest issues directly in front of us, as well as looking to the future for pitfalls to avoid.  
+
* Detecting them,
 +
* Understanding their impact, and
 +
* Resolving them promptly.
  
===[[References - Full List|References]]===
+
==D365 KiwiSaver Squad - Java API and UI Automation==
* [https://dirksonline.net/CV/Reference%20for%20Vincent%20from%20Stephen%20Stewart.pdf 2023 Stephen Stuart] - Reference
 
: ''Stephen was my People Lead for my duraction at Westpac''
 
* [https://dirksonline.net/CV/Kate%20Nesmyelova%20-%20TTC%20Reference_check%20For%20Vincent_Dirks%202023.pdf 2023 Kate Nesmeylova] - Reference Check for [[Water Services Reform, Dept of Internal Affairs (NZ Govt) - Senior Test Automation Engineer|TTC Global]]
 
: ''Kate was the Quality Engineering Chapter Area Lead for Westpac''
 
* [https://dirksonline.net/CV/Hannah%20Gray%20Reference%20letter%20for%20Vincent%20Dirks%202023.pdf 2023 Hannah Gray] - Reference
 
: ''Hannah was team lead for the Test Environments team I was part of for 10 months''
 
* other linkedin recommendations - TBD
 
  
=== MF8TL Team ===
+
In response to [https://www.ird.govt.nz/-/media/project/ir/home/documents/kiwisaver/kiwisaver-provider-update/new-ks-default-providers.pdf 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'''.
MF8, aka Mobile First V8, was a legacy API product, and was part of a mobile and web app development eco system sold by IBM. MF8 needed to be replaced with a new temporary solution, MF8TL, prior to migrating all functionality to micro-services. MF8 & MF8TL were effectively API (middleware) services facilitating access to the wider banking network. MF8TL needed to be stood up quickly, and behave identically to the legacy MF8 system.  
 
  
My involvement with the team was to identify existing testing tools and processes used for the old MF8 system, and to apply them to the new MF8TL implementation.
+
My Contributions:
  
Primarily I worked to adapt an existing '''REST Assured''', '''testng''', '''Java''' automation suite. I created new scenarios following the patterns already used in the suite, using service classes, '''POJO'''s, extending base test classes etc. I also significantly refactored parts to standardise and improve the information logged to '''Splunk''' when failures were detected, using method overloading to remove duplicated code, centralising the code that despatches requests & receives the responses, creating a single place to verify the kind of response received, prior to transforming to the success response POJO's.
+
* Contributed to system design, test planning, and testing, and developed automation suites for both API and D365 web UI.
 +
* Utilized [https://www.java.com/en/ '''Java'''], with [https://cucumber.io/ '''Cucumber (BDD)'''], [https://rest-assured.io/ '''REST-assured'''] for API automation, and [https://www.selenium.dev/documentation/webdriver/ '''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 [https://www.splunk.com/ '''Splunk'''], introducing '''session IDs''' for comprehensive tracking of data and actions throughout the pipeline.
  
===Test Environments Team===
+
== Mobile Squad - Testing and Automating Mobile Banking Apps ==
The main task this team worked on was to build a fun little webapp UI and API server using '''Node.js''', '''Express.js''', '''React''', and the '''mermaid.js''' diagramming tool to create node maps of how various systems connected. In this project I was more a JavaScript developer than a tester.
 
  
===Observability Squad===
+
In my first role at Westpac, I tested Westpac's iOS and Android consumer banking apps.  
With this team I switched to a more Platform Engineering role, and became the Westpac Splunk Champion. We were supporting and growing the Splunk platform for Westpac internal technology teams. I have had exposure to Splunk in previous companies and have truly loved it for analysing data. I really like to try and find the customers' experiences come through the data. I would always ask the teams we were supporting on their Splunk onboarding journey three things:
 
# Are you logging how well your product/service/feature is working? eg transactions per hour
 
# Are you catching all the errors and warnings to know when the product/service/feature is doing something bad
 
# When you observe an error/warning are you recording good quality information that truly helps devOps understand the issue, and expedites the remediation of the issue?
 
The latter I find particularly important because in the end the objective is to minimise the risk of major issues by knowing about them quickly, [[and]] also being able to solve them quickly. Timely & good quality information is paramount.
 
  
===D365 KiwiSaver Squad===
+
I contributed to  
Built a Selenium WebDriver POM based cucumber Java automation suite from scratch to test a D365 webapp.
 
  
===Mobile Squad===
+
* Automating the new features developed by the team ([https://appium.io/ '''Appium'''], [https://www.browserstack.com/guide/getting-started-xcuitest-framework '''XCUITest''']).
Manual and automated testing of Westpac's iOS & Android mobile apps.
+
* App design and '''UX''' to test that new features were '''beautiful''', '''simple''' and '''accessible''' for a wide range of users. (ie. "'''shifting-left'''")
 +
* Using [https://www.charlesproxy.com/ '''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.

Latest revision as of 01:07, 15 May 2024

Apr-2021 - Nov-2023

Westpac

During my time at Westpac, I worked as a roving Automation Quality Engineer across various teams. This role involved learning about different product domains, as well as the technology stacks used for the product, infrastructure, and 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

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.