Currently @ Globant / Santander UK

Henry Perez

I lead quality strategy that turns quality into a competitive advantage.
QA Lead: banking · media · AdTech · retail.

🎯 QA Strategy 👥 Team Leadership 🎭 Playwright 🔷 TypeScript 🤖 AI-Augmented ⚡ Shift-Left ⚙️ CI/CD

10+ years leading quality engineering at scale

As QA Lead for CNN's U.S. Elections project, I owned the quality strategy for a high-stakes international platform — managing the team, defining the test plan, tracking KPIs, and coordinating directly with executive stakeholders in the US. That experience shaped how I think about quality leadership: it's a strategic function, not a testing phase.

Today at Globant · Santander UK, I lead QA across multiple teams in the Digital Obsolescence program — defining the technology stack, designing automation frameworks from scratch, and acting as the direct technical point of contact with UK-based client stakeholders.

I combine deep technical expertise (Playwright, TypeScript, CI/CD) with the strategic mindset of a QA leader: risk ownership, continuous improvement, and quality culture — not just test coverage.

🏦 Banking 📺 Media / CNN 🛍️ Retail 📡 AdTech 🌍 Remote US & Europe
QA Lead — CNN U.S. Elections
Led QA for a high-visibility international platform. Worked onsite in Atlanta and remotely with cross-functional US teams, ensuring quality across a complex release cycle.
QA Lead @ Globant / Santander UK
Leading QA strategy across multiple teams. Owns the technology stack, designs frameworks from scratch, and acts as direct technical point of contact with UK client stakeholders.
10+ Years, International Remote
Worked across US and European time zones with Globant, BairesDev, Xcede, and Indra. Async-first, cross-cultural Agile delivery at enterprise scale.
Bilingual — Spanish & English
Native Spanish speaker with advanced professional English. Effective communicator in both languages across technical and business contexts.

10+ years of quality leadership & automation

From Indra to CNN to Santander UK. Each role shaped how I lead quality at scale.

QA Lead · Digital Obsolescence Program
Globant · Santander UK
May 2025 – Present Current
  • Own QA strategy across multiple teams — analyzing current quality state and redefining test strategies for each team in the Digital Obsolescence program
  • Define the QA technology stack and design automation frameworks from scratch tailored to each team's needs
  • Built Playwright-based E2E & API framework that reduced regression execution time by ~95%
  • Reached 80% E2E coverage on core user journeys, modernizing 60+ obsolete manual tests
  • Scaled performance testing capability from 0 to 3 production-ready suites (JMeter, Postman, Bruno)
  • Act as direct technical point of contact with UK-based client stakeholders in a fully English-speaking Agile/Scrum environment
  • AI-assisted workflows (GitHub Copilot) for test generation, refactoring and documentation🤖 GitHub Copilot
QA Lead QA Strategy Playwright TypeScript JMeter Postman GitHub Actions Banking
Test Automation Engineer — Remote
Xcede
Sep 2023 – Sep 2024
  • Led the refactoring and optimization of an existing Playwright automation framework
  • Implemented automated testing for both UI and APIs, improving maintainability and execution stability
  • Managed defect tracking and reporting using Jira
Playwright TypeScript API Testing Jira
Test Automation Engineer — Remote
BairesDev
Oct 2022 – May 2025
Project: Kinesso Nov 2024 – May 2025
  • Developed and executed automated test suites using Playwright for web applications
  • Designed and executed API test scenarios using Postman
  • Managed test cases and defect tracking using Jira and Zephyr
  • Delivered in a fully remote, international environment ensuring high-quality releases
Project: Windifferent Oct 2022 – Sep 2024
  • Designed and executed API automation tests using Postman and Cypress
  • Implemented automated regression suites with Cypress
  • Managed test cases and defect tracking using TestRail and Jira
  • Ensured quality standards across multiple releases in an Agile environment
Playwright Cypress Postman TestRail Jira Zephyr AdTech
QA Automation — Remote
Magentrix
May 2021 – Oct 2022
  • Automated end-to-end and API tests using Cypress and Playwright
  • Designed and maintained automated test cases ensuring consistent regression coverage
  • Managed test plans and execution using TestRail
Cypress Playwright TestRail
QA Automation — Remote
GAP · Abrigo & DELL MSDF
Jan 2022 – Oct 2022
  • Developed automated UI and API tests using Cypress and Postman
  • Designed BDD test scenarios using Cucumber (Abrigo project)
  • Executed automated testing with Cucumber for DELL MSDF project
  • Managed defects using Jira and Zephyr
