Three Dots Labs
NO SILVER BULLET
Based on nearly 20 years of working together on various projects, we discuss when it makes sense to move fast rather than aim for perfect code, and how to avoid technical debt that can kill your project. We focus on making mindful engineering decisions instead of blindly following rules like “always do X” or “never do Y”. Different situations need different approaches to code quality.
Author
Three Dots Labs
Category
Podcast website
Latest episode
Jan 28, 2026
Where to listen?
Podcasts in the app Replaio Radio Coming soonPodcasts are coming to the app soon. Install now and be the first to see a whole new take on podcasts
Episodes
The Distributed Monolith Trap (And How to Escape It) 28.01.2026 39:02
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 i...
How to Know If your Software Is Overcomplicated or Oversimplified? 19.12.2025 40:48
Episode notes: https://threedots.tech/episode/overcomplicated-vs-oversimplified-code/ Quick takeaways Complexity comes from two extremes - projects fail both when they’re overcomplicated with unnecessary patterns and when they’re oversimplified for a complex domain Essential vs accidental complexity - essential complexity comes from the domain itself and can’t be removed, accidental complexity i...
DDD: A Toolbox, Not a Religion 10.12.2025 54:37
Full episode notes: https://threedots.tech/episode/ddd-toolbox-not-religion/ Quick takeaways Domain complexity matters more than technical complexity - Most projects fail not because of technical challenges, but because they don’t handle the business domain well. DDD is a toolbox, not a religion - You don’t need to use every pattern from Domain-Driven Design. Pick what solves your actual probl...
Becoming a Product Engineer: First Steps 26.11.2025 1:05:38
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” -...
Season 2 Trailer 25.11.2025 0:45
After the summer break, we're back with a new season of No Silver Bullet. New episodes every second Wednesday.
AMA #1: Go and AI, Clean Architecture, Learning, Event-Driven 03.07.2025 1:22:01
Episode notes: https://threedots.tech/episode/ama-1/ Quick takeaways Go in the AI era: Go is excellent for AI applications, as the built-in concurrency makes orchestrating parallel API calls much easier than languages like Python Architecture philosophy: Clean Architecture isn’t always necessary. Start simple and add layers only when you feel the pain of complexity, not because someone said you...
How to Create PRs That Get Merged The Same Day 26.06.2025 1:27:44
Full episode notes: https://threedots.tech/episode/prs-that-get-merged-the-same-day/ Quick takeaways Prioritize reviews over new work - treat PRs as work that’s almost done and needs to be pushed to production quickly Big PRs create a dead loop - when reviews take ages, developers make even bigger PRs to avoid multiple long waits Knowledge sharing is the hidden benefit - code reviews aren’t jus...
Event Driven Architecture: The Hard Parts 05.06.2025 1:25:10
Full episode notes and transcript: https://threedots.tech/episode/event-driven-architecture/ Quick takeaways Event-driven architecture (EDA) is powerful but tricky – it’s great for scaling and decoupling, but has many hidden traps. Observability is essential – debugging async systems without tracing, logs, and correlation IDs is almost impossible. Use the outbox pattern – it’s the safest way to...
Synchronous vs Asynchronous Architecture 29.05.2025 1:27:11
Full episode notes: https://threedots.tech/episode/sync-vs-async/ Quick takeaways Start with synchronous architecture by default - it’s simpler to understand, debug, and maintain for most use cases Async architecture improves scalability and resilience - message queues and events help handle traffic spikes and failures Design matters more than the technology choice - tight coupling creates the...
Watermill: from a hobby project to 8k stars on GitHub 15.05.2025 1:03:56
Episode notes: https://threedots.tech/episode/history-of-watermill/ Quick takeaways Solve real problems first - successful open source projects start by addressing actual needs, not by looking for problems to fit a solution Keep breaking changes minimal - Watermill stayed on v1 for 6 years with no breaking changes in the core library, building trust with users Examples and documentation are cruc...
Unpopular opinions about Go 01.05.2025 1:33:47
Full episode notes: https://threedots.tech/episode/unpopular-opinions-about-go/ Quick takeaways Simplicity isn’t enough for complex applications - while Go’s syntax is simple, complex applications still need proper design patterns; primitive code easily becomes spaghetti code in large projects. Reading the standard library isn’t the best way to learn Go - it’s optimized for different goals than...
Learning Software Skills fast: what worked for us best in the last 15 years 17.04.2025 1:26:47
In this episode, we discuss how to learn effectively as a software engineer. Why some people seem to learn faster than others? What are some practical ways to speed up your learning? Instead of promising magical shortcuts to becoming a principal engineer in months, we focus on a more balanced approach that helps you build skills by mixing theory with practice. Quick takeaways Focus on applying wha...
Is Clean Architecture Overengineering? 03.04.2025 2:02:20
Full episode notes and transcript: https://threedots.tech/episode/is-clean-architecture-overengineering/ In this episode of the No Silver Bullet podcast, we discuss Clean Architecture and whether it's overengineering or a best practice for organizing code. We talk about why the pattern is often controversial, when it makes sense to use it, and how to implement it effectively. We share our expe...
When you shouldn’t use frameworks in Go 03.04.2025 1:37:42
Quick takeaways Frameworks promise productivity but often lead to issues as projects get larger and more complex. The Go community prefers small, focused libraries over frameworks due to Go's design philosophy influenced by Unix principles. Watch out for risks using frameworks like vendor lock-in, deprecation, and costly migrations that can take months. Explicit code is more maintainable than...
When it’s worth to write low-quality code 03.04.2025 1:47:03
Quick Takeaways High-quality code is mainly about keeping good iteration speed over time - can you add features without breaking what works? Not all code needs to be high quality - focus your efforts on the code that's most important, changes often, or creates the most value. The right time to refactor is after you know your product has value, but before technical debt gets too big - make small im...
Similar podcasts
Replaio is not a podcast publisher; show names, artwork and audio belong to their authors and are distributed through public RSS feeds.