Machine learning models in production: the maths is the easy part

15 May 2019

There is often too much focus on the research aspects of machine learning. When you’re putting models into production, the maths is only part of the system.

Why is loose coupling between services so important?

14 April 2019

You can’t eliminate coupling between collaborating services, but you can ensure that it doesn’t prevent you from enjoying the benefits of service-based development.

Why the Scaled Agile Framework (SAFe) can be agile kryptonite

23 March 2019

The problem with SAFe is that you can implement it without writing a single unit test or automating a single build…scaled agile may be an oxymoron.

Sharing microservices across large organisations

8 March 2019

Sharing microservices across organisational boundaries is much harder than it looks. There are technical, operational, organisational and financial issues that need to be considered if you want to be successful.

Should teams choose their own languages and tools?

24 February 2019

Standardisation does have a place, but it should be reserved for infrastructure and collaboration rather than languages and tools.

Now that Kubernetes is on Azure, what is Service Fabric for?

9 February 2019

There does seem to be growing confusion over what Service Fabric is really for. Is it an orchestrator for microservices? A means of lifting and shifting legacy applications into the cloud? An application development framework?

Finding service boundaries: more than just the bounded context

6 January 2019

When you are identifying service boundaries, it’s not enough to consider the domain model alone. There are other, more pragmatic concerns to bear in mind.

Custom token authentication in Azure Functions

18 December 2018

Azure Functions only provides direct support for a narrow range of authentication providers. If you want to use an external token provider or custom solution, you’ll have to create the plumbing yourself.

Writing ArchUnit style tests for .Net and C# to enforce architecture rules

27 November 2018

ArchUnit is a java library that provides a fluent API for creating self-testing architectures via unit tests. A similar library can be written for .Net Standard that acts on compiled assemblies rather than raw code.

Why isn't WCF supported in .Net Core?

28 October 2018

Development shops that have invested heavily in WCF have been left high and dry by the emerging .Net Core ecosystem. There are a number of good reasons why WCF for .Net Core is unlikely to make it onto any official roadmaps…

Messaging anti-patterns in event-driven architecture

12 October 2018

Event-driven integration can improve the scalability, resilience and scalability of distributed applications… but this does depend on the design of your event messages…

Hosting .Net Core containers in Service Fabric

12 September 2018

Service Fabric does support container-based applications, but it still feels more like an application server than a container orchestrator.

How I learned to love the “Agile Industrial Complex”

30 August 2018

There is a growing sense of unease around how larger organisations have implemented agile. In particular, there is a tendency towards centralised control that can be at odds with the agile preference for individuals over process.

Building Twelve Factor Apps with .Net Core

12 August 2018

Twelve factor apps provide a methodology for building apps that are optimised for modern cloud environments. It’s only been achievable in the Microsoft world since the advent of .Net Core.

Autonomous bubbles and event streams: Pragmatic approaches to working with legacy systems

29 July 2018

It’s easy to get caught up in unrealistic notions that you can re-write a legacy system or gradually decompose it. There are other, more pragmatic approaches that can help to modernise architectures and enable new development.