SN

Sam Newman

Things Sam Says on Podcasts

Where to Find Them

Sam Newman has been a guest on The InfoQ Podcast (4 times) and The Pragmatic Engineer .

Recently: “Building resilient systems with Sam Newman” on The Pragmatic Engineer (October 2026); “Do microservices' benefits supersede their caveats? A conversation with Sam Newman” on The InfoQ Podcast (June 2025); “Sam Newman on Information Hiding, Ubiquitous Language, UI Decomposition and Building Microservices” on The InfoQ Podcast (September 2021); “Sam Newman: Monolith to Microservices” on The InfoQ Podcast (May 2020); “Security Considerations and the State of Microservices with Sam Newman” on The InfoQ Podcast (August 2017).

What They Said

“I'm okay with not looking at the code as long as you're doing other things to make sure the system is operating correctly, and that you're thinking critically about how the system needs to change and evolve. If you're just not looking at the code and you're not caring about those other things, well, then you deserve everything that's going to happen to you.” — Sam Newman, The Pragmatic Engineer

Newman is responding to news of a company dropping human code review in favour of spending the time on design documents. He says he is fine with that from a team that knows what it is doing. His worry is the many companies that drop the review without doing the thinking that was supposed to replace it.

The Pragmatic Engineer · 2026-10-07 Permalink → Listen →
The Pragmatic Engineer
Sam Newman

See, I feel like I've got to channel my friend Charity at this point and say the truth is production. Everything else is the lies we tell ourselves. Production is truth. But I think in terms of like a definition of what the system should be doing, there is this ongoing debate about where is that definition? Is it the code or is it the spec? Brigitte Broccoli did a nice article on Martin Fader's website recently about spectrum development. And she talks about the idea of some companies using being spec first or spec anchored. And a lot of it comes down to where they see the source of truth being. So a lot of companies are using things like Kiro or SpecKit to define a feature and then the LLM executes that spec and you can iterate on that process, right? And so a lot of people, they start off, they use the spec to write the code and then they throw the spec away. And then you get other companies that keep the spec and then when the feature changes, they just update the spec. And so they're sort of seeing a bit, the code and a bit, the spec as a source of truth in terms of what the system should do. And then you're now starting to get companies where they don't even ever look at the code and they just look at the spec. And so we're kind of going on this spectrum. She had some great terms for these. And I think for me, it's like, is that the right path? I don't know. I think there's a lot of questions about what we would need to do to get that. We have a degree of confidence about what happens when I execute a line of Java code beyond the safety of the compiler and the runtime and all that stuff. There's a lot more questions to answer, I think, before the whole world is ready to say the spec is the source of truth of what our system is supposed to do. Production is always going to be the real truth, though, just to be clear. But

Gergely Orosz

I think it's a good question to just ask yourself, however you're building and however you're using agents, of where is the truth of your system right now? Is it more in the code? Do you have a spec? Is it scattered between the minds of people? Which goes back to the collaboration. Because again, a lot of the reality of a lot of startups are is a few people hold these things in their head, right? Which is okay in the beginning. But of course, as you scale, one of the reasons we used to love code review, which is now going out of fashion, but we used to share information. And when someone left the company or got ill or the famous bus factor, it was okay because other people understood because they reviewed they were taking part in that part of it. But now we're, you know, with AI code review is some companies are like, well, we're not going to do it because of it's with too much code. That

Sam Newman

