Deze opdracht is gepubliceerd via
BlueTrail.
Freelapp biedt dit project niet zelf aan.
Freelance Full Stack Ontwikkelaar WKN opdracht in Den Haag
In deze opdracht werk je in een team met verschillende specialisten aan de realisatie van digitale informatieproducten die het beleidsproces van de beleidsafdeling Water, Klimaat, Natuur en Landbouw ondersteunen. De producten zijn bijvoorbeeld beleidsmonitors, beleid –scenariotools, of registraties en raadpleegomgevingen voor het vastleggen van doelen en maatregelen voor de realisatie van het beleid. Het team bestaat uit UX-designer, collega’s ontwikkelaars, communicatiemedewerker, geo-informatie specialisten en beleidsspecialisten. Voorbeelden van de producten die we hebben ontwikkeld zijn bijvoorbeeld de KRW (waterkwaliteit) monitor, een sturingscockpit voor de financiën van het ZH-PLG en het Doelen-Maatregelen Systeem voor de N2000.We staan als digitaliserings-team dicht bij de beleids-opgaven en zijn nauw betrokken bij de ontwikkelingen in het beleidsdomein. Binnen de opdracht werk je aan de realisatie van de ondersteunende beleidsproducten in nauw contact met je teamleden en de beleidsmedewerker(s) waar het product in gebruik zal worden genomen. Ook geef je input aan de roadmap en visie voor de doorontwikkeling van de product portfolio. De provincie ontwikkelt eigen producten als open source om hergebruik binnen provincies of andere overheden mogelijk te maken en te stimuleren.Je wordt ingezet als Full Stack Developer met daarbij de nadruk op Backend, daarnaast ook Frontend.KernverantwoordelijkhedenOntwikkelen en onderhouden van schaalbare webapplicaties in Azure Cloud;Implementeren van CI/CD pipelines en automatisering;Waarborgen van (security) best practices;Realiseren van Informatieproducten conform AGILE werkproces.Afdeling I&ADe afdeling Informatisering & Automatisering (I&A) wordt steeds uitgedaagd door externe veranderingen en door interne behoeften en verwachtingen. I&A maakt samen met de provinciale gebruikers en partners keuzes om het gevoelige evenwicht te bewaren tussen de beschikbare middelen en het voorzien in behoeften, vernieuwen en innoveren.De provincie Zuid-Holland beschikt over een Microsoft omgeving en een gevirtualiseerde desktop omgeving. Team BI is onderdeel van de afdeling Informatie & Automatisering. Het team is verantwoordelijk voor het databeheer, dataontsluiting, functioneel, technisch beheer en ontwikkeling van BI-applicaties, geeft advies over bedrijfsvoeringsdata, maakt informatieproducten, en voert data-analyses uit. Het ondersteunt bij de primaire taken van de Provincie, het maken en uitvoeren van beleid. De afdeling Informatisering & Automatisering van de provincie Zuid-Holland heeft behoefte aan de inzet van een externe kandidaat voor de opdracht Full-stack ontwikkelaar Bouw/ doorontwikkeling van digitale informatieproducten ten behoeve van beleidsondersteuning binnen het domein Water Klimaat Natuur en Landbouw.
Eisen bij de opdracht:Je hebt minimaal HBO/ universitair werk- en denkniveau in de richting van software engineering. Dit is Aantoonbaar d.m.v. werkervaring waaruit blijkt dat je een zelfstandige, proactieve rol hebt gehad, waarbij de breedte en diepte van de werkervaring op het gebied van Software Engineering duidelijk is.Je hebt minimaal 6 jaar werkervaring met webtechnologieën HTML, CSS (inclusief SCSS/LESS en CSS-modules) en modern JavaScript/TypeScript.Je hebt minimaal 5 jaar werkervaring met Git ontwikkeling.Je hebt minimaal 3 jaar werkervaring met Vue 3 of vergelijkbaar webframework. (Composition API, custom composables, reactivity system).Je hebt minimaal 3 jaar ervaring met ontwikkeling op code hosting platvorm.Je hebt minimaal 3 jaar werkervaring met Nuxt 3 of vergelijkbaar framework: SSR, static site generation, routing, middleware en modules.Je hebt minimaal 3 jaar werkervaring met het inrichten van OTAP, DevOps engineering en CI/CD pipelines.Je hebt minimaal 5 jaar werkervaring met REST API voor web-applicaties (design, implementatie en integratie).Je hebt minimaal 5 jaar ervaring met database design, modellering, database management, migraties.Wensen bij de opdracht:Je hebt meerdere jaren werkervaring opgedaan met het ontwikkelen van webapplicaties in een moderne cloud omgeving.Je hebt meerdere jaren werkervaring opgedaan in de afgelopen 15 jaar als Full Stack Developer.Je hebt meerdere jaren werkervaring opgedaan met ontwikkelen met open source frameworks voor web-app development (Front-end en Back-end).De opdrachtgever ontvangt graag jouw visie op de opdracht en aanpak. Tip: Visie o.a. illustreren met voorbeelden van andere opdrachten waarin je een vergelijkbare rol heeft gehad.Competenties:Resultaatgericht handelen: daadkrachtig optreden,Pro-actieve houdingInitiatiefrijkPragmatisch;FlexibiliteitZorgvuldigheidProbleemoplossend vermogen;Communicatieve en adviesvaardigheden (Nederlands);Zelfstandig kunnen werkenTeamspeler.
Referentienummer2026-05108
LocatieDen Haag
Startdatum3 augustus 2026
Einddatum31 januari 2027
Optie op verlengingJa
Uren per week36u p/w
Intakegesprek7 juli 2026
Sluitingsdatum26 juni 2026
10: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(); } } );} );