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.
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!
What You'll Learn
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:
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
- 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
- Interactive 4-day live workshop
- Small group setting for personalized attention
- Direct access to instructor for questions
- Includes all self-paced course materials
Secure payment
Lifetime access
Expert instruction
Meet your 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