Opdrachten

Rijksinstituut voor de Volksgezondheid en Milieu (RIVM) Senior Java-programmeur

Senior Java-programmeur

Info

Functie

Senior Java-programmeur

Locatie

Uren per week

32 uren per week

Looptijd

14.05.2026 - 30.12.2027

Opdrachtnummer

302279

Sluitingsdatum

date-icon30.04.2026 clock-icon12:00
Reageren op deze opdracht? Dit doe je op Striive.

Rolomschrijving en taakafspraken

Opdrachtomschrijving

De opdracht behelst het ontwikkelen van interne webapplicaties voor het uitvoeren van CRUD-operaties op kleine gegevensverzamelingen.

De beheerfunctie wordt als verzameling Java Spring-Boot Linux microservices ontwikkeld die in een Kubernetescluster opgenomen wordt. De services draaien zelfstandig en zijn robuust bijvoorbeeld voor tijdelijke netwerkonderbrekingen. De applicatie koppelt met de centrale gebruikersregistratie voor authenticatie en autorisatie, koppelt met de Postgres-database en/of FROST voor het beheer van de informatie en koppelt met andere applicaties voor het ophalen van informatie (bijv. met het configuratieregistratiesysteem). De website wordt gebruikt vanaf “normale” werkplekken en een rest-interface door andere applicaties.

De webapplicatie wordt opgezet als een enkele frontend met verschillende backends/micro-services voor de verschillende dataverzamelingen (dus een service voor de meetlocaties en een aparte service voor de apparatuur). De backends hebben een REST-interface zodat andere applicaties in het netwerk gegevens kunnen ophalen (niet wijzigen). De informatie wordt via deze rest-eindpunten gepresenteerd als geo+json of json. Deze resteindpunten geven in de regel niet alle informatie weer die via de beheerwebinterface zichtbaar is.

De services worden gebouwd in de GitLab-bouwstraat van RIVM/VLH.

Opdrachtnemer heeft de mogelijkheid op de locatie van het RIVM te werken, maar thuis werken is zeker mogelijk.

De broncode wordt eigendom van het RIVM.

De opdrachtnemer ontwikkelt in nauwe samenwerking met opdrachtgever de beheerfuncties. De opdrachtgever wil regelmatig testen, bijvoorbeeld of de service stabiel functioneert en of de website voldoet aan de wensen. Dit betekent dat opdrachtnemer na de initiële periode waarin een beheerfunctie ontwikkeld is, niet continu aan het project kan werken. De inzet van opdrachtnemer moet daarom met opdrachtgever afgestemd worden.

In dit project zal een aantal functies ontwikkeld worden die opgenomen worden in de beheerwebsite. Een functie zal in een aangesloten periode ontwikkeld worden, waarbij Opdrachtnemer gedurende deze periode aaneengesloten aan het project werkt. Tussen de ontwikkeling van twee functies kan een aantal weken zitten, dit zal in overleg met Opdrachtnemer ingepland worden.

De minimale projectfunctionaliteit moet afgerond worden voor 30 september 2026 als op 15 mei begonnen wordt.

Na genoemde datum zal het project bestaan uit het aanbrengen van kleine wijzigingen en het oplossen van bugs.

De volledig opdracht eindigt op 31 december 2027.

Achtergrond opdracht

De opdrachtgever, het centrum Veiligheid (VLH) van het RIVM, verricht dagelijks metingen o.a. de stralingsdosis en nuclideconcentraties op leefniveau. Het RIVM gebruikt daarvoor verschillende soorten apparatuur die hun metingen insturen naar het centrale meetgegevensplatform RIS.

Voor de juiste interpretatie van de metingen en voor het goed onderhouden van basisinformatie die bij de metingen in het RIS horen, wil het RIVM een beheerapplicatie opzetten.

