Mar 2020 – Present · King, Stockholm

Internal Developer Platform

Core contributor — 586 commits (27%), release management, infrastructure, feature development

TypeScriptReactBackstageNode.jsGCPKubernetes

Foundry is King's internal developer platform — the single place where every engineer in the company goes to discover services, create new projects, manage cloud resources, read documentation, and understand the system landscape. Built on the open-source Backstage framework and extended with 86 custom plugins, it integrates with over 12 external systems across infrastructure, identity, and tooling.

I joined the platform team in 2020 and have been one of its core contributors ever since, responsible for release management, infrastructure configuration, and building features that directly improve the daily workflow of every developer at King.

Foundry acts as a read-and-write layer over the entire engineering toolchain. Every system below is integrated — engineers interact with all of them through a single interface.

Identity
LDAPUsers & groups
GitHub EnterpriseAuth & repos
RolloInternal directory
Infrastructure
Google CloudProjects & IAM
KubernetesCluster resources
ArgoCDGitOps deployments
TerraformIaC provisioning
Tooling
JiraIssue tracking
SonarQubeCode quality
ElasticsearchFull-text search
OpenAIAI search & assistant
PagerDutyOn-call routing
86 plugins · v1.72 · King Engineering
Foundry
Internal Developer Platform
🗂Service CatalogDiscover every service, API, and team
Self-ServiceCreate projects, provision cloud resources
🔍AI SearchNatural language across all knowledge
📖DocumentationCentralised docs from any source
🚀DeploymentsTrack releases across all services
🔔NotificationsReal-time alerts and ownership events

King's engineering teams were operating across dozens of disconnected tools — services lived in GitHub, infrastructure in GCP, documentation in Confluence, deployments in ArgoCD, issues in Jira. There was no single place to understand the full picture of a service: who owns it, how it's deployed, what it depends on, where its docs are. The platform needed to integrate all of these systems without owning any of them — acting as a read-and-write layer over the existing toolchain.

86 custom plugins, one platform

Backstage provides the plugin framework; everything else is custom. Each plugin is an independently versioned TypeScript package with its own frontend and backend. This architecture means a team can own their integration end-to-end — the GCP team owns the GCP plugin, the docs team owns the docs plugin — while the platform team maintains the host application and shared core library.

Self-service cloud provisioning

Before Foundry, creating a GCP project required filing a ticket and waiting for the infra team. Now engineers do it themselves in minutes: select a project template, fill in metadata, and the platform provisions the GCP project, sets up IAM, creates the GitHub repository, configures ArgoCD, and registers the service in the catalog — all in one workflow.

AI-powered search across the entire org

Foundry indexes services, documentation, ADRs, runbooks, and API specs into a unified search index backed by Elasticsearch in production. On top of that sits an AI search layer (OpenAI) that lets engineers ask natural-language questions and get answers synthesised from across the company's knowledge base — without knowing which system to look in.

Release management at v1.72

Foundry has shipped 72 minor versions since v1.0, on a roughly two-week release cycle. I own the release process: tagging, changelog generation, Docker image builds, and production deployments to GKE via ArgoCD. Each release coordinates changes across 86 plugins from multiple contributing teams, with zero downtime deployments.

Unified identity across 12+ systems

One of the hardest problems in an IDP is identity: a developer in GitHub is the same person as in Jira, LDAP, and GCP — but each system has its own user model. Foundry uses LDAP as the source of truth for users and groups, syncs with Rollo (King's internal directory), and maps identities across systems so ownership, permissions, and notifications all work consistently.

TypeScriptReactNode.jsBackstagePostgreSQLElasticsearchGCPKubernetesArgoCDGitHub EnterpriseLDAPOpenAITerraformDockerYarn Workspaces