Software Architect, O'Reilly Author and Trainer, Keynote Speaker. Author of "Balancing Coupling in Software Design🍁" and "Learning Domain-Driven Design🐒” 🌱
Almost five long years of blood, sweat, and tears… and it’s finally here! 🙌 Thank you to everyone who helped and supported me—we did it! 🎉 It feels surreal to finally hold it in my hands 🤗
Harnesses are the new browsers
Chrome and IE nudged you toward their owners' web; harnesses will do the same with models. As tokens commoditize, the harness is the next moat
Claude Cowork and Codex dominate lead the pack today. I bet this becomes a red-hot category soon 🔥
"Context engineering" is what keeps coding agents productive. There's a shiny new technique for optimizing your agent's context window and narrowing it to exactly what the current task needs.
That shiny new technique? Modular design. Yes, the same one we've been failing at since the 1960s.
Join the O'Reilly Software Architecture Superstream to learn why modular design is not optional in the AI era, and how to actually achieve it.
https://t.co/Jv8GWjdk0e
Just debuted a new talk at the @InfoShare conference: "AI: The Golden Era of Modularity."
Mid-flow, I cited an article published "a few years ago." It was from last September. 🤦♂️ Recovered with a joke: the pace of innovation makes it feel that way. The audience laughed, so I suspect they feel the same.
Anyone else feel like we've been living in dog years lately?
devdays workshops👇
@vladikk
Modular design in the age of AI-assisted engineering.
@jfversluis
From AI skepticism to shipping software with AI.
@samsonowski
Software design as code, integrated into development workflows.
https://t.co/NjzxifQalv
#devdays#UnstackedEngineering
The principles of modular design are the ultimate leverage point. They let you steer AI from the code it was trained on, toward design that holds long-term value. Ceremony without principle is cargo cult. Understanding the why is key to guiding and verifying AI's how 🧵3/3
Principles > Ceremony
When I wrote Learning Domain-Driven Design, I made a deliberate choice: instead of pages of code listings, I focused on the principles behind the tactical patterns. I wanted to make sure the reader understands why only one instance of an aggregate participates in a transaction, why value objects must be immutable, and the rationale behind other tactical patterns. 🧵 1/3
Today, principles matter more than ever.
AI is the ultimate master of ceremonies. Ask it to implement an aggregate, and there you go: you get an aggregate. Will its boundaries reflect the transactional boundaries inherent in the business domain? Not so fast. 🧵 2/3
Software Engineering history should be mandatory in computer science courses. I see people trying to solve the distributed fallacies with the same problems like EJB, DCOM, and CORBA 😱
Barbara Liskov (Turing Award Winner): "Python has modules, but it doesn't have encapsulation.
It allows code on the outside to muck around with what's going on on the inside of a module. Encapsulation is a crucial part of making modularity work.
And when you're building big programs so you have many programmers working on them, your team is really only as strong as your weakest programmer.
So it's nice if the compiler can enforce things and make certain kinds of bad behavior not possible."
DDD is old enough to drink in the US. But here's the thing: I think DDD matters more in the next twenty years than it did in the last. When code is cheap to write, getting the domain model right is what separates systems that will succeed from the ones that will collapse under their own weight.
Debuting the talk online at Copenhagen DDD. Come join us 👋
https://t.co/8TaVP6L44q
Last week I announced the Modularity plugin for Claude Code. Got so much positive feedback! Thank you all 🎉
From all the messages I received, one stood out: a software engineer who had been trying to surface technical debt, but wasn't taken seriously. Running the /modularity:review skill surfaced the same issues, and the reasoning and risks in the review document helped make the point.
Seeing a machine use the Balanced Coupling model to identify significant architectural issues and design proper modular solutions makes me happy, proud, and somewhat uneasy. I'll leave it at that.
Next version is in the works, hoping to finish this weekend. Currently, the design skill primarily targets greenfield solutions. In the next version it will better support evolving brownfield codebases, and produce implementation plans that coding agents can execute.
If you missed the plugin, give it a try: https://t.co/hjTHncmsPJ
Weekend post, part 3. Another hobby of mine is 3D printing.
With 3D printers, everyone asks the same thing: what are you going to print that you can't just buy?
Well, it takes a while to discover the possibilities they unlock. You start noticing little things that would make your life more comfortable, but that nobody sells. If you're lucky, someone already thought about it and uploaded a model to Thingiverse or MakerWorld. But the real fun is the tailor-made stuff that nobody else thought of. Once you get comfortable with 3D modeling, it's like Lego but a million times more fun 🫠
My home office is full of custom designed things: underdesk mounts for my laptop, dock, recording gear, and a bunch of other stuff. The one on the screenshot is a little riddle. Let's see if anyone can guess what on earth this thing is 🤔
P.S. Hint: it's related to my other hobby that I mentioned in a podcast recently