Skip to content
James Broome - Director of Engineering

James knows a thing or two about successful project delivery. He is consistently seen as a 'safe pair of hands' by customers, as he ensures our people and processes are always running smoothly. He thinks Director of Engineering is a rather grandiose job title, but is coming to terms with that.

Meet James

James has spent 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.

View Blogs View Talks
Carbon Optimised Data Pipelines - minimise CO2 emissions through intelligent scheduling (Next Steps)

Carbon Optimised Data Pipelines - minimise CO2 emissions through intelligent scheduling (Next Steps)

James Broome

Intelligently scheduling cloud data pipelines based on carbon impact can optimize both environmental sustainability and operational efficiency.
Carbon Optimised Data Pipelines - minimise CO2 emissions through intelligent scheduling (Pipeline Definition)

Carbon Optimised Data Pipelines - minimise CO2 emissions through intelligent scheduling (Pipeline Definition)

James Broome

Intelligently scheduling cloud data pipelines based on carbon impact can optimize both environmental sustainability and operational efficiency.
Carbon Optimised Data Pipelines - minimise CO2 emissions through intelligent scheduling (Architecture Overview)

Carbon Optimised Data Pipelines - minimise CO2 emissions through intelligent scheduling (Architecture Overview)

James Broome

Intelligently scheduling cloud data pipelines based on carbon impact can optimize both environmental sustainability and operational efficiency.
Carbon Optimised Data Pipelines - minimise CO2 emissions through intelligent scheduling (Introduction)

Carbon Optimised Data Pipelines - minimise CO2 emissions through intelligent scheduling (Introduction)

James Broome

Intelligently scheduling cloud data pipelines based on carbon impact can optimize both environmental sustainability and operational efficiency.
No-code/Low-code is software DIY - how do you avoid DIY disaster?

No-code/Low-code is software DIY - how do you avoid DIY disaster?

James Broome

No-code/Low-code democratizes software development with little to no coding skills needed. But how do you evaluate if software DIY is the right choice for you?
Architecture Decision Records

Architecture Decision Records

James Broome

Explore the benefits of Architecture Decision Records (ADRs) in technical design, with real-world examples applied to different scenarios.
Copilot - Are You Ready to Unleash the Power of AI in Self Service Analytics?

Copilot - Are You Ready to Unleash the Power of AI in Self Service Analytics?

James Broome

Explore AI-powered self-service reporting with tools like Copilot in Power BI and Microsoft Fabric, balancing benefits and pitfalls.
Insight Discovery (part 6) – How to define business requirements for a successful cloud data & analytics project

Insight Discovery (part 6) – How to define business requirements for a successful cloud data & analytics project

James Broome

Many data projects fail to deliver the impact they should for a simple reason – they focus on the data. This series of posts explains a different way of thinking that will set up your data & analytics projects for success. Using an iterative, action-oriented, insight discovery process, it demonstrates tools and techniques that will help you to identify, define and prioritize requirements in your own projects so that they deliver maximum value. It also explores the synergy with modern cloud analytics platforms like Azure Synapse, explaining how the process and the architecture actively support each other for fast, impactful delivery.
Insight Discovery (part 5) – Deliver insights incrementally with data pipelines

Insight Discovery (part 5) – Deliver insights incrementally with data pipelines

James Broome

Discover a unique, action-oriented approach to data projects for maximum impact. Learn how to prioritize requirements and leverage cloud analytics platforms.
Insight Discovery (part 4) – Data projects should have a backlog

Insight Discovery (part 4) – Data projects should have a backlog

James Broome

This series focuses on maximizing data projects' impact via an iterative, insight discovery process, and synergy with cloud platforms like Azure Synapse.
Insight Discovery (part 3) – Defining Actionable Insights

Insight Discovery (part 3) – Defining Actionable Insights

James Broome

Discover a unique, action-oriented approach to data projects for maximum impact. Learn how to synergize with platforms like Azure Synapse for fast delivery.
Insight Discovery (part 2) – successful data projects start by forgetting about the data

Insight Discovery (part 2) – successful data projects start by forgetting about the data

James Broome

Many data projects fail to deliver the impact they should for a simple reason – they focus on the data. This series of posts explains a different way of thinking that will set up your data & analytics projects for success. Using an iterative, action-oriented, insight discovery process, it demonstrates tools and techniques that will help you to identify, define and prioritize requirements in your own projects so that they deliver maximum value. It also explores the synergy with modern cloud analytics platforms like Azure Synapse, explaining how the process and the architecture actively support each other for fast, impactful delivery.
Insight Discovery (part 1) – why do data projects often fail?

Insight Discovery (part 1) – why do data projects often fail?

James Broome

