Platform Engineering
Platform engineering is about building the internal platform other engineers build on top of — so each team isn’t solving the same infrastructure problems independently, and provisioning a new service doesn’t mean re-deriving how deployment, secrets, and networking are supposed to work.
In practice: GitOps-driven Kubernetes platforms, self-service patterns via Helm and FluxCD, and Infrastructure-as-Code that’s reusable across projects rather than bespoke per team.
Problems this usually starts from
These are the kinds of things that usually prompt someone to get in touch:
- Every team re-solves the same deployment, secrets, and networking problems independently.
- Provisioning a new service means copying and adapting someone else’s setup and hoping it’s current.
- There’s no self-service path, so every change routes through one overloaded team.
- Kubernetes is running, but nobody’s agreed what “the platform” actually includes.
- Infrastructure-as-Code exists, but it’s bespoke per project rather than reusable.
- Standards exist on paper but aren’t enforced anywhere in practice.
- Onboarding a new engineer means walking them through undocumented tribal knowledge first.
What an engagement looks like
Starts with understanding what teams are actually building against today — which parts of the platform are genuinely shared, and which are duplicated per team without anyone deciding that on purpose. From there: GitOps-driven Kubernetes platforms, self-service patterns via Helm and FluxCD, and Infrastructure-as-Code that’s reusable rather than copy-pasted.
Scope is either a fixed piece of work (standardising one part of the platform, a specific migration) or an ongoing placement building it out over time. Deliverables are things teams can actually build on: documented, reusable modules and patterns, not a one-off cluster only I understand.
Typical work looks like: Helm charts and FluxCD Kustomizations that make “add a new service” a pull request rather than a ticket to another team; RBAC and namespace conventions that still hold up once the platform’s grown past the first few teams using it; and Terraform modules written to be reused, not copied, edited, and quietly diverged from the original.
Engagements typically run anywhere from a few days for standardising one specific piece up to several months for building the platform out over time — there’s no minimum contract length, and scope can start small and grow once it’s clear the working relationship fits.
Questions
Remote or on-site?
Either — depends on the engagement. Comfortable with a regular on-site day where required.
Long contracts only, or shorter work too?
Both. That includes urgent, one-off issues — a platform component that's broken and blocking every team, a cluster in a bad state — not just fixed-scope projects or longer placements. No running contract required to get started on something like that.
What if there's already a platform team in place?
Common, and usually the point — working alongside an existing team to build out or standardise what's already started, not replacing it.
Does this mean migrating everything to Kubernetes?
No — the platform serves whatever's actually running. Some workloads fit Kubernetes well; others don't, and forcing them in usually creates more problems than it solves.
Do you work with a specific cloud provider?
Most commonly AWS, but the platform patterns — Kubernetes, Helm, FluxCD, Terraform — aren't tied to one provider and carry over to whatever's actually in use.
What size team is this usually a fit for?
No fixed minimum — it comes up as often for a handful of engineers deciding on conventions early as it does for a larger org whose platform has grown past what one team can maintain alone.
Also
- DevOps Engineering — CI/CD, automation, and GitOps — making releases routine instead of risky.
- Site Reliability Engineering — Observability and reliability as measurable properties, not luck.
- Cloud Infrastructure — Architecture and provisioning on AWS, defined as code and version-controlled.