“Why starting with a monolith is probably better”

I see a number of businesses on an interim and fractional basis. From a software perspective the teams fall into the following patterns:

  • They started with micro-services and are continuing to develop;
  • They started with a monolith and are continuing to develop;
  • They are breaking out a monolith into micro-services;

I’m opinionated on this front, but I have a fair few data-points to back this up across different technology stacks. Generally, the companies that have started out with a micro-services struggle compared to the people who started out with a monolith. …


We’re all familiar with the concept of delivering value as part of product development, especially in the field of software.

However, the value can often be focused squarely on the customer ignoring other initiatives within the business that can significantly impact customer value or the ability to deliver it. Let’s look at three major areas:

  • Architectural Capability;
  • Developer Efficiency;
  • Data Use.
Image for post
Image for post

Architectural Capability

I have a bone to pick with the concept of an MVP — not specifically with the approach. I absolutely agree that the most important thing for a startup is to build something quickly, get customer feedback and iterate…


Embarking on the micro-services journey can be a little daunting. Lots of people walk into this without a complete understanding of what they’re getting themselves into.

This checklist aims to provide you with a list of considerations before you embark on that journey. Stick these in your backpack on your journey, pack some sandwiches as well.

  • The Approach — Greenfield and Brown-field
  • Handling Complex Business Processes — Orchestration
  • Handling Complex Business Processes — Choreography
  • Relational Databases Are Not a Panacea
  • Version your API and Messages (semantic all the way)
  • Developer Build and Release Effort
  • Observability — Service Correlation ID’s Are…

Why planning the near-future is important

Software architecture is a concept that often misunderstood. Let’s come up with the following

Software architecture is the understanding of a system and the constituent parts defined by a set of qualities.

Why is thinking about software architecture important? Well, take the case of the arrangement of a city and the necessary resources. Athens in Greece is a good example of a city where “organic architecture” was applied (or not) as opposed to Copenhagen in Denmark which is referred to as one of the best planned cities in the world.

If you don’t:

  • Consider about the future;
  • Think about what…


Review is an important part of software development, whether that’s asking someone to rubber-duck with you:

  1. A proposed product feature — the happy path, non-happy paths and overall way it integrates with the rest of the system
  2. Your technical design of a given service/API, integration etc… (how you intend to design this with respect to the how — the non-functionals etc…
  3. A pull request for the work you’ve completed to match (1) and (2)

There’s an additional element during review — style and consistency with the rest of the system. This is subjective, unless you’re using linting and common code-styles…


Choosing a technology stack (and as part of that the programming language(s) for your product involves consideration of a number of technical and non-technical factors. Some of the non-technical factors are arguably more important than the technical aspects. Let’s start with outlining some definitions of the technical jargon.

Image for post
Image for post

Definitions

Technology Stack — the components that you will use to build your product. That stack will consist of high-level component namely:

  • Frontend — the presentation part of your application — this may be a web frontend or it may be a mobile (iOS, Android) frontend, typically written in Javascript;
  • Backend — the…


Open Banking can be defined as a set of changes in the way banks handle your financial data. It means that you can securely share your financial data with others, as a consumer. That means I can then use my data to do things such as plan my finances better using Personal Finance Management (PFM) tools linked directly to transactions made.

Open Banking originated from the Competition and Markets Authority and European Parliament adopting a European Commission proposal for PSD2 — (that’s the Payment Services Directive 2) — it’s fintech so get used to acronyms!

Image for post
Image for post

Open Baning means that third-party…


I’m sure there are multiple ways to do this, but this is what I used to get Metabase up and running y’all with Google BigQuery as my reporting database.

GCloud Setup

Make sure you have gcloud setup (developer tools):

and that you’ve done the login, but also that you’ve configured Docker to authenticate with whatever mechanism you’ve chosen.

gcloud auth login
gcloud auth configure-docker

Deploy Metabase to Google Cloud Registry

Metabase docker images are on Dockerhub here. However, I wanted these in Google Cloud Registry for performance and reliability reasons.

https://hub.docker.com/r/metabase/metabase/tags

Pull the docker image locally as follows:

docker pull metabase/metabase:latest

Tag the docker image with the following:


The Chief Technology Officer (CTO) role is an important one in a business. But, not everybody needs a CTO and not everyone needs a full-time CTO!

It’s confusing — I get it! Many people confuse a CTO role with a Senior Developer or perhaps a Technical Lead who is more on the tactical side, rather than strategy.

Let’s look at the cost of the CTO. In the UK you’re looking at £120,000 minimum and in the US, $160000. A CTO will also expect equity in the business — often more than single digits.

So what the heck is a Fractional…


My first experience of Enterprise Java was in 2001, this was pre-J2EE, (let alone JEE) picking up a tutorial binder explaining Servlets, JNDI, Enterprise Javabeans — when CORBA was used to generate the IDL’s, JMS. We didn’t really have a lot of guidance on it and it was pretty new at the time, but that said it was a big learning curve and it went ok. I went on to build several distributed systems on this technology over the next few years.

Image for post
Image for post

Overview

15 years later Eclipse MicroProfile was launched in 2016, after Java and Enterprise Java had hit a bit…

Jonathan Holloway

Consulting CTO (Interim/Fractional) — https://www.hwintegral.com

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