Back to jobs

Analytics Engineer

Ho Chi Minh City, Ho Chi Minh City, Vietnam

Actively hiring, first seen by us 1 day ago
Pay
Pay not listed
Work setting
Not stated
Employment
Full-time — employment source
Employment type in the employer’s posting: Full-time
From the employer’s posting

What you’ll work on

Full posting
  • Model assigned business domains in dbt Core, from sources through staging and intermediate to tested marts

  • Prove value parity between each dbt mart and the legacy stored procedure it replaces

  • Own and evolve the dbt layer standards and the scripts that enforce them

  • Declare and test primary keys, writing tests that fail when models break

  • Repoint consumers from legacy procedure outputs to dbt models in order and record each cutover

From the employer’s posting
Model the business domains you are assigned in dbt Core from their source tables through layered staging and intermediate models to tested marts
Prove value parity between each dbt mart and the legacy stored procedure it replaces
Own and evolve the dbt layer standards, what belongs in each layer, where collation is normalised, one path in per source and the scripts that enforce them
Declare and test primary keys, and write tests that fail when the model breaks, not checks that pass no matter what the data does
Repoint consumers from legacy procedure outputs to dbt models in the right order (readers before procedures), and record each cutover so the sequence is auditable
Apply at OPSWAT

Posting record

Report an error

Actively hiringFirst seen by us 1 day ago, still listed, and not a repost of an earlier posting.

Status in our records
Live
First seen by us
Nov 3, 20261 day ago
Recorded sightings
2
Last seen by us
Nov 4, 2026

These dates show when we found the posting. Check the employer’s website to confirm it is still accepting applications.

How this job compares

Time since we first saw it

Day 1

Early. Similar jobs usually come down between day 6 and day 47.

From 1,405 similar postings that came down. Coming down is not always a hire.

OPSWAT is hiring

7 open jobs

Open jobs by the week we first saw them, last 12 weeks.

  • Analytics Engineer hiring is picking up
  • Its jobs tend to stay up a long time
Hiring record

See how this role fits your experience

Add your resume and we’ll mark which of these tools you already use, and point out anything in the posting that could rule you out.

  • Python
  • SQL
  • Azure
  • dbt
  • PostgreSQL
  • SQL Server
  • Airflow
