Endjin - Home

endjin blogs

Think Smarter

C# faux amis 3: variable declarations and type patterns

by Ian Griffiths

This is the final article in my series on faux amis in C#. At last, I will delve into the strange discovery that kicked this all off. C# 8 and faux amis: Introduction C# faux amis 1: discards and underscores C# faux amis 2: tuple deconstruction and positional patterns C# faux amis 3: variable declarations […]

Category: Uncategorized

This is part of a series of articles about faux amis in programming languages—constructs that can fool us through a misleading resemblance to one another: C# 8 surprising patterns (Introduction) C# faux amis 1: discards and underscores C# faux amis 2: tuple deconstruction and positional patterns (you are here) C# faux amis 3: variable declarations […]


My take on the cornerstones of good project estimation and planning. Firstly, a huge thank you to Mike Cohn for his book on Agile estimation and Planning, which I wholeheartedly recommend if you want to know more about these techniques. And also, to Steve McConnell for going into the real details of software estimation in […]


C# faux amis 1: discards and underscores

by Ian Griffiths

This is the second in a series of articles: C# 8 surprising patterns (Introduction) C# faux amis 1: discards and underscores (you are here) C# faux amis 2: tuple deconstruction and positional patterns C# faux amis 3: variable declarations and type patterns In the introduction, I described the idea of faux amis in spoken languages […]

Category: Development

C# 8 surprising patterns

by Ian Griffiths

Recently, I made a surprising discovery. I had downloaded a preview of Visual Studio 2019 and was experimenting with some of the new language features in C# 8, when I discovered something: Switching between var and int can sometimes move type checks from compile-time to runtime. This shocked me. The experimental evidence (which I’ll get […]


11 cheers for binary (And 3 for hexadecimal)!

by Carmel Eve

So, I finally reached a point in my software development education where I could no longer avoid it. I needed to actually learn what binary was… Now a lot of you are probably sat here wondering how on earth I managed to get to this point without knowing, and to be honest, I have no […]

Category: Technology

And here we are, the culmination of a 3-month long journey deep into the realms of Rx operators. If any of you have been here since the beginning, I hope you have enjoyed going on this ride with me, and if any of you are just starting now, here’s my weekly shameless plug for the […]


We’ve had ongoing issues when deploying web and functions apps involving the locking of DLLs during the deployment. The specific case I’m going to talk about focuses on Azure Functions, but you can also run Web Apps from a package (though the Azure Pipelines tooling currently only works for functions, so you would need to […]


ML.NET, Azure Functions and the 4th Industrial Revolution

by Howard van Rooijen

TLDR; There is a lot of hype around AI & ML. Here’s an example of using ML.NET & Azure Functions to deliver a series of micro-optimisations, to automate a series of 1 second tasks. When applied to business processes, this is what the 4th Industrial Revolution could look like. We’re in the 3rd major hype […]


So, this week we are looking at the Buffer and Window Rx operators. (If you have no idea what I’m on about, I suggest you start at the beginning!) There are a few different implementations of these operators, and we are going to focus on the time-based versions. In order to do this, we need […]


We were recently looking for a way to run a script on an Azure Virtual Machine that already existed (i.e. not executing it at provisioning time). Whilst there are ways to do this remotely (using PowerShell remoting, for example), these tend to require updating the VM’s networking configuration to open up ports or allow traffic […]


After a brief foray into Azure AD, we’re back onto Rx! (If you missed part 1 and 2 then might be worth having a quick read – going to gloss over some of the stuff common to both) OnNext(The GroupBy operator) This week we’re looking at the GroupBy operator. This one’s a bit more involved, […]

Category: Development, Technology

So, another year, another random blog topic change! This time we’ve left the world of Rx, and done a hop, skip and leap into Azure! Specifically, Azure AD, permissions and all things service principal. As part of a recent project we needed an Azure Functions App to have access to various Azure resources, including CosmosDB […]


Good Reads in 2018

by Howard van Rooijen

Most people are publishing lists to mark the passing of yet another year. I need a few more weeks to reflect on 2018 @ endjin, but I do have a list of the books (both technical and non-technical) I’ve bought in 2018. The first one is technically a cheat, as I’ve just pre-ordered it. After […]

Category: Culture

In September I joined endjin a Technical Fellow (an entirely new branch in endjin’s career pathway to accommodate me – more on that later). I’ve has been involved with endjin since 2011, as an Associate, helping to deliver some of our most technically challenging projects (and if you go even further back, I attended Cambridge University with endjin co-founder […]


There’s been a little bit of a gap since my last Rx blog, I’ve been pretty busy with keeping up with Advent of Code in any spare time (and I’m sure there will be a blog along those lines at some point in the near future). But, for now, it’s time for a deep dive […]


Explicit interface implementation

by Ed Freeman

A big part of endjin’s apprenticeship is the structured training each apprentice has to undertake. Time is set aside during the working day to do this training – we aren’t obliged to complete our training outside of our contracted hours, unlike what I’ve heard from some of my friends who work in certain financial institutions… […]

Category: Uncategorized

We’re currently building a Data Governance Platform product that enables UK Financial Services organisations to discover and manage the life-cycle, usage, risk and compliance requirements of data assets across the organisation. Much of the core functionality is delivered using Cosmos DB’s Gremlin API to model data lineage and other relationships best represented by a graph […]


In case you missed it… Here’s a link to my last blog on understanding Rx (luckily this blog has an internal buffer so if you’re just tuning in now, you’ve not missed your chance)! OnNext(Understanding of the Rx operators) Now one of the most exciting things about Rx is that it has its own implementation […]


Use-case Here’s the background to this blog: I’ve always found getting csv files into a SQL Server instance much more convoluted than seems necessary. The manual tools provided in SSMS have caused me hours of pain in the past, trying to match-up data types from source and sink. I never seemed to get it right. […]


1 2 3 17