Get a reply from this employer
Your resume and cover letter, tailored to exactly what they’re hiring for.
Nederlandse Spoorwegen (NS) zoekt een backend-ontwikkelaar voor de herbouw van Regie Op Berichten (ROB). Je werkt in een multidisciplinair DevOps-team, van domeingesprek tot productie, en bent verantwoordelijk voor de kwaliteit van het platform.
Je bouwt aan microservices met hexagonale architectuur, tests en operations-instrumentatie, en werkt met Azure resources zoals Service Bus en Cosmos DB. Een kans om een complex domein helder te modelleren en stap voor stap te vertalen naar software die
Regie Op Berichten (ROB) is het multichannel communicatieplatform voor NS medewerkers in de operatie: machinisten, conducteurs, veiligheid en service.
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.
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 een 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.
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.
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.
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.