Where the posting names them
- Dimensional modelling judgement: you can state the grain of a model, choose its keys, and place its logic in the right layer. - A git-based workflow: pull requests, CI checks, review discipline; plus Python for the tooling around the models. - Working fluency with AI-assisted engineering tooling. You set the task, review the output, and own what lands in production.
As a member of the Data Engineering team, you will own the modelling for the domains assigned to you, and the programme's cross-cutting craft: the dbt layer standards and the tooling that enforces them. This is a hands-on modelling role for someone who wants their name on the rules, not just on the tickets. You will decide what "correct" looks like for a model, prove it with numbers, and make the standard checkable by script rather than by memory. You will work in an AI-assisted engineering workflow, where agentic tooling accelerates the work but the modelling decisions: grain, layer, parity. You will work as one half of a deliberate pairing: the Data Engineering team on the technical side, Product Analysts embedded in the product pods, one per business domain on the business side. Product Analysts own what the domain means, the certified metrics and their definitions, and whether the result is right in business terms. Analytics Engineering owns the technical spectrum: modelling, layers, grain, keys, tests, parity, and the standards and tooling the models are built to. Both halves write SQL and dbt; they bring the domain, you carry the technical bar, and the two halves answer for the same number. What You Will Be Doing
- 3+ years in analytics engineering or data engineering, with production ownership of transformation models. - Expert SQL: window functions, CTEs, and multi-entity joins at warehouse scale; strong in the SQL Server / T-SQL dialect today, and fluent enough in PostgreSQL to move with the platform. - Hands-on dbt. You have built and maintained a dbt project (models, layers, refs, tests, documentation), not only run someone else's.
- A warehouse platform migration you helped carry: engine, dialect, or both. - Experience migrating stored procedures or warehouse SQL into a transformation framework such as dbt. - Airflow (or similar) orchestration experience.
The Position OPSWAT's data platform turns CRM and business-system data into governed, documented, tested tables that business teams can read without asking what a column means. It is built on dbt Core, layered source → staging → intermediate → mart, and it is migrating on two fronts: a large estate of legacy stored procedures into that model, one domain at a time, with value parity proven before anything is cut over and the warehouse platform itself, from Microsoft Fabric Warehouse to Azure PostgreSQL, potentially an Elastic Cluster. You will work across both engines while that move completes. As a member of the Data Engineering team, you will own the modelling for the domains assigned to you, and the programme's cross-cutting craft: the dbt layer standards and the tooling that enforces them. This is a hands-on modelling role for someone who wants their name on the rules, not just on the tickets. You will decide what "correct" looks like for a model, prove it with numbers, and make the standard checkable by script rather than by memory. You will work in an AI-assisted engineering workflow, where agentic tooling accelerates the work but the modelling decisions: grain, layer, parity.
What You Will Be Doing - Model the business domains you are assigned in dbt Core from their source tables through layered staging and intermediate models to tested marts; working across Microsoft Fabric and Azure PostgreSQL as the platform migrates. - Work as the technical counterpart to the Product Analysts who own each business domain: they bring the business definition and the questions the data must answer; you make the models correct, tested, and proven by parity.
It Would Be Great If You Also Have - Azure PostgreSQL (Elastic Cluster), Microsoft Fabric Warehouse, OneLake, or another Delta lakehouse in your background. - A warehouse platform migration you helped carry: engine, dialect, or both.
OPSWAT's data platform turns CRM and business-system data into governed, documented, tested tables that business teams can read without asking what a column means. It is built on dbt Core, layered source → staging → intermediate → mart, and it is migrating on two fronts: a large estate of legacy stored procedures into that model, one domain at a time, with value parity proven before anything is cut over and the warehouse platform itself, from Microsoft Fabric Warehouse to Azure PostgreSQL, potentially an Elastic Cluster. You will work across both engines while that move completes. As a member of the Data Engineering team, you will own the modelling for the domains assigned to you, and the programme's cross-cutting craft: the dbt layer standards and the tooling that enforces them. This is a hands-on modelling role for someone who wants their name on the rules, not just on the tickets. You will decide what "correct" looks like for a model, prove it with numbers, and make the standard checkable by script rather than by memory. You will work in an AI-assisted engineering workflow, where agentic tooling accelerates the work but the modelling decisions: grain, layer, parity. You will work as one half of a deliberate pairing: the Data Engineering team on the technical side, Product Analysts embedded in the product pods, one per business domain on the business side. Product Analysts own what the domain means, the certified metrics and their definitions, and whether the result is right in business terms. Analytics Engineering owns the technical spectrum: modelling, layers, grain, keys, tests, parity, and the standards and tooling the models are built to. Both halves write SQL and dbt; they bring the domain, you carry the technical bar, and the two halves answer for the same number.
- Build the tested marts that certified metrics sit on, so a Product Analyst's definition and the model beneath it never drift apart. - Prove value parity between each dbt mart and the legacy stored procedure it replaces: row counts and key aggregates recorded, not asserted, before any consumer is repointed. - Own and evolve the dbt layer standards, what belongs in each layer, where collation is normalised, one path in per source and the scripts that enforce them.
- Prove value parity between each dbt mart and the legacy stored procedure it replaces: row counts and key aggregates recorded, not asserted, before any consumer is repointed. - Own and evolve the dbt layer standards, what belongs in each layer, where collation is normalised, one path in per source and the scripts that enforce them. - Declare and test primary keys, and write tests that fail when the model breaks, not checks that pass no matter what the data does.
- Declare and test primary keys, and write tests that fail when the model breaks, not checks that pass no matter what the data does. - Repoint consumers from legacy procedure outputs to dbt models in the right order (readers before procedures), and record each cutover so the sequence is auditable. - Work with your Data Engineering teammates to keep the production dbt build on schedule, so parity is a number tracked daily rather than a measurement obtained occasionally.
- Repoint consumers from legacy procedure outputs to dbt models in the right order (readers before procedures), and record each cutover so the sequence is auditable. - Work with your Data Engineering teammates to keep the production dbt build on schedule, so parity is a number tracked daily rather than a measurement obtained occasionally. - Review pull requests on the models you own within one working day; they are production-facing, so a mistake there has no legacy fallback.
- Expert SQL: window functions, CTEs, and multi-entity joins at warehouse scale; strong in the SQL Server / T-SQL dialect today, and fluent enough in PostgreSQL to move with the platform. - Hands-on dbt. You have built and maintained a dbt project (models, layers, refs, tests, documentation), not only run someone else's. - Dimensional modelling judgement: you can state the grain of a model, choose its keys, and place its logic in the right layer.
- Experience migrating stored procedures or warehouse SQL into a transformation framework such as dbt. - Airflow (or similar) orchestration experience. - Data-quality, lineage, or parity/audit tooling in your history.

