Startdatum:18-11-2026 Einddatum:17-11-2027 Locatie:Utrecht/Thuiswerkplek. Uiterlijk aanbieden:dinsdag 27 oktober om 14:30 uur. Selectiegesprekken: vanaf maandag 2 november in Utrecht. Schaal: 61 Maximum tarief*:€100-, *Let op: Bovenstaand tarief is een max. all-in uurtarief (incl. o.a. reiskosten, faciliteiten,eventuele vergoedingen en de fee(s) voor onze contractmanager FastFlex, excl. btw). Het tarief weegt mee in het selectieproces.
Dit ga je doen
Regie Op Berichten (ROB) is het multichannel communicatieplatform voor NS medewerkers in de operatie: machinisten, conducteurs, veiligheid en service. ROBhelpt om gerichte en gepersonaliseerde berichten betrouwbaar via meerdere kanalen teversturen. Daarmee heeft jouw werk direct invloed op de dagelijkse operatie en op dedienstverlening aan reizigers. Je werkt mee aan de herbouw van ROB. Dat is geen gewone technische vervanging,maar een kans om een complex domein opnieuw helder te modelleren en stap voorstap te vertalen naar software die aantoonbaar voldoet aan de behoefte. Je werkt op hetsnijvlak van domein, architectuur en realisatie. Je werkt in een multidisciplinair DevOps-team en bent betrokken van het eerstedomeingesprek tot en met productie, beheer en doorontwikkeling. Je neemt verantwoordelijkheid voor de kwaliteit van het platform. Domein begrijpen en modelleren
- Je werkt samen met Product Owner, analyst, domeinexperts, operatie, architecten andere ontwikkelaars;
- Je onderzoekt ambiguïteit voordat je een oplossing bouwt en helpt een gedeeldeubiquitous language vast te leggen;
- Je helpt bepalen welke verantwoordelijkheid in welke bounded context hoort;
- Je bewaakt dat één context eigenaar blijft van zijn eigen gedrag, data enbetekenis;
- Je bouwt services volgens clean en hexagonal architecture;
- Je bouwt event-driven microservices die onafhankelijk te testen, uit te rollen enterug te draaien zijn.
Backend en integratie
- Je ontwikkelt backendservices in C#/.NET;
- Je ontwerpt REST API's volgens HTTP-semantiek en resourcegerichte principes;
- Je ontwerpt en implementeert domeinevents op Azure Service Bus;
- Je verwerkt berichten idempotent en denkt mee over outbox, retries, deadlettering en replay;
- Je gebruikt additive contractwijzigingen waar mogelijk en behandeltbetekenisvolle wijzigingen als een nieuw contract of nieuwe contractversie;
- Je werkt met Azure SQL, Cosmos DB, Redis en Blob Storage alsinfrastructuuradapters;
- Je bouwt kanaaladapters voor onder meer Azure Communication Services enFirebase.
Specificatie en testen als één ontwikkelproces Binnen ROB is een test niet alleen een controle achteraf, maar een vastlegging van deafspraak over het gewenste gedrag.
- Je maakt samen met de product- en domeinexperts duidelijke, concrete entoetsbare specificaties;
- Je vertaalt die specificaties naar BDD-scenario's in begrijpelijke domeintaal, metReqnroll waar passend;
- Je werkt zowel happy paths als negatieve paden uit, waaronder validatie-,autorisatie-, bron-, opslag- en veiligheidsfouten;
- Je schrijft eerst of gelijktijdig met de implementatie de tests die de gewenstewerking aantonen;
- Je zorgt dat een requirement terug te vinden is in een scenario, test, contract ofarchitectuurcheck;
- Je gebruikt architectuurtests, bijvoorbeeld met ArchUnitNET, omlaagafhankelijkheden en bounded-contextisolatie af te dwingen;
- Je analyseert niet alleen coverage, maar ook de kwaliteit van tests;
- Je maakt operationele eisen zoals latency, auditability, observability enherstelbaarheid testbaar.
Kwaliteit, security en operability
- Je werkt met code reviews, statische kwaliteitschecks, dependency scanning ensecurity scans in CI/CD;
- Je ontwerpt vanuit least privilege, security-by-design en privacy-by-design;
- Je gebruikt voor Azure-resources waar mogelijk Managed Identity via WorkloadIdentity en Microsoft Entra RBAC;
- Je maakt metrics, logs, traces, auditrecords, health checks en alerts onderdeelvan het gedrag dat je oplevert;
- Je denkt mee over betrouwbaarheid, retries, fallback, failover, zero-downtimedeployments en rollback.
Hier ga je werken
Je gaat aan de slag binnen IT Operatie van NS. Daar ontwikkelen we digitale oplossingen voor collega's op de trein, op het station en aan wal. ROB ondersteunt onder meer ReisRegie+, Disys, NSRA en het interne Berichtenportaal. Het team werkt hybride (50/50) op kantoor in Utrecht en vanuit huis.
Dit zijn de eisen
- Minimaal HBO/WO werk- en-denkniveau;
- Minimaal 5 jaar ervaring als backend- of fullstack developer in C# en .NET in professionele softwareontwikkeling;
- Aantoonbare ervaring met domeinmodellering en Domain-Driven Design, of deovertuigende vaardigheid om dit in de praktijk toe te passen;
- Ervaring met clean architecture, hexagonal architecture, ports and adapters ofeen vergelijkbare vorm van expliciete laag- en verantwoordelijkheidscheiding;
- Ervaring met het ontwerpen en bouwen van microservices of andere zelfstandigdeploybare services;
- Ervaring met REST API's, integratiecontracten en versiebeheer van API- eneventcontracten;
- Ervaring met geautomatiseerd testen op meerdere niveaus, waaronder unit-,integratie-, contract- en acceptatietests;
- Ervaring met BDD, specification-by-example of een vergelijkbare manier vanwerken waarbij specificaties uitvoerbaar worden vastgelegd;
- Ervaring met werken in een DevOps-team en met CI/CD-pijplijnen;
- Je hebt een uitstekende beheersing (zowel mondeling als schriftelijk) van de Nederlandse taal.
Pre's:
- Ervaring met Azure en cloud-native backendontwikkeling;
- Ervaring met Azure Service Bus, event-driven integratie, outbox, idempotentie endead-letterafhandeling;
- Ervaring met Azure SQL, Cosmos DB, Redis en Blob Storage;
- Ervaring met ASP.NET Core, Entity Framework Core en dependency injection;
- Ervaring met Reqnroll, SpecFlow, Gherkin, Playwright, Testcontainers,WireMock, contract testing, ArchUnitNET of vergelijkbare tooling;
- Ervaring met Bicep, Terraform of andere infrastructure-as-code;
- Ervaring met Kubernetes/AKS, observability, Datadog, tracing, SLO's, loadtestenen resilience testing;
- Ervaring met Microsoft Entra ID, OAuth2/OIDC, scopes, app roles en ManagedIdentity/Workload Identity;
- Ervaring met privacy-by-design, audit trails, retentie en dataminimalisatie;
- Ervaring met werken binnen architectuur-, code-, API-, security- enloggingstandaarden;
- Ervaring met Angular, Blazor, Kotlin of Jetpack Compose.
Je brengt het volgende mee:
- denkt vanuit de medewerker in de operatie en de waarde voor de reiziger;
- kunt schakelen tussen domeingesprek, model, C#-code, test enproductiegedrag;
- maakt aannames zichtbaar en stelt gerichte vragen voordat je complexefunctionaliteit bouwt;
- voelt eigenaarschap voor kwaliteit, betrouwbaarheid en onderhoudbaarheid;
- werkt graag samen met product, architectuur en operationele stakeholders;
- geeft en ontvangt feedback en durft ontwerpkeuzes bespreekbaar te maken;
- bent nieuwsgierig naar nieuwe ontwikkelingen, waaronder AI en agent-basedoplossingen, en gebruikt die alleen waar ze aantoonbare waarde toevoegen;
- werkt datagedreven aan productkwaliteit en operationele verbetering.
Op NS kun je rekenen
Werken bij NS betekent dat jij hét verschil kunt maken in de wereld van duurzame mobiliteit. Jij helpt mee om Nederland bereikbaar te houden, voor iedereen. Bij NS krijg je veel vrijheid. We beloven je dat geen dag hetzelfde is. De kernwaarden van NS zijn open en betrouwbaar. Wij gaan voor resultaat en willen vooruit.
Dit ga je doen
Regie Op Berichten (ROB) is het multichannel communicatieplatform voor NS medewerkers in de operatie: machinisten, conducteurs, veiligheid en service. ROBhelpt om gerichte en gepersonaliseerde berichten betrouwbaar via meerdere kanalen teversturen. Daarmee heeft jouw werk direct invloed op de dagelijkse operatie en op dedienstverlening aan reizigers. Je werkt mee aan de herbouw van ROB. Dat is geen gewone technische vervanging,maar een kans om een complex domein opnieuw helder te modelleren en stap voorstap te vertalen naar software die aantoonbaar voldoet aan de behoefte. Je werkt op hetsnijvlak van domein, architectuur en realisatie. Je werkt in een multidisciplinair DevOps-team en bent betrokken van het eerstedomeingesprek tot en met productie, beheer en doorontwikkeling. Je neemt verantwoordelijkheid voor de kwaliteit van het platform. Domein begrijpen en modelleren
- Je werkt samen met Product Owner, analyst, domeinexperts, operatie, architecten andere ontwikkelaars;
- Je onderzoekt ambiguïteit voordat je een oplossing bouwt en helpt een gedeeldeubiquitous language vast te leggen;
- Je helpt bepalen welke verantwoordelijkheid in welke bounded context hoort;
- Je bewaakt dat één context eigenaar blijft van zijn eigen gedrag, data enbetekenis;
- Je bouwt services volgens clean en hexagonal architecture;
- Je bouwt event-driven microservices die onafhankelijk te testen, uit te rollen enterug te draaien zijn.
Backend en integratie
- Je ontwikkelt backendservices in C#/.NET;
- Je ontwerpt REST API's volgens HTTP-semantiek en resourcegerichte principes;
- Je ontwerpt en implementeert domeinevents op Azure Service Bus;
- Je verwerkt berichten idempotent en denkt mee over outbox, retries, deadlettering en replay;
- Je gebruikt additive contractwijzigingen waar mogelijk en behandeltbetekenisvolle wijzigingen als een nieuw contract of nieuwe contractversie;
- Je werkt met Azure SQL, Cosmos DB, Redis en Blob Storage alsinfrastructuuradapters;
- Je bouwt kanaaladapters voor onder meer Azure Communication Services enFirebase.
Specificatie en testen als één ontwikkelproces Binnen ROB is een test niet alleen een controle achteraf, maar een vastlegging van deafspraak over het gewenste gedrag.
- Je maakt samen met de product- en domeinexperts duidelijke, concrete entoetsbare specificaties;
- Je vertaalt die specificaties naar BDD-scenario's in begrijpelijke domeintaal, metReqnroll waar passend;
- Je werkt zowel happy paths als negatieve paden uit, waaronder validatie-,autorisatie-, bron-, opslag- en veiligheidsfouten;
- Je schrijft eerst of gelijktijdig met de implementatie de tests die de gewenstewerking aantonen;
- Je zorgt dat een requirement terug te vinden is in een scenario, test, contract ofarchitectuurcheck;
- Je gebruikt architectuurtests, bijvoorbeeld met ArchUnitNET, omlaagafhankelijkheden en bounded-contextisolatie af te dwingen;
- Je analyseert niet alleen coverage, maar ook de kwaliteit van tests;
- Je maakt operationele eisen zoals latency, auditability, observability enherstelbaarheid testbaar.
Kwaliteit, security en operability
- Je werkt met code reviews, statische kwaliteitschecks, dependency scanning ensecurity scans in CI/CD;
- Je ontwerpt vanuit least privilege, security-by-design en privacy-by-design;
- Je gebruikt voor Azure-resources waar mogelijk Managed Identity via WorkloadIdentity en Microsoft Entra RBAC;
- Je maakt metrics, logs, traces, auditrecords, health checks en alerts onderdeelvan het gedrag dat je oplevert;
- Je denkt mee over betrouwbaarheid, retries, fallback, failover, zero-downtimedeployments en rollback.
Hier ga je werken
Je gaat aan de slag binnen IT Operatie van NS. Daar ontwikkelen we digitale oplossingen voor collega's op de trein, op het station en aan wal. ROB ondersteunt onder meer ReisRegie+, Disys,