was always one of the superpowers of pairing, right? Pairing, you wrote, if you do, if you do promiscuous pairing, you rotate every day. When someone leaves, everyone's got the same shared context. That was always something people missed around one of the benefits of pairing. I think there's a lot to be said around this. I was chatting to Chris Ford. He's sort of head of software, head of technology for ThoughtWorks in Spain. And he said the biggest problem we've got around AI-driven software delivery is tacit knowledge. There's a lot of knowledge in our heads that we've built up that we don't necessarily know that we have. When you do something like a code review, you've probably had looks at that and it's doesn't really feel right. I wouldn't do it like that. And sometimes it's subjectivity, but sometimes there's something about that that you can't quite pinpoint. Maybe you can unpack it, maybe you can't. But there's also like you have bunches of things like that in your head about how software delivery should be done about how the business works and everything else. If we want to step up that level of abstraction to work at the spec level, we actually need as human beings to be able to unpack that tacit knowledge that we have and make sure it's in the spec if we really want to be hands-off. I also think there's a fundamental problem that we've got in the current way a lot of people are doing software delivery is you've got, I mean, this comes back to the cognitive debt stuff, which is you've got a lot of people running off in different directions. I've seen a few people talking about pairing with their AI assistant. It's not a human. Stop pretending it is. And so you're all going off. You're doing more in a different direction. That shared mental model of the program is breaking down and there's gaps in between. AI was supposed to free us from drudgery, right? And it isn't for most software developers because we're doing more work. We've got more context switching. We're losing that big picture. So I think if we can work collectively on the specs, we can rebuild that model, then that absolutely could be the source of truth. I still think it's going to be parts our brains and part the spec, right? But for that to work, there does have to be the collaboration piece. Whether or not that's our dev teams go from being 15 people all into about five people or six people all in, don't know. But collaboration is really important. You know, ChainGuard are a proper company, right? They do proper stuff. They're X and Firm. They recently announced they were getting rid of any human-based code reviews and they said, we're going to spend. more time working on things like effects you working at design doc level. And actually, I'm okay with that because firstly, I trust that they know what they're doing. But also there's something about, I mean, I think a lot of companies are making the mistake of not doing the thinking, whereas ChainGuard is saying, we're going to spend that time doing more important thinking. Right. And I think that's sort of how we should view this. I'm okay, you know, with not looking at the code as long as you're doing other things to make sure the system is operating correctly. and that you're thinking critically about how the system needs to change and evolve. If you're just not looking at the code and you're not caring about those other things, well, then you deserve everything that's going to happen to you.

Gergely Orosz

Which also goes back a little bit to what Charity was talking about on how you want to have systems that value that works about having empathy, for example,

Speaker 3

for the work that QAs and SRE folks have had to own code in production that they did not write. They don't necessarily read or even understand, but they know how to operate. They know what good looks like in production. They know what it looks like when it goes poorly.

Sam Newman

I mean, that's also a bigger thing that now more developers are having to struggle with, because if you want to do spec-driven development, you have to know what good looks like. I run these sort of half-day conferences for O'Reilly online. We did one recently on software delivery. A load of speakers and about six speakers, and four of them were talking specifically around different varieties of spec-driven development effectively. And all of them came back and says, you can't do this unless you can define what good looks like. And if you can't, don't bother. And, you know, some of those people were much more bullish, like Addy Osama is very bullish on all of this stuff. But one of the presenters who was doing, they've got like a small software fraction, only team or three people, but like they're actively pulling in their observability data, their OTEL stuff, right, into their agent to understand how it's changing. And I think that's exposing, I think, more developers into understanding. I mean, this comes back to the acceptance criteria, stuff people do in stories. They were always very narrow around functional requirement stuff. So now it's like, I think we'd have to be more grown up about those things. The discipline is absolutely important and the expertise is still needed. It's just needed at a different place.

Speaker names from our own diarization · position estimated from where the line sits in the episode
“Would I use that as defense against a distributed denial of service attack? No, because then your distributed denial of service attack becomes a distributed denial of cash attack.” — Sam Newman, The Pragmatic Engineer

Newman is talking about automatic scaling in the cloud. He says it suits a startup hit by a sudden wave of real customers, since you can scale up for the peak and back down after. Against an attack, the same mechanism leaves you with no service and a large bill.

The Pragmatic Engineer · 2026-10-07 Permalink → Listen →
The Pragmatic Engineer
Gergely Orosz

like, I think we're talking about like solving it with when you have same resources, but then we get into things like scaling. Like, can you scale horizontally, add more resources? Because there's two sides of this, right? Like whenever you have it, and so what point can you do that? Or are you going to face a bottleneck because you still have a central whatever? But

Speaker 4

like that's

Sam Newman

a great example of where sometimes mitigations work and sometimes they don't. So an example of something like your product is successful, if you're a startup or whatever, and you suddenly got successful, that success comes like a wave, right? The wave of success hits you and then a lot of it recedes. You'll get a thousand customers in and maybe you'll keep a hundred, maybe, right? That's just how things work. So you need to be up during the peak, but then you probably can shrink down again to keep the costs low. So if you've built your application to have some dynamic scalability in it, and if you're on the public cloud or similar place where you can spin up and spin down, that's a viable mechanism, right? Okay, we can scale up to handle this and that's fine. Would I use that as defense against a distributed denial of service attack? No, because then your distributed denial of service attack becomes a distributed denial of cash attack, right? You go from to no Only having no service, but also now no money because you hit spinning up, you know, nodes on your Kubernetes cluster and Amazon just keep taking the money. It's great.

