Skip to content

Data engineering consultancy in Utrecht

We build pipelines that give models and reports the same data, and measure what changes. For Rijkswaterstaat, we developed a generic monitoring package.

We developed a single generic monitoring package for all the AI models Rijkswaterstaat has in production

Rijkswaterstaat put several AI models into production. Manual monitoring for data drift and prediction drift doesn’t scale, so we developed a package for detecting drift and outliers using Python, Alibi Detect and Pydantic, among other tools. “DSL came up with an inventive solution that we can put to good use.” Nanine Overgaauw, Rijkswaterstaat - SRE Data Science

Read the case study

Does our model notice when a source system is replaced?

At large organisations in and around Utrecht, asset registers, measurement networks, case management systems and planning systems all feed reports and models. If a column or unit changes, the model simply keeps running. We build pipelines that block such changes and make them visible.

Book a meeting

Training, production and checks use the same data, from pipelines you can inspect

Discuss your data sources

Ingestion with schema validation

Each source is ingested unchanged first. The pipeline then checks columns, types and rules. For Fokker Services Group, data quality checks are built into the data platform.

Model inputs and outputs documented

You document what a model receives and returns. This provides the basis for monitoring, such as the package for drift and outlier detection for Rijkswaterstaat.

Releases through the DTAP stages

Pipelines and infrastructure move from development to production as code. For SNG, we automated the release process through the DTAP stages, using Terraform among other tools.

Many sources, one data model

For Vivara, we developed a data platform that retrieves data daily from sources including SAP, Magento and SharePoint, with one data model for all departments.

From a running model, we trace the data back to every source

  1. One model, all its sources

    We trace one model back to every table and system that feeds it, and identify who owns each one.

  2. Build ingestion and checks

    Pipelines with schema checks and data quality rules, plus a table of the model’s inputs and outputs.

  3. Reuse it for the next one

    The next model or report uses the same data ingestion. Your team then manages it, or we do.

Do we need a data engineering consultancy now, or should we start elsewhere?

Talk it through with us

A good fit if

Several models or reports rely on data from many systems, ingestion has been built separately for each project, and no one notices when a source changes. You’re based in or near Utrecht and want a team that can visit you.

Not a good fit if

You’re looking for a data engineer to work temporarily alongside your own team: secondment is a better fit. If nothing is running on the data yet, start by asking which decision needs to improve.

What determines the scope

The number of sources and models, whether a platform is already in place, how often the data is refreshed, the security requirements and how much of the management your own team will handle.

Will we be tied to your choice?

We build on Databricks, Microsoft Fabric or the environment you already have, choosing what fits your existing IT landscape. We agree on documentation and management arrangements in advance.

Where should you catch a data error: at the source, in the pipeline or at the model?

At the source

Choose this if one system causes the error and its administrator can fix it, for example by making a field mandatory or setting a standard unit of measurement in the asset register.

In the pipeline

Choose this if multiple models and reports use the same source. A schema check or data quality rule then catches the error once, for everyone.

At the model

Choose this if the data is technically correct but real-world conditions are changing. Our advice: measure drift in the model inputs alongside pipeline checks, not instead of them.

We build data platforms and the pipelines that underpin them as a Databricks and Microsoft partner

Data Science Lab has worked in data and AI since 2016, based in Amsterdam. We have built data platforms for Fokker Services Group and Vivara, among others, and share knowledge in our lab and at Techdays.

Book an introductory meeting

In our first conversation, we’ll decide together which model or report to start with

Stef Stoelwinder

Stef Stoelwinder

Business Development

Stef is your first point of contact. In our first conversation, we’ll discuss your sources and models, at your offices in Utrecht, in Amsterdam or online.

Which systems do your models and reports currently draw on?

Tell us which systems, models and platform you use. We’ll reply by email or arrange an initial conversation.

Enter a valid email address.

Let us know how we can help you.

Frequently asked questions

It brings data from all your systems together reliably in one place, using pipelines and a platform that it designs, builds and maintains. Models in production need more: the same data for training and production, checks when data is ingested, and a defined model input. The models themselves fall under data science. Read more about data engineering.

If you would rather have a data engineer from Utrecht or the surrounding area on your own team, you can hire a data engineer. They remain employed by us.

Because the model relies on what it saw during training. If a source system is replaced, a unit changes from metres to centimetres, or a column takes on a different meaning, the model will still produce results, but they will be less accurate. No one gets an error message.

So put checks at the point of ingestion. Delta tables on Databricks enforce the schema when data is written: columns the table does not recognise are rejected, and data types must match. Schema changes then become deliberate. You can validate data arriving as a file or through an API in Python with Pydantic.

By storing the input and output of every prediction alongside the training data. On Databricks, inference tables do this: they record the requests and responses of a model serving endpoint in a Delta table in Unity Catalog. You can then use data profiling to track performance and data drift.

Rijkswaterstaat has several AI models in production. For these, we developed a generic package for drift and outlier detection, using tools including Alibi Detect, a Python library for outlier and drift detection. Read the Rijkswaterstaat case study or find out more about MLOps.

With lineage: a record of which queries and files populate a table, which jobs and notebooks modify it, and which dashboards and model versions use it. Unity Catalog records this automatically for queries on Databricks, down to column level. If the person responsible for a source wants to remove a column, you can see in advance who will be affected.

Without a catalogue like this, you can keep a list for each pipeline, but it quickly becomes outdated. Read more about setting up Unity Catalog.

For high-risk AI systems, Article 10 requires training, validation and test data to be subject to appropriate data governance and management practices. The datasets must be relevant, sufficiently representative, and as free of errors and complete as possible for their intended purpose. Pipelines that record where data comes from help you demonstrate this.

Under the AI Omnibus, the requirements for Annex III do not apply until 2 December 2027. We can help you take stock; your legal counsel or compliance department decides whether your model is high-risk. Read more about the AI Act.

That depends on your existing IT landscape. We build on Databricks and Microsoft Fabric. For Fokker Services Group, we are building a data platform using Databricks, Azure and dbt, among other tools, modelled on the medallion architecture. To see how bronze, silver and gold form a lakehouse together, read about building a data lakehouse.

If you mainly need to bring together structured sources and exports, and no models run on the platform, a data warehouse is often enough.

If a single report runs on a single system, or if the problem is not technical but that no one owns a data source. In that case, start by agreeing on data governance, not by building a pipeline. If you mainly need more people on your own team, bringing in a specialist makes more sense than starting a project.

If you would rather compare a few consultancies first, use the comparison of data engineering consultancies. If you are based in South Holland, read about our data engineering consultancy in Rotterdam. If you first need to decide which model to build and who will manage it, see AI consultant Utrecht.