Een blog over werken als trainee data engineer bij Datalab vanuit een ongerelateerde achtergrond.

Update na afloop tijdelijk contract

Het overvalt me een beetje: opeens is het eind augustus. Dit betekent dat de afgelopen zeven maanden voorbij zijn gevlogen, én mijn tijdelijke contract bij Datalab is afgelopen. Een mooi moment om terug te kijken op wat ik de afgelopen maanden zoal heb geleerd.

API’s ontsluiten en DAG’s bouwen

In mijn vorige blog schreef ik over het worstelen met andermans code en overzicht houden bij complexe vraagstukken. Naast het bouwen van een financieel dashboard mocht ik toen ook mijn eerste API ontsluiten, te weten Google Analytics.
Inmiddels ben ik weer een stuk verder. Voor onze retailklant by-bar heb ik een hele reeks API’s ontsloten, namelijk: Google Analytics, Google Ads, Google Search Console, Google Spreadsheets, KNMI, CBS, Bing, Pinterest en Meta. Deze API’s werken allemaal op een vergelijkbare manier. Allereerst moet je credentials aanmaken die de juiste rechten hebben om de data van een bedrijf op te halen via de API. Vervolgens gebruik je deze credentials in een Directed Acyclic Graph, een stappenplan dat een grote taak opdeelt in kleinere taken. Je moet met behoorlijk wat zaken rekening houden, zoals:

  • Welke data wil je precies ophalen?
  • Hoe vraag je deze data op uit de API?
  • Hoe wordt de data vervolgens door de API opgeleverd?
  • Moet die data nog bewerkt worden voordat je het kunt opslaan?
  • Waar sla je de data vervolgens op?
  • In welke structuur sla je de data op?
  • Hoe vaak moet de DAG data ophalen?
  • Hoe ga je om met onverwachte resultaten uit de API ofwel gefaalde taken?
  • Hoe zorg je ervoor dat onvolledige data later nog wordt aangevuld?

Tijdens dit proces kan ik altijd bij mijn collega’s Aniek en Koen terecht. Een aantal databronnen zijn voor hen echter ook nieuw. Dan moet ik toch echt zelf de documentatie doorspitten om te leren hoe ik de juiste data kan ontsluiten. Dit proces kan bij een complexere bron -zoals in het geval van Meta- echt wel even wat tijd in beslag nemen. Mede omdat ik gaandeweg steeds weer metrieken ontdek die ook de moeite waard zijn om te ontsluiten. De code schrijf ik veelal zelfstandig, af en toe krijg ik een opmerking die me helpt om code beter te kunnen hergebruiken en overzichtelijk te houden. Al met al een leuke en intensieve puzzel, maar uiteraard niet zonder de nodige frustraties.

Dashboards

In R Shiny maak ik inmiddels al redelijk complexe dashboards. Ten opzichte van mijn vorige blog heb ik flinke stappen gemaakt. Geleidelijk ontstaat er ook meer ruimte in mijn hoofd om me te concentreren op het schrijven van goede code, in plaats van enkel code te schrijven die niet in brand vliegt als ik mijn hoofd draai. Het debuggen van mijn code gaat steeds sneller en ik ga doelgerichter te werk. Het wordt steeds minder ‘even testen, misschien gaat het vanzelf wel goed’ en steeds meer ‘hoe ga ik dit inrichten zodat het werkt’. Daarbij merk ik dat de momenten dat ik even vastloop, zich steeds vaker pas later in een project voordoen.
Het is erg leuk om zo nu en dan stil te staan bij de vele kennis die je hebt opgedaan. Laatst moest ik een uurtje puzzelen om een dataframe op de juiste manier te transformeren en toen het uiteindelijk gelukt was, realiseerde ik me dat dit een jaar geleden überhaupt te complex was geweest. Hoe meer ik ontdek over data engineering, hoe bewuster ik word dat ik eigenlijk nog maar heel weinig weet. Gelukkig geven Jeroen en Harmen aan tevreden te zijn met mijn progressie, en mag ik met een vast contract nog een hele tijd nieuwe dingen leren!

Regelmatig zal ik bloggen over mijn ervaringen als trainee bij Datalab. Op deze manier wil ik mijn leespubliek betrekken bij mijn werkzaamheden als data engineer bij Datalab.