Your next step

Complete your application on www.opswat.com. The employer’s form will show what is required.

Applying through Greenhouse

  • No account needed: the form is one page, with an “Autofill my application” option that reads your resume.
  • Greenhouse doesn’t read resumes over 2.5 MB, or details placed in a header, footer, text box, table or second column. The file still attaches, but a recruiter has to type you in by hand.

Already applied? Track this application

About the role

We file this job under Analytics Engineer, by the work the posting describes.

Analytics engineers turn raw warehouse data into clean, tested and documented tables that analysts and dashboards can rely on, often with dbt.

Expect strong SQL, data modeling, Git, and a warehouse such as Snowflake, BigQuery or Redshift.

A data engineer gets data into the warehouse; an analytics engineer shapes it once it is there and works closer to the analysts who use it.

US government figures for database architects

Median yearly pay, May 2025
$139,500
Expected change, 2025 to 2035
9.4% more jobsagainst 3.5% for all jobs

The government has no code for analytics engineers, so these figures are for the closest group, database architects, the same group we use for data engineers.

Source: US Bureau of Labor Statistics, Occupational Employment and Wage Statistics (May 2025) and Employment Projections (2025 to 2035). Occupation code 15-1243.

Job description

View original posting ↗

OPSWAT, a global leader in IT, OT, and ICS critical infrastructure cybersecurity, delivers an end-to-end platform that gives public and private sector organizations and enterprises the critical advantage needed to protect their complex networks, secure their devices, and ensure compliance. Over the last 20 years our commitment to innovative technology has earned the trust of more than 1,700 organizations, governments, and institutions globally, solidifying our role in protecting the world’s critical infrastructure and securing our way of life.

The Position

OPSWAT's data platform turns CRM and business-system data into governed, documented, tested tables that business teams can read without asking what a column means. It is built on dbt Core, layered source → staging → intermediate → mart, and it is migrating on two fronts: a large estate of legacy stored procedures into that model, one domain at a time, with value parity proven before anything is cut over and the warehouse platform itself, from Microsoft Fabric Warehouse to Azure PostgreSQL, potentially an Elastic Cluster. You will work across both engines while that move completes.

As a member of the Data Engineering team, you will own the modelling for the domains assigned to you, and the programme's cross-cutting craft: the dbt layer standards and the tooling that enforces them. This is a hands-on modelling role for someone who wants their name on the rules, not just on the tickets. You will decide what "correct" looks like for a model, prove it with numbers, and make the standard checkable by script rather than by memory. You will work in an AI-assisted engineering workflow, where agentic tooling accelerates the work but the modelling decisions: grain, layer, parity.

You will work as one half of a deliberate pairing: the Data Engineering team on the technical side, Product Analysts embedded in the product pods, one per business domain on the business side. Product Analysts own what the domain means, the certified metrics and their definitions, and whether the result is right in business terms. Analytics Engineering owns the technical spectrum: modelling, layers, grain, keys, tests, parity, and the standards and tooling the models are built to. Both halves write SQL and dbt; they bring the domain, you carry the technical bar, and the two halves answer for the same number.

