Functieomschrijving

Voor ICTU zoeken wij een Front-End Developer. Je werkt binnen het NL Design System-project dat door de opdrachtgever wordt uitgevoerd en levert een actieve bijdrage aan een overheidsbreed open source design system met richtlijnen, componenten, patronen en templates om robuuste, toegankelijke websites en webapplicaties te bouwen.

Jouw rol binnen het project bestaat uit ondersteunende werkzaamheden voor de doorontwikkeling van dit huisstijlonafhankelijke design system volgens de standaardwerkwijze en Definition of Done uit het Estafettemodel.

jouw profiel
  • Je hebt ruime ervaring met het toepassen van herbruikbare componenten uit design systems of component libraries.
  • Je kunt onderdelen hergebruiken zonder code-duplicatie, zodat verbeteringen in bestaande en nieuwe projecten beschikbaar zijn.
  • Je hebt uitgebreide kennis van HTML, inclusief landmark roles, document order, semantische HTML, tabellen, formulieren, links en buttons, video, autocomplete, details/summary, custom elements en aria-attribute gebruik (zoals aria-labelledby, aria-describedby, aria-required, aria-invalid, aria-controls, aria-haspopup, aria-hidden, aria-current, aria-pressed, aria-sort, aria-activedescendant en aria-selected).
  • Je hebt uitgebreide ervaring met CSS, waaronder layouts met Grid en Flexbox, CSS logical properties, CSS custom properties/variables, calc() voor fluid font sizes en container queries.
  • Je hebt goede kennis van ECMAScript (ES Modules, import(), URL, async/await, Map, Set, map/filter/reduce, nullish coalescing, classes, import.meta, Promises, Object.entries, destructuring).
  • Je hebt ervaring met het gebruiken van npm-packages, werken in monorepositories en publiceren van npm-packages.
  • Je hebt ervaring met unit tests en end-to-end tests voor front-end code (bijvoorbeeld met Vitest, Testing Library, Playwright, Jest of Cypress).
  • Je hebt ervaring met progressive enhancement.
  • Je hebt ervaring met het maken van Web Components en kunt een afweging maken tussen Shadow DOM en Light DOM.
  • Je hebt ervaring met TypeScript en JSX en kunt met renderToString() van React HTML-pagina’s genereren voor pagina’s die in de browser zelf geen React gebruiken.
  • Je werkt zelfstandig en bewaakt je voortgang binnen de scrum planning.
  • Je stemt in overleg met de Product Manager je werkzaamheden af en wisselt goed tussen verschillende taken om drempels binnen de community snel weg te nemen.
  • Je bent pragmatisch en oplossingsgericht, zodat je flexibel een aanpak kiest waarmee de community makkelijk kan overstappen op nieuwe Candidate en Hall of Fame componenten.
  • Je werkt accuraat en gedisciplineerd volgens beschikbare acceptatiecriteria, zodat testautomatisering volledig is en componenten bij updates goed blijven werken.
  • Je hebt ervaring met open source werken waarbij zowel proces als uitkomsten open en transparant worden gedeeld.

Concrete werkzaamheden
  • Toevoegen en doorontwikkelen van componenten, patronen en templates aan het Design System op basis van het Estafettemodel, bijvoorbeeld door:
    • Verbeteren van de infrastructuur waarin de community huisstijlen vastlegt en beheert, zodat migraties naar nieuwe versies van componenten eenvoudig zijn.
    • Opgehaalde feedback over het gebruik van Community en Candidate componenten verwerken.
    • Acceptatiecriteria vertalen naar stories, specs en implementatiecode.
    • Documentatie schrijven voor developers en publicatie via npm.
    • Helpen bij het migreren van gebruikte Community componenten naar Candidate componenten en van Candidate naar Hall of Fame componenten.
    • Security- en privacyaspecten in kaart brengen bij Candidate componenten als onderdeel van het Hall of Fame proces.
    • Componenten testen en verbeteren voor veelvoorkomende combinaties met andere componenten en stories uitbreiden met deze combinaties.
    • Hall of Fame componenten als webcomponent beschikbaar stellen en voorzien van volledige test coverage met automatische tests.
    • Publiceren van Candidate en Hall of Fame componenten op npm en documenteren op nldesignsystem.nl.
    • Hall of Fame componenten opnemen in relevante NL Design System hulpmiddelen en prototypes en Candidate componenten uitfaseren waar nodig.
    • Samen met het kernteam bijdragen aan Estafettemodeldagen waarin het kernteam en de community samen het Estafettemodel doorlopen.
  • In overleg met de Product Manager of Project Manager acceptatiecriteria voor opleveringen opstellen.
  • Samenwerken met professionals uit het NL Design System kernteam voor valideren en uitbreiden van het system, inclusief activiteiten zoals sprintplanningen, refinements, voortgangsdeling en publieke huddles om aanpakken voor architectuur of Definition of Done te bepalen.

