Data Gibberish

Data Gibberish

Ship idempotent reverse ETL in 60 minutes with a ruthless data engineering playbook

Spend 15 minutes a week in September and finish with a working reverse ETL from Snowflake to HubSpot through Hightouch with clean mapping, change detection, and two idempotency proofs.

Yordan Ivanov's avatar
Yordan Ivanov
Sep 01, 2025
∙ Paid
7
Share

This mini-course is part of the Level-up data engineering playlist. Click here to explore the full series.

A female data enginers directs in a reverse order

I owned all the data at my company and pushed every request through my team.

I thought I built resilience. I built a silo.

Sales asked the same thing every week. How much did this account use the product this month. I made them file tickets. I made them wait. My queue grew. Their patience died. Meetings turned into status updates. Shit felt broken.

So I stopped hoarding. I pushed usage into HubSpot where they lived. Contacts showed totals and recency. Sales stopped pinging me. Marketing ran lists without me. I shipped fewer dashboards and got more credit.

And now I teach the exact move. Reverse ETL. Upserts keyed by email. Reruns without side effects. You ship it in an hour and use it forever.

Here is what flips once you wire this up:

  • Sales opens a contact and sees total orders, total revenue, last order date, and recency

  • Marketing builds a list in minutes and hits send

  • Finance checks the same fields and signs off

  • You rerun the job and nothing moves unless features changed

  • You hold the keys and your name lands in the room

Loading...

How to work with this mini-course

Just reading the article alone would take you over 20 minutes. So:

  • Bookmark this guide and set a reminder to revisit it weekly.

  • Skim the entire article once to understand the big picture.

  • Each week, complete the exercises before applying them to your own projects.

Take your time. Don’t rush to implement everything at once. Master each step before moving to the next.

Also, you will need about an hour to read the whole thing and write the code at once. It’s much easier to spend 15 minutes per week!


The business pain and why reverse ETL wins

Sales opens HubSpot before a call and sees no usage. Marketing needs a list and waits. Customer support asks at 7 am. Slack fills with the same asks. Dashboards sit. Money leaks.

Teams want fields in the tool where work happens. Totals. Dates. Recency. On the contact. On time.

Reverse ETL moves a few facts from the warehouse onto the contact. I upsert by email. If facts change, HubSpot updates. If nothing changes, nothing moves. Reruns stay clean.

Why the business cares: prep before calls takes minutes, tickets drop, lists ship without a queue, one set of fields sits in one place, logs show what changed and when.

What changes on day one:

  • Sales sees total orders, total revenue, last order date, and recency on the contact

  • Marketing builds a segment for active in the last 30 days and hits send

  • CSM sorts by stale usage and books outreach

How a data engineer proves value:

  • Time to answer falls from days to minutes

  • Rerun noise goes to zero

  • Pipeline and renewals rise

Data Gibberish is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.


Prerequisites

Create accounts on Snowflake, Hightouch, and HubSpot CRM.

None of these requires a credit card. Use a personal workspace.

HubSpot properties

Add contact properties with these internal names and types:

  • total_orders number

  • total_revenue number

  • last_order_date date picker

  • recency_days number

  • feature_hash text if you want change detection

Access

Use a Snowflake role that can create a warehouse, database, schema, views, and tables. For the sake of this project feel free to use ACCOUNTADMIN.

Allow Hightouch to reach Snowflake. Give HubSpot rights to create and edit contact properties.

Tools

Use Snowsight's (the Snowflake web UI) worksheets. Keep a simple text editor open just in case.

I also strongly recommend putting all the code in a GitHub repository so you can grow your portfolio.

Cost and safety

As always, this whole thing will cost you $0 in tooling.

Time

Block 15-20 minutes each week. Skim the whole guide once. Then only do the current week. Ship the step. Stop.

If you can log in to all three tools, create the HubSpot properties, and run a CREATE TABLE in Snowflake, you are ready for week 1.


Week 1: model features in Snowflake

The goal this week is simple. Build one fast table with four customer metrics per email. Set the grain. Prove it runs clean. Keep previews fast so Hightouch feels smooth next week.

Theory

This week is the hardest part. In my experience, the hard part is not the SQL. The hard part is locking down how KPIs work so every tool shows the same number.

This post is for paid subscribers

Already a paid subscriber? Sign in
© 2025 Yordan Ivanov
Privacy ∙ Terms ∙ Collection notice
Start writingGet the app
Substack is the home for great culture