Endjin - Home

Development

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


Digital Transformation is the buzzword of the moment; organisations are trying to reconfigure themselves to operate in the digital age. One of the key enablement strategies involves putting APIs at the heart of the organisation to centralise access to data, logic and value, while removing those traditional barriers that prevent collaboration between organisational silos. APIs […]


How to plan your cloud transformation journey

by Howard van Rooijen

This week I received an email from someone who asked how they could use our free Thought Leadership content to help their organisation move to the cloud. I realised that although we’ve released a lot of content, we’d never talked publicly about the rationale behind them and how they are all interconnected. Our Thought Leadership […]


Azure Tech Selector – 2017 Edition

by Matthew Adams

A couple of years ago we put together the Azure Tech Selector – a handy poster which walks you through the technology choices you can make for common cloud workloads. Now, two years later, the number of services provided in the Azure ecosystem has multiplied (and the types of workload have become more sophisticated). Revisiting […]


2 Day Microsoft Bot Framework Hackathon with Watchfinder

by Howard van Rooijen

Jonathan Gill CTO, Watchfinder Jonathan Gill is CTO at Watchfinder. Watchfinder buys watches from members of the public, returns them to as new condition, warranties them, and sells them back to the public via their website and retail stores. They have grown to 120+ staff, and turnover £70 million per year. On the 3rd of […]


This month, I’ve completed my three year apprenticeship at endjin – a big landmark in a journey that started with enrolling on a computing MSc several years ago. Endjin’s apprenticeship is a custom programme which aims to bridge the gap between new entrant and competent developer. The scheme was set up in recognition of the […]


Is JavaScript still dead?

by Matthew Adams

TLDR; Yes. But its successor is still called JavaScript, except when it isn’t. The long, slow death and resurrection of JavaScript Back in my 2015 programming languages post I observed that, while JavaScript had pushed its way back into the top 10 programming languages, over at TIOBE, it was still a dead language walking. My reasoning was […]


One very useful but little used pattern when working with Resource Manager templates, is the ability to use parameters to optionally deploy resources, constrain certain resource configurations based on other user defined parameters, or to toggle parameters based on other values. To give a couple of concrete examples, imagine we have a highly reusable template […]


tl;dr – I set up automated backups of our office security camera footage and used Microsoft Flow to automate alerting if anything went wrong. At endjin HQ, we have an office security setup using multiple cameras managed by Surveillance Station, an application on our on-site Synology NAS drive. Surveillance Station handles the recording schedules and stores […]


Guest Blogger – Ed describes his three month paid summer internship at endjin Ed is studying a Mathematics BSc at UCL. He made contact in January because he was looking to gain some real world software development experience during his summer break, before his final year at University. During his three month internship we tried to expose him to as many different […]