Competenties
  • Pragmatisch en oplossingsgericht werken.
  • Accuraat en gedisciplineerd volgens acceptatiecriteria.
  • Zelfstandig werken en voortgang bewaken binnen Scrum-afspraken.
  • Goede communicatieve vaardigheden voor samenwerking met de community en het kernteam.

Organisatie
De opdrachtgever werkt aan een betere digitale overheid en verzamelt binnen het NL Design System richtlijnen, componenten, patronen en templates om robuuste, gebruiksvriendelijke en toegankelijke online dienstverlening te ondersteunen. Het kernteam werkt samen met een actieve community van specialisten van diverse overheidsorganisaties. De componenten en richtlijnen van het NL Design System zijn open source beschikbaar op GitHub en Figma.

Functie eisen

  • Je hebt minimaal 5 jaar ervaring met HTML, CSS en SCSS (afgelopen 8 jaar)
  • Je hebt minimaal 5 jaar ervaring met JavaScript (afgelopen 8 jaar)
  • Je hebt minimaal 3 jaar ervaring met TypeScript (afgelopen 8 jaar)
  • Je hebt minimaal 3 jaar ervaring met het ontwikkelen van een componentenbibliotheek
  • Je hebt minimaal 2 jaar ervaring met React en Storybook
  • Je hebt minimaal 2 jaar ervaring met unit- en end-to-end testen van front-end software
  • Je hebt ervaring met code reviews en samenwerken via merge/pull requests met GitHub
  • Je beschikt over een goede mondelinge beheersing van de Nederlandse taal
  • Je beschikt over een goede schriftelijke beheersing van de Engelse taal
  • Je kunt aantonen dat je de gevraagde technieken effectief kunt toepassen
  • Je kunt je eigen geschreven front-end code toelichten en technische keuzes verantwoorden

Functie wensen

  • Je hebt aantoonbare ervaring met bijdragen aan componenten volgens NL Design System-conventies (afgelopen 5 jaar)
  • Je hebt ervaring met white‑label design systems, Storybook, testen en Markdown-documentatie (afgelopen 5 jaar)
  • Je hebt ervaring met het gebruiken van NL Design System-componenten en -richtlijnen (afgelopen 5 jaar)
  • Je hebt ervaring met Design Tokens (JSON) en het toepassen als CSS-variabelen; ervaring met Style Dictionary
  • Je hebt ervaring met vanilla Web Components, Declarative Shadow DOM en testautomatisering voor Shadow DOM
  • Je hebt ervaring met toegankelijke formuliercomponenten in Shadow DOM en met Web Components met Lit
  • Je hebt ervaring met documentatie in Storybook, changesets en semantic versioning
  • Je past WCAG- en WAI-ARIA-eisen toe en hebt hier kennis van
  • Je werkt pragmatisch en oplossingsgericht en levert nauwkeurig toegankelijke en onderhoudbare resultaten
  • Je hebt ervaring met herbruikbare componenten uit Design Systems of component libraries
  • Je hebt goede HTML-kennis (landmark roles, semantiek, formulieren, aria-* attributen, enz.)
  • Je hebt goede CSS-kennis (Grid, Flexbox, logical properties, custom properties, container queries, calc(), etc.)
  • Je hebt kennis van modern ECMAScript (ES Modules, async/await, Map/Set, destructuring, Promises, etc.)
  • Je hebt ervaring met npm, monorepositories en het publiceren van packages
  • Je hebt ervaring met unit- en end-to-end testen (Vitest, Testing Library, Playwright, Jest, Cypress)
  • Het is een pré als je ervaring hebt met progressive enhancement
  • Je hebt ervaring met Web Components en begrijpt het verschil tussen Shadow DOM en Light DOM
  • Je hebt ervaring met TypeScript, JSX en renderToString() van React
  • Je werkt zelfstandig, bewaakt de voortgang en bent pragmatisch en oplossingsgericht
  • Je werkt accuraat en gedisciplineerd volgens acceptatiecriteria en hebt bij voorkeur ervaring met een open source werkwijze

Extra informatie

  • Plaats The Hague
  • Aantal uur 32 uur per week
  • Startdatum 01-07-2026
  • Geschikt voor ZZP? Nee
  • Thuiswerken mogelijk? N.t.b.