Gergely Orosz

Yep.

Sam Newman

And you still can't keep up. So that's a perfectly valid mechanism for some things, but you kind of have to know the context in which to say you can't just scale yourself out of trouble.

Gergely Orosz

I think we're going back to a lot of times as like as an engineer, you want to know about the business. You want to know what creates a value, what creates revenue, what is important for the company versus what is not. And then where we want to maybe invest to with our infrastructure, with our reliability, or is this where it doesn't matter and it's not worth doing? It's

Speaker names from our own diarization · position estimated from where the line sits in the episode
“It's just a tool in a toolbox. I've described microservices as being an architecture of last resort.” — Sam Newman, The Pragmatic Engineer

Newman wrote the standard books on microservices, which makes this a surprising thing for him to say; the host's reply is "Really?" His reasoning is that the architecture pushes you into distributing state aggressively, so you need a good reason. The best one, he says, is wanting teams that can work independently of each other.

The Pragmatic Engineer · 2026-10-07 Permalink → Listen →
The Pragmatic Engineer
Sam Newman

I mean, there was always, I mean, also in those sorts of environments. I mean, I was checking people at SoundCloud that's similar about that. And this is also like about a corporate culture and like what was acceptable. Like in that kind of environment, just go and do stuff. It's absolutely fine.

Gergely Orosz

And I think that's why Uber, for example, went in. I just talked with Twan Palm, the C2 at the time, about like what was the real deal about microservices. And he said, Uber, like, he never really wanted that many services, but it was just more of a constraint because Uber had a monolith. The story was like, which he told on a podcast, we'll link it at the show notes below that Uber had this big monolith and it was really slow. It was slowing delivery down. And they needed to move fast because all the other competitors were out there. So they said, all right, like they wanted to get rid of the monolith and put together smaller services, but they knew unless they had a strong mandate that you cannot add new stuff to it, this will never happen. So they said the mandate was everything new needs to be your own service. You take care of it. We don't care. And suddenly so many independent services were born, which was not the goal. And years after the fact that when Uber decomposed the monolith, they're now looking at maybe sense to be merging based on business domain, et cetera. But this story wasn't really told at the time. It was just, oh, look, like Uber has thousands of microservices, almost one or two per engineer, right? And this is what the world saw.

Sam Newman

I mean, it's also though, but this is the reality of microservice adoption is like, it's just a tool in a toolbox. I mean, I've described microservices as being an architecture of last resort.

Gergely Orosz

Really?

Sam Newman

Yeah, yeah, absolutely. Because it pushes you quite naturally to a more aggressive distribution of your state and everything else. And so you have to have a good reason. One of the best reasons to use microservices is if what you actually want is an organization with a high degree of autonomy. If what you want is teams who are able to act independently from each other, the microservice architecture is a fantastically good fit. But then really it's a mean. To an end, right? So that's often what a lot of people get wrong, I think, is they adopt microservices and they think some other magic stuff's going to happen. If you want organizational autonomy, that's what you're working towards. And this is just one of the mechanisms to get you there. And most of the enterprise organizations, the vast majority of ones I've worked with in this space, that's what they're after. They've got huge numbers of developers, lots of middle management. They're not getting much work done. They're thinking, what do we do? Organizational autonomy becomes, you know, the solution to all problems. Again, I don't always get to have to say whether or not it's a good idea. And I think that's where microservices can be especially useful. I mean, there are other exceptions as well. And so an organization like Uber, I mean, and I say, I know at Netflix as well, things like Domain Dream Design weren't talked about at Netflix, but the teams were already fairly well scoped around areas of product already. And so you had those natural high-level boundaries around the business domain. So those things flowed naturally. And so that for me was a logical kind of stepping stone. You also have the difference, and this is something I realized quite early on. When you go and do the work in the dot-coms versus the enterprise organizations, when you

Gergely Orosz

say dot-coms, you mean the digital companies, tech companies.

Speaker names from our own diarization · position estimated from where the line sits in the episode

Collections They Appear In