Skip to content
  1. We help small teams achieve big things.
  2. Our Technical Fellow just became a Microsoft MVP!
  3. We run the Azure Weekly newsletter.
  4. We just won 2 awards.
  5. We just published Programming C# 8.0 book.
  6. We run the Power BI Weekly newsletter.
  7. Our NDC London 2020 talk is now available online!
  8. We are school STEM ambassadors.

James Broome

James Broome

Director of Engineering

View full profile

James has spent nearly 20 years delivering high quality software solutions addressing global business problems, with teams and clients across 3 continents. As Director of Engineering at endjin, he leads the team in providing technology strategy, data insights and engineering support to organisations of all sizes - from disruptive B2C start-ups, to global financial institutions. He's responsible for the success of our customer-facing project delivery, as well as the capability and growth of our delivery team.

A simple invite user flow for AAD B2C (without custom policies)

A simple invite user flow for AAD B2C (without custom policies)

James Broome

Azure AD B2C is easy to integrate and configure for simple sign-in / sign-up authentication. But there's a step change in complexity as soon as you want to do something outside of the built-in user flows. An "invite user" flow is one such example, but it's also a fairly common requirement in any business or team orientated SaaS application, which makes AAD B2C as less attractive choice. This post describes an alternative approach for this authentication feature that avoids the need for AAD B2C custom policies, allowing you to keep authentication as simple as possible.
Azure Synapse Analytics: How serverless is replacing the data warehouse

Azure Synapse Analytics: How serverless is replacing the data warehouse

James Broome

Serverless data architectures enable leaner data insights and operations. How do you reap the rewards while avoiding the potential pitfalls?
Benchmarking Azure Synapse Analytics - SQL Serverless, using .NET Interactive

Benchmarking Azure Synapse Analytics - SQL Serverless, using .NET Interactive

James Broome

There is a new service in town that promises to transform the way you query the contents of your data lake. Azure Synapse Analytics comes with a new offering called SQL Serverless allowing you to query your data on-demand with no need for pre-provisioned resources.When we heard about the new service we were keen to get involved, so for the last 10 months we've been working with the SQL Serverless product group to provide feedback on the service and to help ensure it meets our customers needs. During this time we've put it through it's paces by implementing a range of real-world use cases. We were particularly interested to see how it stacked up as a replacement for Data Lake Analytics, where to date there has been no clear and easy migration path.

Carmel Eve

Carmel Eve

Software Engineer I

View full profile

Carmel has recently graduated from our apprenticeship scheme.

Over the past four years she has been focused on delivering cloud-first solutions to a variety of problems. These have ranged from highly-performant serverless architectures, to web applications, to reporting and insight pipelines and data analytics engines. She has been involved in every aspect of the solutions built, from deployment, to data structures, to analysis, querying and UI, as well as non-functional concerns such as security and performance.

Throughout her apprenticeship, she has written many blogs, covering a huge range of topics. She has also given multiple talks focused on serverless architectures. The talks highlighted the benefits of a serverless approach, and delved into how to optimise the solutions in terms of performance and cost.

She is also passionate about diversity and inclusivity in tech. Last year, she became a STEM ambassador in her local community and is taking part in a local mentorship scheme. Through this work she hopes to be a part of positive change in the industry.

Carmel won "Apprentice Engineer of the Year" at the Computing Rising Star Awards 2019.

A simple pattern for using System.CommandLine with dependency injection

A simple pattern for using System.CommandLine with dependency injection

Carmel Eve

Have you tried using the new System.CommandLine packages? This blog shows you how to build up a command line tool quickly and easily, using dependency injection for the initialisation.
How to fully initialize types in their constructor with C# nullable using the async factory pattern

How to fully initialize types in their constructor with C# nullable using the async factory pattern

Carmel Eve

This blog gives an example of a pattern used for asynchronous initialisation. This pattern allows you to construct readonly objects. It also allows you to use the new nullable references features to ensure your classes are always fully instantiated.
How to prepare for Exam AZ-204: Developing Solutions for Microsoft Azure

How to prepare for Exam AZ-204: Developing Solutions for Microsoft Azure

Carmel Eve

Carmel recently passed the 'Az-204 - Developing Solutions for Microsoft Azure' exam. Here she shares how she went about preparing!

Ed Freeman

Ed Freeman

Software Engineering Apprentice III

View full profile

Ed is a 3rd year Apprentice Software Engineer helping to deliver projects for clients of all shapes and sizes, providing best of breed technology solutions to industry specific challenges. He focusses primarily on cloud technologies, data analytics and business intelligence, though his Mathematical background has also led to a distinct interest in Data Science, Artificial Intelligence, and other related fields.

He also curates a weekly newsletter, Power BI Weekly, where you can receive all the latest Power BI news, for free.

Ed won the Cloud Apprentice of the Year at the Computing Rising Star Awards 2019.

Deploy an Azure Synapse Analytics workspace using an ARM Template

Deploy an Azure Synapse Analytics workspace using an ARM Template

Ed Freeman

Azure Synapse Analytics is Microsoft's new unified cloud analytics platform, which will surely be playing a big part in many organizations' technology stacks in the near future. For many organizations, Azure Resource Manager (ARM) templates are the infrastructure deployment method of choice. This blog explains how to deploy an Azure Synapse Analytics workspace using an ARM template.
Using Azure Key Vault for Encryption in C# - A Simple Tutorial

Using Azure Key Vault for Encryption in C# - A Simple Tutorial

Ed Freeman

Do you need to encrypt a piece of data in your application? Do you want Azure Key Vault to secure the key? Well, using C# along with a couple of libraries from the Azure SDK, it couldn't be easier to get up and running. This blog explains how to do just that.
How to dynamically choose the correct font colour based on a background colour in Power BI tables.

