Cloud & Platform
A platform your engineers
choose to use
Internal platforms fail when they are built as a mandate. We build them as products: a small number of paved paths that are genuinely faster than the alternative, an escape hatch for the cases they miss, and a team that answers support requests.
Overview
An internal platform with golden paths, run as a product with users and a roadmap.
The test for an internal developer platform is simple. If teams route around it, it has failed, however good the architecture underneath happens to be. That means the platform has to be measurably faster than doing it yourself for the common cases, and it has to let people out when their case is not common. Mandating adoption hides the failure rather than fixing it.
We usually start with two or three golden paths rather than a catalogue: a stateless HTTP service, a scheduled job, and one stateful shape appropriate to your estate. Each path takes an engineer from an empty repository to a running production service, with logging, alerting, a database and a deployment pipeline already wired, in under an hour.
Underneath, the interface matters more than the implementation. Backstage, a CLI, a set of Terraform modules or a pull request template are all viable front doors. What breaks platforms is exposing raw Kubernetes manifests to product engineers and calling it self-service. We hide what should be hidden and document the seams where we could not.
- 47 min
- from empty repository to production service on a golden path
- 73%
- of new services on a paved path within two quarters, no mandate
- 2.4 FTE
- platform team supporting 180 engineers at steady state
Capabilities
What this covers
Six areas we staff properly. If your problem sits outside them, the honest note at the foot of this page says so.
Platform product definition
User research with the engineers who will use it, a prioritised roadmap, and success measures such as time to first deployment. The platform gets a product owner, not only a technical lead.
Golden path implementation
Two to four templated service shapes covering the common cases, each producing a running service with pipeline, observability, secrets and a database attached from the very first commit.
Developer portal and catalogue
Backstage or an equivalent populated with ownership, dependencies, on-call rota and runbook links, kept accurate by generating it from code rather than by asking teams to update entries.
Infrastructure self-service
Crossplane or Terraform modules exposed behind a request a product engineer can complete alone, with policy enforced automatically instead of through an architecture review board.
Multi-tenancy and isolation
Namespace strategy, network policy, resource quotas and per-tenant cost attribution, designed so that one team's incident does not quietly become everybody else's incident.
Platform operations and support
A support rota, a published SLO for the platform itself, a deprecation policy with migration windows, and release notes. Internal products need the same discipline as external ones.
Deliverables
What you get
- Platform roadmap with adoption and time-to-deploy targets
- Golden path templates generating pipeline, observability and infrastructure
- Backstage instance with the catalogue populated from repository metadata
- Self-service infrastructure modules with policy checks in the pipeline
- Platform SLOs, support rota and deprecation policy
- Migration guide and paired sessions for the first adopting teams
Stack
What we build it with
- Backstage
- Crossplane
- Kubernetes
- Argo CD
- Terraform
- Kyverno
- Helm
- GitHub Actions
- External Secrets Operator
- Grafana
- OpenTelemetry
- Dagger
Process
How the engagement runs
Two-week increments against a written definition of done. You can stop at any increment boundary and keep everything built so far.
Interview the users
Ten to fifteen product engineers, asked how they set up their last service and where they lost time. The answers rarely match what the platform team assumes.
Pick two paths
We implement the two most common service shapes completely. A broad catalogue built up front ages badly, and nobody adopts a path that is only half finished.
Pilot with a real team
One product team ships a genuine service on the path while we sit in their support channel. Their friction log becomes the platform backlog.
Open it up
Adoption by choice, tracked weekly. If teams are not adopting, the answer is a change to the platform, not an engineering-wide mandate from a director.
Establish the platform team
Support rota, roadmap cadence, deprecation policy and a funding model, so the platform is still maintained long after the initial build finishes.
When this is the wrong engagement
If you have one product, one team and one deployment target, a platform is simply a layer of indirection between you and the thing you are actually trying to build.
FAQ
Questions we get asked
- How large does an engineering organisation need to be?
Below roughly 40 engineers, a shared set of Terraform modules and a good README does the same job for a fraction of the cost. Platform engineering starts paying back when the number of services outgrows the number of people who remember how each one was set up.
- Backstage or a commercial portal?
Backstage if you have a team that can own a React codebase and want the catalogue model extended to your own entities. A commercial portal if you want it running next month and can live with its data model. Either way the portal matters least; the golden paths carry the value.
- What if teams refuse to adopt it?
Then it is not yet faster than their current approach, and mandating it turns a product problem into a political one. We treat non-adoption as the primary signal, interview the holdouts and fix the specific friction. Adoption by choice starts slower and lasts far longer.
- How should we fund a platform team?
As a permanent product team with its own headcount, not as a project with an end date. Platforms funded as projects decay within about 18 months: deprecations stop happening, modules drift from the provider APIs, and teams quietly go back to building their own.
Related
More in Cloud & Platform
Cloud & Platform
Cloud Solutions
Landing zones, account structure and cost guardrails, designed before workload one.
Cloud & Platform
Cloud Migration
Wave-planned migration of running systems, with a rollback path we have actually tested.
Cloud & Platform
AWS Services
AWS engineering from Organizations and Control Tower down to Graviton instance sizing.

