Een blog over werken als trainee data engineer bij Datalab vanuit een ongerelateerde achtergrond.
Update: twee maanden verder…
Twee maanden geleden schreef ik een eerste blog over mijn ontwikkeling van ecoloog tot data engineer. Tijd voor een update: hoe is de afgelopen periode mij bevallen?
Mijn eerste opdracht: ontwikkel een intern financieel dashboard.
De onderliggende data voor dit dashboard bestaat uit financiële transacties van Datalab over de afgelopen jaren. Een grootboekschema is eigenlijk een manier om transacties onder te verdelen in categorieën. Er valt behoorlijk wat te kiezen als het op grootboekrekeningschema’s aankomt. Om de juiste data te krijgen, met het schema dat onze voorkeur heeft, moest ik verschillende tabellen met PostgreSQL aan elkaar koppelen. Dat klinkt misschien eenvoudig maar het maakte deze opdracht eigenlijk meteen vrij complex. Ook omdat de kolomnamen erg abstract zijn. Hierdoor is het best uitdagend om overzicht te behouden in een zee van abstracte namen en onderlinge relaties.
Het bouwen van het dashboard zou plaatsvinden in R Shiny. Een aantal collega’s had dergelijke dashboards al eerder ontwikkeld zodat ik het een en ander kon ‘afkijken’. Dit bracht echter meerdere complicaties met zich mee. Hun opdrachten waren namelijk nog een stuk complexer. Hoe filter je dan de code op aspecten die wel relevant zijn en die niet relevant zijn voor jouw opdracht? Je merkt al snel dat je die code eerst volledig moet doorgronden voordat je kunt bepalen of het relevant is. Met het gevolg dat je vier uur achter elkaar codes probeert te ontcijferen. Je gaat zo de diepte in dat je steeds meer het overzicht kwijtraakt…
Daarom tip #1: probeer niet eerst alles uit te zoeken, maar alleen het broodnodige. En ga dan aan de slag met het schrijven van je eigen code. Gaandeweg wordt het dan vanzelf steeds concreter. En wordt ook duidelijk welke dingen je wel snapt, en welke dingen nog onduidelijk zijn.
Het gebruiken van andermans code is ook gewoon lastig, vooral als dat voorbeeld vele malen complexer is dan dat wat je zelf probeert te maken. Dus ik moest ook leren om andermans code los te laten en met een schone lei te beginnen. Wat echt veel makkelijker gezegd is dan gedaan. Zeker als je iets complex moet doen dat je nog nooit hebt gedaan. Het voordeel is wel dat de vragen die je hebt, makkelijker te beantwoorden zijn. Bovendien kun je kleine stukjes eenvoudige code veel makkelijker implementeren dan grote brokken vol dependencies, afhankelijkheden.
Tip #2: zoek grondig, maar blijf niet te lang zitten met je vragen. Als je een uur hebt lopen aanklooien, wordt het echt tijd om even een vraag te stellen.
Als ik er zo op terugkijk, kan ik de eerste maanden samenvatten in de volgende zinnen: ‘Wat verwacht Datalab van mij en wat verwacht ik van mezelf?’ Vaak heb ik toch te lang gewacht alvorens een vraag te stellen. Natuurlijk omdat ik stiekem bang was dat verwacht werd dat ik het antwoord zelf wel zou moeten weten. Omdat ik wilde laten zien dat ik doorzettingsvermogen heb en dat ik dingen ook zelfstandig kan uitpluizen, maar daar was de opdracht toch vaak iets te complex voor. Dan is het fijn om van je collega’s en leidinggevende te horen dat strijd en frustratie soms gewoon erbij horen, maar dat je wel op de goede weg zit. Gelukkig merk ik wel dat ik door alle obstakels deze periode echt al heel veel heb geleerd!
Hoewel het dashboard nog niet helemaal af is, mag ik op dit moment verder met een nieuwe opdracht. Voor deze opdracht ontsluit ik met Python data van de Google Analytics API. Vervolgens bouw ik een DAG in Apache Airflow zodat de data dagelijks wordt ontsloten en direct wordt opgeslagen in de database van de klant. Ik vind het fijn weer even wat afwisseling te hebben en merk dat deze opdracht beter aansluit bij dingen die ik al weet.
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.