Endjin - Home

Engineering Practices

ILMerge Meta-Runner for TeamCity

by Howard van Rooijen

At the start of every year we do a spot of spring cleaning; we tidy up all of our core intellectual property, harvest any useful code that we’ve written in the previous year, then give it all a thoroughly good refactoring; to ensure that the code is self-referencing all the new patterns and concepts. This has […]


What is Azure Resource Manager? The infrastructure that makes up your application is often composed of various different components. For instance, you might simply be running a web site, but behind the scenes you have an Azure web site deployed, a Storage account for tables, blobs, and queues, a couple of VMs running a database […]


Chaos with a rhythm – controlling innovation

by Matthew Adams

Running a start-up or bootstrapping a new product within an established business can feel pretty chaotic. Ideas develop, explode, or fade into silence. You are pulled in different directions by investors (present and future), customers, regulators, your team, the competition. It seems that everything needs to be done yesterday, but nothing is ever finished. Our […]


At endjin, we love using Gherkin, from “unit”-style tests, all the way through to Integration and User Acceptance testing. In the .NET world, we make use of SpecFlow which has great integration with Visual Studio. With Visual Studio 2015 and its new support for npm/grunt, setting up CucumberJS for gherkin-style testing of JavaScript is pretty […]


The Problem If you use Git (and GitFlow) with Visual Studio (which seems like it is going to become a much more popular combination), I’m sure you are well aware of the pain that is the “merge conflict” you often encounter when trying to merge (or rebase) a branch. There are three file types that […]


SpecFlow Extensions for Azure Storage Emulator

by Howard van Rooijen

In most cases, when writing an integration specifications against Azure Storage, you want to use the real thing rather than the Storage Emulator as the performance profile and behaviours are noticeably different. One exception is if you’ve hosted your code in a public repo; in this case you really don’t want to commit your real […]


One of the great benefits of using SpecFlow is that it allows you to write your specifications in a human readable format. You write your specifications as a series of free-text steps and use step definitions to make the connection between the free-text and your code that executes the step. The step definition contains a […]


Hiring developers is hard. Really hard. I mean, you might think it’s hard trying to hire, say, a commis chef for a restaurant… Actually, that’s much harder. For a start, the working environment is unappealing. It is hot, physically stressful and actively dangerous. The commis is probably about 17 years old, and has to do […]


When faced with the huge number of technologies and services that are now shipping under the Azure banner, it can be pretty daunting. How do you identify the choices that will be right for your solution? And are you making the right price/performance trade-offs? And what is the difference between a web role and a […]


This blog is an addendum to Richard’s recent post about using Azure Automation to run VMs during office hours only. As Richard explains, you can use Azure Automation to create runbooks which contain PowerShell Workflows with the functionality you want to implement (e.g. starting and stopping a virtual machine or cloud service), and link those […]