A simple (yeah, right...) guide to using Redux with React.js

12 February 2017

Learning React.js always starts so well, but adding Redux into the mix can make things unnecessarily complex. The lack of accessible examples doesn’t help - this is an attempt at writing a stripped down, bare bones introduction that focuses on the main ideas behind Redux.

Why agile software architects should write code

28 January 2017

No architect will ever admit to being out of touch with software development. However, unless you are writing code then it’s difficult to avoid becoming an ivory tower or PowerPoint architect that can only discuss systems in the abstract.

Event stores and event sourcing: some practical disadvantages and problems

7 January 2017

Event stores and event sourcing are a powerful idea, but they can be vulnerable to a number of technical and operational challenges when faced with real world complexity.

Forget code coverage – test design should be driven by behaviours

19 December 2016

Test coverage statistics are much loved by management teams and code quality tools. They tend to associate a high level of coverage with robust, well-managed code bases. Wrongly, as it turns out.

Handling Protocol Buffers backwards compatibility between versions 2 and 3 using C#

13 November 2016

You will inevitably be pushed towards upgrading your protocol buffer messages to Proto3, particularly if you want a client that supports .Net Standard that .Net Core. This can be done, but there are a couple of speed bumps along the way.

What's so bad about monoliths anyway…?!

3 October 2016

Don’t get me wrong - I am an advocate of decomposing functionality into autonomous services. My reservation is that you need to have a lot of prerequisites in place before you can start leveraging microservices.

What's in a name? Three-lettered acronyms and their impact on development culture

20 September 2016

Three-lettered acronyms can be a useful tool for providing brevity, but they can also give rise to a coded language that contributes to a cold and impersonal development culture.

PolyBase import and export between Azure SQL Data Warehouse and Blob Storage

13 August 2016

SQL Server Polybase makes it easy to load data into Azure SQL Data Warehouse by letting you define groups of files held in Azure blob storage as relational data tables.

Migrating .Net framework applications to .Net Core

9 August 2016

Migrating existing applications to .Net Core is not a trivial undertaking so you need to be certain of the potential benefits before you start.

Designing an event store for scalable event sourcing

29 July 2016

Event sourcing can scale very nicely, though this does depend on a number of key design decisions for the underlying event store.

Should microservices share technologies and platform capabilities?

28 June 2016

Should agile teams be encouraged to share capabilities or be given total autonomy over their technology choices? For larger organisations this can become a trade-off between economies of scale and speed of delivery.

Is “Serverless” architecture just a finely-grained rebranding of PaaS?

2 June 2016

Serverless computing makes bold promises of development without having to worry about environments, scaling or deployment. Haven’t we been here before?

How do you foster technical excellence in an agile development culture?

22 May 2016

Technical excellence is one of those slightly nebulous phrases with many different interpretations. In an agile context this means removing constraints and it is more than just a team responsibility.

Managing services that don't have clear code ownership

5 May 2016

How do you organise code ownership for services that do not align conveniently with team or organisational boundaries?

What do we actually mean when we say business logic?

14 April 2016

In most cases “business logic” just refers to the poorly-defined “gloop” that sits between user interfaces and databases in layered architectures.