Nail Your Complex
Go Backend
Become the backend engineer that companies beg to hire.
Learn to design and build backends that survive production.
Great hands-on course that immediately puts the theory into practical example.
Small focused programming tasks and one longer bigger project that is built through the whole course is great for having isolated examples of the concepts and also their place in overall architecture which is often missing in courses/tutorials.
And as a bonus contains clever tool that allows you to work on the examples in any IDE you prefer AND does run robust tests that make sure the code works properly.
Petr Vitek
DeveloperPrevious training verified buyer
You can't buy time
Shortcuts work on a side project. They fall apart when three teams need to ship in the same codebase without breaking each other. We've been shipping production systems for 17 years. Long enough to know which shortcuts end in rewrites.
The Domain Engineer lets you skip the costly production mistakes and architectural dead-ends we already made. Years of hard-won lessons, distilled to what works.
Real-world examples
Toy examples teach toy skills. Real projects have messy requirements and compromises.
In The Domain Engineer, every exercise comes from a scenario you'd hit on a real team. You'll build billing, settlements, and payout systems. The domain is complex enough that different parts need different tools: sometimes a simple CRUD is the right call, sometimes you need aggregates protecting domain invariants. You'll learn to tell the difference.
Hands-On
In real life, you don't work on projects alone. We'll work together as a team. We write the boring code. You write the most enjoyable and critical code.
Not videos you passively watch. Not theory you read and forget. You run a CLI command, write code in your IDE, and tests validate your solution immediately.
It's not another course that feels like homework. It's a training that feels like work on a world-class team.
What will you learn?
Each exercise is a focused, small change. You can finish something meaningful even in a 5-minute session.
Together, we'll build a global food delivery platform from scratch. ~20,000 lines of production Go. Each module needs different patterns. You'll learn when to use which.
The Domain Engineer is a cohort-based training. Modules start releasing weekly after the sale ends. Finishing a week's work requires between 4 and 6 hours of coding for a senior developer.
Going with the cohort is optional. You can go over the exercises at your own pace.
See the full agenda below.
What you will learn
- Know when DDD adds unnecessary complexity and use simpler patterns instead
- Apply only the DDD patterns you need, from light tactical patterns to full strategic design
- Common traps making codebases unmaintainable
What you will learn
- Know which patterns are worth adopting and which add unnecessary overhead
- Present improvements in terms your team and management care about
- Introduce changes incrementally without disrupting ongoing work
What you will learn
- Apply Clean Architecture so domain logic stays independent of infrastructure
- Create clear boundaries between domain, application, and infrastructure layers
- Organize code that multiple teams can work on without stepping on each other
What you will learn
- Use bounded contexts to split large projects into independent modules that teams can own
- Define clear contracts between different parts of your system
- Decide when to extract a separate module and when to keep things together
What you will learn
- Model business rules that reflect real-world problems
- Use factories to handle complex object creation with external dependencies
- Write tests that catch business logic errors, not only technical bugs
What you will learn
- Design the transactional boundaries of your domain model
- Protect data consistency in complex scenarios without database locks
- Handle concurrent operations and bulk updates efficiently
What you will learn
- Decouple your domain from database implementation details
- Make your logic code easier to test
- Handle complex queries without leaking infrastructure details into your domain
What you will learn
- Understand how Event Storming sessions reveal domain complexity
- Transform sticky notes and events into concrete bounded contexts and aggregates
- Bridge the gap between business understanding and technical implementation
What you will learn
- Build a ubiquitous language to communicate effectively with product managers, designers, and domain experts
- Reduce time spent on requirement clarifications and bug fixes
- Create a shared vocabulary that evolves with your project
What you will learn
- Distinguish core domain from supporting code to focus your design effort
- Apply complex patterns only where they have the highest impact
- Stop wasting time on areas that don't need sophisticated modeling
What you will learn
- Understand what users need, not only what's in the ticket
- Extract requirements that translate directly into code structure
- Collaborate with domain experts to build better models
What you will learn
- Add new features without breaking existing functionality
- Refactor legacy code incrementally using DDD principles
- Plan changes that won't require massive rewrites later
What you will learn
- Collaborate with other teams without tight coupling
- Define integration patterns that won't break when other teams change their code
- Protect your code from breaking when external systems change
What you will learn
- Learn how to emit domain events to decouple parts of your system
- Understand the basics of event-driven architecture
What you will learn
- Understand facts and myths about CQRS
- Separate read and write models for better separation of concerns
- Use read models for easier querying and reporting
What you will learn
- Call external APIs from your domain without creating tight coupling
- Shield your domain from external API changes and data models
- Design adapters that isolate your core business logic
What you will learn
- Map between database models and domain objects effectively
- Choose between ORMs, query builders, and raw SQL for your domain complexity
- Avoid the common pitfall of anemic domain models
What you will learn
- Handle external calls from domain entities without violating DDD principles
- Design entities that can make decisions based on external data
What you will learn
- Inject configuration into entities without breaking encapsulation
- Handle feature flags and environment-specific behavior in domain code
- Design entities that adapt their behavior based on runtime configuration
What you will learn
- Write tests that verify business rules, not only technical correctness
- Test complex domain scenarios without complicated test setup
- Use domain tests as living documentation for business rules
Included with the training: early access to the Backend Masterclass beta
11 hands-on modules covering project setup, clean architecture, OpenAPI-first APIs, repositories, component testing, read models, and modular monolith design.
Future updates included.
Become The Domain Engineer for:
This is a net price. Local taxes may apply at checkout.
- Lowest price, guaranteed. The price goes up after every sale. We never run promotions or discount codes.
- Early beta access to Backend Masterclass included. A separate training on backend fundamentals, not yet available standalone. All future updates included.
- Lifetime access with free updates. Pay once, keep it forever. Buyers of Go Event-Driven got the full 2.0 overhaul two years later at no extra cost.
- AI-powered mentor when you get stuck. An AI tutor that knows the codebase and exercises. Ask it anything, anytime.
- Zero risk. Full refund within 30 days after the first module is released. No questions asked.
- Certificate of completion. If someone has this cert, they built the thing. Add it to your LinkedIn or show your employer.
- Use your training budget. Your company probably has budget for this. Buy now, get reimbursed later. We issue invoices.
We are starting in
Stay in your environment. Use your favorite tools.
Real-life projects don't happen in the browser. We let you stay with your favorite tools. VS Code, GoLand, Vim, Emacs? It's up to you.
You want to write all code by hand? Or use Claude, Copilot or Cursor? Our training is compatible with AI-assisted coding.
Our platform guides you through the training. It's a unique experience that helps you learn the fastest way possible: by doing. You won't learn this way anywhere else.
You can solve the exercises at any time that suits you best. You can start the training now, in a week, or a year.
What do graduates like about our platform?
The CLI tool they've got for hands-on exercises is a game-changer. The CLI tool functions like an interactive debugger, giving immediate feedback and validation as you work through coding exercises. I'm looking forward to using what I learned directly in my job.
The Discord community is also a big win. It's not every day you get to chat directly with the people who made the course. They're super helpful and quick to answer any questions. Also, they continuously take feedback and improve the course.
Damian Trzepała
Software Development EngineerPrevious training verified buyer
Real reviews of our previous training
See what professional developers say about our training.
Dima Kotik
Programmer · Verified buyerThe best technical course I have ever bought! It teaches and demonstrates practical engineering excellence that will level you up and leave you with much to think about.
Tobias Andersson
Site Reliability Engineer · Verified buyerWhat is often missing when learning new things is interactivity along with easy explanations for complex technical terms.
This course has all the elements that made it an incredible course, it is interesting, challenging but above all incredibly educational.
JP Fontenele
Senior SWE · Verified buyerThe hands on training is perfect for engagement and drilling down the concepts of event driven. I've done video training before, and don't get me wrong it's certainly possible to learn with them, but comparing to this approach is certainly a step up in the learning process.
Vladimir Stankovic
Engineering Manager, Code Reflect · Verified buyerThis course is absolutely amazing! The course made complex concepts seem incredibly simple, and the explanations were crystal clear. I couldn't have asked for a better learning experience. Highly recommended!
Mohamed Mirghani
Senior Backend Engineer, Tweeq · Verified buyerThe hands-on approach was exactly what I needed it kept me truly engaged and accountable. Unlike passive video courses I could not just breeze through it without understanding the material. The practical exercises forced me to apply what I learned right away.
I highly recommend this training to anyone interested in learning Golang quickly and effectively.
Michal Kozák
SRE, Keboola · Verified buyerPractice beats theory! I have read some books to get me up to speed with Go, but there's nothing better than actually doing it. The AI mentor is goat, helped me get unstuck numerous times.
Muhammad Ilham Hidayat
Software Engineer · Verified buyerBefore I joined Go Event-Driven course from ThreeDotsLabs, I already used their watermill package for event driven applications.
By joining Go Event-Driven course, I realized that I only scratched the surface for watermill package and event driven applications in Go.
I enjoyed and learned a lot from this course.
Kacper Siuda
DevOps · Verified buyerThe Golang Event-Driven training was a highly beneficial experience, especially due to its hands-on approach, which facilitated a deeper understanding and retention of core concepts. Applying the acquired knowledge has brought a new dimension of efficiency and scalability to my daily job tasks.
Viacheslav Ostrovskii
Software developer · Verified buyerThat is a great idea to wrap up all information about event-driven systems in Go and put it in a training with a convenient platform. I must admit quality of training parts, there are no boring videos just best practices, real-world examples and joy of coding.
The Three Dots Labs team created a great product to improve yourself in short period of time. Thanks a ton!
Bastiaan Breemer
Low code developer · Verified buyerGood training for understanding event driven design of applications, with the use of Watermill. It's great that you're able to do this training in your own coding environment, sometimes the error messages are a bit cryptic but for the most part it's easy to understand. From the way they first make you do an exercise and then implement that into a project makes you think about where it would fit inside a real implementation.
Cristo Sun
Senior developer · Verified buyerI really love this course! Unlike books or blogs, you can actually code step by step in this course, which gives you a much more solid understanding. Plus, event-driven programming is going to be the next big thing in the future as software becomes more complex. So, this course is totally worth it for you.
Thanh
Fullstack Developer · Verified buyerThe training is so great to help me understand concepts of event-driven architecture, and technic to apply its to my work. It's included the solutions for my problem when design system with serverless framework like nextjs, trpc. I find like this training so much. Thank you for all awesome work!
Gyanendra Singh
Full stack Developer · Verified buyerAmazing, it's just amazing, the course content is really good and the difficulty is just right, that don't hold your hand through the training neither do they completely leave you, it's in between and perfect combination of both the things.
LuÃs Pinto
Backend Engineer · Verified buyerThe content was really well put together, everything builds upon what we are learning along the way and the approach of the small projects where all the knowledge is tied up together works really well!
This was a really nice course - I'd say that's a 10/10 in terms of value for money. I'm eager to start the next course from Three Dots Labs as soon as it's available!
Fernando Munoz
Developer & Tech Chief, Microplan · Verified buyerI love this course! I was planning to learn Go but I find it very difficult since there was no single source where I could learn about Project structure... Base concepts of Go... Conventions... Concurrency...
All this in a fun and easy way! I think I came to the right place and I would recommend this course to anyone who would like to learn Go! And improve their skills as a Dev.
Sebastian Will
Software Developer, Freelancer · Verified buyerI managed to break the training into smaller sessions to get a good overview about Go during my holidays. The individual topics contain concise information about the language's specifics and can be used as a short and handy reference later on.
The integration into VS code is working great; all in all it's a no fuss, hands-on primer that gets you up to speed.
Daniel Fenert
Architect, G2A.com · Verified buyerVery good training that systemizes essential Go knowledge with simple exercises. Good value for money.
Bilal Islam
Senior Developer, Freelancer · Verified buyerThe Three Dots Labs team created a great training for all Go lovers. I had fun while I was guided to the next step every module. That is to say, I absolutely recommend it to everyone.
Andrés Uris
Software Developer, NaranjaX · Verified buyerGreat training to learn and practice go fundamentals
I have enjoyed and learned a lot from this training. I feel more confident with my knowledge about programming Go and now I have a great foundation that will help me a lot in my journey with Go
Juan Lasso
Del Valle University · Verified buyerThis is one of the best programming courses online and Threedots way of teaching is awesome. The course is easy to setup and the exercises are ready to go!
Yehor Masalitin
Senior Software Engineer · Verified buyerI'm a Senior Software Engineer with experience in Java / Kotlin / Python / JS but I have never tried Go and didn't want to learn it the regular way as it was too boring to go over again of "Imagine that the variable is a box...".
This course was amazing for me, I just learned what is DIFFERENT in Go from all the other languages I worked with. Loved it. Highly recommended.
Anirudh Nitin Bakare
Student, Northeastern University · Verified buyerThe course is well curated to build enough confidence in you to start that next go project. It abstracts the concepts just enough for any developer to understand grasp the syntax and usage. Enjoyed the course.
Kirill
Senior Python Backend Developer, Compel · Verified buyerThis course will be helpful for anyone who wants to quickly learn the basics of Golang. It's also great if you need to figure things out fast and solve a work-related problem using Go. The exercises are well-designed and very similar to real backend tasks you might face when working with Go. Overall, if you're just looking to get started with Go, this course is a solid entry point.
Geovanny Mendoza
Software Engineer, Geovannycode · Verified buyerThe course exceeded my expectations. The combination of theory and practice helped me to acquire new skills and improve my job performance. I highly recommend this training to anyone looking to expand their knowledge and skills in the field.
Dave Chapman
Engineering Lead, Epic Games · Verified buyerReally well thought out hands-on approach to learning Go. Epic use Go quite a bit so it has been useful for me to learn the fundamentals. Highly recommend the training!
Max Wolffe
Sr. Software Engineer, Databricks · Verified buyerGo In One Evening is an incredible way to quickly get a working knowledge of Go!
The training is interactive and follows some excellent teaching patterns (spaced repetition, interleaving, etc). Highly recommend.
Freddy Fostvedt
Machine Learning Systems Engineer, Atlassian · Verified buyerI completed the go in one evening course. It's highly integrated into the IDE and terminal and course progress is easy, fun and fast. The course is comprehensive on basics, very hands-on and problem solving-oriented. I'd highly recommend this to anyone wanting to build experience with the basics of go.
Created by
Miłosz Smółka & Robert Laszczak
Three Dots Labs founders
Over the last couple of years, we gained the trust of the Go community by sharing what we know. We are the authors of the Three Dots Labs blog (270K+ unique visitors per year), and our e‑book: Go With The Domain (60K+ downloads).
We are also authors of the Watermill library (9,628 ★ on GitHub), the most popular Go library for building event-driven and message-driven applications.
We worked in many fields, including infrastructure, complex and global financial domains, healthcare, and security. Along the way, we've built a few startups and led multiple teams. It gave us a broad perspective on software development across different organizations.
We've been building projects together for over 17 years. In 2024, we switched to working full-time on training for experienced software engineers.
When we meet in our free time, we like to cook and eat some steaks and burgers.
So far, 6,300+ Go developers have trusted us with their learning.
What developers say about us on Reddit
Our blog posts and e-book are considered classics in the Go Domain-Driven Design community.
We help engineers grow up to the VP level. At least that's what they tell us.
Our Go example project is the most starred Go domain-driven project on GitHub.
That's the impact of our free content.
Imagine what the full training will do.
Become The Domain Engineer for:
This is a net price. Local taxes may apply at checkout.
- Lowest price, guaranteed. The price goes up after every sale. We never run promotions or discount codes.
- Early beta access to Backend Masterclass included. A separate training on backend fundamentals, not yet available standalone. All future updates included.
- Lifetime access with free updates. Pay once, keep it forever. Buyers of Go Event-Driven got the full 2.0 overhaul two years later at no extra cost.
- AI-powered mentor when you get stuck. An AI tutor that knows the codebase and exercises. Ask it anything, anytime.
- Zero risk. Full refund within 30 days after the first module is released. No questions asked.
- Certificate of completion. If someone has this cert, they built the thing. Add it to your LinkedIn or show your employer.
- Use your training budget. Your company probably has budget for this. Buy now, get reimbursed later. We issue invoices.
We are starting in
Built by Engineers, for Engineers
We're a bootstrapped company building the training we wish existed.
We answer to students, not investors.
By buying this training, you help us create more high-quality learning materials the community needs.
Still not sure?
We're developers ourselves, and we carefully pick our paid tools.
We want you to be sure you've made a good career investment by buying our training.
If you change your mind, you can return it up to 30 days after we release it.
Even if you finish the training within 30 days and don't like it.
No questions asked. We'll just return your money.
FAQ
We're doing our best to make you enjoy the content, and we care about your experience. But it would be arrogant to think we can satisfy everyone.
Our return policy is straightforward to ensure that you'll be happy with the training: you can return the training up to 30 days after we release it.
No reason required. Of course, it would be great to know your reasons, so we're able to improve the training in the future.
We offer volume discounts when purchasing at least 10 licenses (-10%), 20 licenses (-20%), and 30 licenses or more (-30%).
If you want to buy more licenses, please follow this link. The discount will be applied automatically.
You can specify your TAX ID during checkout to receive a VAT invoice. If you want to pay by wire transfer, please contact us at contact@threedotslabs.com.
Yes. Please specify your TAX ID during checkout.
We'd love to do that, but it's not possible as long as there are 24 hours in a day.
Instead, we provide support in a private Discord channel. You'll receive access to private channels after joining the training.
You can buy the training out of your own pocket, and after you have the approval, we will refund your money after receiving the payment from your company. If you need a new invoice, we will issue it for you. If you don't receive budget approval and don't want to keep the training, we can still refund your money within 30 days after the purchase.
Please contact us (contact@threedotslabs.com) after you receive the approval, and we'll take care of the rest!
Yes! We only require that your project implements a given public API, but the implementation is totally up to you. The only place where you depend on provided code snippets is non-project exercises. They are designed so you can practice the techniques that you will later apply to the project.
You need basic Go knowledge: syntax, functions, structs, interfaces, and packages. If you can write a simple HTTP handler and work with a database in Go, you're ready.
You don't need any DDD or architecture experience. The training teaches all patterns from scratch, and tools like Echo, sqlc, and testify are introduced as you go. If you already know DDD from other languages, the training focuses on idiomatic Go implementation, not just theory.
Early exercises are heavily guided with detailed hints. As you progress, you get more room to implement things yourself. Every exercise still includes solution snippets, so you won't get stuck.
Don't know Go yet? Check out our Go In One Evening training. It covers everything you need to get started.
You can implement the training only in Go, but the patterns you'll learn are universal and can be applied in any programming language.
We're considering adding support for other programming languages in the future. If you purchase during this sale, you will receive access to all future updates, including new programming languages.
Modules start releasing weekly after the sale ends. You can always change your mind and request a refund up to 30 days after the first module is released.
You will have lifetime access to the training content, including all future content updates.
One account can be used only by one user.
If you want to buy more licenses, please follow this link.
We offer volume discounts when buying at least 10 licenses. For more details, please contact us at contact@threedotslabs.com.
If you want to buy more licenses, please follow this link.
We offer volume discounts when buying at least 10 licenses.
Yes, it is possible in EUR, USD and GBP. Please contact us at contact@threedotslabs.com for more details. We will need your company details and the number of licenses you want to buy.
Unfortunately, we don't offer any discounts for students, as the training may be too advanced for you. We recommend joining the training once you're more experienced. It'll be more useful this way.
If you have any other questions, please contact us at contact@threedotslabs.com.