How to dynamically choose the correct font colour based on a background colour in Power BI tables.

Ed Freeman

Making your Power BI reports accessible is crucial, and one important aspect is legibility. If you're using background colours to represent certain categories, then you need any text that's used in conjunction with that background to be as clear as possible. This blog demonstrates how to dynamically select the best font colour to overlay on any chosen background colour.

Jonathan George

Jonathan George

Software Engineer III

View full profile

Jon is an experienced project lead and architect who has spent nearly 20 years delivering industry-leading solutions for clients across multiple industries including oil and gas, retail, financial services and healthcare. At endjin, he helps clients take advantage of the huge opportunities presented by cloud technologies to better understand and grow their businesses.

Using complex objects in BDD Scenarios with SpecFlow

Using complex objects in BDD Scenarios with SpecFlow

Jonathan George

During our projects at endjin, we often find ourselves evangelising Behaviour Driven Development, and specifically SpecFlow. In this post we look at a technique for defining complex test data objects in your Gherkin feature files, which we've also made available via the endjin-sponsored Corvus.NET project.
Integration Testing Azure Functions with SpecFlow and C#, Part 5 - Using Corvus.SpecFlow.Extensions in a build pipeline

Integration Testing Azure Functions with SpecFlow and C#, Part 5 - Using Corvus.SpecFlow.Extensions in a build pipeline

Jonathan George

If you use Azure Functions on a regular basis, you'll likely have grappled with the challenge of testing them. Even now, several years after their introduction, the testing story for Functions is not hugely well defined. In the final post in this series, we show how to ensure specs written using Corvus.SpecFlow.Extensions can run as part of your build pipeline.
Integration Testing Azure Functions with SpecFlow and C#, Part 4 - Controlling your functions with additional configuration

Integration Testing Azure Functions with SpecFlow and C#, Part 4 - Controlling your functions with additional configuration

Jonathan George

If you use Azure Functions on a regular basis, you'll likely have grappled with the challenge of testing them. Even now, several years after their introduction, the testing story for Functions is not hugely well defined. In the fourth of this series of posts, we look at how configuration can be supplied from your tests to the functions apps being tested.

Howard van Rooijen

Howard van Rooijen

Co-Founder

View full profile

Howard spent 10 years as a technology consultant helping some of the UK's best known organisations work smarter, before founding endjin in 2010. He's a Microsoft ScaleUp Mentor, and a Microsoft Azure MVP, and helps small teams achieve big things using data, AI and Microsoft Azure.

How to use SQL Notebooks to access Azure Synapse SQL Pools & SQL on demand

How to use SQL Notebooks to access Azure Synapse SQL Pools & SQL on demand

Howard van Rooijen

Wishing Azure Synapse Analytics had support for SQL notebooks? Fear not, it's easy to take advantage rich interactive notebooks for SQL Pools and SQL on Demand.
How can I contribute to the Azure CNAB Quickstarts Library?

How can I contribute to the Azure CNAB Quickstarts Library?

Howard van Rooijen

The Azure CNAB Quickstart Templates we've created are only half the story. Much of the work we've done over the last few months involved the authoring, contribution and DevOps pipelines required to support an open source project. The project is inspired by the original Azure Quickstart Templates - which over the last 5 years has grown to over 850 templates. In this post we're going to explain how you can author CNAB templates and contribute them.
An Overview of the Azure CNAB Quickstarts Library

An Overview of the Azure CNAB Quickstarts Library

Howard van Rooijen

The Azure CNAB Quickstarts Library helps you get up and running with CNAB and Porter. We've built quickstarts covering solutions like WordPress, Ghost, Mattermost, and data platforms like Apache Airflow, SQL Server AlwaysOn clusters and Kubernetes features like an nginx ingress controller and an Azure AD enabled OAuth2 Proxy. We've condensed all our learnings from the past 9 months of working on the project and turned them into a 10 minute video which explains all the key concepts. We hope this video helps accelerate your own CNAB & Porter epiphanies!

Paul Waller

Paul Waller

Designer

View full profile

Paul has over 20 years of creative experience in design, and delivering user and customer experiences across 3D, print, and digital disciplines. As endjin’s designer, Paul enables customers and the team to visualise abstract concepts. Whether it’s UX, or dashboards for financial and retail services, television props for the Great British Menu, illustrations and animations for promotion and marketing campaigns, or logos and iconography for design systems, Paul is responsible for making concepts look and feel great, in a way our customers can understand.

Guardian Masterclass - An introduction to Data Visualisation

Guardian Masterclass - An introduction to Data Visualisation

Paul Waller

A few years ago, I attended a Guardian 1-day Masterclass - Introduction to Data Visualisation. What I did not know then was that it would have a profound effect on how I view design. This blog is a recap of that day and reference points to consider when designing and creating graphics for data visualisation.
Depositing Cheques via a Mobile Banking Experience

Depositing Cheques via a Mobile Banking Experience

Paul Waller

It is possibly that I have only recently discovered one of my favourite pieces of UX whilst on lockdown - Mobile cheques deposits via digital imaging in my banking app. In this short post I share my experience of discovering a simple but practical piece of UX that made me happy.
A Bit of a Christmas Do in the Country with Benchpeg

A Bit of a Christmas Do in the Country with Benchpeg

Paul Waller

In 2016, endjin redesigned the Benchpeg website, migrating it from a 10-year-old platform over to our own CMS system - Vellum – so the Benchpeg team could have greater control over their content management and halve the day-to-day workload for generating content. This is a creative post about the practical experiences gained from 1-day silversmithing workshop at the invitation of Benchpeg.

Alumni - gone, but not forgotten!