ICTU werkt aan een betere digitale overheid, voor en samen met andere overheidsorganisaties. Voor het project NL Design System zijn we op zoek naar een Developer Relations Engineer. Met de NL Design System aanpak verzamelen we richtlijnen, componenten, patronen en templates om robuuste websites en webapplicaties voor de overheid te bouwen. Dat doet het kernteam samen met een actieve community van specialisten van diverse overheidsorganisaties. NL Design System is een ecosysteem van verschillende design systems die mix-en-match gebruikt kunnen worden. Het kernteam voert de regie op de werkwijzen binnen de NL Design System community. Binnen deze community worden enerzijds componenten, patronen en templates ontwikkeld. Anderzijds wordt hergebruik door implementatie van al bestaande componenten, patronen en templates binnen overheidsorganisaties gestimuleerd en ondersteund.De community bestaat uit Designers, Developers, Specialisten webtoegankelijkheid en contentmakers van overheidsorganisaties en hun leveranciers, die de NL Design System componenten in productie toepassen bij de inrichting van hun eigen digitale dienstverlening.De componenten en richtlijnen van NL Design System zijn open source beschikbaar op GitHub en Figma, zodat iedereen ze kan gebruiken voor een begrijpelijke, gebruiksvriendelijke én toegankelijke onlinedienstverlening. Het project is ten einde wanneer de opdrachtgever de opgeleverde resultaten heeft geaccepteerd en een inhoudelijke decharge heeft verleend. Is het geval wanneer de klant en een landingsplaats heeft voor alle activiteiten en instrumenten van NL Design System, zijn overgedragen aan de betreffende beheerpartij en nazorg is uitgevoerd. Je onderdeel van het Kernteam, dat op dit moment bestaat uit een Product Manager, Design System Lead, UX-designers, Specialisten webtoegankelijkheid, Developers, een Communicatieadviseur en een Project Manager. Het kernteam werkt open source en agile samen. Dit houdt in dat in een 2-wekelijks ritme alles transparant gedeeld wordt met geïnteresseerden in de NL Design System Heartbeat, met elke week een Developer Open Hour. Hier stellen developers vragen en wisselen ze ervaringen, inzichten en tips met elkaar uit. Ook lezen honderden geïnteresseerden mee in de nieuwsbrief en in Slack. Samen help je de community met bijdragen aan en gebruikmaken van het NL Design System.De opdracht bestaat uit diverse ondersteunende werkzaamheden bij de doorontwikkeling van dit overheidsbrede open source huisstijlonafhankelijke design systeem. Zoals:de community helpen bij het doorontwikkelen van de componenten in React, Angular, Vue.js, Drupal, Lit en andere frameworks.het beschikbaar maken van documentatie zodat zoveel mogelijk developers zelfstandig aan de slag kunnen gaan.in kaart brengen van gebruikte Community componenten, feedback verzamelen, openstaande issues in kaart brengen en acceptatiecriteria helpen opstellen voor een Candidate implementatie.de doorontwikkeling van de website nldesignsystem.nl.
Eisen voor de opdracht:Je hebt minimaal 5 jaar ervaring met JavaScript.Je hebt minimaal 3 jaar ervaring met TypeScript.Je hebt minimaal 5 jaar ervaring met HTML, CSS en SCSS.Je hebt minimaal 2 jaar ervaring met unittesten en end-to-end testen van front-end software.Je hebt minimaal 1 jaar ervaring met het ontwikkelen van een design system.Je hebt ervaring met werken via merge/pull requests en het doen van code reviews met GitHub.Je hebt ervaring met de toepassing van WCAG-toegankelijkheidseisen technologie zoals HTML en WAI-ARIA. Je hebt goede mondelinge en schriftelijke beheersing van de Nederlandse taal beschikt.Je hebt goede schriftelijke beheersing van de Engelse taal beschikt.Je hebt ervaring opgedaan die relevant is voor deze opdracht bij NL Design System, onderbouwd aan de hand van de puntentelling in de beoordeling. Wensen bij de opdracht:Je hebt ervaring met ontwikkelen en onderhouden van open source projecten met npm in de afgelopen 5 jaar. Je hebt ervaring met het toepassen van design tokens met Style Dictionary en de Design Tokens spec in de afgelopen 5 jaarJe hebt minimaal 6 maanden ervaring met frontend ontwikkeling met 1 of meer van de volgende technieken in de afgelopen 5 jaar: Web Component, Angular, Vue.js, React, Drupal, WordPress, Typo3.Je hebt ervaring met het begeleiden van front-end developers bij het gebruiken van een design system, in de afgelopen 5 jaar. Je hebt ervaring met organiseren van bijeenkomsten met verschillende developers om samen componenten, richtlijnen of patronen te ontwikkelen in de afgelopen 5 jaar. Competenties:Zelfstandigheid en eigen regie over werkzaamheden en resultaten.Samenwerkingsgericht in een open source community (Slack, GitHub).Communicatieve vaardigheden, zowel mondeling als schriftelijk.Agile en resultaatgericht werken volgens Definition of Done en acceptatiecriteria.Accuraat en gedisciplineerd, prioriteiten kunnen stellen en bewaken.Klant- en gebruikersgericht: documentatie verbeteren op basis van feedback.
Referentienummer2026-04827
LocatieDen Haag
Startdatum1 juli 2026
Einddatum30 juni 2027
Optie op verlengingJa
Uren per week32u p/w
Sluitingsdatum16 juni 2026
14:00
Begint jouw trail hier?Stuur ons je CV met een korte opdrachtgerichte motivatie.
Discover your BlueTrailOnze weg naar jouw nieuwe carrière
Nadat jij op een opdracht hebt gereageerd, nemen wij binnen 24 uur contact met jou op en behandelen we jouw reactie.
We gaan met jou in gesprek. Wij kijken niet alleen naar je kennis en werkervaring, maar vooral naar jou als persoon. Dit is voor zowel de professional als de opdrachtgever belangrijk, wij willen de juiste match maken! Als we eenmaal de juiste match hebben gevonden, dan begint jouw BlueTrail en stellen we je voor aan de opdrachtgever!
Bij een succesvolle match worden de contracten opgesteld. Door middel van innovaties en digitalisering proberen wij dit proces zo kort mogelijk te maken. Zo kun jij doen waar je goed in bent, terwijl wij zorgen voor alle administratie!
Ook tijdens jouw opdracht staan wij altijd voor je klaar. Onze fieldmanagers zorgen er persoonlijk voor dan alles succesvol verloopt!
Follow our trail
E-mailadresCAPTCHA
gform.initializeOnLoaded( function() {gformInitSpinner( 2, 'https://www.bluetrail.nl/core/modules/934d581a4a/images/spinner.svg', true );jQuery('#gform_ajax_frame_2').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_2');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_2').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_2').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_2').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_2').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_2').val();gformInitSpinner( 2, 'https://www.bluetrail.nl/core/modules/934d581a4a/images/spinner.svg', true );jQuery(document).trigger('gform_page_loaded', [2, current_page]);window['gf_submitting_2'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_2').replaceWith(confirmation_content);jQuery(document).trigger('gform_confirmation_loaded', [2]);window['gf_submitting_2'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_2').text());}else{jQuery('#gform_2').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger("gform_pre_post_render", [{ formId: "2", currentPage: "current_page", abort: function() { this.preventDefault(); } }]); if (event && event.defaultPrevented) { return; } const gformWrapperDiv = document.getElementById( "gform_wrapper_2" ); if ( gformWrapperDiv ) { const visibilitySpan = document.createElement( "span" ); visibilitySpan.id = "gform_visibility_test_2"; gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan ); } const visibilityTestDiv = document.getElementById( "gform_visibility_test_2" ); let postRenderFired = false; function triggerPostRender() { if ( postRenderFired ) { return; } postRenderFired = true; gform.core.triggerPostRenderEvents( 2, current_page ); if ( visibilityTestDiv ) { visibilityTestDiv.parentNode.removeChild( visibilityTestDiv ); } } function debounce( func, wait, immediate ) { var timeout; return function() { var context = this, args = arguments; var later = function() { timeout = null; if ( !immediate ) func.apply( context, args ); }; var callNow = immediate && !timeout; clearTimeout( timeout ); timeout = setTimeout( later, wait ); if ( callNow ) func.apply( context, args ); }; } const debouncedTriggerPostRender = debounce( function() { triggerPostRender(); }, 200 ); if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) { const observer = new MutationObserver( ( mutations ) => { mutations.forEach( ( mutation ) => { if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) { debouncedTriggerPostRender(); observer.disconnect(); } }); }); observer.observe( document.body, { attributes: true, childList: false, subtree: true, attributeFilter: [ 'style', 'class' ], }); } else { triggerPostRender(); } } );} );