What You Will Be Doing

  • Model the business domains you are assigned in dbt Core from their source tables through layered staging and intermediate models to tested marts; working across Microsoft Fabric and Azure PostgreSQL as the platform migrates.
  • Work as the technical counterpart to the Product Analysts who own each business domain: they bring the business definition and the questions the data must answer; you make the models correct, tested, and proven by parity.
  • Build the tested marts that certified metrics sit on, so a Product Analyst's definition and the model beneath it never drift apart.
  • Prove value parity between each dbt mart and the legacy stored procedure it replaces: row counts and key aggregates recorded, not asserted, before any consumer is repointed.
  • Own and evolve the dbt layer standards, what belongs in each layer, where collation is normalised, one path in per source and the scripts that enforce them.
  • Declare and test primary keys, and write tests that fail when the model breaks, not checks that pass no matter what the data does.
  • Repoint consumers from legacy procedure outputs to dbt models in the right order (readers before procedures), and record each cutover so the sequence is auditable.
  • Work with your Data Engineering teammates to keep the production dbt build on schedule, so parity is a number tracked daily rather than a measurement obtained occasionally.
  • Review pull requests on the models you own within one working day; they are production-facing, so a mistake there has no legacy fallback.
  • Work with the Product Analysts and Data Engineers who own the other business domains wherever models meet at the boundaries.

What we need from you

  • 3+ years in analytics engineering or data engineering, with production ownership of transformation models.
  • Expert SQL: window functions, CTEs, and multi-entity joins at warehouse scale; strong in the SQL Server / T-SQL dialect today, and fluent enough in PostgreSQL to move with the platform.
  • Hands-on dbt. You have built and maintained a dbt project (models, layers, refs, tests, documentation), not only run someone else's.
  • Dimensional modelling judgement: you can state the grain of a model, choose its keys, and place its logic in the right layer.
  • A git-based workflow: pull requests, CI checks, review discipline; plus Python for the tooling around the models.
  • Working fluency with AI-assisted engineering tooling. You set the task, review the output, and own what lands in production.
  • The ability to read a legacy stored procedure and say what business question it answers, and where it quietly disagrees with the documentation.
  • Comfort working directly with Product Analysts turning "this number looks wrong" into a testable question and a fix, and explaining a modelling trade-off in business terms.
  • Care at data boundaries: you treat a join that silently matches nothing as a defect, not a detail.

It Would Be Great If You Also Have

  • Azure PostgreSQL (Elastic Cluster), Microsoft Fabric Warehouse, OneLake, or another Delta lakehouse in your background.
  • A warehouse platform migration you helped carry: engine, dialect, or both.
  • Experience migrating stored procedures or warehouse SQL into a transformation framework such as dbt.
  • Airflow (or similar) orchestration experience.
  • Data-quality, lineage, or parity/audit tooling in your history.
  • Standards or tooling you authored that other engineers actually follow.

What success looks like in your first 60 days

  • The domains assigned to you move through the cutover stages: modelled to the layer standards → readers repointed → value parity proven with recorded numbers → cutover recorded.
  • New and modified models pass the layer-standards check, and declared primary keys resolve against the columns the models actually emit.
  • Parity coverage for your domain is a tracked figure, published, not a one-off measurement.
  • Pull-request reviews on the models you own land within one working day.
  • The Product Analysts you pair with treat your models as the source of truth for their domain, their certified metrics trace back to marts you own, and they can read those models without asking what a column means.

OPSWAT is an equal opportunity employer. We celebrate diversity and are committed to providing an environment where equal employment opportunities are extended to all employees and applicants, free of discrimination and harassment of any type. All employment decisions are based on individual qualifications, job requirements, and business needs without regard to race, color, religion, age, sex, national origin, disability status, genetics, protected veteran status, sexual orientation, gender identity or expression, or any other category protected by federal, state, or local laws.

Recruiting Agencies: we do not accept unsolicited resumes from third party agencies for any of our open positions. To submit resumes for our jobs, there must be a recruiting contract approved by our legal team and endorsed by both parties. We are currently not accepting additional 3rd party agencies at this time.

 

Source details

View original posting ↗

Source notes

Source excerpts

Selected passages from the saved posting. Check the full description for conditions and exceptions.

Pay

No pay amount identified in the saved description.

Location & working pattern

Ho Chi Minh City, Ho Chi Minh City, Vietnam

Working pattern and location restrictions need checking in the full posting.

Work authorization

No clear work-authorization passage found. Eligibility is unconfirmed.

Find answers in the posting

AI
How answers work

AI selects complete passages from this posting. Check them for conditions and exceptions.

Uses this posting and your question. No profile needed.