Skip to main content
Infrastructure as Code
Technology ServicesInfrastructure as CodePulumiVirginia · US-Based

Pulumi Services

Pulumi lets you define cloud infrastructure in TypeScript, Python, Go, or C# instead of a domain-specific language like HCL. For TypeScript teams, this means the same language, the same type system, and the same testing patterns apply to infrastructure code as to application code. We write Pulumi programs that are typed, tested, and organized by the same engineering standards as the applications they support.

Pulumi TypeScriptPulumi CloudComponent ResourcesStack ReferencesAWS ClassicPulumi ESCPolicy as CodeGitHub Actions

Capabilities

What we do with Pulumi

Typed IaC

TypeScript Infrastructure Programs

Infrastructure programs written in TypeScript with full type safety: AWS resource constructors with typed props, compile-time validation of configuration, and IDE autocomplete for every resource property.

Reusable abstractions

Component Resources

Pulumi component resources that encapsulate common infrastructure patterns — a VPC with subnets and routing, an EKS cluster with standard addons, an RDS instance with parameter groups — so that the same configuration is not repeated.

Cross-stack outputs

Stack References

Using Pulumi stack references to share outputs between stacks: the networking stack exports VPC IDs that the application stack imports, without hardcoded values or duplicated resource lookups.

Dev · staging · prod

Multi-environment Stacks

Separate Pulumi stacks for each environment with stack configuration files that supply environment-specific values, so that the same TypeScript program deploys to dev, staging, and production with different inputs.

Pulumi CrossGuard

Policy as Code

Pulumi CrossGuard policies that enforce infrastructure standards across all stacks: required tagging, approved instance types, encryption requirements, and network security rules — evaluated at preview time before any resource is created.

HCL → TypeScript

Migration from Terraform

Migrating existing Terraform infrastructure code to Pulumi, importing existing state and rewriting resource definitions in TypeScript. We do this incrementally by module rather than all at once.

Our approach

Real programming languages eliminate HCL limitations

Terraform HCL has workarounds for loops, conditionals, and dynamic resource creation that become awkward at scale — count, for_each, and dynamic blocks each have edge cases. TypeScript handles these naturally. For infrastructure that needs complex logic, a general-purpose language produces clearer code.

Type safety catches mistakes before apply

Pulumi TypeScript programs are compiled before they run. A misspelled property name, a wrong argument type, or a missing required field is a compile error, not a runtime error that manifests after a partial apply. This is a meaningful improvement over HCL, where many mistakes only surface when Terraform talks to the AWS API.

The same testing patterns apply

Pulumi programs can be unit-tested with Vitest or Jest using mocking, just like application code. Infrastructure logic — which subnets to use, how many AZs to span, what tags to apply — can be tested without provisioning real cloud resources.

State management is equivalent to Terraform

Pulumi maintains a state file that maps declared resources to real cloud resources. We use Pulumi Cloud or an S3 backend for remote state with appropriate access controls. The state model is conceptually identical to Terraform; the tooling differs.

pulumi_spec.json
language: [
"TypeScript",
"Python",
"Go"
]
state: [
"Pulumi Cloud",
"S3 Backend"
]
providers: [
"AWS Classic",
"AWS Native"
]
features: [
"CrossGuard",
"ESC",
"Stack References"
]
testing: [
"Vitest",
"Jest"
]
engineering: [
"Virginia, United States"
]

All engineering work is done by US-based engineers. We do not offshore any development or architecture work.

Part of our DevOps practice

FAQ

Common questions

Virginia · United States

Interested in Pulumi?

If you want to manage infrastructure in TypeScript or need help with an existing Pulumi codebase, reach out and we will discuss the requirements.