| Gewenste profiel |
NL Design System
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.
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.
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.
Welke rol heeft de kandidaat binnen het project:
De opdracht bestaat uit diverse ondersteunende werkzaamheden bij de doorontwikkeling van dit overheidsbrede open source huisstijlonafhankelijke design system met behulp van het de standaardwerkwijze en Definition of Done uit het Estafettemodel.
Gewenst profiel
De Developer:
- heeft uitgebreide ervaring met het toepassen van herbruikbare componenten uit Design Systems of Component Libraries.
- kan zonder code-duplicatie onderdelen hergebruiken, zodat verbeteringen zowel in de bestaande projecten als de nieuwe projecten kunnen worden gebruikt.
- heeft uitgebreide ervaring HTML. Bijvoorbeeld met landmark roles, document order, semantische HTML, tabellen, formulieren, links en buttons, video, autocomplete, details/summary, custom elements, role, live regions, 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.
- heeft uitgebreide ervaring met CSS. Bijvoorbeeld met layouts met Grid en Flexbox, CSS logical properties, CSS custom properties, CSS variables, calc() voor fluid font sizes, container queries.
- heeft uitgebreide ervaring met ECMAScript. Bijvoorbeeld met: ES Modules, import(), URL, async/await, Map, Set, map/filter/reduce, nullish coalescing, class, import.meta, Promises, Object entries, destructuring.
- heeft ervaring met npm packages gebruiken, monorepositories en npm packages publiceren
- heeft ervaring met unit tests en end-to-end tests voor front-end code. Bijvoorbeeld met Vitest, Testing Library, Playwright, Jest of Cypress.
- heeft ervaring met progressive enhancement.
- heeft ervaring met het maken van Web Components en kan daarbij een goede afweging maken om Shadow DOM of Light DOM gebruiken.
- heeft ervaring met TypeScript, JSX en kan met renderToString() van React HTML-pagina’s genereren van webpagina’s die zelf geen React gebruiken in de browser.
- werkt zelfstandig en bewaakt de eigen voortgang als onderdeel van de scrum planning.
- kan, in overleg met de Product Manager goed afwisselen tussen diverse taken om snel drempels bij de community weg te nemen.
- is pragmatisch en oplossingsgericht zodat er flexibel een goede aanpak kan worden gekozen waarmee de community makkelijk over kan stappen op nieuwe Candidate en Hall of Fame componenten.
- is accuraat en werkt gedisciplineerd volgens de beschikbare acceptatiecriteria voor nieuwe componenten. Zodat de testautomatisering uiterst volledig is, componenten bij updates goed blijven werken en nieuwe componenten op een consistente manier worden toegevoegd.
- Heeft ervaring met het open source werken waarin zowel het proces als de uitkomsten open en transparant worden gedeeld.
-
Concrete werkzaamheden
- Toevoegen van nieuwe 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 makkelijk is
- Opgehaalde feedback over gebruik van Community en Candidate componenten doorvoeren
- acceptatiecriteria vertalen naar stories en specs
- acceptatiecriteria vertalen naar implementatie in code
- documentatie schrijven van gebruik door developers op npm
- Helpen bij het migreren van gebruikte Community componenten naar Candidate componenten
- In kaart brengen van security aspecten bij Candidate componenten als onderdeel van het Hall of Fame proces
- In kaart brengen van privacyaspecten bij Candidate componenten als onderdeel van het Hall of Fame proces
- Component testen en verbeteren voor veelvoorkomende combinaties met andere componenten
- Stories uitbreiden met veelvoorkomende combinaties van componenten
- Hall of Fame component als webcomponent beschikbaar stellen aan de community
- Volledige test coverage met automatische tests voor de Hall of Fame component
- Publiceren van Candidate en Hall of Fame componenten op npm
- Documenteren van Candidate en Hall of Fame componenten op nldesignsystem.nl
- Helpen bij het migreren van gebruikte Candidate componenten naar Hall of Fame componenten
- Hall of Fame component opnemen in alle relevante NL Design System hulpmiddelen en prototypes
- Uitfaseren van Candidate componenten
- Samen met het kernteam bijdragen aan Estafettemodeldagen waarin het kernteam en de community samenwerken om het Estafettemodel voor componenten te doorlopen.
- In overleg met Product Manager, danwel Project Manager worden acceptatiecriteria voor opleveringen opgesteld;
- In overleg met professionals uit het NL Design System Kernteam activiteiten uitvoeren voor valideren en uitbreiden van NL Design System door middel van:
- Een keer in de 2 weken op dinsdag: Sprint planningen
- Indien nodig: Refinements in een privé Slack Huddle van het kernteam
- Voortgang delen in het privé Slack kanaal van het kernteam en de NL Design System Heartbeat
- Publieke Huddles om een nieuwe aanpak voor de NL Design System architectuur of Definition of Done te bepalen
|
| Eisen |
De kandidaat toont aan in de afgelopen 8 jaar kennis te hebben van en ervaring met:
- minimaal 5 jaar ervaring met HTML, CSS en SCSS;
- minimaal 5 jaar ervaring met JavaScript
- minimaal 3 jaar ervaring met TypeScript,
- minimaal 3 jaar evaring met het ontwikkelen van een componenten bibliotheek
- minimaal 2 jaar ervaring met React en Storybook
- minimaal 2 jaar ervaring met unittesten en end-to-end testen van front-end software;
- het doen van code reviews en samenwerken via merge/pull requests met GitHub
- Een korte motivatie te kunnen geven, waaruit blijkt dat:
- de kandidaat over een goede mondelinge beheersing van de Nederlandse taal beschikt;
- de kandidaat over een goede schriftelijke beheersing van de Engelse taal beschikt;
- Per eis en wens welke concrete ervaring de professional heeft opgedaan die relevant is voor deze opdracht bij NL Design System, onderbouwd aan de hand van de puntentelling in de beoordeling.
- De kandidaat kan tijdens het selectieproces aantonen dat de gevraagde technieken effectief kunnen worden toegepast. Daarvoor kan tijdens het proces gevraagd worden om:
- Voorafgaand aan een eventueel intakegesprek code te schrijven die aantoont dat de kandidaat de technieken effectief kan toepassen om een toegankelijke webpagina te maken.
- Tijdens een eventueel intakegesprek aan te tonen dat voldaan wordt aan het gewenste profiel, door code toe te lichten die zelf is gemaakt.
|
| Wensen |
| Nr |
Omschrijving |
Gewicht |
Beoordeling |
| W1 |
Aantoonbare relevante ervaring met het bijdragen van componenten volgens de conventies bij NL Design System in de afgelopen 5 jaar. |
6% |
- 5 jaar =10 punten
- 4 jaar =8 punten
- 3 jaar =6 punten
- 2 jaar = 4 punten
- 1 jaar =2 punten
- <1 jaar = 0 punten
|
| W2 |
Aantoonbare relevante ervaring met het ontwikkelen van een white-label design system met StoryBook, unit tests en documentatie in Markdown in de afgelopen 5 jaar.
|
4% |
- 5 jaar =10 punten
- 4 jaar =8 punten
- 3 jaar =6 punten
- 2 jaar = 4 punten
- 1 jaar =2 punten
- <1 jaar = 0 punten
|
| W3 |
Aantoonbare relevante ervaring met het gebruiken van NL Design System componenten en richtlijnen in de afgelopen 5 jaar.
|
4% |
- 5 jaar =10 punten
- 4 jaar =8 punten
- 3 jaar =6 punten
- 2 jaar = 4 punten
- 1 jaar =2 punten
- <1 jaar = 0 punten
|
| W4 |
Aantoonbare relevante ervaring in de afgelopen 5 jaar met Design Tokens JSON
|
4% |
- 5 jaar =10 punten
- 4 jaar =8 punten
- 3 jaar =6 punten
- 2 jaar = 4 punten
- 1 jaar =2 punten
- <1 jaar = 0 punten
|
| W5 |
Aantoonbare relevante ervaring in de afgelopen 5 jaar met toepassen van design tokens als CSS variabelen |
4% |
- 5 jaar =10 punten
- 4 jaar =8 punten
- 3 jaar =6 punten
- 2 jaar = 4 punten
- 1 jaar =2 punten
- <1 jaar = 0 punten
|
| W6 |
Aantoonbare relevante ervaring in de afgelopen 5 jaar met het toepassen van Style Dictionary |
4% |
- 5 jaar =10 punten
- 4 jaar =8 punten
- 3 jaar =6 punten
- 2 jaar = 4 punten
- 1 jaar =2 punten
- <1 jaar = 0 punten
|
| W7 |
Aantoonbare relevante ervaring in de afgelopen 5 jaar met Vanilla Web Components |
6% |
- 4 jaar =8 punten
- 3 jaar =6 punten
- 2 jaar = 4 punten
- 1 jaar =2 punten
- <1 jaar = 0 punten
|
| W8 |
Aantoonbare relevante ervaring in de afgelopen 5 jaar met Declarative Shadow DOM
|
6% |
- 4 jaar =8 punten
- 3 jaar =6 punten
- 2 jaar = 4 punten
- 1 jaar =2 punten
- <1 jaar = 0 punten
|
| W9 |
Aantoonbare relevante ervaring in de afgelopen 5 jaar met Testautomatisering met Shadow DOM |
6% |
- 4 jaar =8 punten
- 3 jaar =6 punten
- 2 jaar = 4 punten
- 1 jaar =2 punten
- <1 jaar = 0 punten
|
| W10 |
Aantoonbare relevante ervaring in de afgelopen 5 jaar met Toegankelijke formulier componenten met Shadow DOM |
4% |
- 4 jaar =8 punten
- 3 jaar =6 punten
- 2 jaar = 4 punten
- 1 jaar =2 punten
- <1 jaar = 0 punten
|
| W11 |
Aantoonbare relevante ervaring in de afgelopen 5 jaar met Web Components met Lit |
4% |
- 5 jaar =10 punten
- 4 jaar =8 punten
- 3 jaar =6 punten
- 2 jaar = 4 punten
- 1 jaar =2 punten
- <1 jaar = 0 punten
|
| W12 |
Aantoonbare relevante ervaring met het opleveren van documentatie van front-end componenten in Storybook in de afgelopen 5 jaar. |
4% |
- 4 jaar =8 punten
- 3 jaar =6 punten
- 2 jaar = 4 punten
- 1 jaar =2 punten
- <1 jaar = 0 punten
|
| W13 |
Aantoonbare relevante ervaring met changesets en semantic versioning in de afgelopen 5 jaar. |
4% |
- 4 jaar =8 punten
- 3 jaar =6 punten
- 2 jaar = 4 punten
- 1 jaar =2 punten
<1 jaar = 0 punten |
| W14 |
Aantoonbare relevante ervaring met de toepassing van WCAG-toegankelijkheidseisen technologie zoals HTML en WAI-ARIA in de afgelopen 5 jaar.
|
4% |
- Uitstekend - 10 punten
- Goed - 8 punten
- Voldoende - 6 punten
- Matig - 2 punten
- Slecht - 0 punten
|
| W15 |
De kandidaat toont aan over een pragmatische en oplossingsgerichte werkwijze te beschikken.
De weging wordt ook meegenomen in het gesprek. |
8% |
- Uitstekend - 10 punten
- Goed - 8 punten
- Voldoende - 6 punten
- Matig - 2 punten
- Slecht - 0 punten
|
| W16 |
De kandidaat toont aan accuraat te werken om tot een toegankelijk en onderhoudbaar resultaat te komen.
De weging wordt ook meegenomen in het gesprek. |
8% |
- Uitstekend - 10 punten
- Goed - 8 punten
- Voldoende - 6 punten
- Matig - 2 punten
- Slecht - 0 punten
|