Analytics Engineer
How to Become an Analytics Engineer
The analytics engineer career path: dbt, warehouse modeling, and SQL engineering skills that sit between data analysts and data engineers.
Analytics engineering is the newest of the core data roles and one of the best paid relative to how hard it is to enter. The job: turn raw data in a warehouse into clean, tested, documented models. The stack: SQL, dbt, a cloud warehouse, and Git.
If you are already a data analyst who enjoys the SQL more than the meetings, this is your natural next step. If you are brand new to data, start with the first data job guide or the data analyst path — analytics engineering builds on those foundations.
What an analytics engineer does
The role sits between the data analyst and the data engineer:
- Data engineers land raw data into the warehouse
- Analytics engineers transform it into usable models
- Analysts and BI tools query those models
A typical week: writing dbt models, adding tests for nulls and duplicates, reviewing teammates’ SQL in pull requests, fixing a broken metric, documenting a new mart for the marketing team. You ship code, but the code is mostly SQL. For a full role-by-role comparison, see Data Analyst vs Data Engineer vs Analytics Engineer.
Core skills, in order
1. Strong SQL — non-negotiable
Analytics engineering is SQL engineering. Beyond analyst-level SQL you need:
- CTEs used to structure long transformations
- Window functions without hesitation
- Query performance basics: what makes a query slow on a columnar warehouse
- Handling slowly changing data, deduplication, incremental logic
Module 2: Databases and SQL covers the foundation; interviews for this role go deeper than analyst interviews.
2. dbt
dbt is the defining tool of the role, and “dbt jobs” is effectively a synonym for analytics engineering. Learn:
- Models, sources, and refs — the dependency graph
- Staging / intermediate / marts project structure
- Tests (unique, not_null, relationships) and custom tests
- Documentation and the dbt docs site
- Incremental models and snapshots
- Jinja and macros for repeated logic
dbt Core is free. Build a real project with it — nothing teaches dbt like debugging your own DAG.
3. A cloud data warehouse
Snowflake, BigQuery, or Redshift — pick one and understand columnar storage, warehouses/slots, and cost basics. Snowflake and BigQuery both have free trials. Module 5: Cloud Computing covers the cloud context these warehouses live in.
4. Dimensional modeling
Kimball-style modeling is still the shared language: facts, dimensions, grain, surrogate keys, star schemas. Interviewers ask “how would you model orders and customers?” more often than any tool question. Module 1: Analytics Fundamentals introduces warehouse concepts.
5. Git and engineering workflow
Branches, pull requests, code review, and CI checks on dbt runs. This is what separates analytics engineers from analysts who write SQL. Module 4: Data Integration and ETL shows where transformation fits in the wider pipeline.
Portfolio: one serious dbt project
For this role, one deep project beats three shallow ones. Build an end-to-end modern-stack project:
- Load a public dataset into Snowflake or BigQuery (free tier)
- Structure a dbt project: staging models per source, marts per business area
- Add tests on every primary key and write model documentation
- Put it on GitHub with a README that explains the modeling decisions
- Optionally add a BI layer on top — a dashboard proves the models work
The Surfalytics pet projects library includes analytics engineering projects with exactly this shape, and the full curriculum covers each layer of the stack.
How the job search works for this role
- Title targeting: search for “Analytics Engineer” but also “Data Analyst” postings that list dbt — many companies use the titles interchangeably.
- Resume: name the stack precisely: dbt, Snowflake, Git, CI. Recruiters filter on the keyword “dbt”.
- Interviews: expect a live SQL round (harder than analyst level), a modeling discussion, and questions about testing and data quality. Mock interviews matter here; practicing under pressure is a core part of the Surfalytics community.
- From analyst to analytics engineer: if you already have an analyst job, volunteer for the modeling work, introduce dbt if the team lacks it, and let your Git history become your portfolio.
Mark Waechter made exactly this jump: “Before Surfalytics I worked as an SEO specialist and marketing analyst. I now work as an Analytics Engineer, managing everything from ELT scripts in Python to Power BI and dbt. The course helped me connect the dots, turning scattered knowledge into a clear picture.” More member stories are on the testimonials page.
What the interview loop looks like
A typical analytics engineer loop has four rounds:
- Recruiter screen — expect “how much dbt have you used?” Have a concrete answer: number of models, tests, how the project was structured.
- Technical SQL round — harder than analyst SQL. Deduplication with window functions, incremental logic, “why does this query return duplicate rows?” debugging.
- Modeling round — “model orders, refunds, and subscriptions for the finance team.” Talk about grain first, then keys, then trade-offs. Saying the word “grain” early signals you know the craft.
- Behavioral / process round — data quality incidents, working with analysts, code review culture.
Practice rounds 2 and 3 out loud. Explaining a model design clearly is a different skill from designing it silently, and it is the skill being graded.
Common mistakes on this path
- Learning dbt features before modeling fundamentals. Macros and Jinja impress no one if the model grain is wrong. Kimball first, syntax second.
- A dbt project with no tests. Interviewers open your GitHub. A project without tests and documentation reads as a tutorial copy.
- Skipping the warehouse. Running dbt against a local database misses the questions you will actually get: clustering, cost, performance on columnar engines.
- Ignoring analyst empathy. The customer of your models is an analyst. Candidates who talk about documentation, naming, and usability stand out.
- Applying only to “Analytics Engineer” titles. Half the dbt jobs are titled Data Analyst, BI Engineer, or Data Engineer. Search by tool, not title.
Realistic timeline
| Starting point | Time to analytics engineer role |
|---|---|
| Working data analyst | 3-6 months of adding dbt, Git, modeling |
| New to data | 6-12 months (analyst skills first, then the engineering layer) |
The market side is favorable: dbt jobs keep growing faster than the supply of people with real dbt project experience, and remote roles are common because the work is asynchronous by nature. Companies adopting the modern data stack often hire their first analytics engineer before their first data engineer, which creates openings where you are the whole transformation layer — great learning, fast ownership.
Salary expectations
Typical ranges, not guarantees:
- US: $95K-$130K for mid-level; $130K-$160K+ senior
- Canada: $85K-$120K CAD mid-level; $120K-$150K CAD senior
Established Surfalytics members in Canada and the US average around $150K, and moving from analyst to analytics engineer is one of the common ways members grow income 2-3x.
Mid-level expectations
Once hired, growing to mid-level means:
- Owning a domain (Marketing, Product, Finance) end-to-end
- Mentoring analysts on SQL and dbt patterns
- Driving data quality: tests, freshness monitoring, lineage
- Pushing back on bad modeling requests with better designs
How Surfalytics helps
Surfalytics gives you the structured curriculum, a roadmap tailored to your goal, guided projects using the real modern stack, and a community of working analytics and data engineers for code review and mock interviews. Try it with a 7-day free trial — details on the pricing page.
Frequently asked questions
What is an analytics engineer? ▾
An analytics engineer builds the transformation layer of the data warehouse. They take raw loaded data and turn it into clean, tested, documented models that analysts and dashboards use. The core tool is dbt on top of a cloud warehouse like Snowflake or BigQuery.
Analytics engineer vs data analyst — what is the difference? ▾
An analyst answers business questions with existing data. An analytics engineer builds the data models the analyst queries. Analytics engineers write more code (dbt, Git, CI) and do less stakeholder reporting.
Do I need dbt experience to get dbt jobs? ▾
You need to demonstrate dbt skill, not paid experience. A public dbt project with staging models, tests, and documentation carries real weight in interviews. Most companies test SQL depth first and dbt conventions second.
How much do analytics engineers make? ▾
Typical ranges are $95K-$130K USD in the US and $85K-$120K CAD in Canada for mid-level roles. Senior analytics engineers at larger tech companies often clear $150K.
Can I go straight into analytics engineering as my first data job? ▾
It happens, but it is harder. Most analytics engineers start as data analysts and add dbt, Git, and modeling on the job. Some Surfalytics members have landed junior analytics engineer roles as their first position, so it is a realistic stretch goal.
Ready to ride the wave?
Join the next cohort. Personalized roadmap delivered the moment you sign up.
Get started — it takes 2 minutes