Endjin - Home

Engineering Practices

This blog describes two tools I used last year to take some of the work out of a repetitive refactor. The tools were Visual Studio’s Find tool, with a regex, and Resharper’s Search by Pattern feature – I compare my experiences with the two here. The refactor – adding a class to certain html elements […]


This blog explains how you can use the Git client SmartGit to follow the GitFlow model, which Howard described in his series a step by Step Guide to using GitFlow with TeamCity. GitFlow GitFlow specifies a standard branch structure and workflow for moving changes between branches, which standardise the way a team uses Git, and […]


Elasticsearch gotchas and tips – part 2

by Richard Kerslake

It has been some time since my last post giving tips on the hardware and software requirements for installing and running Elasticsearch on Azure. This post is a further series of gotchas and tips that I’ve picked up on during my journey using Elasticsearch. It is split into 3 broad categories covering various configuration items, […]


There’s a lot of documentation available around NuGet and how to create/publish packages, etc. But when I looked for a simple step-by-step guide on how to test a package locally, I couldn’t find any […]


Last month I wrote a guest blog post for JetBrains; a detailed step by step guide for creating a custom TeamCity MetaRunner to notify NewRelic that a new deployment has occurred based on a case study I wrote earlier in the year called “From Chaos, Through Fear, To Confidence” which details an ALM and DevOps […]


Following on from the previous post in this series which dealt with branching and pushing your changes, this post looks at how you can deal with merge conflicts. I’ll describe when conflicts occur and how they can be dealt with using Visual Studio, and third party Git client SmartGit. The next post in the series […]


Understanding dependency injection

by Alice Waddicor

Dependency Injection (DI) was one of the areas I had to get to grips with when I began my apprenticeship with endjin. Because DI deals with something as fundamental as the creation of new objects, it has been used by all of the applications I’ve encountered here. This blog post sums up what I’ve learnt […]


Getting started with semantic logging

by Richard Kerslake

Semantic Logging A more traditional style of logging is to write a line of text for any significant event deemed worthy of recording. If there is an issue with the application which requires analysis of the logs, it largely requires someone to scan through the log files (of which there could be many) line by […]


This is part three of a set of blogs I’m writing as I learn about Git. In part one, I talked about Git’s distributed architecture, its approach to version management, and its support for frequent branching and merging. In part two, I looked at some of the tools we use to work with Git at […]


This is part two of a series of blogs which I’m writing as I learn about Git, an open source distributed version control system, and find out how it can be used for .NET development. In part one I talked about Git’s distributed architecture, its approach to version management, and its support for frequent branching […]