Building a custom recruitment tool

Building a custom recruitment tool

Mijn naam is Jordy Swinnen en ik ben een student op de Hogeschool PXL te Hasselt en 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 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.

Getting started

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 Recruitment Tool, 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 2-daagse 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’ en 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.

First weeks

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 zodat 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 custom Recruitment Tool 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 en biedt een oplossing voor het centraliseren van recruitment data. De tool was geschreven in een verouderde technologie, bevatte nog enkele bugs en miste nog belangrijke implementaties en functionaliteiten.

De eerste weken van mijn stage heb ik vooral bugfix tickets opgenomen. Deze tickets stonden al in de backlog van de Recruitment Tool 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 Recruitment Tool 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.

Steady progress

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 Recruitment Tool 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 Recruitment Tool heb ik gewerkt met de tool Metabase. Dit is een open-source business intelligence tool gebaseerd op SQL die het mogelijk maakt 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 2 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 van mijn stage kwamen in zicht, maar er was zeker nog werk aan de winkel. Na een tussentijdse release van de Recruitment Tool 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 Recruitment Tool 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 en 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.

An end comes to all good things, or not?

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 en begin ik al meteen aan een nieuw project in februari.

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!

Internships are a great way to jumpstart your career while you are still in the process of completing your education. At JIDOKA we will give you the support and the opportunities you deserve in order to expand your competences in the exciting world of Information Technology.

MyTube Flutter Module

More info Arrow icon

MyTube Improvements

More info Arrow icon

DevOps Migration

More info Arrow icon

E-Tribe Charging Station Communications

More info Arrow icon

Kubernetes, from zero to hero

Read more
Kubernetes

Redesigning a custom CV application

Read more
Redesigning a custom CV application

You can't spell hero without "HR"

Read more