Endjin - Home

Mike Larah's Blog

A brief introduction to GTD (Getting Things Done)

by Mike Larah

Getting Things Done (GTD) is a workflow designed to increase productivity and decrease stress. In this post, Mike Larah talks about what’s involved with GTD, and what he learned whilst attending a recent course.


GitHub Actions is GitHub’s new CI/CD platform. It is comparable with Azure Pipelines, which forms part of the Azure DevOps suite. In this post, Mike Larah looks at the similarities and differences in the high-level concepts and terminology between the two platforms.


Passwordless SSH from Windows 10 to Raspberry Pi

by Mike Larah

In this post, Mike Larah explains how to enable SSH on the Pi, how to access the Pi via SSH using a Windows 10 development machine, and how to enable passwordless SSH access to the Pi.


Enforce resource tagging with Azure Policy

by Mike Larah

This blog post details how we used Azure Policy to enforce Azure resources were tagged with appropiate tags and ensured tags were inherited from parent resource groups where possible.


Using PowerShell and the VM Custom Script Extension to download and execute scripts on existing Azure VMs


One of the great benefits of Azure (and the Cloud in general) is the simplicity with which you can create and scale resources. The downside to this is that you can easily lose track what you’ve got deployed, or accidentally create expensive items and leave them running. We wanted a way to track our spending […]


Read about how we set up automated backups of our office security camera footage and used Power Automate to alert us if anything went wrong


My Apprenticeship Retrospective

by Mike Larah

In this post, Mike Larah reflects on his experiences going through the endjin apprenticeship scheme


Mike Larah shares his tips for how to best customize ConEmu to improve your terminal experience for Windows Command Prompy and PowerShell


In this post, Mike Larah discusses how to ensure your C# collections are thread-safe, only run-once, and are lazy-loaded.


One of the great benefits of using SpecFlow is that it allows you to write your specifications in a human readable format. Learn how you can create reusable step argument transformations to apply custom transformations to your parameters, so that you can keep your specifications easy to read.


This post will go through how to write unit tests for your AngularJS app using Jasmine, how to run those tests in Visual Studio with ReSharper and the PhantomJS headless browser, and how to add a build step to your TeamCity CI pipeline to run the tests. The source code for the demo app is available […]


Restrict access to Azure Websites by whitelisting

by Mike Larah

By utilising the IP and Domain Restrictions feature in IIS, it is possible to lock down your Azure Website to only allow access to IP addresses and domains that you have specified in a whitelist. Learn how in this post.


When you run your cloud services in Azure, it is possible to change your configuration settings (app settings, number of instances, etc.) whilst your service is running – either via the Azure portal or the service management API. However, you may want to test how your application responds to these config changes whilst running locally […]


In the previous posts I’ve explained how to set up installers in your application, how to use the content factory, and how to set up the composition framework for ASP.NET. In this post I will show you how to debug the container. If you try to resolve a component that has missing dependencies, the Container will […]


To use endjin composition framework with an ASP.NET MVC 4/WebAPI application, firstly pull in the Endjin.Core.Composition.Web package from NuGet. Following the steps from the previous posts, you can set up your interfaces, concrete types and installers. No further initialization is required though – the package includes extensions for configuring and initializing the container, and also […]


As I explained in this post, the framework provides a set of installers for registering components against interfaces in the container. Another powerful tool in the composition framework is the ContentFactory. This provides methods for registering and getting content based on a contentType string. When getting content, if the contentType is not found in the […]


In the last post I introduced v2.0 of our open source, composition framework. In this post, I’m going to cover a quick example of how to get started with the basics of the endjin composition framework. Firstly, we define an interface for some type Then, we create a concrete type for our interface Now we can […]


We’ve just pushed out version 2.0 of our open-source, component composition framework. This is the framework we use internally day-in, day-out for our dependency injection. The previous version had a dependency on Castle Windsor, but in this new version we have implemented our own container. There are a few reasons we decided to take this […]


Background Twilio is a cloud based voice and SMS service and this post will show you how easy it is to create your own inbound voice application using MVC 4 Web API. The basic premise of how it works is Twilio parses a form of XML called ‘TwiML’, which contains various verbs telling Twilio what […]