Mijn naam is Jordy Swinnen en ik ben een student op de Hogeschool PXL te Hasselt. Ik studeer binnenkort af als Professionele Bachelor in de Toegepaste Informatica: Application Development. Coderen is altijd een grote passie geweest van mij, vandaar dat ik begonnen ben met deze opleiding op de Hogeschool PXL om er mijn carrière van te maken.
Ik heb een tijdje geleden JIDOKA gekozen als stagebedrijf. Waarom JIDOKA? omdat het een jong, groeiend en tof IT bedrijf is en ik reeds enkele kennissen heb binnen het bedrijf. Ook omdat het bedrijf een interessante opdracht aanbood in een leuke technology stack.
Aan de slag
JIDOKA heeft me goed voorbereid voor de aanvang van mijn stage. Er werd namelijk een kick-off dag georganiseerd om me klaar te stomen voor mijn stage. Op deze dag kreeg ik een introductie van de eerste versie van de Rekruteringstool. Dit is het project waar ik als stageopdracht aan verder mocht werken. Er werd even gebrainstormd over hoe deze tool verbeterd kon worden en ik kreeg een overzicht van alle geplande implementaties.
Daarnaast werd ik ook uitgenodigd om deel te nemen aan een tweedaagse opleiding Clean Code gegeven door Solution Architect Geert Guldentops. Deze opleiding is voor JIDOKA een must-have voor alle starters en ik heb hier ook enorm veel uit geleerd. We hebben het onder andere gehad over DRY, SOLID, TDD en ‘The Law of Demeter’. Deze onderwerpen gingen steeds gepaard met een demo of een oefening.
Agile working
Bij JIDOKA wordt er op een agile manier gewerkt. Daarom werd er ook van mij verwacht dat ik elke dag deelnam aan de ‘Daily Standup’ of scrum. Dit is een dagelijkse bijeenkomst s’morgens van de mensen die in de Software Factory werken om werkzaamheden op elkaar af te stemmen.
De belangrijkste punten die tijdens dit moment werden besproken waren: “wat heb ik gedaan sinds de vorige standup”, “wat ga ik vandaag doen” en of er obstakels zijn die moeten worden aangekondigd.
De eerste weken
Op de eerste stagedag op 1 oktober kreeg ik alvast een warm welkom van JIDOKA. Na het verkrijgen van enkele JIDOKA goodies zoals een pennenset, ijskrabber en t-shirt werd ik geholpen met mijn technische set-up. Zo kon ik aan de slag kon gaan met mijn opdracht. Daarna werd kort de planning besproken voor de komende weken.
Tijdens mijn stage heb ik dus gewerkt aan de op maat gemaakte Rekruteringstool van JIDOKA. Dit is een inhouse tool die het management van JIDOKA gebruikt om de recruitment pipeline op te volgen en hen in heel het aanwervingsproces faciliteert. De tool laat toe kandidaten, vacatures en kandidaturen te beheren vanaf sollicitatie tot aanwerving/afwijzing. Het biedt een oplossing voor het centraliseren van recruitment data. Het was geschreven in een verouderde technologie, bevatte nog enkele bugs en miste nog belangrijke implementaties en functionaliteiten.
Ik heb vooral bugfix tickets opgenomen in de eerste weken van mijn stage. Deze tickets stonden al in de backlog van de Rekruteringstool waren meestal minder complex. De stories bestonden onder andere uit het oplossen van layout issues en het juist tonen van data die eerst niet of foutief getoond werd. Omdat er gewerkt werd in een reeds bestaande codebase, was het oplossen van bugs een goede manier om te starten en om deze codebase te leren kennen.
Eens ik hier bekend mee was, kon ik starten met de openstaande feature tickets. Dit was uiteraard al meteen een trap hoger dan de bugfix tickets waar ik eerder mee bezig was. Enkele openstaande functionaliteiten die ik heb geïmplementeerd in de Rekruteringstool waren onder andere een location service. Dit maakte het mogelijk om aan een vacature een locatie toe te voegen uit elke gemeente in België. Terwijl dit ervoor enkel mogelijk was voor een beperkt was voor de kantoren in Hasselt of Mechelen. Een andere interessante feature die ik geïmplementeerd heb is een verbetering in het paswoord management. Voorheen kon een gebruiker zijn/haar paswoord niet veranderen en werd het paswoord niet veilig opgeslagen, dus heb ik gezorgd voor encryptie en de mogelijkheid om het paswoord te veranderen.
Stabiele vooruitgang
Een aantal weken verder en de tijd vloog voorbij. Het ontwikkelen van functionaliteiten ging steeds beter en ik begon me ook steeds comfortabeler te voelen in het ontwikkelingsproces. Beter nog begon de Rekruteringstool steeds meer vorm te krijgen. Ik was dan ook zeer enthousiast om te beginnen aan enkele grotere implementaties met technologieën die ik niet kende, want ik sta altijd open om iets bij te leren.
Voor het visualiseren van een dashboard voor de Rekruteringstool heb ik gewerkt met de tool Metabase. Dit is een open-source business intelligence tool gebaseerd op SQL. Dit maakt het mogelijk om vragen te stellen over uw data en geeft de antwoorden weer op een zeer statistische manier. Een belangrijke vraag was bijvoorbeeld het aantal kandidaten dat al langer als 2 jaar in de tool zit.
Sinds de nieuwe GDPR wetgeving is het belangrijk voor bedrijven om altijd toestemming te vragen bij het gebruik van persoonsgegevens. In deze tabel bevinden zich dus kandidaten waarvan opnieuw toestemming moet gevraagd worden door de HR Officer. Indien er toestemming wordt gegeven worden deze kandidaten uit de lijst verwijderd voor twee jaar en zo niet worden ze uit de database verwijderd.
Een andere nieuwe technologie die ik heb leren kennen is de open-source search engine Elastic Search. Deze Java gebaseerde engine laat het toe om documenten te indexeren en hier vervolgens een full-text search op uit te voeren. Als plan van aanpak heb ik een soort architectuur/flow diagram gemaakt zodat de werking hiervan voor mezelf duidelijker werd. Eens besproken met Lead Technical Specialist en stagepromotor kon ik aan de slag met de implementatie van deze interessante story.
De laatste weken
De laatste weken van mijn stage kwamen in zicht, maar er was zeker nog werk aan de winkel. Na een tussentijdse release van de Rekruteringstool waren er enkele problemen opgedoken. Namelijk dat de backend crashte in productie vanwege memory issues.
Ik heb samen met de CTO een profiler losgelaten op de Rekruteringstool om het probleem op te sporen. Hiernaast heb ik zelf voorgesteld om het design van de overzichtspagina’s te verbeteren. Het design dat ik in gedachte had heb ik afgestemd met de Designer. Uiteindelijk zijn we bij een mooi en passend design uitgekomen. Hierdoor werd echter alle code in deze pagina’s onbruikbaar, en heb ik alle logica opnieuw geïmplementeerd. Met als resultaat dat ik een mooi product kon afleveren op het einde van mijn stage.
Er komt een einde aan alle goede dingen, of niet?
Mijn stage bij JIDOKA loopt hier tot een einde, de tijd tijdens deze 12 weken zijn snel voorbij gevlogen. Maar dit is gelukkig nog niet het einde van mijn verhaal in het bedrijf. Tijdens de laatste weken kreeg ik namelijk een vast contract aangeboden als Solution Engineer bij JIDOKA. In februari begin ik al meteen aan een nieuw project.
Om mijn blog te beëindigen wil ik alvast alle collega’s binnen JIDOKA bedanken voor alle hulp, mooie tijden en de warme ontvangsten tijdens deze zeer leerrijke periode. En in het bijzonder zou ik graag Paula Kozanecka willen bedanken voor de wekelijkse stageopvolging en het geven van feedback op mijn stagedocumenten, alsook Dieter Vogels om als bedrijfspromotor mijn stage op te volgen, code reviews te doen en technische support te geven, Jan Eerdekens voor zijn enorm leerrijke technische hulp en Bjorn Monnens voor de behulpzame pointers tijdens mijn stageopdracht!