Via deze website behorende tot de beheerapplicatie kunnen geautoriseerde gebruikers basisinformatie bekijken, aanpassen of invoeren via webpagina’s. Deze informatie wordt vooral opgeslagen in databasetabellen. Informatie betreft bijvoorbeeld informatie over de locaties en de inrichting van de locaties waar apparatuur staat, informatie over de apparatuur zelf (type, datum aanschaf, kalibratiedatum), foto’s, documenten enz. De beheerapplicatie moet tevens informatie presenteren die in het configuratieregistratiesysteem staat. Deze informatie is toegankelijk via een rest-eindpunt.

In de omgeving van de beheerwebsite gebruiken verschillende applicaties de informatie uit deze beheerapplicatie. De toegang tot deze gegevens voor deze applicaties verloopt bij voorkeur via een REST-interface.

Er zijn verschillende verzamelingen met basisinformatie die beheerd moeten worden, bijvoorbeeld de te meten grootheden, de apparatuur of de meetlocaties waarop meetapparatuur geïnstalleerd is. Deze informatie moet via de beheerwebsite inzichtelijk zijn en beheerd worden.

Voor deze opdracht moet worden samengewerkt met eindgebruikers en met technische medewerkers voor bijvoorbeeld de opzet van de applicatie in Kubernetes, voor de samenwerking met het configuratieregistratiesysteem en andere systemen. Samenwerken is in dit project een belangrijke sleutel tot een goede applicatie.

De opdrachtgever, het centrum Veiligheid (VLH) van het RIVM, onderhoudt een aantal meetvoorzieningen die hun gegevens leveren aan een centraal platform. Voor het beheer van een deel van deze gegevens, bijvoorbeeld de te meten grootheden, moet een aantal webpagina's beschikbaar zijn waarmee beheerder deze gegevens kan invoeren en wijzigen.

