Nail Your Complex
Go Backend
Become the backend engineer that companies beg to hire.
Learn to design and build backends that survive production.
If you change your mind, you can return it up to 30 days after the cohort starts.
Engineers learning with us work at
One of the most valuable backend courses I've taken. The training combines solid theory with practical implementation, making it easy to apply the concepts directly to real projects. I've already used several of the patterns and architectural approaches at work with great results.
The content is relevant, well-structured, and focused on real-world challenges. I highly recommend it to backend engineers who want to improve their system design and architecture skills.
Thanh Dao
Software Engineer, Airtasker · Verified buyerEvery exercise is a change
you'd ship at work.
You build a food delivery platform module by module, with feedback in seconds. Theory comes in small pieces, right when you need it.
We've been shipping production systems for 18 years. The Domain Engineer lets you skip the mistakes and dead ends we already made.
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. ~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.
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
No prerequisites from our other trainings
The Domain Engineer builds on the project from our Go Backend Masterclass, but you don't need it to join: you start with the complete codebase, and the first module recaps all the patterns it uses.
Become The Domain Engineer for:
- Start today. Warmup exercises open the moment you buy. The rest opens with the cohort.
- Lowest price, guaranteed. The price goes up after every sale. We never run promotions or discount codes.
- Complete starter codebase included. You begin with the full project from our Go Backend Masterclass and a recap of its patterns. No prerequisites needed.
- 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 up to 30 days after the cohort starts. 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.
Type the code yourself or work with your coding agent. The training is built to work with agents, and the tests verify the result either way.
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.
Real reviews of our trainings
See what professional developers say about our trainings.
NicolΓ‘s Palumbo
Senior Software Engineer, New Relic · Verified buyerThis training goes in depth on a practical project using DDD, explaining as much theory as required to understand what's coming next. The outcome is a neat multi-module codebase that you build on your own with guidance, a working domain model with aggregates, entities and value objects that work well for the domain under question.
The course it's not easy peasy, it requires some time, but you definitely come out learning something.
Pavlo Korchagin
Lead Software Engineer · Verified buyerHaving over 25 years of backend experience, I am extremely selective about training, but as this was my third course with Three Dots Labs, I knew I was in good hands. The Domain Engineer course delivers an outstanding learning path, made even better by their seamless coding platform and knowledge index.
The real value for me came down to how it refined my approach to structuring data, system layouts, and architecture. More importantly, it gave me a strong foundational framework that I can now use to guide and mentor junior developers at work.
Hieu Tran
Front-end Team Leader, Smilegate Vietnam · Verified buyerAn exceptional course on DDD! The architecture feels as powerful and elegant as Zend Framework 2, offering a fantastic blueprint for building cleaner and more adaptable features.
Crucially, this clean structure makes the project much easier to maintain later on, especially when leveraging AI agents for development. It completely matched what I was looking for!
Petr Vitek
DeveloperPrevious training verified buyer
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.
Damian TrzepaΕa
Software Development EngineerPrevious training verified buyer
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.
Dima Kotik
ProgrammerPrevious training verified buyer
The 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 EngineerPrevious training verified buyer
What 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 SWEPrevious training verified buyer
The 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 ReflectPrevious training verified buyer
This 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, TweeqPrevious training verified buyer
The 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, KeboolaPrevious training verified buyer
Practice 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 EngineerPrevious training verified buyer
Before 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
DevOpsPrevious training verified buyer
The 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 developerPrevious training verified buyer
That 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 developerPrevious training verified buyer
Good 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 developerPrevious training verified buyer
I 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 DeveloperPrevious training verified buyer
The 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 DeveloperPrevious training verified buyer
Amazing, 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 EngineerPrevious training verified buyer
The 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, MicroplanPrevious training verified buyer
I 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, FreelancerPrevious training verified buyer
I 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.comPrevious training verified buyer
Very good training that systemizes essential Go knowledge with simple exercises. Good value for money.
Bilal Islam
Senior Developer, FreelancerPrevious training verified buyer
The 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, NaranjaXPrevious training verified buyer
Great 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 UniversityPrevious training verified buyer
This 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 EngineerPrevious training verified buyer
I'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 UniversityPrevious training verified buyer
The 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, CompelPrevious training verified buyer
This 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, GeovannycodePrevious training verified buyer
The 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 GamesPrevious training verified buyer
Really 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, DatabricksPrevious training verified buyer
Go 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, AtlassianPrevious training verified buyer
I 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,924 β 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 18 years.
When we meet in our free time, we like to cook and eat some steaks and burgers.
So far, 8,000+ 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:
- Start today. Warmup exercises open the moment you buy. The rest opens with the cohort.
- Lowest price, guaranteed. The price goes up after every sale. We never run promotions or discount codes.
- Complete starter codebase included. You begin with the full project from our Go Backend Masterclass and a recap of its patterns. No prerequisites needed.
- 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 up to 30 days after the cohort starts. 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 the cohort starts.
Even if you finish the training within 30 days and don't like it.
No questions asked. We'll just return your money.
FAQ
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 build things your way. 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.
We'd love to do that, but it's not possible as long as there are 24 hours in a day.
Instead, you get an AI mentor that knows the codebase and every exercise, plus support in a private Discord channel. You'll receive access to private channels after joining the training.
A real, big one. You start from the complete codebase of our Go Backend Masterclass, so you don't need that training, and grow it into a global food delivery platform with billing, settlements, and payouts. The tests verify every step.
Most exercises take about 10 minutes, so you can make progress on a busy day. It fits around a full-time job.
The cohort runs for 3 weeks, but going with its pace is optional. You have lifetime access, so you can also go through the exercises on your own schedule.
Yes. The training has native support for coding agents, and exercises ship with agent instructions. You can also write every line yourself. Both paths end at the same place: tests verifying that your solution works.
Most of us don't start from a blank canvas. We keep systems running that customers rely on, built on decisions someone made years ago. Agents make it cheap to revisit those decisions, and just as easy to get them wrong.
You can't review what you don't understand. Your agent will write the endpoint. It will also decide what to put in the domain layer, and it won't tell you when it got it wrong. You learn to catch that by making those calls yourself and seeing what breaks.
We're doing our best to make you enjoy the training. But it would be arrogant to think we can satisfy everyone.
You can return it up to 30 days after the cohort starts, even if you finish everything first. That makes the whole training your trial. No reason required, though we'd love to hear it.
We're confident the content delivers, so we can offer such a flexible policy and still have a super low refund rate.
We keep rules like these for our own agents too, and most of the time they work.
But knowing how to architect code, especially in the complex cases, is what makes you notice when the agent doesn't follow a rule. Then someone has to decide whether to bend the rule or keep it. That takes the understanding this training builds. It also makes your rules better, because you know why each one is there.
Tutorials and AI chats explain how it works. The training makes you build it on a real project, by hand or with your coding agent. The tests tell you in seconds whether you got it right.
Agents are one more level of abstraction, like an ORM on top of SQL. You can use an ORM without knowing SQL. But knowing SQL is what makes you good with an ORM, and knowing how a backend works is what makes you good with an agent.
Fair question, since every guru says something different. We've been shipping production Go since 2017, across financial systems, healthcare, and infrastructure. We wrote Watermill (9,924 stars on GitHub) and the Three Dots Labs blog (270K+ readers a year).
More importantly, the training teaches tradeoffs, not dogma. You'll see where a pattern pays off and where it's overkill.
Not if you know when a pattern is worth it. We've watched overengineering kill velocity on teams we led: two-day features turning into two-week refactors. A good part of our blog argues against exactly that.
Each module starts with the smallest thing that works, then shows where a pattern starts paying off. You'll know when complexity is worth it and when to skip it.
The cohort starts when the sale ends, and new modules open every week from then on. Warmup exercises open the moment you buy, so you can start right away.
You will have lifetime access to the training content, including all future content updates.
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.
If approval won't come before the sale ends, buy it yourself now. Once your company approves, email us at contact@threedotslabs.com and we'll take care of the rest: your company pays us, and we refund you, with a new invoice if you need one. No approval? The 30-day guarantee still applies.
For a VAT invoice, add your Tax ID at checkout. To pay by wire transfer in EUR, USD or GBP, email contact@threedotslabs.com with your company details and the number of licenses.
One license is for one person. Buying for your team? Volume discounts apply automatically in the cart: 10% from 10 licenses, 20% from 20, and 30% from 30.
If you have any other questions, please contact us at contact@threedotslabs.com.