Developer Regie op Berichten (ROB)

Bij Oranje

Utrecht

Hybrid

EUR 75,000 - 105,000

Full time

4 days ago
Be an early applicant

A complete application in a minute

Tailored resume and cover letter, ready to send.

Get past ATS filters

Job summary

Nederlandse Spoorwegen zoekt een ervaren backend- of fullstack developer. Je werkt aan de herbouw van ROB, een multichannel platform voor NS-medewerkers, en vertaalt domeinwensen stap voor stap naar software die voldoet aan operationele behoeften.

Je werkt in een multidisciplinair DevOps-team, van domein- en architectuurbesprekingen tot productie en doorontwikkeling. Vereisten zijn HBO/WO-niveau, 5+ jaar ervaring in C#/.NET en sterke kennis van DDD en clean/hexagonal architecture.

Qualifications

  • Minimaal 5 jaar ervaring als backend- of fullstack developer in C#/.NET.
  • Aantoonbare ervaring met domeinmodellering en Domain-Driven Design.
  • Ervaring met clean/hexagonal architecture en ports & adapters.
  • Ervaring met microservices en REST API's.
  • Ervaring met CI/CD en DevOps in een multi-discipline team.

Responsibilities

  • Modeleren van domein en bounded contexts in samenwerking met product en domeinexperts.
  • Ontwerpen en bouwen van event-driven microservices op Azure.
  • Ontwerpen REST-ful API's en implementeren domeinevents.
  • Schrijven van tests (BDD/SpecFlow) en automatiseren van CI/CD.
  • Zorgen voor kwaliteit, betrouwbaarheid en maintainability van het platform.

Skills

C#/.NET
Domain-Driven Design
DDD
Clean Architecture
Hexagonal Architecture
REST APIs
Event-driven
DevOps
Testing
BDD
ArchUnitNET
Kubernetes/AKS
CI/CD

Education

HBO/WO werk- en denkniveau

Tools

Azure Service Bus
Azure SQL
Cosmos DB
Redis
Blob Storage
ArchUnitNET
Kubernetes/AKS

Job description

Opdrachtomschrijving
Dit ga je doen

Regie Op Berichten (ROB) is het multichannel communicatieplatform voor NS medewerkers in de operatie: machinisten, conducteurs, veiligheid en service. ROB helpt om gerichte en gepersonaliseerde berichten betrouwbaar via meerdere kanalen te versturen. Daarmee heeft jouw werk direct invloed op de dagelijkse operatie en op de dienstverlening 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 voor stap te vertalen naar software die aantoonbaar voldoet aan de behoefte. Je werkt op het snijvlak van domein, architectuur en realisatie.

Je werkt 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.

Domein begrijpen en modelleren
  • Je werkt samen met Product Owner, analyst, 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;
  • Je bewaakt dat één context eigenaar blijft van zijn eigen gedrag, data en betekenis;
  • Je bouwt services volgens clean en hexagonal architecture;
  • Je bouwt event-driven microservices die onafhankelijk te testen, uit te rollen en terug 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 behandelt betekenisvolle wijzigingen als een nieuw contract of nieuwe contractversie;
  • Je werkt met Azure SQL, Cosmos DB, Redis en Blob Storage als infrastructuuradapters;
  • Je bouwt kanaaladapters voor onder meer Azure Communication Services en Firebase.
Specificatie en testen als één ontwikkelproces

Binnen ROB is een test niet alleen een controle achteraf, maar een vastlegging van de afspraak over het gewenste gedrag.

  • Je maakt samen met de product- en domeinexperts duidelijke, concrete en toetsbare specificaties;
  • Je vertaalt die specificaties naar BDD-scenario's in begrijpelijke domeintaal, met Reqnroll 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 gewenste werking aantonen;
  • Je zorgt dat een requirement terug te vinden is in een scenario, test, contract of architectuurcheck;
  • Je gebruikt architectuurtests, bijvoorbeeld met ArchUnitNET, om laagafhankelijkheden 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 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;
  • Je 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 het gedrag dat je oplevert;
  • Je denkt mee over betrouwbaarheid, retries, fallback, failover, zero-downtime deployments 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 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, waaronder 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;
  • 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 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.
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 en productiegedrag;
  • maakt aannames zichtbaar en stelt gerichte vragen voordat je complexe functionaliteit 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-based oplossingen, en gebruikt die alleen waar ze aantoonbare waarde toevoegen;
  • werkt datagedreven aan productkwaliteit en operationele verbetering.
Get your free, confidential resume review.

or drag and drop your file here.

Similar jobs

Similar jobs worth comparing

Developer Regie Op Berichten (ROB)
Developer Regie Op Berichten (ROB)

Bright Professionals • Utrecht

On-site
EUR 70,000 - 110,000
Developer Regie op Berichten (ROB) (ZZP of Dienstverband)
Developer Regie op Berichten (ROB) (ZZP of Dienstverband)

Nederlandse Spoorwegen • Utrecht

On-site
EUR 60,000 - 100,000
Developer Regie op Berichten (ROB)
Developer Regie op Berichten (ROB)

Nederlandse Spoorwegen (NS) • Utrecht

On-site
EUR 60,000 - 90,000
Developer regie op berichten (rob) (zzp - freelance)
Developer regie op berichten (rob) (zzp - freelance)

Nederlandse Spoorwegen • Utrecht

Hybrid
EUR 90,000 - 120,000
Hybride werken
Innovatieve werkomgeving
Developer Regie op Berichten (ROB)
Developer Regie op Berichten (ROB)

Werken bij NS • Utrecht

Hybrid
EUR 114,000 - 162,000
Developer Regie op Berichten
Developer Regie op Berichten

Bij Oranje • Utrecht

Hybrid
EUR 85,000 - 110,000
Backend Developer berichtenplatform – IT Operatie
Backend Developer berichtenplatform – IT Operatie

NS • Utrecht

Hybrid
EUR 42,000 - 72,000
Gratis reizen met de trein in 2e klas
3% eindejaarsuitkering en 8% vakantieg
Goede pensioenregeling
Developer Regie op Berichten
Developer Regie op Berichten

BlueTrail • Utrecht

Hybrid
EUR 70,000 - 100,000
Developer Regie op Berichten (ROB)
Developer Regie op Berichten (ROB)

Overheidzzp • Utrecht

Hybrid
EUR 96,000 - 131,000
Backend Developer berichtenplatform – IT Operatie (Dutch only)
Backend Developer berichtenplatform – IT Operatie (Dutch only)

Werken bij NS • Utrecht

On-site
EUR 55,000 - 90,000