Endjin - Home

Engineering Practices

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 […]


Using Git for .NET development part 1 – what’s Git?

by Alice Waddicor

The first few weeks of my apprenticeship involved a crash course on source control with Git. I’ll be sharing what I learned in a series of blogs, looking at Visual Studio’s Git extension, and the Git client SmartGit. In this blog, I start off with a tour of the fundamentals of version control with Git. […]


After an whirlwind start in Week 1, week 2 gave me a welcome chance to find out more about the ideas that had gone flying past, wrangle with Git, and get more hands on experience working with Endjin’s codebase. Alongside this was a dive into the deep end of client virtualisation project, as I sat […]


A Step by Step Guide to Automating TeamCity Backups

by Howard van Rooijen

Now that you’ve set-up your TeamCity environment, or migrated it from one machine to another, you probably want to make sure that if anything happens to the hardware you’ve installed it on, you can get back up and running quickly. Step 1: Configure Execute-TeamCityBackup.ps1 Execute-TeamCityBackup.ps1 (by Ivan Leonenko) is a great little script for calling the […]


If you’ve been using TeamCity for a number of years, there will come a time where the server it’s running on will reach its end of life and your TeamCity instance will need to be moved to a fresh server. As part of this migration process, you may decide to change OS from Linux to […]


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 […]