What does an analytics engineer do?
An analytics engineer turns raw data in the warehouse into clean, tested tables that analysts and business teams can trust.
The job sits between data engineering and analysis. You write SQL, model data and keep definitions consistent.
In a Singapore organisation, the role usually belongs to a data or analytics team. It is common in fintech, e-commerce, logistics, banking and government agencies that run a cloud data warehouse. Smaller firms may call the same job data engineer or BI developer.
You work with data engineers who load the raw data, and with data analysts, BI analysts and data scientists who use your tables. You also talk to finance, marketing and operations teams about what their numbers should mean.
What the work involves
- Write and review SQL models in dbt that clean, join and reshape raw data into tables ready for reporting.
- Add tests and checks so broken or late data is caught before it reaches a dashboard.
- Agree metric definitions with business teams, then record them centrally so every report uses the same logic.
- Fix failing pipeline runs and trace wrong numbers back to the source.
- Tune slow or costly queries in the cloud data warehouse.
- Review teammates' code in Git and update documentation for the tables you own.
Pay in Singapore
The median is S$8,721 a month, gross.
Closest MOM occupation: Data engineer (SSOC 25213). MOM, Occupational Wages 2025, Table 4 (all industries), June 2025. Full-time resident employees; gross monthly wage, excluding bonuses. Full pay data
Skills an analytics engineer needs
Core skills
- Data modelling
- Data quality & testing (Great Expectations)
Tools and platforms
- SQL
- dbt
- Cloud data warehouses (BigQuery, Snowflake)
- Git
- Looker Studio
AI
- Claude Code
Analytics engineer job description
We are hiring an analytics engineer to build and maintain the data models behind our reports and dashboards.
You will work in SQL and dbt on a cloud data warehouse, and you will set up tests that keep the data reliable. You will partner with analysts, data engineers and business teams in Singapore to turn raw data into clear, documented datasets.
Responsibilities
- Design dimensional and wide-table models that match how the business measures its work.
- Build and maintain dbt models, including staging, intermediate and mart layers.
- Write automated tests for freshness, uniqueness, nulls and business rules.
- Define metrics with business teams and keep the definitions documented.
- Monitor scheduled runs, investigate failures and fix the cause.
- Tune query speed and warehouse cost through partitioning, clustering and sensible materialisation.
- Use Git for version control, pull requests and code review.
- Support analysts who build dashboards in tools such as Looker Studio.
- Apply data protection rules to personal data, including masking and access limits.
- Document models so new team members can find and use them.
Requirements
- Degree or diploma in computer science, information systems, statistics, engineering or a related field, or equivalent work experience.
- Typically 2 to 4 years in data analysis, BI or data engineering for a mid-level post. Junior posts may accept less.
- Strong SQL, including joins, window functions and query tuning.
- Hands-on use of dbt and a cloud data warehouse such as BigQuery or Snowflake.
- Working knowledge of Git and code review.
- Ability to explain data issues without jargon to non-technical colleagues.
Analytics engineer career path
Most analytics engineers start in analyst or junior engineering roles and grow towards technical ownership or data leadership.
Titles vary between Singapore employers, so check the duties as well as the name.
Junior analytics engineer
Entry
You build simple dbt models, write tests and fix small data issues under guidance. Many people arrive from a data analyst or BI role.
Analytics engineer
Mid
You own a set of models for a business area. You agree metric definitions with stakeholders and review other people's code.
Senior analytics engineer
Senior
You design the model layers across domains, set testing standards and guide cost and performance choices. You coach junior colleagues.
Analytics engineering lead
Lead
You lead a small team, plan its work with business and engineering heads, and set the practices the team follows.
Head of data or analytics
Head
You set data direction for the organisation, manage budgets and teams, and answer to senior management for data quality and use.
The titles are ones commonly used in Singapore; employers may name the levels differently.
Related jobs and their pay
| Related job | Median pay a month | Why it is related |
|---|---|---|
| Data engineer | Same MOM occupation | You already model data and use cloud warehouses, so moving towards pipelines, orchestration and infrastructure is a short step. |
| Business intelligence (BI) analyst | S$8,445 | If you prefer working closely with stakeholders and dashboards, your modelling skills make your reports more reliable. |
| Data scientist | S$10,111 | Clean, well-modelled data is the base for analysis, and adding statistics and machine learning opens this route. |
| Data analyst | S$5,869 | You can return to analysis with a strong grasp of how the underlying data is built and where it can mislead. |
MOM Occupational Wages 2025, gross monthly wage, full-time resident employees. Each figure links to its salary guide.
Analytics engineer interview questions
We wrote these questions from the skills this job needs. They are not an official question bank.
When would you choose a star schema over one wide table for a reporting layer?
What a good answer covers
- Star schemas split facts and dimensions, which cuts duplication and keeps each definition in a single table.
- Wide tables are simpler for analysts and can be quicker for dashboards on a columnar warehouse.
- Mention the grain of the fact table and how you would state it.
- Weigh maintenance effort, query cost and who will use the table.
Write a SQL query that returns each customer's most recent order, and explain your approach.
What a good answer covers
- Use ROW_NUMBER or a similar window function partitioned by customer and ordered by order date, descending.
- Filter to row number 1 in an outer query or a QUALIFY clause where supported.
- Explain how you break ties when two orders share a timestamp.
- Mention checking the result for customers with no orders.
Explain the dbt materialisations you would use for a staging model, a large event table and a small lookup table.
What a good answer covers
- Views or ephemeral models suit light staging logic.
- Incremental models suit large tables that grow over time.
- Tables suit small lookups that are queried often.
- Link each choice to build time, warehouse cost and freshness needs.
How would you build an incremental dbt model when some records arrive days late?
What a good answer covers
- Define a reliable unique key so late rows update existing records.
- Reprocess a lookback window instead of only the latest day.
- Use an updated-at column rather than the event date where possible.
- Plan a full refresh for correcting history and test for duplicates.
You own an orders table. Which data tests would you add, and where would you run them?
What a good answer covers
- Uniqueness and not-null tests on the order key.
- Accepted values for status and a relationship test to the customer table.
- Freshness checks on the source and range checks on amounts.
- Tools such as dbt tests or Great Expectations, run on each build.
- Decide which failures block the pipeline and which only raise an alert.
A BigQuery or Snowflake query scans too much data and costs too much. How do you reduce it?
What a good answer covers
- Read the query plan or profile to find the heavy steps.
- Select only needed columns and filter early.
- Use partitioning, clustering or pruning on common filter columns.
- Pre-aggregate or materialise repeated logic.
- Check the result and compare cost before and after.
How do you handle a customer attribute that changes over time, such as membership tier?
What a good answer covers
- Describe a slowly changing dimension, usually type 2, with valid-from and valid-to dates.
- Mention dbt snapshots as one way to capture changes.
- Explain how facts join to the correct version of the dimension.
- Note the storage and complexity cost.
Describe the Git workflow you would use for a dbt project with four contributors.
What a good answer covers
- Short-lived feature branches and pull requests into the main branch.
- Code review for logic, naming and tests.
- Automated checks that build changed models and run tests before merge.
- A clear way to revert a bad change.
A Looker Studio dashboard built on your table loads slowly. What do you check?
What a good answer covers
- Table size, number of blended sources and the complexity of calculated fields.
- Whether a pre-aggregated mart table would serve the dashboard better.
- Extracts or caching settings and the cost of live queries.
- Limit filters and date ranges that trigger large scans.
Finance says the revenue on your dashboard differs from the billing system by a small amount. What do you do?
What a good answer covers
- Ask for the exact figures, period and filters each side uses.
- Compare row counts and totals layer by layer to find where they diverge.
- Check for causes such as refunds, currency, time zones or late records.
- Fix the cause, add a test that would have caught it and tell finance what changed.
Sales and marketing each define an active customer differently. Both want their version on the main dashboard. How do you proceed?
What a good answer covers
- Bring both teams together to write down each definition and its purpose.
- Propose clear names for each metric rather than forcing one.
- Define the logic once in a shared model and document it.
- Get a senior owner to sign off the official definition.
You use Claude Code to refactor a set of dbt models. How do you make sure the result is safe to merge?
What a good answer covers
- Give it clear scope and review every changed file yourself.
- Run the full test suite and compare outputs with the old models.
- Check that it did not alter business logic, grain or column names.
- Keep secrets and personal data out of the prompts.
- Commit in small steps so you can revert.
Tell us about a time you pushed back on a data request from a stakeholder.
What a good answer covers
- Describe the request and why it was a problem, such as unclear scope or a misleading metric.
- Show how you explained the issue without jargon.
- Offer an alternative that met the real need.
- State the outcome and what you learnt.
Describe a time a change you made broke a report or pipeline. What happened next?
What a good answer covers
- Own the mistake without blaming others.
- Explain how you spotted it and how fast you told affected users.
- Describe the fix and the root cause.
- Name the test or process you added to stop it happening again.
Your customer table holds NRIC numbers and mobile numbers. How would you handle this data in the warehouse under the Personal Data Protection Act (PDPA)?
What a good answer covers
- Ask whether the data is needed at all, and collect or keep only what the purpose requires.
- Mask or hash identifiers in models that analysts use, and restrict raw access by role.
- Set retention rules and delete data when it is no longer needed.
- Log who accesses it and involve the data protection officer for questions on rules.
- Treat NRIC handling carefully and follow current guidance from the Personal Data Protection Commission.
You join a bank or insurer regulated by the Monetary Authority of Singapore (MAS). What data controls would you expect in your analytics work?
What a good answer covers
- Clear data lineage from source to report and documented ownership of key tables.
- Access control, change approval and audit trails for models and dashboards.
- Data quality checks on regulatory and risk reports.
- Care over where cloud data is stored and which vendors can reach it.
- Ask the risk or compliance team for the specific MAS requirements that apply.
Common questions about an analytics engineer job
What does an analytics engineer do?
An analytics engineer builds the clean, tested tables that sit between raw data and reports. You write SQL models, add data quality checks and keep metric definitions consistent across teams.
What is the difference between an analytics engineer and a data engineer?
A data engineer focuses on moving data into the warehouse and on the systems that run it. An analytics engineer focuses on modelling that data for analysis. In smaller teams, one person often does both.
Do analytics engineers need to know Python?
SQL and dbt are the core tools, so Python is often optional. It helps for scripting, orchestration and data checks, and some employers ask for it.
Can a data analyst become an analytics engineer?
Yes. Many analysts move across after learning dbt, Git and data modelling. Your SQL and knowledge of the business already give you a head start.