Quality pulse checked for 14 years

Quality Veteran for Teams That Ship

SDET depth, Staff QA strategy, and Lead QA delivery across test architecture, test management, SDLC quality practices, scalable automation frameworks, release readiness, quality gates, and AI-augmented engineering workflows.

Neon green heartbeat line A glowing electrocardiogram pulse animates across a dark grid.
Signal Automation + strategy
Leadership

Led and mentored QA teams across remote international organizations — defining KPIs, performance goals, hiring pipelines, and scalable onboarding for agile delivery.

Automation

Playwright + TypeScript, Karate, XCUITest, Cypress, and C# — full-stack E2E, API, backend integration, and iOS native coverage with measurable defect reduction.

Domains

Fintech, e-commerce, telco, fashion, publishing, peer review, compliance, due diligence, and procurement — across distributed systems, Azure cloud, Event Stores, CosmosDB, compliance-critical workflows, and serverless architectures.

Delivery

Quality gates engineered from the ground up — release readiness, defect leakage tracking, production log analysis, and measurable reduction in production defects.

Trusted across domains

Portfolio references from teams I helped ship

  • PLANet Systems Group
  • Thomson Reuters
  • Levi9 Technology Services
  • Teleena
  • Alternative Payments Kerville
  • Symphony Digital
  • Inditex
  • AlixPartners
  • Avon Cosmetics
  • ZenGRC

Current signal

Modern QA leadership with hands-on automation

Latest project

Playwright TypeScript test architecture

UI, API, E2E, integration, and Pact-based contract testing built for maintainable coverage, fast feedback, and release confidence across critical user flows and service boundaries.

AI-enabled QA

AI-assisted quality engineering

Proficient with modern AI-assisted engineering workflows, including Claude and Cursor, to accelerate test design, root-cause analysis, automation scaffolding, code review, documentation, and quality analysis.

Tooling range

Automation frameworks, API tooling, and test code

Hands-on with Playwright, Karate, Cypress, Postman, and XCUITest, backed by TypeScript and C# test code for API verification, backend integration, mobile automation, web E2E suites, and custom load tooling.

Latest project

E2E Test Suite for M&A Due Diligence

Playwright + TypeScript suite for an enterprise due diligence platform: 88 spec files, ~430 tests, React UI, AI chat UI, REST API, and SharePoint integration.

Spec files 88
Tests ~430
Page objects 30+
CI subsets 25+
Authentication

Getting auth tokens out of the browser

Azure AD issues tokens inside the browser after SSO redirect, with no direct endpoint to fetch them. A console listener waits for the post-redirect app log, extracts the token, exchanges it for an API-scoped OBO token with @azure/msal-node, then caches both in .auth/state.json so the suite avoids repeated re-authentication.

Reliability

Cleaning up cloud resources after failed setup

Tests create real Azure resources across async setup steps. Each resource ID is registered immediately after creation, before assertions run, and afterAll/afterEach cleanup deletes tracked resources regardless of where a test failed.

Configuration

Secrets that work locally and in CI

Local runs use InteractiveBrowserCredential to pull from Azure Key Vault into .auth/.env.dev. CI writes src/.env/.env.qa from pipeline Key Vault commands. loadEnvAuto() selects the right file and requireEnv() fails loudly on missing values.

Mutation testing

Finding weak assertions

apophasis corrupts API responses by flipping booleans, nulling fields, and swapping strings, then reruns the suite. Tests that still pass are flagged as weak assertions, with a target kill rate above 70%.

Suite layout

setup auth api · 41 files · ~346 tests chromium · 15 files · ~50 tests sharepoint · 32 files · ~32 tests

Tag-filtered CI keeps more than 25 subsets independently runnable without changing test files. Coverage spans REST APIs, external data sources, React and AI chat flows, and SharePoint to Azure Blob ingestion pipelines.

TypeScript · Playwright · MSAL · Azure Key Vault · Azure Blob Storage · SharePoint · Apophasis · Azure Pipelines

AI-enabled QA

Practical AI Workflow for Quality Engineering

Useful AI work in QA is not about asking for magic test cases. It is a controlled engineering loop: collect the right context, use the right mode for the task, keep the scope small, verify every output, and move execution only after the plan is clear.

Plan mode Shape work before changing code
Ask mode Read, analyze, and onboard faster
Execution Small diffs, checked against evidence
Plan before execution

