Migrating to serverless — a story of lessons learned

I recently migrated a GoLang API service from Cloud Foundry to serverless. For those that don’t know, CF (Cloud Foundry) is an open source PaaS (Platform as a Service).

I nearly wrote this blog as a transcription of what I did and why as going through my serverless experience, then I realised that I had a good chance of making you look like this…


So, keeping with the theme of trying to keep you awake we are going to focus on what we learned. Strap in this could get pretty wild! Continue

Are you ready to accelerate your Cloud Native journey?

Something Doesn’t Add Up: Why monitoring the wrong metrics can do more damage than good

Many organisations are starting to realise that there is value in metrics and monitoring of distributed systems. Typically, a team of software engineers build dashboards to display the number of transactions in-flight throughout parts of their system in real-time while operations teams build dashboards to visualise hardware utilisation or the size of an ever increasing database.


However, rarely does anybody ask if this information that will be radiated is actually useful. What value are these metrics providing? continue

Are you ready to accelerate your Cloud Native journey?

TDD — Choosing the Right Intermediate Steps

In this article, I show the importance of considering the right steps to make when doing TDD. I show that a seemingly simple addition to the code might introduce more complexity than expected — leaving code which is not covered by tests. I also show how taking the wrong steps can get in the way of the red-green-refactor cycle of TDD


An Example

I’m going to use an example. The aim is to create a Twitter-like social network application, where the user has a feed of messages.... continue

Are you ready to accelerate your Cloud Native journey?

Which Order to Write Your Tests?

I’ve seen many people do the Fizz Buzz TDD coding kata for the first time. For this kata, you typically use the red-green-refactor cycle, while working through a sequence of input numbers to test. One thing I have observed is that often the way the problem is described to the developer affects the sequence they choose to solve the problem.


In this article, I consider some common sequences I have seen. I then offer some thoughts about choosing the best path to take when solving a problem using TDD.... continue

Are you ready to accelerate your Cloud Native journey?

Introducing New Development Practices to a Team

Many companies have recognised the need to introduce new practices into their software teams. However, we often hear questions like “How do I convince managers to let us do TDD?” and “How do we get our development teams to pair program?”. In this article, I suggest that by investing in and empowering software development teams, these questions should never need to be asked.


Most development teams want to increase the quality of what they are creating. Meanwhile, most management teams want the developers to perform better (i.e. deliver faster and more consistently). We now have good evidence that increasing quality is actually the best way to improve performance.... continue

Are you ready to accelerate your Cloud Native journey?

Dependencies and Delivering On Time

It can be hard sometimes for me to visualize how dependencies and work in progress (WIP) affect delivery. In this article I’m going to try to show you how to put a rough number, a probability, to a projects ability to deliver on time. We’re going to do this with a easy to use logic tool: Truth Tables.


Before I continue it’s probably worth talking about what a dependency is in the context of this article.... continue

Are you ready to accelerate your Cloud Native journey?

When to use Named Arguments

Our Engineer Tom recently found himself doing some work in Python and started questioning when he should be using named function arguments. After pondering for a while on personal preference, he realised that there was a more factual answer based on the ideas of Connascence.


In this article, he introduces these concepts and demonstrate one way in which connascence can help you write better code.... continue 

Are you ready to accelerate your Cloud Native journey?

A Modern Guide to Mobbing (No Pitchforks Required!)

When you think of mobbing, you would be forgiven if the thought of angry crowds, riots and frenzied looting springs to mind. However, as our Engineer Darren explains, in the context of Mob Programming, the reality is actually quite different.


We’ve all heard of XP (Extreme Programming), right? Mobbing uses XP as it’s foundation allowing teams and organisations to reap the benefits of Pair Programming/XP but on a much larger scale. Firstly, you need a team of 3–5 people in a room, gathered around 1 single computer. This team will work only on this single computer, on a single task in a single room.... continue 

Are you ready to accelerate your Cloud Native journey?

It’s a Multi-cloud World. Here’s How to Consume It Successfully.

We enjoyed reading this article on how to successfully consume a multi-cloud world, written by our friends over at Pivotal:

I’ll admit that I watched the 2018 Nathan’s Hot Dog-Eating Contest. Don’t judge me. It’s awe-inspiring—and super gross—to see a human being consume 74 hot dogs in ten minutes. But it’s an annual tradition, and highlights a food item that’s associated with summertime. We often adjust our diet based on the season or what we’re into at the moment. There’s no doubt that you’re into public cloud right now, and making it a big part of your I.T. “diet.” I don’t think public cloud is a seasonal fad—it’s representative of a long-term change in how you consume infrastructure.

Courtesy of nathansfamous.com

Courtesy of nathansfamous.com

Just as you need to prepare yourself to ingest dozens of hot dogs in a few minutes, you need to ask some important questions before consuming lots of public cloud. Is lock-in a real thing? What if you’re using more than one cloud? How do you decide what goes where...? Continue

Are you ready to accelerate your Cloud Native journey?