Hoe hangt het grondwater in Limburg samen met onze drinkwaterbehoefte? Is de bodem in Groningen stevig genoeg om op te bouwen? En welke delen van de Randstad zijn geschikt voor het opslaan van duurzame energie? Ondergrondinformatie is essentieel voor grote maatschappelijke vraagstukken. De Geologische Dienst Nederland (GDN), onderdeel van TNO, speelt hierin een sleutelrol. Als DBA zorg jij dat onze databases beschikbaar en betrouwbaar blijven. Jouw werk ondersteunt een toekomstbestendig Nederland.Je werkt deels vanuit huis en deels op ons kantoor in Utrecht, waar je de GDN-databases en infrastructuur draaiende houdt en continu verbetert.Wat ga je doen? (verantwoordelijkheden en taken)Als DBA ben jij de specialist in het beheren, beveiligen en optimaliseren van onze PostgreSQL- en Oracle-databases. Onze databaseomgeving bestaat voor ongeveer 70% uit PostgreSQL en 30% uit Oracle. Jij zorgt dat onze databases stabiel, veilig en performant blijven, zodat systemen en applicaties soepel draaien en passen bij de behoeften van onze organisatie.Je monitort proactief, identificeert knelpunten en lost problemen op vóórdat ze impact hebben. Je voert updates en patches uit om systemen veilig en up-to-date te houden. Je analyseert performance en optimaliseert SQL-query’s, indexen en opslagstructuren. En wanneer ontwikkelaars of gebruikers vragen hebben of ergens tegenaan lopen, ondersteun jij hen en zoek je samen naar de beste oplossing.Naast het DBA-werk houd je je ook bezig met monitoringtools. Je monitort databases én andere onderdelen van de infrastructuur. Je helpt mee met het beheren en verbeteren van de monitoringsystemen, bijvoorbeeld door slimmere monitoring- en rapportagemethoden te ontwikkelen.Een typische werkweek bestaat uit een dagelijkse stand-up met je team. Je pakt taken op in Jira, analyseert incidenten en lost deze op op basis van urgentie. Je documenteert je werk duidelijk zodat collega’s het gemakkelijk kunnen terugvinden. Daarnaast neem je deel aan projecten, zoals het opzetten van een machine learning-omgeving in Azure of het introduceren van nieuwe databasesoorten. Jouw database- en infrastructuurkennis geeft richting aan deze projecten.Je doet dit niet alleen. Je werkt samen met vijftien collega’s uit het Platform Team, een ambitieus team binnen de afdeling Geo IT. Samen beheren, onderhouden, monitoren en verbeteren jullie de infrastructuur. Het team bestaat uit verschillende specialisaties, zoals een databasespecialist, een security-expert en een architect. We leren van elkaar en helpen elkaar waar nodig. Wil je werken in een vriendelijk team aan complexe technische uitdagingen en écht impact maken op de wereld van morgen? Dan is dit de rol voor jou.
Eisen bij de opdracht:Je hebt minimaal hbo werk- en denkniveau.Je hebt ruime ervaring met Postgres en EDB-tools (EFM, PEM en Barman).Je hebt ervaring met backupbeheer, recovery, upgrades en migraties voor Postgres-databases.Je hebt inzicht in PostgreSQL-gebruikersrechten en authenticatieprocessen.Je hebt kennis en ervaring met Oracle (waaronder Label Security en VPD).Je hebt kennis en ervaring met (Red Hat) Linux, Puppet en/of Ansible.Je hebt ervaring met monitoringtools zoals Check_MK, Prometheus, Grafana en Splunk.Je hebt ervaring met DevOps-methoden zoals Kanban, Scrum, CI/CD en GitOps.Je hebt ervaring met Engels, zowel mondeling als schriftelijk, en bij voorkeur ook Nederlands. Veel communicatie en documentatie is in het Nederlands, maar Engels is binnen TNO net zo belangrijk.Competenties:Je communiceert goed en blijft rustig, ook op drukke dagen. Je organiseert je werk effectief en stelt de juiste prioriteiten. Je ziet problemen als kansen en gaat uitdagingen oplossingsgericht aan. Je bent leergierig en voelt je verantwoordelijk voor gezamenlijke resultaten.
1
Referentienummer2026-05751
LocatieUtrecht
Startdatum1 augustus 2026
Einddatum1 augustus 2027
Optie op verlengingNog niet bekend
Uren per week40u p/w
Sluitingsdatum9 juli 2026
12: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(); } } );} );
Meer informatie