In gesprek met Tech Lead, Harmen Janssen

Harmen Janssen

Toen ik in 2008 bij GRRR begon, was het al een zeer gepassioneerde en informele omgeving. Ik zou GRRR destijds beschrijven als het ‘wilde westen van ontwerpen’.

Inmiddels heb ik veel ervaring opgedaan, wat maakt dat ik het leuk vind om een soort mentor te zijn en junior developers te helpen zodra ze dat nodig hebben. Het grootste verschil tussen mij en een junior is niet dat ik sneller kan typen, maar dat ik meer fouten heb meegemaakt, waardoor ik een breder perspectief heb.

Hoe ben je bij GRRR terechtgekomen, en hoe heb je jezelf ontwikkeld als developer?

Vroeger wilde ik striptekenaar worden. Die droom ontwikkelde zich door de jaren heen naar een iets realistischer carrièreplan, waardoor ik multimedia design ben gaan studeren aan het Grafisch Lyceum in Eindhoven. Uiteindelijk bleek design niet echt mijn sterkste kant te zijn, maar code leek me nogal saai; zwarte schermen met witte tekst. Totdat ik in mijn eerste jaar in aanraking kwam met het programma Flash, waar ik ontdekte wat de interactieve mogelijkheden waren en welke invloed code op design kon hebben.

Flash bestaat nu niet meer, maar daar is wel de interesse in code ontstaan. Ik ontdekte dat coderen eigenlijk een andere vorm van ontwerpen is. Op school werkte ik uiteindelijk met Dreamweaver, een visuele tool om websites te bouwen, maar ik merkte al snel dat het met de hand schrijven van code me veel meer aantrok. Toen die interesse eenmaal was gewekt, las ik stapels boeken over code terwijl ik onderweg naar school in de trein zat.

Tijdens mijn laatste studiejaar werden binnen mijn opleiding diverse workshops aangeboden. Ik werd toegewezen aan een groep onder leiding van Rolf, onze Creative Director. De opdracht van de workshop was om een Flash applicatie te ontwikkelen die werd aangestuurd door een dansmat. Aan het eind van de week zei Rolf tegen mij: “Als je je opleiding hebt afgerond, neem dan contact met ons op.” En zo is het balletje gaan rollen.

Hoe was werken bij GRRR vroeger?

Toen ik bij GRRR begon in 2008, was het een zeer gepassioneerde en informele omgeving. Ik zou GRRR destijds beschrijven als het ‘wilde westen van ontwerpen’. Deze tijd was echt een te gekke ervaring. Er was toen al heel veel passie voor het werk, de projecten en het bedrijf. Doordat we minder ervaring hadden en geen officiële projectmanager hadden, werkten we bij het project van Mysteryland bijvoorbeeld soms tot 03:00 uur ’s nachts; totdat alles af was. De motivatie was enorm en de sfeer was gezellig. Na verloop van tijd begonnen we echter projecten beter te plannen en optimaliseerden we onze workflow.

Harmen Janssen GRRR
Harmen janssen GRRR

Hoe is je werk veranderd in de loop van de jaren?

Er is enorm veel veranderd maar vooral positief ontwikkeld. De opkomst van mobiele telefoons bracht bijvoorbeeld een grote verandering. Het responsive maken van websites was een grote vooruitgang. Door responsive te ontwikkelen, werken websites automatisch op verschillende schermformaten, van mobiele telefoon tot breedbeeld desktop. Nu is dat heel normaal.

Museumnacht is een van de eerste websites die we responsive maakten — en ook één van de eerste responsive sites van Nederlandse bodem. Dat gaf nieuwe mogelijkheden, want het was voor het eerst dat bezoekers ook echt in de stad onderweg die website op hun telefoon konden gebruiken. Die use case bestond daarvoor niet echt.

Een andere grote verandering is onze focus op statische websites geweest. Vroeger maakte iedereen een monoliet: één grote applicatie waar website, CMS en alle aanverwante diensten bij elkaar in één codebase zitten. Nu koppelen we dat los. Het CMS wordt daardoor “headless”, en de website statisch. Dat zorgt ervoor dat de website supersnel en veilig is, en het hosten ervan minder kost. Front-end developers kunnen los van het CMS werken, omdat alles van elkaar gescheiden wordt door middel van APIs. Dat werkt heel prettig, want je kunt makkelijker itereren op dat stukje waar jij aan werkt.

Kun je vertellen over het project waar je momenteel aan werkt?

Momenteel werk ik aan Schoolwijzer, een langlopend project van inmiddels al 10 jaar, waar ik erg van geniet. We begonnen met het digitaliseren van een fysieke scholengids en ontwikkelden dit tot een website, met Open Data API en veel integraties met andere overheidssystemen. Op dit moment ontwikkelen we versie 2 van die website, op een compleet nieuwe stack en met compleet nieuw ontwerp.

Harmen Janssen GRRR
GRRR Rolf Coppens, Elen Visse, Andrei, Harmen Janssen en Jelmer Boomsma

Welke waardevolle lessen heb je geleerd en pas je nog steeds toe?

