Functieomschrijving
Voor onze opdrachtgever DUO Groningen zijn wij op zoek naar een Senior Java Developer.
Java software ontwerpen, bouwen en testen. Grote lijnen in de architectuur uitzetten. Meedenken met collega’s en meewerken aan nieuwe oplossingen en de ontwikkeling hiervan in een complexe omgeving. Op korte termijn zijn wij voor de Delivery Keten Examens, op zoek naar een Programmeur / Technisch Ontwerper Java. Je werkt daarbij samen met andere DevOps team's en met andere software ontwikkelaars in een omgeving, die voortdurend in beweging is. Je draagt zorg voor een kwalitatief hoogwaardige en snelle realisatie van de gekozen oplossing. Je schakelt hierbij constant met de rest van het DevOps team. De kandidaat moet communicatief vaardig zijn en voorkeur hebben voor nieuwe technologieën.
Facet in het kort
Facet is het afname- en analyseplatform voor toetsen en examens, ontwikkeld in opdracht van het College voor Toetsen en Examens (CvTE). Per jaar worden meer dan 2,5 miljoen examens en toetsen gemaakt via Facet. Voor leerlingen, studenten en nieuwe Nederlanders brengt dat uiteraard veel spanning met zich mee. Om dat te kunnen realiseren is voor cloud infrastructuur gekozen in combinatie met horizontaal schaalbare architectuur, uniek binnen DUO!
Het platform
Facet is één van de meer technologisch geavanceerdere projecten van DUO. Het platform laat gebruikers toetsen/examens digitaal afnemen. Dit kan via de centrale cloud omgeving of via on-premise hosting. Eens per jaar wordt digitaal de Centrale Eindtoets afgenomen op het platform, ons equivalent aan Black Friday. Tienduizenden leerlingen loggen allemaal tegelijkertijd in op het systeem en maken een toets die verrijkt is met afbeeldingen, geluiden en filmpjes. Om dat mogelijk te maken is het platform voorzien van innoverende horizontaal- schaalbare techniek :
- Postgres, Cassandra en Kafka
- Spring Boot microservices met o.a. Liquibase, Hibernate/Spring Data en op enkele plekken reactive programming
- Spring Cloud (Eureka service discovery, Feign REST-clients, Spring Config Server en Spring Cloud Gateway)
- Angular en Vue frontends (met o.a. micro-frontend architectuur)
- JSON Api REST-interfaces met Crnk als implementatie voor generieke en consistente endpoints
- PaaS platform van ODCN als infrastructuur, gecombineerd met VM’s die via Salt worden ingericht voor de klassieke applicaties
- Groeiend gebruik van Docker en Kubernetes
- Geautomatiseerde tests in een Kubernetes cluster
- Deployments en geautomatiseerde tests vanuit Jenkins
- Camunda BPMN, een framework waarin je een business proces tot leven wekt door stappen een onderliggende actie of opvraging op een microservice te laten aanroepen
- JSF als legacy frontend-techniek in onze klassieke applicaties, deze worden stukje voor stukje afgebouwd
- Rsync voor distribueren van afnamegegevens met de online en offline (on-premise) afnameomgevingen.
Over het team
Je werkt in Team C, een team dat diverse onderwerpen langs heeft zien komen. Om een paar te noemen:
- Een complete refactor van het authenticatie en autorisatie-mechanisme. IAM OpenAM verruilen voor Keycloak
- Migratie van een PaaS infrastructuur met VM's naar een managed Kubernetes cluster
- Verbeteren van de beveiliging van het landschap en de infrastructuur
- (Toekomstig) Nieuw herbouwen van transacties in Angular micro-frontends met bijbehorende BFF-applicaties (backend-for-frontend) om daarmee de JSF-gedreven klassieke applicaties stukje bij stukje uit te faseren
Werkwijze
De teams werken op basis van Agile/Scrum en continuous delivery. Op basis van de input van de product owner, bepaalt het team grotendeels zelf hoe de sprint er elke drie weken uitziet. Jij en jouw teamgenoten hebben de nodige vrijheid om via de meegebrachte kennis en kunde oplossingen te integreren en de softwareontwikkeling naar een hoger plan te tillen.Team-C van Facet is ingezet op onderhoud en het moderniseringstraject van FACET. Dit traject betreft belangrijke en noodzakelijke verbeteringen. Doordat een ervaren ontwikkelaar Facet zal gaan verlaten, ontstaat een te kort aan ontwikkel capaciteit in het team. Dit moet weer aangevuld worden met een ervaren ontwikkelaar.
Over de organisatie
DUO verzorgt als uitvoeringsorganisatie, zijnde onderdeel van het Ministerie van Onderwijs, Cultuur en Wetenschap de uitvoering van complexe wet- en regelgeving en heeft een uitgebreid dienstenpakket. DUO financiert en informeert onderwijsdeelnemers en onderwijsinstellingen. Voor verdere informatie zie www.duo.nl
Functie-eisen
- HBO werk- en denkniveau;
- Minimaal 3 jaar ervaring met Agile/Scrum, Springboot en backend Java developer
- Relevante werkervaring met REST-services, JSON, Hibernate / JPA, Angular
- Kennis van Jenkins, Nexus/Artifactory, Maven, GIT
Wensen
- Kennis van Kibana, Elastic search, Docker, Postgress, Cassandra
- Het opzetten en beheren van geautomatiseerde functionele regressietests
Competenties
- We zijn op zoek naar een ervaren backend Java developer die goed kan samenwerken en het leuk vindt om te innoveren.
- Iemand die zijn tanden in een hightech en complex landschap wil zetten.
- Assertief;
- Weet zich snel nieuwe tools en frameworks eigen te maken.