How to Successfully Implement a Decentralised Organisational System

As an IT Project Manager, I have the opportunity to work on different projects with various clients, suppliers, and business functions. It allows me to observe and learn how different businesses, departments and teams actually operate. I have always been interested in how organisational structure can impact projects. So often project success or failure is [...]
Read more

The Future of Cloud Applications in a Hybrid World

Our Senior Consultant, Chris Priest joined the live panel discussion on May 10th to discuss the latest trends, technologies and future predictions for hybrid cloud infrastructures. Watch this interactive Q&A session to hear from Cloud, MSP and Infrastructure experts on: - The future of data services for hybrid cloud platforms - How to modernise your [...]
Read more

Azure Functions – Significant Improvements in HTTP Trigger Scaling

Wednesday, 9 May 2018 A while back I wrote about the improvements Microsoft were working on in regard to the HTTP trigger function scaling issues. The Functions team got in touch with me this week to let me know that they had an initial set of improvements rolling out to Azure. To get an idea of [...]
Read more

C# Cloud Application Architecture: Commanding via a Mediator (Part 5)

Wednesday 18th April 2018 Over the last 4 parts of this series we’ve taken a simple application built around a layered architecture and restructured it into an application based around dispatching queries and commands as state through a mediator. We’ve seen many of the advantages this can bring to a codebase; reducing repetition and allowing [...]
Read more

Identity Tech Talk: Deploying a Robust Identity Platform to Azure

I recently spoke at the London Identity Tech Talks meetup where I discussed the journey to deploy the latest ForgeRock Identity Platform stack to Kubernetes in Azure. I talked about my initial thoughts, the reality, the challenges and the threats, how they were mitigated, as well as the vision. Topics covered: Cloud practices, especially around [...]
Read more

Tech for Good

We can easily get caught up in the latest consumer technology. But what about tech with a conscience? The good use of technology can improve the lives of people across the world, groups of people that need help not only with food supply and medical help but also with reducing waste and lowering crime. I [...]
Read more

Fixing a Common IoC Container Anti-pattern

An anti-pattern I’ve often seen over the last few years involves the registration of dependencies in an Inversion of Control (IoC) container at the root of a project (or in a dedicated “IoC” project) – an approach enabled by making every class in every assembly in the codebase public. It’s amazing how common it is, [...]
Read more

Azure Functions – Scaling with a Dedicated App Service Plan

After my last few posts on the scaling of Azure Functions I was intrigued to see if they would perform any better when run on a dedicated App Service Plan. Hosting them in this way allows the functions to take full advantage of App Service features. However, to my mind, this is no long a [...]
Read more

How to Automate your Email Testing Part 2

In part 1 of this guide we looked at how we can use Mailtrap.io to intercept our SMTP traffic before our emails are sent out. In this section we're going to use IMAP to talk to our Gmail account, offering more of an end-to-end test, as well as covering cases where the SUT doesn't call SMTP [...]
Read more

Azure Functions vs AWS Lambda vs Google Cloud Functions – JavaScript Scaling Face Off

I had a lot of interesting conversations and feedback following my recent post on scaling a serverless .NET application with Azure Functions and AWS Lambda. A common request was to also include Google Cloud Functions and a common comment was that the runtimes were not the same for .NET Core on AWS Lambda and .NET [...]
Read more

How to Automate your Email Testing Part 1

Click here for part 2  A key part of any identity process involves the sending of emails for things like account verification, forgotten password and security updates. Testing these can present several challenges as there are usually 3rd party services involved (you're unlikely to be including a custom SMTP server and mailbox with your project!) [...]
Read more

C# Cloud Application Architecture – Commanding via a Mediator (Part 4)

In the last post we added validation to our solution. This time we’re going to clean up our command handlers so that they are focused more on business / domain concerns, and we’ll be pulling out the infrastructural concerns. After that we’ll add some telemetry to the system to further reinforce some of the benefits of the [...]
Read more

Azure Functions v2 Preview Performance Issues (.NET Core / Standard)

I’ve been spending a little time building out a serverless web application as a small holiday project and as this is just a side project I’ve taken the opportunity to try out the new .NET Core based v2 runtime for Azure Functions and the new tooling and support in Visual Studio 2017. As soon as [...]
Read more

C# Cloud Application Architecture – Commanding via a Mediator (Part 3)

The source code for this post can be found on GitHub: https://github.com/JamesRandall/CommandMessagePatternTutorial/tree/master/Part3 Click here for part 1 In the previous post we simplified our controllers by having them accept commands directly and configured ASP.Net Core so that consumers of our API couldn’t insert data into sensitive properties. However, we’ve not yet set up any validation so, for [...]
Read more

Global Media & Entertainment Hackathon: 40 hackers, 2 days, 1 winner

Hackathons can be great fun, a chance to get creative and to learn new skills. It had been several years since I’d had the opportunity to attend one, so I was excited when I was asked to attend Global Media & Entertainment’s in January. With the focus for the two days around big data, we [...]
Read more

Life as a Developer: The Joys of Learning

One of the joys of working as a developer is the opportunity it presents to continually learn and improve. Whether you choose to specialize and go deep into a topic or set of technologies or work more broadly as a generalist, things are always moving on and there's also scope for refining one’s knowledge of [...]
Read more

Azure Functions – Queue Trigger Scaling (Part 1)

I’m a big fan of the serverless compute model (known as Azure Functions on the Azure platform), but in some ways its greatest strength is also its weakness: the serverless model essentially asks you to run small units of code inside a fully managed environment on a pay-for-what-you-need basis, that in theory will scale infinitely in response [...]
Read more

Dealing with Dynamic Data (almost) without Reflection

Often you need to manipulate a data structure without knowing it's shape at compile time i.e. when authoring classes that expose generic interfaces or dealing with data described by runtime metadata (database schema, JSON files etc.). For example, consider a method that is designed to generate a hashcode from the public properties of an arbitrary [...]
Read more

Functional Programming with Ramda

Immutable. Stateless. Declarative. Pure. Compositions. Functions. These are just a few things that come to one's mind when thinking about functional programming. In this post, I’m going to delve a bit deeper into the functional world and specifically, explore the awesomeness of currying and function compositions. Currying Currying is a way to partially apply arguments [...]
Read more

Amido DevOps Academy

Rhys Bushnell talks about his experience of the Amido DevOps Academy. Interested in a career in DevOps? Check out our join us page for a full list of vacancies.
Read more