Quality Technical Lead2021 - PRESENTCi&T
Technologies: Azure DevOps, Espresso Testing Framework, Appium, Robot Framework, Python, Java, Spring Boot, Docker, WireMock, MongoDB, Mobile App Testing, Zephyr, RabbitMQ, Testcontainers, JUnit, Cucumber, Node.js
- Managed a team of 10+ quality engineers in test automation practices and agile testing practices to enable continuous delivery.
- Designed and implemented a solution to enable automated system-level testing for microservices based on the chain of responsibility design pattern, allowing pre-/post-processing of requests in a modular and extensible way.
- Designed and implemented a solution to provide concurrency control in order to allow tests to run in parallel while keeping the ability to comply with its preconditions in a context where resources were shared (e.g., user accounts).
- Designed and implemented a pipeline stage on Azure Pipelines to run automated tests on microservice’s build pipelines.
- Designed and implemented a pipeline stage on Azure Pipeline to distribute workload to several pipeline agents to parallelize test suites' execution targeting multiple geographic zones on a global application.
- Designed and implemented a solution to provide continuous automated end-to-end testing for an Android application. It integrated with VS's App Center and Browserstack to run tests on several device profiles.
- Designed and implemented integration with Jira’s Zephyr Scale plugin for test management in order to provide a simple way to create/update test cases, plan test cycles and retrieve data regarding test efforts for analysis.
- Elaborated a testing strategy based on the test pyramid concept for optimal testing coverage. The process leveraged containerization and open source solutions to provide stubbing and provision of test instances of external dependencies.
Software Engineer in Test2018 - PRESENTCI&T
- Constantly attended grooming sessions with stakeholders to analyze business requirements, discuss new features, and look deeply into desired user behavior to drive application enhancement and new features.
- Refactored existing end-to-end test framework to leverage design patterns to promote better code reuse and readability and enforce the single responsibility principle. The framework was built in Java, Selenium, and TestNG at its core.
- Built end-to-end test framework’s integration with Hashicorp’s Vault service to discover credentials to access external database resources at runtime.
- Defined stack used to automate test scenarios for an Angular front-end application. Automated tests are created at a unit, component, and system level using Jasmine, Protractor, and Cucumber. Express.js was also used to serve mocked responses.
- Built automated test scripts for functional compliance of microservices using Java, REST Assured, and Spring Boot test templates and profiles.
- Hosted demo sessions to stakeholders detailing features delivered sprint by sprint during the MVP phase.
- Supported critical on-site deliveries for a Fortune 500 US company, managing and reporting defects.
- Created a custom JUnit Runner to enable a mobile Android app to be set up targeting a mock server through dependency injection. This allowed the team to move forward with espresso test creation while another team built the back-end functionality.
- Set up a structure to build component tests in microservices using Spring Boot. This enabled test packages to leverage application beans/components while being able to set up their own.
QA Engineer2017 - 2018Avenue Code
Technologies: Amazon Web Services (AWS), MySQL, Git, TypeScript, AEM, AWS, GitLab, Java, Cucumber
- Created a UI test framework based on WebDriverIO and TypeScript that heavily relied on design patterns to promote code reuse to enable and encourage QA Engineers to include test automation in their activities.
- Allowed, with that application, for test scripts to be built once and executed against the target application in several resolutions as responsiveness was a heavy business requirement.
- Trained QA engineers across multiple delivery squads to use the said framework to automate test cases throughout their project’s deliveries.
- Created test scripts using Cucumber, TypeScript, and WebDriverIO for an application built in a component-based approach using Vue and delivered over Adobe Experience Manager.
- Automated test scenarios for REST APIs using open source framework Karate (https://github.com/intuit/karate).
- Screened QA candidates for the company, participating in evaluating candidate resumes, hosting interviews on-site, and assessing project deliveries.
- Taught introductory programming classes to children of a partner state school as a part of the company’s social program. Classes were taught using Code.org.
QA Engineer2014 - 2017Base2 Tecnologia
- Established test scenarios and test coverage necessary to a platform that targeted live monitoring of eCommerce web applications through continuous execution of user interface automated tests.
- Created a test framework based on JUnit that used an annotation-driven approach and event-driven lifecycle management to collect information about test cases and test suite execution.
- Integrated this framework with an application that built custom reports and another application that used Cron jobs to trigger automated test executions while managing activated processes.
- Created a module to support UI automation for mobile applications into an existing framework that kept building UI automated scripts for web applications. This module was built on top of Appium.
- Created a framework to build a functional test for REST services that leveraged an annotation-driven approach to dynamically execute tasks into the test case lifecycle.
- Built a custom report that integrated with this framework to enable users to interact with request and response information through a web interface.
- Created an application responsible for parsing JMeter’s test run outputs to provide insight into the application’s performance numbers through spreadsheets.
- Created complex performance script scenarios that involved, for example, determining the load at runtime based on the business insight of load patterns throughout the day.
- Performance-profiled web and mobile applications to assess and determine application performance baselines.
- Created automated UI test scripts for applications for a wide array of applications in banking, health care, educational institutions, and car rental services, amongst others.