Terug naar alle Vacatures

Backend Developer C#/.NET

Regie Op Berichten (ROB) is het multichannel communicatieplatform voor NS-medewerkers in de operatie: machinisten, conducteurs, veiligheid en service. ROB zorgt ervoor dat gerichte en gepersonaliseerde berichten betrouwbaar via meerdere kanalen worden verstuurd en ondersteunt onder meer ReisRegie+, Disys, NSRA en het interne Berichtenportaal. Jouw werk heeft daarmee direct invloed op de dagelijkse operatie en op de dienstverlening aan reizigers.

NS werkt aan de herbouw van ROB. Dat is geen gewone technische vervanging, maar een kans om een complex domein opnieuw helder te modelleren en stap voor stap te vertalen naar software die aantoonbaar voldoet aan de behoefte. Je werkt op het snijvlak van domein, architectuur en realisatie, in een multidisciplinair DevOps-team, en bent betrokken van het eerste domeingesprek tot en met productie, beheer en doorontwikkeling. Je neemt verantwoordelijkheid voor de kwaliteit van het platform.

Wat ga je doen?

Domein begrijpen en modelleren

  • Je werkt samen met Product Owner, analist, domeinexperts, operatie, architect en andere ontwikkelaars.

  • Je onderzoekt ambiguïteit voordat je een oplossing bouwt en helpt een gedeelde ubiquitous language vast te leggen.

  • Je helpt bepalen welke verantwoordelijkheid in welke bounded context hoort en bewaakt dat elke context eigenaar blijft van zijn eigen gedrag, data en betekenis.

  • Je bouwt services volgens clean en hexagonal architecture, en event-driven microservices die onafhankelijk te testen, uit te rollen en terug te draaien zijn.

Backend en integratie

  • Je ontwikkelt backendservices in C#/.NET en ontwerpt REST API’s volgens HTTP-semantiek en resourcegerichte principes.

  • Je ontwerpt en implementeert domeinevents op Azure Service Bus, verwerkt berichten idempotent en denkt mee over outbox, retries, deadlettering en replay.

  • Je gebruikt additive contractwijzigingen waar mogelijk en behandelt betekenisvolle wijzigingen als een nieuw contract of een nieuwe contractversie.

  • Je werkt met Azure SQL, Cosmos DB, Redis en Blob Storage als infrastructuuradapters en bouwt kanaaladapters voor onder meer Azure Communication Services en Firebase.

Specificatie en testen als één ontwikkelproces

  • Je maakt samen met product- en domeinexperts duidelijke, concrete en toetsbare specificaties en vertaalt die naar BDD-scenario’s in begrijpelijke domeintaal, met Reqnroll waar passend.

  • Je werkt zowel happy paths als negatieve paden uit (validatie-, autorisatie-, bron-, opslag- en veiligheidsfouten) en schrijft de tests eerst of gelijktijdig met de implementatie.

  • Je zorgt dat elke requirement terug te vinden is in een scenario, test, contract of architectuurcheck, en gebruikt architectuurtests (bijvoorbeeld ArchUnitNET) om laagafhankelijkheden en bounded-contextisolatie af te dwingen.

  • Je analyseert niet alleen coverage, maar ook de kwaliteit van tests, en maakt operationele eisen zoals latency, auditability, observability en herstelbaarheid testbaar.

Kwaliteit, security en operability

  • Je werkt met code reviews, statische kwaliteitschecks, dependency scanning en security scans in CI/CD.

  • Je ontwerpt vanuit least privilege, security-by-design en privacy-by-design, en gebruikt voor Azure-resources waar mogelijk Managed Identity via Workload Identity en Microsoft Entra RBAC.

  • Je maakt metrics, logs, traces, auditrecords, health checks en alerts onderdeel van wat je oplevert.

  • Je denkt mee over betrouwbaarheid, retries, fallback, failover, zero-downtime deployments en rollback.

Waar ga je werken?

Binnen IT Operatie van NS, waar digitale oplossingen worden ontwikkeld voor collega’s op de trein, op het station en aan wal. Het team werkt hybride (50/50) op kantoor in Utrecht en vanuit huis.

Wat vraagt NS?

  • 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 de overtuigende vaardigheid om dit in de praktijk toe te passen.

  • Ervaring met clean architecture, hexagonal architecture, ports and adapters of een vergelijkbare vorm van expliciete laag- en verantwoordelijkheidscheiding.

  • Ervaring met het ontwerpen en bouwen van microservices of andere zelfstandig deploybare services.

  • Ervaring met REST API’s, integratiecontracten en versiebeheer van API- en eventcontracten.

  • Ervaring met geautomatiseerd testen op meerdere niveaus: unit-, integratie-, contract- en acceptatietests.

  • Ervaring met BDD, specification-by-example of een vergelijkbare manier van werken waarbij specificaties uitvoerbaar worden vastgelegd.

  • Ervaring met werken in een DevOps-team en met CI/CD-pijplijnen.

  • Uitstekende beheersing van de Nederlandse taal, mondeling en schriftelijk.

Pré’s:

  • Ervaring met Azure en cloud-native backendontwikkeling.

  • Ervaring met Azure Service Bus, event-driven integratie, outbox, idempotentie en dead-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, loadtesten en resilience testing.

  • Ervaring met Microsoft Entra ID, OAuth2/OIDC, scopes, app roles en Managed Identity/Workload Identity.

  • Ervaring met privacy-by-design, audit trails, retentie en dataminimalisatie.

  • Ervaring met werken binnen architectuur-, code-, API-, security- en loggingstandaarden.

  • Ervaring met Angular, Blazor, Kotlin of Jetpack Compose.

Wat breng je mee?

Je denkt vanuit de medewerker in de operatie en de waarde voor de reiziger, en kunt schakelen tussen domeingesprek, model, C#-code, test en productiegedrag. Je maakt aannames zichtbaar en stelt gerichte vragen voordat je complexe functionaliteit bouwt. Je voelt eigenaarschap voor kwaliteit, betrouwbaarheid en onderhoudbaarheid, werkt graag samen met product, architectuur en operationele stakeholders, en geeft en ontvangt feedback. Je bent nieuwsgierig naar nieuwe ontwikkelingen, waaronder AI en agent-based oplossingen, en zet die alleen in waar ze aantoonbare waarde toevoegen. Daarnaast werk je datagedreven aan productkwaliteit en operationele verbetering.

Praktische informatie

  • Startdatum: 18 november 2026

  • duur inzet: 12 maanden, met optie op verlengen

  • Locatie: Utrecht / thuiswerkplek (hybride, 50/50)

  • Uiterlijk aanbieden: dinsdag 27 oktober 2026, 09:00 uur

  • Selectiegesprekken: vanaf maandag 2 november 2026 in Utrecht

  • Maximumtarief: €94,- all-in per uur (incl. reiskosten). Het tarief weegt mee in de selectie.

  • Uren per week: 36

Interesse?

Herken jij jezelf in dit profiel en wil je deze uitdagende rol bij NS oppakken? Reageer dan snel met een korte motivatie, actueel CV en all-in uurtarief, want aanbieden kan tot uiterlijk dinsdag 27 oktober, 09:00 uur. Neem contact op voor meer informatie door te reageren op deze opdracht.

Tot snel!

Solliciteren

Hebben we je enthousiast gemaakt? Vraag raak of solliciteer direct via één van onze kanalen.

Specs

Utrecht
36
12 maanden