We are seeking an Automation QA Engineer to own data quality assurance for a production-grade data delivery platform serving a major UK market research company. The platform delivers governed data products through three commercial channels: subscription dashboards, Snowflake Marketplace paid listings, and direct enterprise data sharing.
This is not a traditional application QA role. You will build and maintain automated test infrastructure for a data platform: dataset contract tests, data quality checks, access control validation, and regression harnesses for governed data products consumed by external paying customers. Incorrect data or broken contracts have direct commercial consequences.
You will work in a small autonomous team of 4 alongside a Data Engineer, Backend SDE, and DevOps Engineer. The QA workstream is a first-class delivery track, not an afterthought — You will design the test strategy, build the validation harness, and implement CI/CD test gates that protect every deployment across three environments (Dev/Test/Staging)
The client is a UK-based market research leader operating a platform that provides daily tracking across 4,000+ brands, 31 sector surveys, and 100M+ respondents. Xenoss is building a Governance and Packaging layer in Snowflake that transforms existing analytical outputs into governed, revenue-ready data products.The QA engineer ensures that these data products are correct, contracts are stable, access control is enforced, and every release is validated before reaching production.
- Implement automated contract tests for all consumer-facing datasets and views: schema checks (fields, data types, nullability, keys), grain validation (uniqueness rules, expected row-level granularity), and referential integrity (join keys to brand master and core dimensions)
- Build backwards-compatibility checks for published datasets consumed by Marketplace buyers and external integrations — schema drift must be caught before it reaches consumers
- Maintain versioned test suites that evolve alongside dataset contracts (v1.0, v1.1) asnew fields or metrics are added
- Build automated checks that run on each pipeline refresh: freshness SLA validation, row-count deltas, missing partition detection, null/range constraints on key fields, and distribution anomaly detection on core metrics
- Implement deterministic validation using Snowflake-native patterns: HASH_AGG(*) for full-table comparison, EXCEPT for row-level diffs, and RANDOM(seed) for reproducible mock data generation
- Define and maintain “known-good” reference outputs (Silver layer baselines) for comparison against Governance and Packaging layer outputs to detect unintended transformations
- Build repeatable test scenarios for the entitlement-based access model: validate that Row Access Policies correctly filter rows per client tier using a representative test personas
- Implement RAP mock testing: create mock client_registry entries with fixed brand_id sets, execute SELECT as test user, and verify dynamic filtering returns only authorised data
- Validate cross-channel consistency: ensure the same client persona sees identical data subsets across dashboards, Snowflake shares, and Marketplace outputs
- Test cell-size suppression rules (<5 responses) and PII masking policies for data sharing readiness
- Design and maintain a regression test suite for the critical dashboard and Marketplace datasets: fixed time windows, sample brand sets, sample segments with expected aggregates and distributions
- Compare Governance and Packaging layer outputs against Silver layer baselines to ensure no unintended transformations or data loss during the packaging process
- Build performance baseline tests for dashboard query patterns to detect degradation after schema changes or data volume growth
- Implement automated test gates in the GitHub Actions CI/CD pipeline: contract tests and data quality checks must pass before any Snowflake object promotion from Dev — Test — Staging
- Configure test execution to run on every pull request and deployment, with clear pass/fail reporting and deployment blocking on failure
- Collaborate with the DevOps engineer on pipeline monitoring checks, alerting verification, and rollback rules when gates fail
- Maintain test infrastructure: mock data generation scripts, test environment configuration, and test result reporting/dashboards
- 3-5 years of professional experience in test automation or data quality engineering
- Hands-on SQL experience: ability to write complex queries for data validation (aggregations, joins, window functions, set operations like EXCEPT/INTERSECT)
- Experience writing automated tests in Python (pytest or similar) — not just manual test execution
- Familiarity with CI/CD pipelines and test integration (GitHub Actions, GitLab CI, or equivalent) — has configured or contributed to test gates in a deployment pipeline
- Experience testing data pipelines or data warehouse outputs (not just application/UI testing)— understands that data testing means validating correctness, completeness, and freshness of datasets, not clicking through a web interface
- English level: Upper-Intermediate (B2) or higher — regular communication with UK-based client stakeholders and cross-team collaboration required
- Strong SQL: primary language for all data validation work; must be comfortable with HASH_AGG, EXCEPT, window functions, CTEs, and set-based comparison patterns in Snowflake
- Python (pytest): for building test harnesses, mock data generators, and CI/CD test scripts; ability to write clean, maintainable test code with fixtures and parameterisation
- Foundational Snowflake knowledge: must understand basic Snowflake concepts (databases, schemas, roles, warehouses, zero-copy cloning) to write and execute tests in the platform; not expected to design architecture
- CI/CD with GitHub Actions: ability to configure test jobs, interpret pipeline results, and implement pass/fail gates that block deployments on test failure
- Foundational Azure knowledge: the client operates on Microsoft stack; basic awareness of Azure AD/Entra ID (for authentication context in access control testing) and Azure Blob Storage is helpful
This is a data quality role, not a domain-specialist role. The candidate does not need market research expertise.However, candidates must understand the fundamental concept that they are testing data products consumed by external paying customers: broken schemas, incorrect access filtering, or stale data have direct commercial and trust consequences. Experience with data contract testing, data observability tools (Monte Carlo, Bigeye, Great Expectations, Elementary), or DBT testing in a production setting is highly relevant.
- Experience with dbt test framework beyond built-in tests: custom generic tests, dbt- expectations package, or dbt-utils test macros
- Experience with data observability tools: Great Expectations, Elementary, Monte Carlo, Bigeye, Soda, or similar
- Snowflake Row Access Policy testing experience — understanding how to validate dynamic row-level filtering with mock personas
- Experience testing Snowflake-specific features: Dynamic Tables (refresh validation), Streams (change capture verification), Secure Shares (consumer-side data availability)
- Performance testing for analytical queries — ability to establish baseline query times and detect regressions
- Experience in a consulting/agency delivery model (dedicated teams, client-facing demos, sprint-based delivery)
- Familiarity with Snowflake Marketplace listing requirements — understanding what makes a dataset “listing-ready” from a QA perspective (data dictionary completeness, sample query validation, schema contract adherence)
- SnowPro Core certification or equivalent validated Snowflake knowledge
- Experience with test reporting/dashboarding: building visibility into test results for stakeholders beyond engineering