21 Dec 2023 A Year in Review as a Principal Quality Engineer at Shine
In my role as a Principal Quality Engineer at Shine, the past year has been marked by amazing experiences as I engaged with client sites, offering consultancy on a variety of challenges. In this blog post, I aim to reflect on the diverse array of projects I encountered throughout the year, delving into the challenges faced and the valuable insights gained from each engagement.

As I reflect on the past year, it’s been a whirlwind of challenges and exciting tech ventures. Kicking off the year, I undertook the creation of a test automation framework for an application integrating both API and Kafka components using java as primary programming language. Learning the intricacies of Kafka while developing the framework added an extra layer of complexity. It involved experimenting with different approaches, continuous refinement, and a persistent change in strategy. The task was demanding, but the hard work undeniably paid off.
Another noteworthy challenge involved delving into the realms of AWS CDK and SDK in TypeScript. You might wonder, why would a Quality Engineer need this? Well, in the large landscape of technology, testing is not confined to Web UI and API alone, every tech domain demands critical examination. I embarked on learning AWS CDK and SDK to develop end-to-end cloud infrastructure tests. Having a foundation in AWS and holding a Solution Architect certification significantly facilitated my rapid ramp-up into this domain. This entailed development of tests using AWS SDK and jest test framework, and the seamless integration of these tests with the Allure report. For those unfamiliar with Allure reports, it’s a sophisticated reporting tool with an impressive user interface for visualising automated test results.
Moving forward, I delved into API testing using Python and Allure. The next challenge took the form of consulting for a client, where the objective was to implement a continuous testing methodology, define a robust test strategy, and chart a path forward in test automation for the backend serverless solutions under my team’s purview. As these serverless solutions were primarily developed in Python, I conducted thorough research to identify the most suitable Python-based test automation tools and libraries. After careful consideration and necessary approvals, we opted for the Python Requests module in conjunction with Allure reporting for API testing. To be candid, mastering and applying this approach proved to be remarkably straightforward and effective.
The subsequent task entailed writing a paper comparing various performance testing tools. Despite my familiarity with Gatling, having used it before, I set aside any bias to present a comprehensive overview of all available options. The finalised list featured Gatling, Locust, JMeter, and K6. While my affection for Gatling remains, I acknowledge the excellence of each tool. The research process was enlightening, allowing me to delve into the strengths of each tool and provide a thorough comparison for the client to make an informed decision on the most suitable option.
Another significant assignment involved transitioning the Gatling framework from CloudFormation-based deployments to CDK-based deployments in AWS. Given my passion for cloud computing, this project was particularly fulfilling. The experience not only expanded my knowledge of cloud development but also resulted in a versatile solution that can be seamlessly deployed across various environments.
Last but certainly not least, I dedicated time to develop a self-hosted solution for Allure reports. Generating and serving the Allure report necessitates a specific setup. In my role, I undertook the responsibility of creating a solution to facilitate the hosting of Allure reports, ultimately leveraging AWS services, notably S3 bucket, to achieve this seamlessly.
One more thing, I promise this is the last one! I was involved in learning playwright with typescript and understanding an existing playwright-based framework for a back office application. This application, a collaborative effort across diverse teams within the client organisation, demanded a structured approach. I led the formulation of a meticulous process for maintaining the test automation suite. This ensures that each development team systematically incorporated and updated tests in tandem with evolving requirements, ensuring a robust and future-proof testing framework.
Here is my reflection on some of the key learnings this year:
- Xray Migration Challenges:
Migrating from Zephyr to Xray poses intricate challenges, primarily due to the absence of a straightforward solution for data migration. Currently, there is no inherent functionality to facilitate the smooth transfer of data from Zephyr to Xray. To overcome this hurdle, a customised solution tailored to the specific needs of the migration process is necessary. Developing such a solution involves careful consideration and strategic planning to ensure the successful transition of testing data and configurations between these two testing platforms.
- Challenges in Kafka-based Test Automation:
While generating messages for testing in Kafka through test automation is a relatively straightforward process, the real complexity lies in the consumption of these messages. Creating consumers and establishing effective assertion strategies present notable challenges in Kafka-based test automation. Navigating these intricacies requires a deep understanding of Kafka’s architecture and careful consideration of the testing objectives.
- Dynamic Data in Automation Frameworks:
Advocating for automation frameworks capable of generating data dynamically during test execution is essential. Contrary to the use of static test data, which might offer the appearance of consistent success in reports, a more effective approach involves the creation of frameworks open to generating data on the fly. This approach enhances the ability to catch potential issues, fostering a more robust and comprehensive testing strategy. Furthermore, a willingness to create new admin APIs for data creation adds a layer of flexibility and adaptability to the automation framework, accommodating evolving testing requirements.
Upon reflecting on the entirety of this year, it’s apparent that it involved navigating through various programming languages i.e. java, typescript, python and scala. As Quality Engineers, this adaptability is essential, given the diverse array of applications we engage with. This dynamic landscape not only keeps us on our toes but underscores the need for versatility in our skill set, ensuring our readiness to tackle the challenges presented by the ever-evolving technology landscape.
As I wrap up this retrospective, each challenge has contributed not only to my professional growth but also to a broader understanding of the diverse and dynamic field of Quality Engineering. Here’s to another year of embracing challenges, learning, and pushing the boundaries of what’s possible in the world of quality engineering!
Should you wish to delve into details about any of the challenges conquered this year, I welcome you to leave a comment. Alternatively, feel free to connect with me on LinkedIn for a more personalised conversation.






No Comments