Skip to main content
Rubén Solano

Data engineering

Data engineering services

Reliable ELT pipelines, clear data models and quality tests so your reports and models rest on data you can trust and that refreshes without manual work.

Updated:

Problems it solves

  • Every report shows a different number

    Metrics are calculated in different places with slightly different rules. Nobody knows which one is right.

  • Fragile or slow load processes

    A pipeline that fails silently, takes too long or is fully rebuilt every day makes everything else slower and more expensive.

  • Data with no tests or documentation

    When a source column changes, nobody finds out until a report goes wrong.

  • Growing query costs

    Queries scan more data than necessary and the warehouse bill rises without any gain for the business.

Typical architecture of an ELT pipeline with dbt and BigQuery

The pattern I usually use separates responsibilities into layers. In base (or staging) each source is loaded almost as is, with consistent names, corrected types and little else: it is the boundary between the outside world and yours. In core, business entities — customers, transactions, products — are modelled with rules, deduplication and well-defined keys. In marts, tables are built ready for each use: a dashboard, a predictive model, an export. Every layer has its tests and documentation, and dbt manages dependencies between models.

Data validation as part of the design

Tests are not a final add-on. From the first model I define uniqueness and not-null tests on keys, relationships between tables and business rules (for example, that an amount is not negative except for refunds). I add freshness checks to detect sources that have stopped arriving and, where possible, reconcile totals with the source system. Failures produce concrete alerts instead of silently wrong reports.

Orchestration, cost and performance

To run pipelines on a schedule I use Airflow when the project has enough dependencies to justify it; for simpler needs, simple scheduling is enough. In BigQuery, most of the saving comes from three decisions: querying only the columns you need, partitioning and clustering large tables according to how they are filtered, and avoiding full rebuilds when an incremental load is enough.

I have worked with SQL, dbt and BigQuery in a fintech analytics team (described at a high level for confidentiality) and I maintain a personal lab with more than 250,000 synthetic transactions that illustrates layer organisation, tests and orchestration. You will find it under projects.

What you get

  • ELT/ETL pipelines

    Ingestion from your sources into the warehouse (BigQuery or another), with incremental loads where appropriate and error handling.

  • Layered modelling with dbt

    Base, core and marts layers with naming conventions, documentation and lineage, ready for analytics and models.

  • Data quality and validation

    Tests for uniqueness, nulls, relationships and business rules; freshness checks and reconciliation against the source.

  • Orchestration

    Scheduled runs and dependencies with Airflow or another tool suited to the size of the project, with failure alerts.

  • Cost and performance optimisation

    Review of queries and models, partitioning, clustering and materialisations to reduce processing time and cost.

How I approach it

  1. 01

    Inventory of sources and needs

    What data exists, who uses it, which decisions depend on it and which figures must reconcile.

  2. 02

    Model design

    I define entities, granularity and metrics with your team before writing transformations, to avoid rework.

  3. 03

    Incremental implementation

    One source and one use case end to end before expanding. Every model with its tests from day one.

  4. 04

    Validation and reconciliation

    I compare results with figures you already know and document differences and their cause.

  5. 05

    Operation and handover

    Orchestration, alerts, documentation and code review so your team can maintain it.

Concrete examples

  • A data warehouse that starts well

    Layer structure, conventions and tests from the beginning, with a first dashboard on reliable data.

  • Migrating spreadsheets and loose queries to dbt models

    Turn scattered logic into versioned, tested and documented models.

  • Reducing the rebuild time of a model

    Analyse why a daily load takes so long and move from rebuilding everything to incremental loads where the data allows.

  • Consolidating data from several regions or systems

    Normalise different structures into a common model with standardised records.

Who it is for

  • Companies with data in several sources (apps, spreadsheets, databases) that need a single reliable version.
  • Teams using BigQuery and dbt with slow, expensive or hard-to-maintain queries.
  • Startups about to build their first data warehouse who want to avoid technical debt from day one.

Realistic benefits

  • A single source of truth for key metrics.
  • Fewer incidents and faster diagnosis when something fails.
  • Faster, cheaper processes to run.
  • Documentation and lineage that make onboarding new people easier.

Limits and honesty

  • A good data model does not fix data poorly captured at the source; sometimes the change must be made in the process that generates it.
  • I do not recommend heavy tooling when volume and complexity do not justify it.
  • Performance gains depend on each case; I cannot promise a percentage before analysing your queries.

Frequently asked questions

What is the difference between ETL and ELT?

In ETL, data is transformed before being loaded into the warehouse; in ELT it is loaded first and transformed inside the warehouse with SQL. ELT with tools such as dbt is now the norm for cloud warehouses because it uses their compute and keeps transformations versioned.

Do you work with warehouses other than BigQuery?

My professional experience is with BigQuery and dbt. Modelling, testing and orchestration principles carry over to other SQL warehouses; if your environment is different I will say so clearly before starting.

What is dbt and why do so many people use it?

dbt lets you write transformations as versioned SQL queries with tests and automatically generated documentation. It turns data logic into reviewable code instead of loose queries.

Can you review a pipeline we already have?

Yes. A scoped review identifies fragile points, costly queries and missing tests, and ends with a prioritised list of improvements.

Where can I see your experience in this?

The experience page describes, at a high level, my work with SQL, dbt and BigQuery at a fintech, and the projects page includes a personal lab with synthetic data showing how I organise layers.

Related evidence: related projects

  • Data engineeringPersonal project

    Analytics engineering lab on financial crime

    A personal lab that recreates an analytics engineering environment on synthetic financial-crime data, with base, core and marts layers, quality tests and orchestration.

    • Python
    • SQL
    • dbt
    • BigQuery
    • DuckDB
    • Airflow
    • +1
    Actively developedView case

Related services

Request a proposal

Let's talk about your case

A first conversation is enough to know whether it makes sense and where to start.