Cypress Postman BDD / Cucumber Jira Zephyr
QA Lead · U.S. Elections Platform
Globant · Turner – CNN
Sep 2017 – May 2021
  • Led a QA team of 3 for 4 years on CNN's high-stakes U.S. Elections platform, reporting directly to Product Owner and PM representing Turner/CNN executive stakeholders
  • Owned the overall Quality Plan: authored and maintained the master Test Plan, risk register, and QA sign-off documents for every sprint
  • Defined the QA technology stack and conducted technical interviews for all new QA hires
  • Drove a methodology transformation from classic Scrum to Kanplan, improving delivery predictability
  • Defined and tracked quality KPIs: bug leakage, flaky test rates, sprint completion
  • Worked partially onsite at CNN Atlanta, coordinating directly with US-based business and engineering teams
QA Lead Team Management QA Strategy Cypress Jira X-Ray Media
Business Process & Support Engineer
UNO+UNO
Jun 2015 – Sep 2017
Software Engineer — Grade II
INDRA SISTEMAS
Aug 2013 – May 2015

Leadership · Strategy · Technical Depth

10+ years of tool selection and team leadership guided by one principle: use what makes the team faster and more confident.

🎯 Quality Leadership
QA Strategy & Planning Team Leadership & Mentoring Shift-Left Testing Test Plan & Risk Management Agile Transformation Quality KPIs & Metrics Stakeholder Communication
⚗️ Automation & Testing
Playwright Cypress Selenium WebDriver Postman Bruno Collection API Testing (REST/GraphQL) Performance Testing (JMeter) BDD / Cucumber / Gherkin
💻 Programming & CI/CD
TypeScript JavaScript Java GitHub Actions GitLab CI Jenkins GitHub Copilot Jira · X-Ray · Zephyr · TestRail

Results over resumes

0
Years as QA Lead
Led QA team for CNN's U.S. Elections — high-stakes, high-visibility international platform
0
Faster Regression
Reduced regression execution time at Santander UK from baseline to near-zero wait
0
Industries Led
Banking, Media, AdTech and Retail. Same quality standard, different constraints
0
Years International
10+ years leading quality across US and European organizations

AI amplifies craft, it doesn't replace it

I use AI tools across the testing lifecycle. Generation, review and documentation, but every output is human-validated before it ships. I own the quality, not the tool.

AI-Augmented Test Engineering
GitHub Copilot · Claude · Ollama (Local)
AI Draft First pass — Copilot / Claude
test('login test', async ({ page }) => {
  await page.goto('/login');
  // AI generated: basic, no env handling
  await page.fill('#username', 'Admin');
  await page.fill('#password', 'admin123');
  await page.click('button[type=submit]');
  // Issues: CSS selector, no semantic role, no wait
});
Production Test Human-refined semantic locators, types, env
const LOGIN_URL = `${process.env.ORANGEHRM_URL}/auth/login`;
test('should redirect to dashboard after valid login',
  async ({ page }) => {
  await page.goto(LOGIN_URL);
  // Semantic locators: resilient to redesign
  await page.getByPlaceholder('Username').fill('Admin');
  await page.getByPlaceholder('Password').fill('admin123');
  await page.getByRole('button', { name: 'Login' }).click();
  await expect(page).toHaveURL(/\/dashboard/);
  await expect(page.getByRole('heading',
    { name: 'Dashboard' })).toBeVisible();
});
Playwright + AI Test generation & refactor
100% HITL Human validation
Ollama Local Offline, private AI models
+ Docs AI-assisted documentation
  • Generate test skeletons from specs with Copilot and Claude. I review and refactor to semantic locators, and enforce architecture before it ships.
  • Surface edge cases and boundary conditions faster. I validate, discard what doesn't apply, and add what the model misses with actual domain knowledge.
  • Draft technical documentation and maintain it in sync with the codebase. Test plans, coverage reports, framework guides.
  • Run local AI models via Ollama for private, offline assistance. No data leaves my machine for code-sensitive tasks.
GitHub Copilot Claude Ollama (Local) Human-in-the-loop Playwright AI
📚 Prompt Library

6 grounding documents that constrain the AI to correct patterns — no hallucinated APIs, no CSS selectors, no assertions inside Page Objects. Used daily alongside Copilot and Claude.

QA Methodology 3 documents — gates, ISTQB, delivery checklist
Playwright Patterns 3 documents — POM, locators, flakiness
View on GitHub
Portfolio Project

Automation Framework Demo

What follows is a technical showcase. A full automation framework built from scratch to demonstrate how I design, architect, and ship quality at scale.

What's under test and why