Use plan mode to turn vague work into reviewable steps

Start with a plan when the task touches architecture, shared fixtures, CI behavior, test strategy, or multiple files. Ask AI to map affected areas, compare approaches, identify risks, and split the work into small chunks before any code is changed.

Iterate the plan

Treat the first answer as a draft

Refine the plan with constraints: existing patterns, flaky-test history, data setup rules, cleanup expectations, CI runtime budgets, and release risk. A good plan should make the next executable step obvious and easy to review.

Ask mode

Use read-only analysis for onboarding and code review

Ask mode is useful for entering a new project or feature: summarize architecture, trace a user flow, explain fixtures, find test gaps, inspect API contracts, and flag likely bugs without spending tokens or time on edits that are not needed yet.

Context quality

Improve inputs before asking for outputs

Provide focused files, failing logs, screenshots, API examples, test names, and the exact acceptance criteria. Remove unrelated context. Better context lowers token usage, reduces hallucinated assumptions, and produces answers that fit the codebase.

Cost control

Spend larger prompts only where judgment is needed

Use cheaper, narrower interactions for lookup, summarization, and simple refactors. Save deeper reasoning for test architecture, incident analysis, migration plans, flaky-test triage, or reviewing high-risk changes.

Execution discipline

Move in small verified changes

Execute one slice at a time: update helpers, add focused coverage, run the narrowest relevant checks, then widen verification. Keep AI-generated code aligned with local abstractions instead of accepting generic framework examples.

Best practices that hold up in real QA work

  • Ask for impact analysis before adding or deleting coverage.
  • Use AI to generate edge-case inventories, then select tests based on risk and value.
  • Have AI explain existing flaky behavior from logs, retries, traces, and timing patterns.
  • Request review against project conventions: fixtures, page objects, API clients, cleanup, and retry rules.
  • Keep generated assertions specific; avoid broad snapshots or checks that pass for the wrong reason.
  • Never merge AI output without running tests, reading the diff, and checking that failure modes are covered.

Plan mode · Ask mode · Context management · Test design · Risk analysis · Code review · Flaky-test triage · CI feedback · Token cost control

Tooling range

Automation Learning Curve

A practical path through automation frameworks, API tooling, backend validation, mobile testing, and performance checks. Each phase added a new layer: language exposure, framework design, reusable test architecture, and deeper system-level verification.

First automation 2014
Languages Java · C# · VBScript · JavaScript · TypeScript
Coverage range UI · API · backend · mobile · performance
  1. Selenium · Java

    First contact with automation

    Built a proof-of-concept test set for the active project, using Selenium WebDriver with Java, a basic Page Object Model structure, externalized test data, and reusable browser setup patterns.

  2. HP UFT/QTP · VBScript

    Enterprise-style functional automation

    Covered multiple product features with automated tests and worked with a centralized object repository, shared actions, reusable function libraries, and broader regression suite organization.

  3. Selenium · C#

    Full suite for internal invoicing

    Expanded into C# automation for an internal invoicing application, building a full test suite around Page Object Model design, extensive validations, reusable helpers, and predictable setup and cleanup flows.

  4. C# · RavenDB · microservices

    Custom backend test framework

    Built a small custom framework for testing RavenDB-backed microservice behavior, focusing on backend state validation, service interactions, data setup, and repeatable integration checks.

  5. Cypress · JavaScript

    Fintech E2E proof of concept

    Created a fully functional Cypress proof of concept for end-to-end fintech application testing, validating whether fast JavaScript-driven browser automation could support critical user flows.

  6. C# · APIs · messaging · databases

    Custom framework for core banking

    Developed and maintained a custom C# testing framework for a fintech core banking platform, spanning microservices, message bus flows, multiple databases, API checks, EventStore reads, backend assertions, and complex test data orchestration.

  7. XCUITest · Karate · k6 · Playwright · TypeScript

    Modern multi-tool quality stack

    Worked across custom XCUITest framework design for iOS, Karate for backend API testing, k6 for performance checks, and Playwright with TypeScript for modern web, API, E2E, integration, and contract-oriented automation.

Selenium · Java · HP UFT/QTP · VBScript · C# · RavenDB · Cypress · JavaScript · XCUITest · Karate · k6 · Playwright · TypeScript