Skip to content
Bitmason
Engineering

Platform engineering after product-market fit: when an internal platform pays off

Why delivery slows down as a product team grows, what an internal developer platform contains, which numbers show whether it works, and how to build one in small steps without overbuilding.

8 min read

Before product-market fit, a team has one real job: to find out what people want. Infrastructure is whatever gets the next experiment out. A deploy script one person understands, environments set up by hand, monitoring added after the first outage. At that stage it is the right trade.

After fit, the same habits start to cost. More engineers join, one service becomes several, customers ask about uptime and security, and each team solves the same problems in its own way. Platform engineering is the answer many growing companies reach for. This post explains what it is, what an internal developer platform contains, how to tell whether it is working, and how to build one in small steps.

Why it hurts after product-market fit and not before

With five engineers in one room, knowledge travels by conversation. Everybody knows how a release works because everybody has done one. With thirty engineers in six teams that stops being true, and the symptoms are familiar:

  • A new engineer needs weeks before a first change reaches production. Most of that time goes on access, setup and finding out who knows what.
  • Every service is deployed a little differently, so moving between teams means learning again.
  • A few people hold the infrastructure together, and every team waits in their queue.
  • Security and compliance questions arrive at the end, as a review that blocks a release.
  • Incidents take long to diagnose, because each service logs and reports in its own way.

None of this is a failure of the people involved. It is what happens when the number of teams grows and the way of working stays the one that suited a single team. The cost is paid in engineers' attention. Time that should go to the product goes to plumbing, and the same plumbing is built several times.

What platform engineering is

Platform engineering treats the tools and infrastructure that engineers use as a product, with the company's own developers as its customers. A small team builds and maintains a set of self-service capabilities, so that product teams can create, ship and run software without filing a ticket and waiting.

It grew out of DevOps and does not replace it. "You build it, you run it" works well until every team is expected to be expert in cloud networking, pipelines, secrets and monitoring on top of its own domain. A platform leaves the ownership with the product team and takes away the need to assemble everything from parts.

The word "product" matters. A platform nobody asked for, delivered as a mandate, is used reluctantly and worked around. One that is built from the teams' real problems is adopted because it is the easiest way to get the job done.

What an internal developer platform contains

The contents vary, but most platforms cover the same ground:

  • Service templates. A new service starts from a template with the build, tests, deployment, logging and health checks already wired, so the first day's work goes into the feature.
  • Environments on demand. Development, preview and staging environments created from a definition in code, close enough to production that results can be trusted.
  • A standard delivery pipeline. One route from a merged change to production, with the same stages for every service.
  • Infrastructure as code. Databases, queues and storage requested through reviewed definitions, with sensible defaults.
  • Secrets and access. One place for credentials, and one way to grant and remove access.
  • Observability. Logs, metrics and traces collected the same way everywhere, with dashboards and alerts that exist from the first deployment.
  • A catalogue. A list of services with their owners, documentation, dependencies and state.

A portal with a friendly interface can sit on top, but it is the last thing to build. The value is in the capabilities and in their being consistent.

The paved road

The idea that holds a platform together is the paved road, sometimes called the golden path: one well-kept, well-documented way to do each common thing. Take it, and deployment, monitoring and security come with it. You may leave it, and then you carry what you take on yourself.

That is different from a rule that forbids everything else. A team with an unusual need can still go its own way. The road only has to be so much easier that leaving it needs a reason.

Part of the gain is in engineers' heads. Every choice an engineer does not have to make about infrastructure is attention left for the product. Fewer ways of doing things also means fewer things to patch, document and teach.

Standard pipelines and built-in guardrails

When each team writes its own pipeline, each pipeline is a small product with its own bugs. Improvements made in one place do not reach the others, and an audit has to examine every one. A shared pipeline, used through a template with a few parameters, turns one fix into a fix for everybody.

Security benefits most. In many growing companies security is a review near the end: someone checks the change, finds problems, and the release waits. Guardrails move those checks into the road:

  • Dependency and container scanning in every pipeline.
  • Secret detection before a change merges.
  • Access defined in code and reviewed like any other change.
  • Policies checked automatically: encryption on, no public storage, required labels present.
  • A log of who deployed what and when, produced as a side effect of deploying.