Eisen

    • Algemeen: Programmeerervaring
      -    Ervaring met de programmering in Java met Spring-Boot microservices in Linux-omgeving.
      -    Gebruik van Maven (evt. Gradle), intergratietesten, unitesten, liquibase of vergelijkbaar is een basisvereiste.
    • Specifiek meettechnische omgeving
      Kennis van en ervaring met de verwerking en weergave van deze fysische gegevens (temperatuur, druk, lengte enz.)
    • Algemeen: Angular-ervaring
      Ervaring met de programmering van websites
    • Specifiek rest-services
      Ervaring met het opzetten van een goede (HATEOAS) rest-interface.

    Wensen

    • Overige functiewensen:
      "Puzzelen": kandidaat moet het leuk vinden om onbekende informatie uit te zoeken.

    Competenties

    • Samenwerken
      Samenwerken is erg belangrijk in dit project. Navragen van gebruikersfuncties, pauzeren om te wachten op anderen enz. Toon dat u dit aspect goed beheerst.

    Aanvullende Informatie
    Wanneer u bij ons als leverancier een professional aanbiedt en deze wordt geplaatst, hebben we informatie van u als contractpartij nodig, onder andere met betrekking tot de Wet keten- en inlenersaansprakelijkheid. De ‘WKA’ heeft als doel om misbruik te voorkomen bij de afdracht van loonheffingen bij alle schakels in de keten; van leverancier tot opdrachtgever. Wij dekken deze risico’s voor onze opdrachtgevers af middels een geblokkeerde rekening, de G-rekening. Dit is een rekening waarop een gedeelte van het factuurbedrag wordt gestort en waarvan u de loonheffingen en BTW kunt betalen aan de Belastingdienst. Het af te storten % hangt ervan af of u een SNA-certificering (NEN-4400-1 of NEN-4400-2) heeft of niet en of uw bedrijf in Nederland of daarbuiten is gevestigd. De G-rekening kunt u aanvragen bij de Belastingdienst. Indien u geen G-rekening kunt krijgen (en u kunt hier bewijs van de Belastingdienst van overleggen) dan heeft u ook de mogelijkheid elk kwartaal een accountantsverklaring (assurance report inzake inlening personeel) aan te leveren. Hierin zal een gecertificeerd accountant (AA of RA) een verklaring afgeven over de juistheid, volledigheid en tijdigheid van de afdrachten. Let wel, de kosten voor deze verklaring komen voor uw eigen rekening.

    Bedrijfsgegevens

    Bedrijfs gegevens

    Rijksinstituut voor de Volksgezondheid en Milieu (RIVM)

    Rolomschrijving en taakafspraken

    Opdrachtomschrijving

    De opdracht behelst het ontwikkelen van interne webapplicaties voor het uitvoeren van CRUD-operaties op kleine gegevensverzamelingen.

    De beheerfunctie wordt als verzameling Java Spring-Boot Linux microservices ontwikkeld die in een Kubernetescluster opgenomen wordt. De services draaien zelfstandig en zijn robuust bijvoorbeeld voor tijdelijke netwerkonderbrekingen. De applicatie koppelt met de centrale gebruikersregistratie voor authenticatie en autorisatie, koppelt met de Postgres-database en/of FROST voor het beheer van de informatie en koppelt met andere applicaties voor het ophalen van informatie (bijv. met het configuratieregistratiesysteem). De website wordt gebruikt vanaf “normale” werkplekken en een rest-interface door andere applicaties.

    De webapplicatie wordt opgezet als een enkele frontend met verschillende backends/micro-services voor de verschillende dataverzamelingen (dus een service voor de meetlocaties en een aparte service voor de apparatuur). De backends hebben een REST-interface zodat andere applicaties in het netwerk gegevens kunnen ophalen (niet wijzigen). De informatie wordt via deze rest-eindpunten gepresenteerd als geo+json of json. Deze resteindpunten geven in de regel niet alle informatie weer die via de beheerwebinterface zichtbaar is.

    De services worden gebouwd in de GitLab-bouwstraat van RIVM/VLH.

    Opdrachtnemer heeft de mogelijkheid op de locatie van het RIVM te werken, maar thuis werken is zeker mogelijk.

    De broncode wordt eigendom van het RIVM.

    De opdrachtnemer ontwikkelt in nauwe samenwerking met opdrachtgever de beheerfuncties. De opdrachtgever wil regelmatig testen, bijvoorbeeld of de service stabiel functioneert en of de website voldoet aan de wensen. Dit betekent dat opdrachtnemer na de initiële periode waarin een beheerfunctie ontwikkeld is, niet continu aan het project kan werken. De inzet van opdrachtnemer moet daarom met opdrachtgever afgestemd worden.

    In dit project zal een aantal functies ontwikkeld worden die opgenomen worden in de beheerwebsite. Een functie zal in een aangesloten periode ontwikkeld worden, waarbij Opdrachtnemer gedurende deze periode aaneengesloten aan het project werkt. Tussen de ontwikkeling van twee functies kan een aantal weken zitten, dit zal in overleg met Opdrachtnemer ingepland worden.

    De minimale projectfunctionaliteit moet afgerond worden voor 30 september 2026 als op 15 mei begonnen wordt.

    Na genoemde datum zal het project bestaan uit het aanbrengen van kleine wijzigingen en het oplossen van bugs.

    De volledig opdracht eindigt op 31 december 2027.

    Achtergrond opdracht

    De opdrachtgever, het centrum Veiligheid (VLH) van het RIVM, verricht dagelijks metingen o.a. de stralingsdosis en nuclideconcentraties op leefniveau. Het RIVM gebruikt daarvoor verschillende soorten apparatuur die hun metingen insturen naar het centrale meetgegevensplatform RIS.

    Voor de juiste interpretatie van de metingen en voor het goed onderhouden van basisinformatie die bij de metingen in het RIS horen, wil het RIVM een beheerapplicatie opzetten.

    Via deze website behorende tot de beheerapplicatie kunnen geautoriseerde gebruikers basisinformatie bekijken, aanpassen of invoeren via webpagina’s. Deze informatie wordt vooral opgeslagen in databasetabellen. Informatie betreft bijvoorbeeld informatie over de locaties en de inrichting van de locaties waar apparatuur staat, informatie over de apparatuur zelf (type, datum aanschaf, kalibratiedatum), foto’s, documenten enz. De beheerapplicatie moet tevens informatie presenteren die in het configuratieregistratiesysteem staat. Deze informatie is toegankelijk via een rest-eindpunt.

    In de omgeving van de beheerwebsite gebruiken verschillende applicaties de informatie uit deze beheerapplicatie. De toegang tot deze gegevens voor deze applicaties verloopt bij voorkeur via een REST-interface.

    Er zijn verschillende verzamelingen met basisinformatie die beheerd moeten worden, bijvoorbeeld de te meten grootheden, de apparatuur of de meetlocaties waarop meetapparatuur geïnstalleerd is. Deze informatie moet via de beheerwebsite inzichtelijk zijn en beheerd worden.

    Voor deze opdracht moet worden samengewerkt met eindgebruikers en met technische medewerkers voor bijvoorbeeld de opzet van de applicatie in Kubernetes, voor de samenwerking met het configuratieregistratiesysteem en andere systemen. Samenwerken is in dit project een belangrijke sleutel tot een goede applicatie.

    De opdrachtgever, het centrum Veiligheid (VLH) van het RIVM, onderhoudt een aantal meetvoorzieningen die hun gegevens leveren aan een centraal platform. Voor het beheer van een deel van deze gegevens, bijvoorbeeld de te meten grootheden, moet een aantal webpagina's beschikbaar zijn waarmee beheerder deze gegevens kan invoeren en wijzigen.

    Eisen

      • Algemeen: Programmeerervaring
        -    Ervaring met de programmering in Java met Spring-Boot microservices in Linux-omgeving.
        -    Gebruik van Maven (evt. Gradle), intergratietesten, unitesten, liquibase of vergelijkbaar is een basisvereiste.
      • Specifiek meettechnische omgeving
        Kennis van en ervaring met de verwerking en weergave van deze fysische gegevens (temperatuur, druk, lengte enz.)
      • Algemeen: Angular-ervaring
        Ervaring met de programmering van websites
      • Specifiek rest-services
        Ervaring met het opzetten van een goede (HATEOAS) rest-interface.

      Wensen

      • Overige functiewensen:
        "Puzzelen": kandidaat moet het leuk vinden om onbekende informatie uit te zoeken.

      Competenties

      • Samenwerken
        Samenwerken is erg belangrijk in dit project. Navragen van gebruikersfuncties, pauzeren om te wachten op anderen enz. Toon dat u dit aspect goed beheerst.

      Aanvullende Informatie
      Wanneer u bij ons als leverancier een professional aanbiedt en deze wordt geplaatst, hebben we informatie van u als contractpartij nodig, onder andere met betrekking tot de Wet keten- en inlenersaansprakelijkheid. De ‘WKA’ heeft als doel om misbruik te voorkomen bij de afdracht van loonheffingen bij alle schakels in de keten; van leverancier tot opdrachtgever. Wij dekken deze risico’s voor onze opdrachtgevers af middels een geblokkeerde rekening, de G-rekening. Dit is een rekening waarop een gedeelte van het factuurbedrag wordt gestort en waarvan u de loonheffingen en BTW kunt betalen aan de Belastingdienst. Het af te storten % hangt ervan af of u een SNA-certificering (NEN-4400-1 of NEN-4400-2) heeft of niet en of uw bedrijf in Nederland of daarbuiten is gevestigd. De G-rekening kunt u aanvragen bij de Belastingdienst. Indien u geen G-rekening kunt krijgen (en u kunt hier bewijs van de Belastingdienst van overleggen) dan heeft u ook de mogelijkheid elk kwartaal een accountantsverklaring (assurance report inzake inlening personeel) aan te leveren. Hierin zal een gecertificeerd accountant (AA of RA) een verklaring afgeven over de juistheid, volledigheid en tijdigheid van de afdrachten. Let wel, de kosten voor deze verklaring komen voor uw eigen rekening.

      De recruiter

      Cindy Straten

      HeadFirst

      Deel deze opdracht

      Plaats jouw bieding op Striive

      https://login.striive.com/

      Voor deze opdracht dien je een bieding te plaatsen op Striive. Striive is het grootste opdrachtenplatform van de Benelux waar jaarlijks meer dan 20.000 opdrachten gepubliceerd worden.