---
title: "Pulumi | Skills We Assign For | Azendo"
description: "Pulumi for infrastructure as code — real languages, testability, and the Azendo roles assigned for it."
url: "https://azendo.co/skills/pulumi/"
---

[Skills](https://azendo.co/skills/) Cloud and infrastructure 

# Pulumi.

Pulumi defines infrastructure in general-purpose languages — TypeScript, Python, Go, C# — rather than a domain-specific one. The same loops, conditionals, types and testing tools used for application code apply to infrastructure.

## Where Pulumi fits on a long engagement.

Using a real language removes genuine friction. Complex conditional infrastructure, which becomes awkward in a declarative DSL, is ordinary code here, and it can be unit tested with the tools the team already uses. For organisations where the same people write applications and infrastructure, the reduction in context switching is real.

The same property is the risk. A general-purpose language permits abstraction that infrastructure does not benefit from, and a deeply factored Pulumi program can be much harder to reason about than verbose declarative code. Infrastructure is read in emergencies, and clever code is expensive precisely then.

## What an assigned team does with Pulumi.

The choice between Pulumi and a declarative tool usually comes down to who maintains it. Application teams that own their infrastructure get real value from one language; a dedicated platform function often prefers the constraint of a DSL.

Establishing which of those a client actually is, before committing, is a scoping question rather than a preference. What that scoping covers is set out in [how the monthly fee is built](https://azendo.co/pricing/).

## What we use Pulumi for.

* Conditional infrastructure without contortion Environment differences expressed as ordinary control flow rather than DSL workarounds.
* Infrastructure under unit test Policies and resource shapes asserted in tests before anything is applied.
* One language across application and platform Shared types and tooling where the same people own both.

## How Pulumi capacity is assigned.

Pulumi capacity is assigned under [devops managed services](https://azendo.co/services/cloud-and-devops/), with readability under incident conditions treated as a review criterion.

## Roles we assign Pulumi for

* [Cloud Engineer Cloud and DevOps](https://azendo.co/services/cloud-and-devops/cloud-engineer/)

## Service lines it sits in

* [Cloud and DevOps](https://azendo.co/services/cloud-and-devops/)

Capacity is agreed as a committed monthly capacity across a discipline, not per skill.

## Related in cloud and infrastructure

* [Terraform — skill we assign for](https://azendo.co/skills/terraform/)
* [AWS — skill we assign for](https://azendo.co/skills/aws/)
* [Azure — skill we assign for](https://azendo.co/skills/azure/)
* [GCP — skill we assign for](https://azendo.co/skills/gcp/)
* [Terraform modules — skill we assign for](https://azendo.co/skills/terraform-modules/)
* [CloudFormation — skill we assign for](https://azendo.co/skills/cloudformation/)
* [Crossplane — skill we assign for](https://azendo.co/skills/crossplane/)
* [Ansible — skill we assign for](https://azendo.co/skills/ansible/)

## Tell us what your roadmap needs Pulumi for.

A service delivery manager replies with the disciplines we would assign, the monthly capacity and what the first month looks like.

[All skills we assign for](https://azendo.co/skills/)
