What Does a Platform Engineer Do? A Practitioner's Guide
I remember the exact moment I stopped calling myself an "infrastructure engineer."
It was March 2019. We were rebuilding the data pipeline at a fintech startup I was advising. The team had three SREs, two DevOps engineers, and a guy who called himself a "cloud architect." They were drowning. Not because they couldn't fix servers — they could. The problem was that every new feature required three teams to coordinate. The data team wanted Kafka streams. The ML team wanted GPU nodes. The product team just wanted their dashboards to load before the board meeting.
Someone asked me: what does a platform engineer do, exactly?
I didn't have a clean answer then. I do now.
Platform engineering is the discipline of building internal developer platforms that abstract away infrastructure complexity while exposing the right level of control. It's not DevOps renamed. It's not SRE with a different hat. It's a distinct role focused on productizing infrastructure — treating your internal tools like a product with real users (your developers), real SLAs, and real feedback loops.
This guide covers what platform engineers actually do, the specific problems they solve, the technical decisions they make, and why this role has exploded since 2020. I'll tell you what worked at SIVARO and what I've seen fail at companies from Series A to public.
The Real Job, Not the Job Description
Most job posts say: "Build and maintain the internal developer platform."
That's like saying a chef "prepares food." Technically true. Practically useless.
Here's what I've actually done as a platform engineer:
Shipped a self-service Kafka cluster provisioning system. Developers fill out a YAML file, submit a PR, and get a production-grade Kafka topic with monitoring, alerting, and retention policies baked in. Before that, each team filed a ticket, waited 3 days, and got a cluster that was either over-provisioned (costing $4K/month) or under-provisioned (crashing at noon).
Designed a unified CI/CD pipeline that cut deployment time from 45 minutes to 8 minutes. We replaced a tangle of Jenkins, GitLab CI, and custom shell scripts with a single Argo Workflows pipeline that used build caching and parallel stages. The team stopped hating Friday deployments.
Wrote a cost allocation system that showed each team their actual infrastructure spend. Turned out one team was burning $12K/month on idle GPU instances. They didn't know. The platform made it visible.
The through line? Platform engineers remove friction. We don't just manage infrastructure — we make it invisible.
What Does a Platform Engineer Do Differently Than DevOps or SRE?
This is where most people get confused. Let me be blunt.
DevOps is a cultural movement about breaking down silos between dev and ops. It's about shared responsibility. It's not a role — it's a practice.
SRE is about applying software engineering to operations. Reliability is the product. Error budgets, SLIs, SLOs. Google formalized this in 2016 with their book.
Platform engineering is about building internal products that make developers productive. You're not on call for every incident. You're not writing deployment scripts for each team. You're building a platform that enables teams to own their own operations.
The key difference: a platform engineer ships software that other engineers use. The platform itself is the product. Your users are developers. Their happiness and velocity are your metrics.
At SIVARO, we structure platform teams around three principles:
- APIs over tickets — if a developer has to email you, your platform is broken
- Levers, not locked doors — give teams the ability to override defaults when they need to
- Instrumentation first — if you can't measure it, you can't improve it
Core Responsibilities (The Boring Stuff First)
Infrastructure Abstraction Layers
You start with the foundation. A platform engineer abstracts away the cloud provider. Your developers shouldn't care if you're on AWS, GCP, or Azure. They shouldn't care if you're using Kubernetes, Nomad, or raw EC2.
At a company I worked with in 2021, the platform team built a thin abstraction layer over Kubernetes using Crossplane. Developers defined their services in a single service.yaml file:
yaml
apiVersion: platform.company.io/v1
kind: Service
metadata:
name: payments-api
spec:
replicas: 3
container:
image: payments-api:latest
port: 8080
resources:
cpu: "2"
memory: "4Gi"
autoscaling:
minReplicas: 3
maxReplicas: 20
targetCPUUtilization: 70
That YAML gets compiled into Kubernetes Deployments, Services, HPA objects, and NetworkPolicies. The developer never touches a pod spec. They never think about node pools. They just define what they need.
Developer Self-Service Portals
The second big piece: give developers a UI or CLI to provision resources without opening a ticket.
Backstage from Spotify (open-sourced in 2020) is the most common choice. We've used it at SIVARO. It's decent. But I've also seen teams build custom portals that outperformed Backstage by a wide margin — specifically because they understood their own workflows better.
Here's what a self-service portal should handle:
- Service scaffolding (new microservice in 90 seconds)
- Database provisioning (Postgres, Redis, Kafka)
- DNS and TLS management
- Secrets management (Vault or AWS Secrets Manager)
- CI/CD pipeline setup
Each of these should be one click or one CLI command. No tickets. No "can you add me to the VPN?"
Observability Standardization
This is where most platform teams fail. They build the infrastructure plane but ignore the observability plane.
Your developers need to understand what their code is doing in production. That means standardized logging, metrics, and tracing. But here's the hard truth: you can't just hand them Datadog and say "good luck."
At SIVARO, we ship every service with:
- Structured JSON logging (no more
console.log("debug: ", data)) - Distributed tracing via OpenTelemetry
- Pre-built Grafana dashboards per service type
- Alert rules with sane thresholds
We wrote a small Go library that wraps OpenTelemetry:
go
import "github.com/sivaro/otel-init"
func main() {
// This initializes tracing, metrics, and logging
// with sensible defaults. One line per service.
shutdown, err := otelinit.Init(ctx, otelinit.Config{
ServiceName: "payments-api",
Environment: os.Getenv("ENV"),
})
defer shutdown()
// Your application code here
}
No one configures Jaeger manually. No one guesses at metrics. It's baked into the platform.
CI/CD Pipeline Architecture
The pipeline is the heartbeat of developer velocity. Most companies have pipelines that are too slow, too brittle, or too complex.
Your job as a platform engineer: make the pipeline fast and reliable.
We tested this extensively. The single biggest win was build caching. We use GitHub Actions with remote caching via BuildKit. For a typical service, the first build takes 8 minutes. Subsequent builds on the same branch take 30 seconds.
yaml
name: Build and Test
on:
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
with:
driver-opts: |
image=moby/buildkit:latest
- name: Build with cache
uses: docker/build-push-action@v5
with:
cache-from: type=gha
cache-to: type=gha,mode=max
push: false
That type=gha cache is the difference between a 45-minute wait and a 5-minute feedback loop. Platform engineers obsess over these details.
The Hard Parts (Where Most Platform Teams Fail)
Politics and Ownership
The hardest part of platform engineering isn't technical. It's organizational.
Every team wants to control their own infrastructure. The data team wants to run their own Spark clusters. The ML team wants their own GPU scheduler. The product team wants to deploy whenever they want.
Your platform needs to provide enough value that teams voluntarily adopt it. If your platform is slower, harder, or more restrictive than what teams can build themselves, they'll bypass you. I've seen it happen at a Series C company in 2022. The platform team spent 6 months building a beautiful Kubernetes platform. The ML team ignored it and spun up their own SageMaker instances. The data team used Airflow on EC2. The platform became a ghost town.
The lesson: build with users, not for them. Ship early. Get feedback. Iterate.
Golden Paths vs. Freedom
There's a constant tension. You want a standard way of doing things (the "golden path"). But teams have legitimate differences.
At SIVARO, we settled on this rule: 80% of use cases use the golden path. 20% need escape hatches.
Concretely: most services use our standard Node.js Express template with PostgreSQL. That works for CRUD APIs. But when a team needs a real-time WebSocket service, they get a different template with Redis pub/sub and different scaling rules. We don't force the square peg.
The escape hatch: if a team can justify why they need something custom (and they're willing to maintain it), they can opt out of the platform. But they have to own the operational burden.
On-Call and Support
Who's on call for the platform itself?
This is a genuine problem. Your platform is a critical dependency for every other team. If the platform goes down, nobody deploys. Nobody provisions databases. Everything stops.
At SIVARO, platform engineers are on call for the platform. But we've built redundancy and graceful degradation so that existing services continue running even if the platform's control plane goes down.
We also have a strict policy: platform engineers do not fix app-level incidents. If a team's service is slow because of bad SQL queries, that's their problem. We'll give them monitoring and tooling. We won't debug their code.
Real Metrics: What Success Looks Like
I track three metrics for every platform team I work with:
-
Time-to-provision — how long from a developer deciding they need a resource to actually having it. Before platform engineering: 3-7 days. After: 2-5 minutes.
-
Deployment frequency — how often teams deploy to production. Before: once a week. After: multiple times per day.
-
Incident resolution time — how long to fix production issues. Faster because teams have better observability and can self-serve fixes.
At a client in 2023, we measured these before and after building their platform:
| Metric | Before | After |
|---|---|---|
| Time to provision database | 4 days | 90 seconds |
| Deployments per week | 12 | 87 |
| Mean time to resolve incidents | 4.2 hours | 47 minutes |
| Infrastructure cost per service | $2,800/mo | $1,100/mo |
The cost reduction came from right-sizing resources and removing idle capacity. The platform made waste visible.
Common Mistakes I've Made (So You Don't Have To)
Mistake 1: Building Too Much Too Early
In 2020, I spent 3 months building a full internal developer platform with service mesh, canary deployments, and automated rollback. It was beautiful. Nobody used it. The team was too small. The problems I was solving didn't exist yet.
Fix: Start with the most painful bottleneck. Usually that's database provisioning or CI/CD. Solve that one thing. Get adoption. Then expand.
Mistake 2: Ignoring Documentation
The best platform in the world is useless if nobody knows how to use it.
We wrote a "Platform Handbook" — 20 pages covering everything from "how to deploy your first service" to "how to request a new database." Every template includes a README. Every CLI command has --help output.
Fix: Treat documentation as a feature. Assign a team member to keep it current. Review it quarterly.
Mistake 3: Not Measuring Adoption
We built a feature that let teams provision Redis clusters. After 6 months, only 2 teams were using it. The rest were still filing tickets to the infrastructure team. We hadn't made the platform easier than the old way.
Fix: Track adoption per feature. Monthly report: how many teams use this? How many use the escape hatch? If adoption is below 40%, investigate.
The Technical Stack (What We Use at SIVARO)
This changes every year, but here's the current stack that works:
- Container orchestration: Kubernetes (EKS on AWS)
- CI/CD: GitHub Actions with ArgoCD for GitOps deployments
- Secrets management: Vault (HashiCorp)
- Service mesh: Istio (we tried Linkerd, but Istio's feature set won for our complexity)
- Observability: OpenTelemetry for data collection, Grafana for dashboards, Loki for logs, Tempo for traces
- Developer portal: Backstage with custom plugins
- Infrastructure as code: Pulumi (we moved from Terraform because Pulumi's programming model is better for complex logic)
- Database provisioning: Crossplane with custom compositions
- Cost management: In-house tooling built on top of AWS CUR data
I'm not saying this is the perfect stack. It's what works for us. Your mileage will vary based on team size, cloud provider, and regulatory requirements.
FAQ: What Does a Platform Engineer Do?
Q: Is platform engineering just DevOps rebranded?
No. DevOps is a cultural philosophy about breaking down silos. Platform engineering is a specific technical role that builds internal products. They overlap, but they're not the same. At SIVARO, we have both DevOps practitioners and platform engineers. They work together but have distinct responsibilities.
Q: How is this different from being a cloud architect?
Cloud architects design systems. Platform engineers build and maintain the platform that runs those systems. A cloud architect might draw diagrams of your network topology. A platform engineer ships the code that provisions those networks automatically.
Q: Do I need to know Kubernetes to be a platform engineer?
Yes, but it's not the most important thing. Kubernetes is the runtime. The more important skills are: API design, developer empathy, systems thinking, and the ability to build software that other engineers use. If you only know Kubernetes but can't build a CLI tool or a UI, you'll struggle.
Q: What's the career path for a platform engineer?
From what I've seen: platform engineer → senior platform engineer → staff platform engineer → platform architect or engineering director. Some former platform engineers become CTOs because they understand the full developer workflow. Others go into product management for developer tools.
Q: What's the salary range?
For US-based roles in 2024: junior platform engineers start around $120K, senior roles range $180K-$250K, staff+/principal roles can hit $300K+ with equity. Remote roles typically pay slightly less. Companies like Datadog, GitHub, and AWS pay premium for platform talent.
Q: Can a junior engineer become a good platform engineer?
I've seen it happen. But you need a strong foundation in distributed systems, Linux, networking, and at least one programming language (Go or Python are most common). Build side projects that other people use. Contribute to open-source tools like Backstage, Crossplane, or ArgoCD.
Q: How do you measure platform team success?
We track: developer satisfaction surveys (monthly), time-to-provision (weekly), deployment frequency (daily), infrastructure cost per engineer, and number of incidents caused by platform changes. The North Star metric is: "how long does it take a new engineer to ship their first feature?" If it's more than a week, your platform needs work.
Q: What books or resources should I read?
Start with: Team Topologies by Matthew Skelton and Manuel Pais (the foundational text). Then: Building a Platform Engineering Practice (free ebook from Humanitec). For technical depth: Kubernetes in Action by Marko Lukša. For the SRE perspective: Site Reliability Engineering by the Google SRE team.
Conclusion: What Does a Platform Engineer Do?
Let me answer that question directly one more time.
A platform engineer builds the internal infrastructure that makes every other engineer faster, safer, and more productive. They don't just manage servers or write deployment scripts — they design systems that remove friction from the entire software delivery lifecycle.
But here's the thing most articles don't tell you: platform engineering is hard because it's a service role. You succeed when other people succeed. You're invisible when things work, and the first person blamed when they don't. The best platform engineers I know don't care about recognition. They care about shipping a platform so good that developers forget it exists.
At SIVARO, we've been doing this since 2018. We've built platforms that process 200K events per second. We've seen teams go from weekly deployments to continuous delivery. We've watched infrastructure costs drop by 60% while reliability improved.
The role is still evolving. Five years ago, platform engineering wasn't even a job title. Now it's one of the fastest growing roles in tech. If you're considering it, my advice: learn the fundamentals (distributed systems, Linux, API design), build real things that real people use, and don't be afraid to say "I don't know" — because the landscape changes fast.
And if someone asks you what does a platform engineer do?, you can tell them: we build the invisible rails that let everyone else move faster.
Nishaant Dixit — Founder of SIVARO. Building data infrastructure and production AI systems since 2018. Built systems processing 200K events/sec.