Simon Brown


Depending on your viewpoint, Simon is either a software architect who codes or a software developer who understands architecture. When he's not developing software with .NET or Java, Simon can usually be found consulting, coaching or training. Simon has also written books about Java, presented at industry events and has put together a training course called Software architecture for developers, which is based upon his software architecture writing at Coding the Architecture.

Twitter: @simonbrown
E-mail: simon.brown at

Recent Blog Entries RSS feed
C4 model poster
A few people have recently asked me for a poster/cheat sheet/quick reference of the C4 model that I use for communicating and diagramming software systems. You may have seen an old copy floating around the blog, but I've made a few updates and you can ...
CRC - Components, Responsibilities, Collaborations
I was reading Dan North Visits Osper and was pleasantly surprised to see Dan mention CRC modelling. CRC is a great technique for the process of designing software, particularly when used in a group/workshop environment. It's not a technique that many ...
One view or many?
In Diagramming Spring MVC webapps, I presented an approach that allows you to create a fairly comprehensive model of a software system in code. It starts with you creating a simple base model that includes software systems, people and containers. With ...
I teach people how to draw pictures
Regular readers will know that I'm a big fan of pictures, especially as a mechanism for communicating the structure of software systems. To this end, I sometimes introduce myself as somebody who teaches people how to draw pictures. This is often said ...
Distributed big balls of mud
If you want evidence that the software development industry is susceptible to fashion, just go and take a look at all of the hype around microservices. It's everywhere! For some people microservices is "the next big thing", whereas for others it's simply ...
Diagramming Spring MVC webapps
Following on from my previous post (Software architecture as code) where I demonstrated how to create a software architecture model as code, I decided to throw together a quick implementation of a Spring component finder that could be used to (mostly) ...
Software architecture as code
If you've been following the blog, you will have seen a couple of posts recently about the alignment of software architecture and code. Software architecture vs code talks about the typical gap between how we think about the software architecture vs the ...
An architecturally-evident coding style
Okay, this is the separate blog post that I referred to in Software architecture vs code. What exactly do we mean by an "architecturally-evi...
Software architecture vs code
I presented two talks last week with the title "Software architecture vs code" - first as the opening keynote for the inaugural Software Design and Development conference and also the next day as a regular conference session at GOTO Chicago. Videos from ...
Beyond software craftsmanship
I had the pleasure of attending the Island Innovators unconference that took place in Jersey last month ... an event co-hosted by Yossi Vardi (the "godfather of Israel's tech industry") and Daniel Seal in conjunction with Locate Jersey and Digital ...