Monolith First (2015)
Going directly to a microservices architecture is risky, so consider building a monolithic system first. Split to microservices when, and if, you need it.
A website on building software effectively
Visit martinfowler.com → On Hacker News Jun 2009 – Oct 2026
Software Engineering 66Career & Management 20Tech Industry & Business 15AI & Machine Learning 13Society, Policy & Culture 10Systems & Performance 8
Going directly to a microservices architecture is risky, so consider building a monolithic system first. Split to microservices when, and if, you need it.
Software Architecture is the important aspects of a software system's internal design, usually its major components and aspects that are hard to change.
Technical Debt is a metaphor for the consequences of cruft. You either have to accept a drag on further features (paying interest) or fix the software (paying the principal)
Generated knowledge and chain of thought prompting of an LLM can generate useful code.
Serverless architectures replace a managed server with a collection of third party services and FaaS
A series of conversations between Kent Beck, David Heinemeier Hansson, and Martin Fowler. We discuss Test-Driven Development (TDD) and its impact upon software design.
To be successful at digital transformation you need to optimize the key feedback loops in your software engineering organization
a short post
a bliki entry for Mythical Man Month
three layers of system health, AI as cognitive system 3, what's expensive if agents make coding free, and the future of source code
Notes from my colleagues on AI-assisted software delivery
We usually perceive that it costs more to get higher quality, but software internal quality actually reduces costs.
A catalog of patterns to better understand, communicate, and teach the design of distributed systems
How to split up your large, complex, frontend codebases into simple, composable, independently deliverable apps.
Notes from my colleagues on AI-assisted software delivery
Some notes on the different patterns that may be present when people talk about event-driven architectures.
The usual build-versus-buy rules for applications don't apply to integration
Yagni ("You Aren't Gonna Need It") is the principle that we should not build presumptive features. It should not be used as a justification for neglecting internal quality.
Use two consensus building phases to reach safe consensus even when nodes disconnect
I'm finishing a new edition of my Refactoring book. Here's details and periodic memos about my work.
A memory image replaces database interactions with in-memory data using event sourcing to record persistent changes
I'm finishing a new edition of my Refactoring book. Here's details and periodic memos about my work.
Agile Software Development may be mainstream, but much of what's done is faux-agile, and we need to push back.
Inspired by the strangler figs in Australia, a strangler fig application gradually draws behavior out of its host legacy application
LMAX is a retail financial trading system that can handle that can 6 million orders per second on a single JVM thread. The business logic runs in-memory surrounded by disruptors using event sourcing.
The microservices architecture can be useful, but to know if it's suitable in your context you need to understand its costs and benefits.
Detailed report on the Thoughtworks AI retreat, should we write a manifesto for AI-enabled development, is spec-driven development the return of waterfall, LLMs perform better in healthy codebases
How to build a CLI coding agent
AI helping pharmaceutical researchers query decades of information buried in PDF reports
Leonard Richardson's model for understanding a RESTful architecture as steps in a maturity model. Levels are (1) resources, (2) HTTP verbs and return codes, and (3) hypertext controls.