logo small e ntropitor

Learn to build a Terraform provider from scratch

Master the inner workings of Terraform and elevate your infrastructure as code skills by creating your own provider in any programming language, allowing to use Terraform to manage any service that has an API.

Expert Guidance
Hands-on Learning
Community Support
Enroll Now

Why?

Extensible software is everywhere these days. From code editors that talk with LSP servers (for language features) or MCP servers (for AI features) to Kubernetes (that talks to different container runtimes and storage interfaces) and Terraform that can talk to many cloud providers. All these tools are built in a similar way. By learning to write a Terraform provider, you will learn how extensible software is build and how to build extensible software yourself.

Terraform is the leading Infrastructure as Code tool and is used by many developers and companies around the world. It is a powerful tool for managing infrastructure but it can be complex to use nonetheless. Many developers are expected to know how to use it but are missing some pieces to truly understand how it works.

This makes Terraform a great tool to learn (from). In this course, you will do both. You will learn how Terraform works under the hood and thus how to use it but you will also learn how to build extensible software.

Who is it for?

Do any of these experiences resonate with you? Then this course is for you!

"
I'm very much a beginner at Terraform. Terraform has always been this terrifying beast that I just used. Whenever I work in it, I just copy some code from other developers / examples / Stack Overflow / ChatGPT... but I don't really understand what Terraform does or why it works.
"
I am a intermediate Terraform developer. I understand how to use it but I don't always get what is happening under the hood and I would love to learn more.
"
I am an application developer and I'm very curious to learn how Terraform and other HashiCorp plugins work under the hood. How do they make their applications so extensible?
"
I have written a Terraform provider before in Go. The framework made it very easy, it still don't get what's happening under the hood and would very much like to learn more. I actually also don't understand Go that well so would love to write a provider in my main language.

What You'll Learn

You'll build your own working Terraform provider from scratch in your preferred language!

Core Terraform Concepts

  • How Terraform works under the hood
  • Terraform providers architecture
  • Resources vs. data sources
  • State file management and relevance
  • Terraform's GraphQL similarities

Technical Exploration

  • HCL language fundamentals
  • gRPC and its usage in Terraform
  • Protobuf vs JSON comparison
  • Mutual TLS implementation
  • Provider development best practices

Course Chapters

  • gRPC and other RPC protocols
  • How HashiCorp plugins work in general
  • A first "Hello World" provider using mutual TLS
  • Authenticate with your provider
  • Reading your first data source
  • Creating your first resource: Creating a plan and applying it
  • Updating your resources
  • Deleting your resources: from the state and using the API
  • Importing existing resources into Terraform
  • Documenting your provider
  • Publishing your provider

Prerequisites

The only prerequisite knowledge is some programming skills (you'll be writing your own provider!). You can follow along in your language of choice. It should have a gRPC library and you should be able to make HTTP requests, but many of the most popular languages support this.

Choose your preferred language:

JavaScript
TypeScript
Java
C# / F# / .NET
Python
PHP
Go
Rust
Ruby
Elixir
Swift
Dart
Kotlin
Scala
Objective-C
C++
And many more

Additional Requirements

  • Basic familiarity with Terraform (it's okay if you don't know how to write Terraform programs)
  • Docker & Terraform installed on your laptop
  • Go installation is optional - I'll provide Docker alternatives for all Go-specific steps

Pricing Options

Choose the learning experience that works best for you

Self-Paced

€250/lifetime access
  • Access the complete course materials
  • Study at your own pace and schedule
  • Access to the GitHub discussion forum for help
  • Start immediately after purchase

Live Course

€1,500/per person
  • Interactive 4-day live workshop
  • Small group setting for personalized attention
  • Direct access to instructor for questions
  • Includes all self-paced course materials

No live course currently scheduled

Secure payment

Lifetime access

Expert instruction

Meet your instructor

Instructor

Jens Claes

Terraform Provider Expert & Staff Software Engineer

I was the first person to write a Terraform provider in a language other than Go. Through my journey of reverse-engineering how Terraform providers work, I gained deep insights into Terraform's architecture that I'm excited to share with you.

My goal is to help you understand how Terraform works under the hood, so you can build powerful, custom infrastructure tools and better understand the technology you're using every day.

Frequently Asked Questions

Everything you need to know about the course

What is included in this course?

What if I get stuck?

How can you offer this course with so many programming languages?

Can I immediately start?

How can I get this for my team?

Why are you teaching this course?

Can I get an invoice?

I have more questions

Ready to Master Terraform Provider Development?

Take your infrastructure skills to the next level and join developers who truly understand how Terraform works.

Enroll Now