Het werken met microservices is een van die inzichten. Toen we begonnen met de ontwikkeling van de eerste versie van de Schoolwijzer tien jaar geleden, beseften we al snel dat dit een doorlopend project zou worden met veel toekomstige updates. Om hierop voorbereid te zijn, begonnen we interactieve elementen los te koppelen van de website, zodat we ze afzonderlijk konden aanpassen in de toekomst. Deze strategie passen we nog steeds toe. Door de verschillende componenten van een website te behandelen als microservices, kunnen we specifieke elementen optimaliseren en het geheel effectiever beheren en aanpassen. Dit heeft ons een grotere flexibiliteit en meer optimalisatiemogelijkheden geboden.

Heb je advies voor beginnende developers?

Jazeker! Maak heel veel notities, dat is nummer één. Investeer in een methodiek om alles vast te leggen, zodat je brein dat niet allemaal hoeft te doen. Daarnaast is het essentieel om voortdurend te blijven leren en je vaardigheden uit te breiden, maar realiseer je ook dat de meeste trends die voorbij komen slechts trends zijn. Een goede basis van HTML, CSS en Javascript, en een gedegen kennis van software design principes, zoals Domain Driven Design, gaan je verder helpen dan iedere maand het laatste nieuwe Javascript framework uittesten.

Een andere waardevolle tip is om bij te dragen aan open source-projecten. Doordat je werk voor iedereen zichtbaar is wordt je gedwongen heel kritisch te zijn op je code, maar ook om meer scenario’s te overwegen: wat als iemand anders jouw tool op een andere manier zou willen gebruiken dan jij, kan dat dan? Wat kun je aanpassen waardoor iemand een handvat krijgt om jouw werk te integreren in hun eigen project?

Het is ook altijd goed om een nieuwe programmeertaal te leren. Het liefst eentje met een totaal andere aanpak dan de taal waar je primair in schrijft. Vroeger dacht ik dat iedere taal een soort iteratie op C of C++ was, maar er zijn heel veel verschillende manieren om een programmeertaal te ontwerpen en gebruiken. Leer eens iets totaal anders, en neem de goede aspecten ervan mee naar je dagelijkse werk.

Wat is een fout die iedereen moet meemaken om ervan te leren?

Een fout die heel vervelend is maar wel heel leerzaam, is als je iets op productie deelt, dat zijn de live websites. Ik heb weleens snel iets willen oplossen voor een klant, waarbij ik inlogde op een productieserver en een berichtje voor mezelf typte, zoals ’test’, om te controleren of het werkte. Tijdens het ontwikkelen is dat niet zo erg, maar op een productieserver kan dat natuurlijk niet, want dan staat het echt live. En dat is precies wat er gebeurde. Een stom berichtje, want ik schrijf altijd stomme berichtjes. Die fout zal ik nooit meer maken, maar ik heb er wel veel van geleerd in mijn jongere jaren.

Ook heb ik weleens te snel gewerkt en een productie schijf verwijderd. Gelukkig was er een back-up, maar daar heb ik enorm veel van geleerd; namelijk om secuur te werken en niet overhaasten, dus met aandacht te werken.

Harmen Janssen GRRR
GRRR team foto

Waar zou jij bekend om willen staan?

Ik wil graag junior developers ontzorgen. Ik vind het leuk om een soort mentor te zijn, en dat ze weten dat als ze hulp nodig hebben ze naar mij toe kunnen stappen. Ik heb inmiddels veel ervaring, dus ik vind het leuk om met juniors samen naar een probleem te kijken. Het grootste verschil tussen mij en een junior is niet dat ik sneller kan typen maar dat ik meer fouten heb meegemaakt waardoor ik meer perspectief heb. Ik kan naar een klein stukje code kijken en vanuit een groot perspectief al input geven, dat vind ik leuk om aan juniors mee te geven.

Zijn er voor jou interessante trends binnen code?

PHP is best wel stabiel. Een aantal jaar geleden was ik heel kritisch over PHP omdat ik vond dat het features miste die ik nodig had. Ik ben heel erg geïnteresseerd in zogenaamd Functional Programming. Een taal als Haskell heeft bijvoorbeeld features als typeclasses en currying, wat heel fijn is om mee te werken. In PHP heb je dat niet. Maar PHP wordt echter heel goed doorontwikkeld, en een framework als Laravel maakt het een van de meest productieve programmeertalen om mee te werken. De opkomst van TypeScript vind ik heel interessant. Het brengt type checking naar Javascript, en geeft je daarmee een soort verzekering dat je code goed in elkaar zit, voordat je deze op de website publiceert. Als laatste ben ik zeer geïnteresseerd in het framework Svelte. Wij gebruiken op dit moment React, maar ik ben erg onder de indruk van Svelte, op het gebied van performance, maar ook van de gebruiksvriendelijkheid voor developers.

Hoe blijf je op de hoogte van de nieuwste ontwikkelingen in de technologie-industrie?

Op Twitter zitten veel developers. Maar Twitter is ook een heel afleidend, dikwijls negatief, platform.

Dus zorg ook dat je een goede RSS reader vindt en abonneer je op blogs die regelmatig goede content publiceren. Zoals ons eigen tech blog! Op ons blog houden we ook een lijst bij met inspirerende andere blogs, neem daar ook eens een kijkje.

Daarnaast luister ik ook graag naar podcasts, bijvoorbeeld: ShopTalk Show, Syntax.fm en The Bike Shed.