
Sign up to save your podcasts
Or


Episode notes: https://threedots.tech/episode/the-distributed-monolith-trap/
We talk about splitting software: when to do it, how to avoid common pitfalls, and why microservices aren’t always the answer. We share stories from past projects where we jumped on the microservices hype train without thinking through the real problems we were trying to solve. The key insight is that splitting software is more about organizing teams and maintaining good boundaries than about technology.
Episode notes: https://threedots.tech/episode/overcomplicated-vs-oversimplified-code/
Quick takeaways
We discuss where complexity in software projects comes from and how to deal with it. There are two common extremes: projects that are overcomplicated because someone applied patterns they saw at a conference without understanding them deeply, and projects that started simple but became a tangled mess as they grew.
Both can be equally difficult to work with. The key insight is understanding the difference between essential complexity (inherent to your domain) and accidental complexity (created by your implementation choices). We share diagnostic signals to identify unhealthy projects and practical advice on matching your tools to the actual problem you’re solving.
Full episode notes: https://threedots.tech/episode/ddd-toolbox-not-religion/
Quick takeaways
In this episode, we discuss why software projects become legacy code that nobody wants to touch.
We talk about how Domain-Driven Design can help, but also why it’s often misunderstood or overused.
Instead of treating DDD as an all-or-nothing approach, we suggest to use the ideas pragmatically - picking the patterns that solve real problems in your project.
We share stories to show how focusing on domain complexity rather than technical complexity leads to better software.
In this episode, we talk about why software projects in regular jobs are delivered much slower compared to side projects, and what you can do about it.
We share our journey from building hobby projects as teenagers to working in professional environments, and the differences we encountered.
Developers are often kept isolated from product decisions and treated as “coding monkeys in golden cages” - just receiving tasks without understanding the why behind them.
We discuss techniques like Event Storming that can help break down these barriers, and improve collaboration between developers and product managers.
After the summer break, we're back with a new season of No Silver Bullet. New episodes every second Wednesday.
Episode notes: https://threedots.tech/episode/ama-1/
Quick takeaways
In this special 10th episode, we answer community questions in our first AMA format before taking a summer break.
We discuss Go’s role in AI development, Clean Architecture implementation, career transitions in tech, and distributed system timeouts.
After the break, we’ll switch to pre-recorded episodes with improved production quality. We still plan running some live episodes like this one, so stay tuned!
Full episode notes: https://threedots.tech/episode/prs-that-get-merged-the-same-day/
Quick takeaways
In this episode, we discuss how to make code reviews fast and effective by keeping pull requests small.
We explore why big PRs are problematic, what causes them, and practical strategies to create PRs that can be merged within a day.
Instead of waiting days for reviews with 200 comments, we focus on techniques that help teams achieve smooth, fast review cycles where work flows quickly from code to production.
Introduction
Full episode notes and transcript: https://threedots.tech/episode/event-driven-architecture/
Quick takeaways
Full episode notes: https://threedots.tech/episode/sync-vs-async/
Quick takeaways
In this episode, we discuss when to choose synchronous versus asynchronous architecture for backend systems.
We talk about the trade-offs between simple, predictable sync communication and the complexity but resilience of async approaches using message queues and event-driven architecture.
Instead of picking one approach over another, we focus on understanding when each makes sense and how to avoid common pitfalls like distributed monoliths and over-engineering.
IntroductionShow Notes
Episode notes: https://threedots.tech/episode/history-of-watermill/
Quick takeaways
In this episode, we share the story of how Watermill, our event-driven library for Go, grew from a side project to a popular open source library with over 8,000 GitHub stars and 100+ contributors.
We discuss the key decisions and strategies that helped make Watermill successful, from focusing on solving real problems to maintaining backward compatibility and building a community around the project.
From the publisher's feed