Endjin - Home

Development

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


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


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


This has been sitting in my “blogs” folder for some time, with little more in it than a first sentence about the fact that I haven’t written this blog yet. Whilst going over C#, reactive extensions have been one of the things that I have struggled to get my head around the most. I think […]


Overflowing with dataflow part 2: TPL Dataflow

by Carmel Eve

Edit: In case you missed it! Here’s a link to part 1, a general overview of dataflow as a processing technique! The specific implementation of dataflow that I want to talk about is the TPL dataflow library. The task parallel library is a .NET library which aims to make parallel processing and concurrency simpler to […]


Overflowing with dataflow part 1: An overview

by Carmel Eve

In a recent project, I was asked to produce a tool for importing a fairly large amount of data at once, this data then needed to be processed and exported. After much refactoring, I achieved a solution I was satisfied with which used TPL dataflow to execute the processing in parallel. Before I talk specifically […]


When I am learning something new and it’s programming related I normally find the best way to learn is to write my own implementation. I have been reading a lot about dependency injection so I thought it would be worthwhile to create my own DI framework so I could see how it actually works. I […]


Async pitfalls: deferred work and resource ownership

by Ian Griffiths

Asynchronous code has many traps for the unwary. In fact, it has plenty of ground that’s treacherous even for pathologically careful coders. For example, certain ways of using asynchrony can reduce the control you have over concurrency and ordering. This can result in subtle bugs, particularly when the asynchronous work operates on shared underlying resources. […]


(TL;DR This month I learnt a lot about the importance of package management, maintenance and the minimisation of dependencies.) It’s been a little while since my last blog, I’ve been pretty bogged down in a world of packages, .NET frameworks and testing. And it all started with what I thought would be a simple update […]


I’m very excited that Ian Griffiths has joined endjin as a “Technical Fellow”. This is a new career pathway branch we created especially for Ian, as he didn’t really fit into any of our existing roles; his skills and expertise exemplify a pathway that many software engineers desire, but few have the opportunity to achieve […]


Disclaimer: This is not an in-depth overview of encryption and data management, more a slice of the concepts I’ve come across as a relative newcomer to this world (i.e. I’m new, please forgive my relative ignorance). A brief introduction to hashing In order to talk about cryptography, we first need to understand hashing. In a […]


Not coming from a background in computer science, the inner workings of a computer have always been somewhat of a mystery to me. This is something I’ve always meant to remedy but never quite gotten around to. When I transitioned from C++ to C# my main thought surrounding memory management was “well thank god I […]


I’m back! Hi everyone. It’s been a long while since my last blog. *Bows head in shame* Blogging is one of those things I know I should do more often, but I’m still not in the routine in which one needs to be in order to do it regularly. As a consequence, what usually happens […]


OpenAPI Document Converters for Visual Studio 2017

by Howard van Rooijen

In my previous post I documented a technical spike I carried out to see how I could take the OpenAPI.NET SDK and create a Custom Tool in Visual Studio, in particular a Single-File Generator, that could be used to improve the Azure Functions v1 local development experience. Since then the OpenAPI.NET SDK reached v1.0 and while I was […]


OpenAPI code generators for Visual Studio

by Howard van Rooijen

Building RESTful APIs is a common activity at endjin. If you’ve seen our API Maturity Matrix, you’ll realise that we spend quite a lot of time thinking about the strategy, governance, legal, commercial, and operational side of building APIs along with the standard concerns of design, development, quality, infrastructure and support. One of the most […]


My first month as an apprentice at endjin

by Ed Freeman

A little over 10 months ago I wrote a blog which reflected on my summer internship at endjin. Now, a little over 10 months later, I’m sitting in the same office one month into my Software Engineer Apprenticeship after having completed my Maths degree and choosing to come and join the team here, for good. […]


The diversification of .NET technologies – from Windows Desktop Applications using WPF and WinForms, UWP, ASP.NET and ASP.NET Core, “portable” libraries, the various flavours of .NET Standard, .NET Core (and portable executables on MacOS and Linux) – have brought with them incompatibilities, and a huge problem with older (but well-used) libraries that aren’t built for […]