Every section below documents a real decision I'd make on a client project, from app selection to CI pipeline design.

🎯
App under test: OrangeHRM
Open-source Human Resource Management system with production-like modules: HR, Leave, and Recruitment. Chosen because it offers a realistic domain with both a full UI and a REST API layer. Ideal to demonstrate E2E and API automation patterns together.

opensource-demo.orangehrmlive.com ↗
📐
Purpose of this demo
Show how I design a framework from zero: folder structure, fixtures, auth strategy, API-first setup, page objects, CI pipeline, and Allure reporting. Every architectural decision here is one I apply on real client projects.
📦
What you'll find inside
33 automated tests across 4 modules: Authentication, PIM / Employees, Leave Management, and Recruitment. E2E tests exercise full user journeys through the browser. API tests verify backend contracts and data integrity independently, without touching the UI.
⚙️
Tech stack of this project
Full TypeScript strict mode, Playwright Test runner, Allure reporter with trend history across runs, GitHub Actions on every push, deployed automatically to GitHub Pages.
Playwright TypeScript Allure GitHub Actions GitHub Pages
⚠️ OrangeHRM's public demo resets hourly and is shared across all users — some tests may fail intermittently due to data state changes made by other users, not framework issues. The Allure trend report shows real pass rate history over time.
0
Total Tests
0
E2E Tests
0
API Tests
0
Pass Rate

Built for real projects,
not demos

Every decision prioritises isolation, speed, and determinism over convenience shortcuts. Six principles guide the entire suite.

API-First Setup

Prerequisite data is created through the API before any browser launches. Tests are fast, independent of UI navigation, and deterministically provisioned on every run.

Page Object Model

Each page is a typed class with readonly Locator properties and workflow methods. Assertions belong exclusively in test files, page objects only act.

Locator Repository

All raw selector strings live in *.locators.ts files exported as const. OrangeHRM's custom oxd-* class names are centralised. One change propagates everywhere.

Fixture Chain

Auth is performed once per worker, not per test. The session is cached in storageState and injected via test.extend, eliminating login overhead entirely.

Graceful Degradation

The shared OrangeHRM demo sporadically disables modules. Guards check for 403 pages after networkidle, and API calls are wrapped in try/catch — tests skip cleanly, never fail noisily.

Zero Cleanup

The demo resets hourly. Factories generate unique IDs per run using parallelIndex + Date.now(). Leftover data never causes collisions; teardown code never breaks tests.

What's covered

Four functional modules under test, with both API and E2E layers exercising each domain independently.

Module E2E API Total Status
Authentication 5 5
PIM / Employees 6 5 11
Leave Management 4 3 7
Recruitment 6 4 10
Total 21 12 33

Three-layer design

A strict dependency direction, locators feed pages and pages feed specs. Keeps the suite maintainable as it scales.

src/
  locators/          ← selector strings only
    orangehrm.locators.ts
    candidates.locators.ts
    ...
  pages/             ← POM classes
    pim/
    recruitment/
    leave/
  api/               ← typed API clients
  factories/         ← test data builders
  fixtures/          ← DI via test.extend
  types/             ← TS interfaces
tests/
  auth.setup.ts      ← saves storageState
  e2e/               ← browser tests
  api/               ← headless API tests
  • Locator Repository
    Every raw string, CSS class, placeholder and role name lives in a *.locators.ts file with as const. Zero Playwright imports in this layer.
  • Page Objects
    Typed readonly Locator properties initialized in the constructor. Methods represent complete user workflows, never single actions.
  • Spec Files
    AAA pattern throughout. All assertions live here and page objects never assert. Fixtures inject page objects, API clients, and auth state.
  • Factories
    Data builders produce unique payloads per test using parallelIndex + Date.now(). No hardcoded values, no collisions across parallel workers.

From push to report

Runs on every push and pull request. Every run generates an Allure trend report with full history, even when tests fail.

STEP 01
Checkout & Install
Clone repo, install Node deps, configure environment secrets.
STEP 02
Install Chromium
Download Playwright browser binaries for the current run.
STEP 03
Run Tests
Execute E2E and API suites across 2 parallel workers.
STEP 04
Upload Artifacts
Store raw Allure results and test artifacts for the report.
STEP 05
Generate Allure
Build the full trend report with history from previous runs.
STEP 06
Deploy to Pages
Publish landing page and Allure report to GitHub Pages.

Let's work together

Open to QA Lead and Quality Engineering Leadership opportunities. Email is the best way to reach me.

See the tests in action

The full Allure report includes trend history, failure screenshots, videos, and traces for every test run.

Open Result Report View on GitHub