Nederlandse Spoorwegen (NS)

Developer portal from proof of concept to production

Senior Full Stack Engineer

Dec 2025 – Nov 2026

NS is building an Internal Developer Platform with a Backstage-based developer portal: one place where its engineering teams find services, tools, and documentation, and request infrastructure through self-service. My assignment started at the proof of concept and took the portal to production at developer.ns.nl.

I brought Backstage into production on Azure within the standards of a large organization. I set up the infrastructure as code in Terraform and the CI/CD pipelines in Azure DevOps, with security scanning, release automation, and change registration in ServiceNow, and set up runtime configuration, secrets management, and observability with Datadog. The portal was approved within NS’s security and compliance process, and the operational handover to the service desk was signed off.

On that foundation I built new features, including the Tech Radar, the tool overview, single sign-on, and the NS corporate branding, and integrated the portal with systems across NS, such as Entra ID, TeamCentraal, SharePoint, and Azure. For the cloud team’s provisioning templates, I built Azure resource selection that works with each engineer’s own permissions.

The portal is a shared platform, so adoption mattered as much as technology. I organized and facilitated hackathons in which other engineering teams built their own integrations, and guided internal teams in developing features on Backstage within a shared contribution model. I worked closely with the cloud, security, and service desk teams.

Throughout the assignment I worked with AI-assisted development: coordinating multiple coding agents in parallel, each on a bounded task, with independent multi-reviewer code reviews whose effectiveness I measured and improved.

As a Senior Full Stack Engineer, my responsibilities include:

  • Bringing Backstage into production on Azure in line with NS’s security and compliance standards
  • Building Backstage plugins and features in TypeScript, React, and Node.js
  • Integrating the platform with Entra ID, TeamCentraal, SharePoint, and Azure Resource Manager
  • Building shared libraries for HTTP communication, resilience, and caching for plugin developers
  • Setting coding standards with strict TypeScript, ESLint, automated testing, and SonarQube
  • Recording architectural decisions in ADRs, and investigating and resolving incidents
  • Organizing hackathons and guiding internal teams as plugin contributors
  • Assessing candidates' technical skills and onboarding new engineers onto the platform
TypeScriptReactNode.jsBackstagePostgreSQLAzure (Container Apps, Key Vault, App Configuration, Entra ID)TerraformAzure DevOpsServiceNowDockerDatadogESLintJestSonarQubeTrivyStorybookClaude CodeCodexGit

Related work

Older project →

LET'S BUILD SOMETHING

Whether you're migrating to headless, rescuing a legacy system, or need senior engineering capacity—let's start the conversation.

$start_conversation

info@crafity.com · Randstad, Netherlands