In één oogopslag
- Taken: Werk mee aan de herbouw van een innovatief communicatieplatform voor medewerkers.
- Bedrijf: Een toonaangevend techbedrijf met een focus op samenwerking en innovatie.
- Voordelen: Flexibele werkopties, competitief salaris en mogelijkheden voor professionele groei.
- Overige informatie: Dynamische werkomgeving met kansen voor persoonlijke ontwikkeling en teamwork.
- Waarom deze baan: Maak impact op de dagelijkse operatie en verbeter de dienstverlening aan reizigers.
- Kwalificaties: Minimaal 5 jaar ervaring met C# en .NET in professionele softwareontwikkeling.
Het verwachte salaris ligt tussen 54000 - 66000 € per jaar.
Je werkt mee aan de herbouw van ROB, een multichannel communicatieplatform voor medewerkers in de operatie. Het platform verstuurt gerichte en gepersonaliseerde berichten via meerdere kanalen. Jouw werk heeft daarmee direct invloed op de dagelijkse operatie en de dienstverlening aan reizigers.
Je werkt op het snijvlak van domein, architectuur en realisatie. In een multidisciplinair DevOps-team ben je betrokken vanaf 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 de Product Owner, analisten, domeinexperts, operatie, architecten en andere ontwikkelaars. Je onderzoekt onduidelijkheden voordat je een oplossing bouwt en helpt een gedeelde domeintaal vast te leggen. Je helpt bepalen welke verantwoordelijkheid bij 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. 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, dead-lettering en replay. Je gebruikt waar mogelijk uitbreidbare contractwijzigingen 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. Je bouwt kanaaladapters voor onder meer Azure Communication Services en Firebase.
- Specificaties en testen: Je maakt samen met product- en domeinexperts duidelijke, concrete en toetsbare specificaties. Je vertaalt specificaties naar BDD-scenario’s in begrijpelijke domeintaal, met Reqnroll waar passend. Je werkt zowel de gewenste werking als negatieve scenario’s uit, waaronder validatie-, autorisatie-, bron-, opslag- en veiligheidsfouten. Je schrijft tests vóór of tegelijk met de implementatie om de gewenste werking aan te tonen. Je zorgt dat requirements terug te vinden zijn in scenario’s, tests, contracten of architectuurchecks. Je gebruikt architectuurtests, bijvoorbeeld met ArchUnitNET, om laagafhankelijkheden en de isolatie van bounded contexts te bewaken. Je beoordeelt niet alleen testcoverage, 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 securityscans 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 de oplossingen die je oplevert. Je denkt mee over betrouwbaarheid, retries, fallback, failover, zero-downtime deployments en rollback.
Wat breng je mee?
- Minimaal hbo- of wo-werk- en denkniveau.
- Minimaal vijf jaar ervaring als backend- of fullstackdeveloper met C# en .NET in professionele softwareontwikkeling.
- Aantoonbare ervaring met domeinmodellering en Domain-Driven Design, of het vermogen om dit overtuigend in de praktijk toe te passen.
- Ervaring met clean architecture, hexagonal architecture, ports and adapters of een vergelijkbare aanpak voor expliciete scheiding van lagen en verantwoordelijkheden.
- 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 aanpak waarbij specificaties uitvoerbaar worden vastgelegd.
- Ervaring met werken in een DevOps-team en met CI/CD-pijplijnen.
- Uitstekende mondelinge en schriftelijke beheersing van het Nederlands.
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 vormen van 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 volgens architectuur-, code-, API-, security- en loggingstandaarden.
- Ervaring met Angular, Blazor, Kotlin of Jetpack Compose.
Hoe werk je?
- Je denkt vanuit de medewerker in de operatie en de waarde voor de reiziger.
- Je schakelt gemakkelijk 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.
- Je werkt graag samen met product, architectuur en operationele stakeholders.
- Je geeft en ontvangt feedback en maakt ontwerpkeuzes bespreekbaar.
- Je bent nieuwsgierig naar nieuwe ontwikkelingen, waaronder AI en agent-based oplossingen, en zet die in wanneer ze aantoonbare waarde toevoegen.
- Je werkt datagedreven aan productkwaliteit en operationele verbetering.
Developer Regie op Berichten (ROB) (ZZP of Dienstverband) in Utrecht werkgever: Nederlandse Spoorwegen
Bij NS krijg je de kans om een sleutelrol te spelen in de groei van ons Green Cyber Support Team, waar samenwerking en vakontwikkeling centraal staan. We bieden een stimulerende werkomgeving met volop mogelijkheden voor persoonlijke en professionele groei, inclusief een aantrekkelijk salaris en uitstekende secundaire arbeidsvoorwaarden. Als werkgever hechten we veel waarde aan diversiteit en inclusie, zodat iedereen zich thuis voelt binnen ons team.
Contactgegevens:
Recruitmentteam van Nederlandse Spoorwegen
Hupjob Expertadvies🤫
Zo denken wij dat je Developer Regie op Berichten (ROB) (ZZP of Dienstverband) in Utrecht kunt binnenhalen
✨Bouw je online portfolio op
Als freelance softwareontwikkelaar is je portfolio echt je visitekaartje. Zorg ervoor dat je projecten die je hebt gedaan, open-source bijdrages en je beste werk in een overzichtelijk portfolio staan. Vergeet niet om een duidelijke uitleg bij elk project toe te voegen, zodat potentiële klanten begrijpen wat je hebt gedaan en hoe jij waarde toevoegt.
✨Word actief in tech communities
Neem deel aan online tech communities zoals GitHub, Stack Overflow en lokale meetups. Dit is niet alleen een geweldige manier om je skills te laten zien, maar ook om in contact te komen met andere developers en mogelijke klanten. Deel je kennis en zoek naar samenwerking om je netwerk uit te breiden.
✨Gebruik sociale media strategisch
LinkedIn is een gouden kans voor freelancers! Post regelmatig over je projecten, deel interessante artikelen en reageer op berichten van anderen in je vakgebied. Dit vergroot je zichtbaarheid en kan leiden tot opdrachten of aanbevelingen vanuit je netwerk.
✨Verken freelance platforms
Bekijk platforms zoals Upwork en Freelancer, maar richt je ook op niche-specifieke websites zoals Toptal of GitHub Jobs. Wellicht zijn er ook lokale platforms beschikbaar waar je je diensten kunt aanbieden. Houd je profiel daar up-to-date en reageer snel op vacatures die passen bij jouw skills.
Wij denken dat je deze vaardigheden nodig hebt om als Developer Regie op Berichten (ROB) (ZZP of Dienstverband) in Utrecht te schitteren
Een paar tips voor je sollicitatie 🫡
Laat je portfolio schitteren:In de wereld van softwareontwikkeling is je portfolio vaak je beste vriend. Zet je leukste en meest relevante projecten in je portfolio en zorg ervoor dat ze goed gedocumenteerd zijn. Laat ook zien welke technologieën je hebt gebruikt en waarom je bepaalde keuzes hebt gemaakt. Dit geeft ons een goed idee van je vaardigheden en creativiteit!
Geef je tarieven en beschikbaarheid aan:Als freelancer is het super belangrijk om duidelijk te zijn over je tarieven en beschikbaarheid. Zorg ervoor dat je deze informatie makkelijk te vinden is in je aanvraag. Dit helpt ons om snel te zien of je past bij wat Nederlandse Spoorwegen nodig heeft.
Vermeld je tech stack:Vergeet niet om je tech stack te vermelden in je CV! Noem de programmeertalen, frameworks en tools waarmee je comfortabel bent. Dit laat ons zien dat je up-to-date bent met de laatste ontwikkelingen in softwareontwikkeling en dat je de juiste skills hebt voor de klus.
Pas je motivatie aan:In je motivatiebrief voor Developer Regie op Berichten (ROB) (ZZP of Dienstverband) bij Nederlandse Spoorwegen, is het cruciaal om je passie voor softwareontwikkeling te laten zien. Vertel ons waarom je voor freelance werk kiest en wat je hoopt te leren of bereiken. Dit helpt ons om een beter beeld te krijgen van wie je bent en wat je kan bijdragen!
Zo bereid je je voor op een sollicitatiegesprek bij Nederlandse Spoorwegen
✨Laat je portfolio spreken
Zorg ervoor dat je een helder en goed gestructureerd portfolio hebt waarin je je eerdere projecten laat zien. Klanten willen zien wat je kunt, dus zorg dat je projectcases hebt die de verschillende vaardigheden en technologieën benadrukken die je gebruikt hebt.
✨Wees klaar voor technische uitdagingen
Verwacht dat je tijdens het interview technische vragen en coding challenges krijgt. Het is een goede zet om je favoriete programmeertalen en tools nog eens door te nemen en voorbereid te zijn om je keuzes uit te leggen. Misschien zelfs een paar code snippets klaar hebben staan die je kunt laten zien!
✨Pitch jezelf overtuigend
Als freelancer is het cruciaal dat je jezelf en je diensten goed kunt verkopen. Geef helder aan wat je unique selling points zijn en hoe jouw skills specifiek de behoeften van Nederlandse Spoorwegen invullen. Klanten willen weten wat ze aan jou hebben als freelancer!
✨Flexibiliteit en samenwerking
Bij freelance werk draait het ook om kunnen samenwerken met verschillende teams. Wees bereid om over je ervaring met teamwork te praten en hoe je je hebt aangepast aan verschillende werkstructuren. Dit laat zien dat je niet alleen zelfstandig kunt werken, maar ook een aanwinst bent voor hun team.