The result is the opposite of what people expect from security work. Releases get faster, because the checks run in minutes on every change and stop being a meeting. For a company that sells to regulated customers, the evidence an auditor asks for already exists.

Observability and shared standards

With one service, an engineer who knows it can find a fault by reading its logs. With twenty, a request crosses several of them, and a problem seen in one has its cause in another. If each logs in its own format with its own names, diagnosis starts with translation.

Shared standards remove that step: structured logs with the same fields, a request identifier passed along every call, the same basic measures for every service (traffic, errors, latency, saturation), and health checks with one meaning. The platform ships these in the template, so a service has them without anyone deciding to add them.

The same applies to ownership. An alert is useful only if it reaches a team that can act on it, and that is what the catalogue is for.

Numbers that show whether it works

A platform is an investment and should be judged like one. The four delivery measures most teams already know are a good start:

  • Lead time for changes: from commit to production.
  • Deployment frequency: how often each team releases.
  • Change failure rate: the share of releases that need a fix or a rollback.
  • Time to restore service after a failure.

Add a few that are specific to the platform:

  • Time to first deployment, for a new engineer and for a new service.
  • Adoption: the share of services on the paved road. Low adoption of a voluntary platform is the clearest feedback there is.
  • Tickets to the platform team for things that should be self-service.
  • What engineers say, asked regularly and simply: what slowed you down this month?

Record them before you start. An improvement nobody can demonstrate will not survive the next budget discussion.

How to roll it out without overbuilding

The common failure is to build too much too early. A team disappears for a year and returns with a portal that solves problems nobody has. A safer order:

  1. Find the worst friction. Ask the teams and look at where the time goes. It is usually one of three: setting up a new service, getting a change deployed, or getting an environment.
  2. Pave one road. Fix that one thing properly for one team, using what they already use.
  3. Make it the easiest option, then let others choose it. Adoption by choice tells you whether it is good.
  4. Standardise what already works before inventing anything. Most companies have one team whose pipeline the others envy.
  5. Buy or adopt before you build. Managed services and open-source tools cover most of the parts. The work that is yours is fitting them together around your teams.
  6. Keep the platform team small and close to its users. A few engineers who sit in on product teams' planning learn more than a large team with a roadmap of its own.
  7. Add the next capability when the numbers call for it.

Treat every addition as a product decision: who needs it, what will it replace, and how will we know it helped?

When it is too early

A platform is overhead until there are enough teams to share it. One team with one service does not need one. It needs a deploy script that works, backups that have been tested, and basic monitoring. A managed hosting service will carry a product a long way.

The signals that the moment has come are the symptoms from the start of this post: new engineers slow to become productive, the same problem solved three times, releases waiting on one person, an audit that takes weeks of collecting evidence by hand. Two or three of those together are a reason to start, with the smallest road that removes the worst of them.

Where to start

Measure how long a change takes to reach production and how long a new engineer takes to ship one. Ask each team what slowed it down last month. Choose the problem that comes up most, solve it for one team as a path others can reuse, and measure again.

A platform built this way never has a launch day. It grows one paved road at a time, and each one is in use before the next is started.

Questions about this article

What is platform engineering?

Building and running the shared tools, pipelines and infrastructure that a company's engineers use, as a product with those engineers as its customers, so that teams can ship without waiting on a ticket.

How is platform engineering different from DevOps?

DevOps gives each team ownership of running what it builds. Platform engineering keeps that ownership and adds a shared, self-service base, so that every team does not have to assemble the same infrastructure alone.

How big should a company be before it needs an internal developer platform?

Size matters less than symptoms. When several teams solve the same infrastructure problems separately and new engineers take weeks to ship, a first paved road starts to pay for itself.

Do we need a developer portal?

Not at first. Templates, a standard pipeline and environments on demand bring most of the value. A portal is worth adding once there are so many services and teams that finding things has become a problem.

  • Engineering

    Dedicated team, staff augmentation or managed delivery

    Ilya Ismatov5 min read

  • AI engineering

    AI coding agents in a software team: where they help and where people decide

    Ilya Ismatov8 min read

  • Engineering

    Choosing a tech stack for compliance-heavy SaaS

    Ilya Ismatov5 min read

What are you building?

Tell us about your project. We’ll get back to you to talk through scope, timeline and first steps.

Get started