Discover a unique, action-oriented approach to data projects for maximum impact. Learn how to synergize with platforms like Azure Synapse for fast delivery.
Testing Power BI Reports with the ExecuteQueries REST API

Testing Power BI Reports with the ExecuteQueries REST API

James Broome

Explore DAX queries for scenario-based testing in Power BI reports to ensure data model validity, rule adherence, and security maintenance.
Why you should care about the Power BI ExecuteQueries API

Why you should care about the Power BI ExecuteQueries API

James Broome

Explore the benefits of Power BI's new ExecuteQueries REST API for developers in tooling, process, and integrations.
Managing schemas in Azure Synapse SQL Serverless

Managing schemas in Azure Synapse SQL Serverless

James Broome

Explore Azure Synapse's SQL Serverless for on-demand data lake queries, its benefits, and challenges in managing schemas and maintaining data sync.
How to test Azure Synapse notebooks

How to test Azure Synapse notebooks

James Broome

Explore data with Azure Synapse's interactive Spark notebooks, integrated with Pipelines & monitoring tools. Learn how to add tests for business rule validation.
How do I know if my data solutions are accurate?

How do I know if my data solutions are accurate?

James Broome

Data insights are useless, and even dangerous (as we've seen recently at Public Health England) if they can't be trusted. So, the need to validate business rules and security boundaries within a data solution is critical. This post argues that if you're doing anything serious with data, then you should be taking this seriously.
The Public Health England Test and Trace Excel error could have been prevented by this one simple step

The Public Health England Test and Trace Excel error could have been prevented by this one simple step

James Broome

Despite the subsequent media reporting, the loss of 16,000 Covid-19 test results at Public Health England wasn't caused by Excel. This post argues that a lack of an appropriate risk and mitigation analysis left the process exposed to human error, which ultimately led to the loss of data and inaccurate reporting. It describes a simple process that could have been applied to prevent the error, and how it will help if you're worried about ensuring quality or reducing risk in your own business, technology or data programmes.
Does Azure Synapse Link redefine the meaning of full stack serverless?

Does Azure Synapse Link redefine the meaning of full stack serverless?

James Broome

Explore Azure Synapse Link for Cosmos DB's impact on 'full stack serverless', No-ETL, and pay-as-you-query analytics.
How to use Axios interceptors to poll for long running API calls

How to use Axios interceptors to poll for long running API calls

James Broome

Explore using Axios interceptors to streamline UI logic for async HTTP APIs, addressing long-running operations and client coordination efficiently.
A simple invite user flow for AAD B2C (without custom policies)

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

James Broome

Explore an alternative "invite user" flow for Azure AD B2C, simplifying authentication without custom policies in SaaS applications.
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 Polyglot Notebooks

Benchmarking Azure Synapse Analytics - SQL Serverless, using Polyglot Notebooks

James Broome

New Azure Synapse Analytics service offers SQL Serverless for on-demand data lake queries. We tested its potential as a Data Lake Analytics replacement.
Azure Synapse for C# Developers: 5 things you need to know

Azure Synapse for C# Developers: 5 things you need to know

James Broome

Did you know that Azure Synapse has great support for .NET and #csharp? Learning new languages is often a barrier to digital transformation, being able to use existing people, skills, tools and engineering disciplines can be a massive advantage.
Does Azure Synapse Analytics spell the end for Azure Databricks?

Does Azure Synapse Analytics spell the end for Azure Databricks?

James Broome

Explore why Microsoft's new Spark offering in Azure Synapse Analytics is a game-changer for Azure Databricks investors.
5 Reasons why Azure Synapse Analytics should be on your roadmap

5 Reasons why Azure Synapse Analytics should be on your roadmap

James Broome

Explore 5 key reasons to choose Azure Synapse Analytics for your cloud data needs, based on years of experience in driving customer outcomes.
Why Power BI developers should care about the read/write XMLA endpoint

Why Power BI developers should care about the read/write XMLA endpoint

James Broome

Whilst "read/write XMLA endpoint" might seem like a technical mouthful, its addition to Power BI is a significant milestone in the strategy of bringing Power BI and Analysis Services closer together. As well as closing the gap between IT-managed workloads and self-service BI, it presents a number of new opportunities for Power BI developers in terms of tooling, process and integrations. This post highlights some of the key advantages of this new capability and what they mean for the Power BI developer.
Testing Power BI Reports using SpecFlow and .NET

Testing Power BI Reports using SpecFlow and .NET

James Broome

Ensure Power BI report quality by connecting to tabular models, executing scenario-based specs, and validating data, business rules, and security.
Testing Power BI Dataflows using SpecFlow and the Common Data Model

Testing Power BI Dataflows using SpecFlow and the Common Data Model

James Broome

Ensure reliable insights with endjin's automated quality gates for validating Power BI Dataflows in complex solutions.
Azure Analysis Services - how to save money with automatic shutdown

Azure Analysis Services - how to save money with automatic shutdown

James Broome

Explore Azure Analysis Services for scalable analytics. Control costs via automation with Powershell & Azure DevOps in multi-environment setups.
Azure Analysis Services: How to update the expression for a calculated column from .NET

Azure Analysis Services: How to update the expression for a calculated column from .NET

James Broome

Learn how to update Azure Analysis Services model schemas in .NET apps using AMO SDK for user-driven analysis.
Azure Analysis Services - How to process an asynchronous model refresh from .NET

Azure Analysis Services - How to process an asynchronous model refresh from .NET

James Broome

Learn to use Azure Analysis Services in custom apps via REST API in .NET for efficient async model refreshes.
Azure Analysis Services: How to execute a DAX query from .NET

Azure Analysis Services: How to execute a DAX query from .NET

James Broome

Explore endless possibilities with dynamic DAX queries in C# for Azure Analysis Services integration in custom apps using the provided code samples.
British Science Week - inspiring the next generation of data scientists

British Science Week - inspiring the next generation of data scientists

James Broome

The theme of this year's British Science Week (6 - 15 March 2020) is "Our Diverse Planet". We'll be getting involved by speaking to school children about the work we've been doing with Oxfordshire-based OceanMind (part of the Microsoft AI for Good programme) to help them combat illegal fishing, hopefully inspiring some of the next generation of data scientists!
Azure Analysis Services - How to query all the measures in a model from .NET

Azure Analysis Services - How to query all the measures in a model from .NET

James Broome

Explore .NET querying methods for integrating Azure Analysis Services beyond data querying into dynamic UIs and APIs.
Azure Analysis Services: How to open a connection from .NET

Azure Analysis Services: How to open a connection from .NET

James Broome

Learn to integrate Azure Analysis Services in apps by establishing server connections. Follow this guide with code samples for essential scenarios.
Azure Analysis Services - integration options using .NET, REST APIs and PowerShell

Azure Analysis Services - integration options using .NET, REST APIs and PowerShell

James Broome

Explore Azure Analysis Services in custom apps using SDKs, PowerShell cmdlets & REST APIs. Learn to choose the right framework in this guide.
Azure Analysis Services: 8 reasons why you might want to integrate into a custom application

Azure Analysis Services: 8 reasons why you might want to integrate into a custom application

James Broome

Explore Azure Analysis Services' versatility in bespoke analysis products & processes, and learn how it can unlock data insights beyond traditional BI.
How to use the AzureAD module in PowerShell Core

How to use the AzureAD module in PowerShell Core

James Broome

Explore using AzureAD with Az module in PowerShell Core, as Az may not fully replace AzureAD. Learn to utilize both for optimal functionality.
How to create a Power BI workspace in an Azure DevOps Pipeline using Powershell

How to create a Power BI workspace in an Azure DevOps Pipeline using Powershell

James Broome

Automate Power BI workspaces creation & security using PowerShell & Azure DevOps pipelines in a wider DevOps strategy with Azure data platform services.
Querying the Azure DevOps Work Items API directly from Power BI

Querying the Azure DevOps Work Items API directly from Power BI

James Broome

Discover Azure DevOps Work Items features, use RESTful API for insights, and Power BI visualization in our step-by-step guide.
"But it works on my cloud!" - are your developers still making the same mistakes in a world of DevOps and PaaS services?

"But it works on my cloud!" - are your developers still making the same mistakes in a world of DevOps and PaaS services?

James Broome

In the world of DevOps, cloud and platform services, how does a developer's "definition of done" need to change? This post argues that as the silos of development and operations are broken down, the responsibility of understanding the whole solution increases meaning, to truly take advantage of the cloud, the need for quality and professionalism is critical for success.
Machine Learning - the process is the science

Machine Learning - the process is the science

James Broome

What do machine learning and data science actually mean? This post digs into the detail behind the endjin approach to structured experimentation, arguing that the "science" is really all about following the process, allowing you to iterate to insights quickly when there are no guarantees of success.
Machine Learning - mad science or a pragmatic process?

Machine Learning - mad science or a pragmatic process?

James Broome

This post looks at what machine learning really is (and isn't), dispelling some of the myths and hype that have emerged as the interest in data science, predictive analytics and machine learning has grown. Without any hard guarantees of success, it argues that machine learning as a discipline is simply trial and error at scale – proving or disproving statistical scenarios through structured experimentation.
Azure Batch - Time is Money in Big Compute

Azure Batch - Time is Money in Big Compute

James Broome

Consumption based pricing is a one of the USPs of Cloud PaaS services, but the default settings aren't necessarily optimised for cost. Significant savings can be made from understanding your workload.