← mat swinianski

Case study

Deel: Rebuilding the Data Function at 90 → 2,000+ Employees

I joined Deel as its second data hire, a growth data analyst, while the company grew from 90 to 2,000+ employees. Analytics ran on a Postgres database and Metabase, every chart backed by its own hundreds of lines of hand-written SQL with no modelling layer underneath.

The transformation · Postgres to a source of truth

  1. 01

    Arguing for a head of data

    I took the problem to leadership and argued for a dedicated head of data.

    Decision · Demand for answers grew with the company’s headcount, while chart-level SQL only grew with analyst hours. The fix had to start with how the function was staffed and led.

  2. 02

    Stakeholder discovery

    I interviewed product, growth, and sales to define what each function needed from data.

    Decision · The existing charts recorded what had once been asked for; requirements had to come from the business, not from what Metabase already showed.

  3. 03

    Re-platforming

    SnowflakeFivetran

    With the new data leader on board, we moved warehousing onto Snowflake and put ingestion on Fivetran.

    Decision · Analytics needed its own warehouse and managed ingestion, so the effort could go into modelling instead of moving data.

  4. 04

    Modelling the source of truth

    dbtSnowflake

    I dimensionally modelled the warehouse in dbt: version-controlled, tested, one definition per metric.

    Decision · Every number defined once in the model, instead of once per chart in hand-maintained SQL.

  5. 05

    Self-service BI

    Looker

    We rebuilt reporting in Looker on top of the modelled layer; teams answered their own questions, and ad-hoc analysis requests fell by roughly 60%.

    Decision · Once definitions live in the model, BI becomes an access layer: the same numbers for everyone, without an analyst in the loop.

What shipped

Stack

Inherited
PostgreSQLMetabase
Warehouse & ingestion
SnowflakeFivetran
Modelling
dbt
BI
Looker

Reporting went from hundreds of lines of SQL per chart to one definition per metric in the model, and ad-hoc analysis requests fell by roughly 60%.

Problem shaped like this? mat@swinianski.com

← Back to home