Endjin - Home

Carmel Eve's Blog

A couple of weeks ago I had the opportunity to attend NDC in Oslo. It was an absolutely brilliant experience, and my head is still reeling a bit from everything I learnt! The focus of a lot of the talks was around neural networks and machine learning – something which we have explored quite a […]


So, this week I’m moving on from the creational patterns (though I might return at some point) and moving on to the structural design patterns! Structural design patterns are ones that deal with the relationships between different elements. Essentially, they define how different parts of the code interact with and relate to each other. This […]


Here at endjin we spend a lot of time working with data, and securing that data is top on our list of priorities . Therefore, anything we can do to reduce the need for storing access keys is a huge win! (Here is a guest blog from Barry Smart at Hymans Robertson which details our […]


So, the other week I took a look at the Factory Method and Abstract Factory design patterns. This week I’m continuing with the creational design patterns, this time focusing on the builder pattern! The builder pattern is used when there is complex set up involved in creating an object. Like the other creational patterns, it […]


I’ve just completed my first year working full time for endjin, after I joined as an Apprentice II last May. And without sounding too much like a cliché, time has truly flown. In the ins-and-outs of daily working life I haven’t really noticed the huge progress I’ve made in the last year, but as we […]


I’ve been focusing lately on code quality, refactoring and architecture. A large part of my reading (& Pluralsight course-ing) has been based around design patterns, and how the application of these patterns can help bring your code in line with the SOLID principles. This means that code which uses these patterns is often more extensible, […]


I recently wrote a blog on using ADF Mapping Data Flow for data manipulation. As part of the same project, we also ported some of an existing ETL Jupyter notebook, written using the Python Pandas library, into a Databricks Notebook. This notebook could then be run as an activity in a ADF pipeline, and combined […]


Firstly, I should start by calling out the fact that there are different types of architecture. For example, enterprise architecture focuses on strategy rather than code. It is the strategy for how people, processes, technology etc. is utilised across an organisation in order to be effective and efficient. The type of architecture I will be […]


As part of a recent project we did a lot of experimentation with the new Azure Data Factory feature: Mapping Data Flows. The tool is still in preview, and more functionality is sure to be in the pipeline, but I think it opens up a lot of really exciting possibilities for visualising and building up […]


For those who don’t know, I am currently in the process of carrying out a full code review and improvement of some of our internal code using NDepend. To find out more about the quality measures that NDepend uses to analyse the code – read my first blog in this series! Otherwise, let’s press on! […]


Over the years we’ve built a lot of IP up here at endjin. With a growing codebase, and with my training shifting to look at software architecture, I thought I’d attempt a code review to see what insight I could gain! So… Here goes nothing! The tool I chose to carry out this review is […]


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


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


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


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


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


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


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