“The ratio of time spent reading versus writing is well over 10 to 1. We are constantly reading old code as part of the effort to write new code. …making it easy to read makes it easier to write.”

- Robert C. Martin (a.k.a Uncle Bob)

Uncle Bob, author of Clean Code and many other influential books, also a co-author of the Agile Manifesto, I think it’s safe we trust him on this. I completely agree with him too. Writing new code is the easy part. Trying to work out where to write the code, and how to not break…

If you’re wanting to set up the latest version of SonarQube in 5 minutes either on a home server or perhaps your local workstation I’ve got you covered.

tl:dr https://gist.github.com/peavers/e19fca3efcbc5be975f11624d62354e7

There are millions of blogs and gists floating around the internet on how to do this, but I tried a bunch and I either ended up with either a 404 page, or a database table not existing.

First things first, we are going to use Docker and more specifically docker-compose to get this running.

Reverse Proxy

We need a reverse proxy so we can access the UI of SonarQube at:



Mono Mono on the wall, who’s the largest of them all!

tl:dr https://github.com/peavers/million-dollar-idea

We’ve all heard the rumours and the sayings that monolithic repositories are the devil and to be avoided at all costs. One often-used argument is the pain in the CI/CD process when you make a change to one module the entire stack has to go unless you spend hours fiddling around with build scripts.

Quick note: I’m using a repository with Java and Typescript but this would be equally the same if you just had a single language but multimodule project.

That doesn’t have to be the case

Perhaps you're building a Springboot service…

Chris Turner

Code. Gym. Music.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store