Browse our archives by topic…
Blog
Browse our blogs activity over the years…
Insight Discovery (part 4) – Data projects should have a backlog
This series focuses on maximizing data projects' impact via an iterative, insight discovery process, and synergy with cloud platforms like Azure Synapse.
What is the total cost of ownership (TCO) and why is it important?
Understanding the total cost of ownership is key to making informed decisions about technology investments.
Continuous Integration with GitHub Actions
This post gives an overview of Continuous Integrations and shows how you can implement it with GitHub Actions, with an accompanying example Python project
Publishing Scripts to the PowerShell Gallery
Explore how to share a function from a PowerShell module as a standalone script, without maintaining two code versions.
Azure Functions to Container Apps Part 2: Migrating to ASP.NET Core
The second in a series of posts talking about how and why we migrated an application from Azure Functions to Azure Container Apps
Insight Discovery (part 3) – Defining Actionable Insights
Define actionable insights by starting with a specific action, then identifying the questions, evidence and feedback loops that turn data into business value.
Design assets for impactful data storytelling in Power BI
In this post we will talk through how to expand on a data team's creative skillset, without access to specialist photo editing software such as Photoshop or Illustrator.
5 tips to pass the PL-300 exam: Microsoft Power BI Data Analyst
I recently passed the PL-300 - Power BI Data Analyst exam. Here are some tips to prepare for it that I found useful!
Insight Discovery Part 2: data projects start by forgetting the data
Successful data projects start by forgetting about the data. Begin with business goals and the decisions that drive them, and let data follow the insight.
A simple toolkit for IT budgeting and planning
We describe how to create a high level view of your digital assets, where everything is measured equally and actionable insights can be generated that allow you to optimise your budget and build a roadmap focused on business value.
Performance Optimisation Tools for Power BI
Optimise Power BI report performance with analyzer tools. Discover essential techniques for efficient report development in this blog post.
C# Lambda Discards
C# has gradually been adding support for discards. This article explores how this evolution has led to some surprises.
Insight Discovery (part 1) – why do data projects often fail?
Why traditional bottom-up data warehouse projects so often deliver compromised platforms — and how a top-down, action-oriented approach changes the outcome.
Bye bye Azure Functions, Hello Azure Container Apps: Introduction
The first in a series of posts talking about how and why we migrated an application from Azure Functions to Azure Container Apps
Automating Excel in the Cloud with Office Scripts and Power Automate
Automate Excel tasks with Office Scripts & Power Automate. Get an overview and explore a practical example in this post.
Service Lifetimes in ASP.NET Core
Explore Microsoft Dependency Injection container's 3 lifetimes: transient, singleton, scoped. Learn their behaviors & importance in app dependencies.
Using Azure CLI Authentication within Local Containers
Fix broken dev loop with containerized apps on Azure CLI for Windows. Learn a workaround to avoid using outdated Azure CLI versions.
Applying Behaviour Driven Development to data and analytics projects
In this blog we demonstrate how the Gherkin specification can be adapted to enable BDD to be applied to data engineering use cases.
Sharing access to Shared Metadata Model objects in Synapse
Learn how to grant non-admin users access to Spark synchronized objects with SQL Serverless in Synapse Analytics using the Shared Metadata Model.
Adventures in Dapr: Episode 3 - Azure Storage Queues
If you're interested in the Distributed Application Runtime (Dapr) and how it can simplify migrating existing workloads to use cloud platform services, then this series might be for you. In this post, we continue modifying the excellent Dapr Traffic Control sample application by swapping the MQTT-based messaging with Azure Storage Queues. We will also look at how you can use the Dapr programming model as an alternative to cloud-provider SDKs.
What is the Shared Metadata Model in Azure Synapse, and why use it?
Explore Azure Synapse's 'Shared Metadata Model' feature. Learn how it syncs Spark tables with SQL Serverless, its benefits, and tradeoffs.
Context Transition in DAX
How CALCULATE silently turns a row context into a filter context in DAX — and why context transition prevents surprises in calculated columns and measures.
Understanding the Stack and Heap in C#
The stack and heap are central components of memory management in C# programs. This post aims to introduce the topic, with a number of worked examples.
Excel, data loss, IEEE754, and precision
Explore the impact of Excel's numeric precision rules on identifiers and learn about infamous data loss incidents caused by misuse in this post.
CALCULATE in DAX
CALCULATE is the only DAX function that can change filter context in Power BI. Jess explains how it works, its syntax, and how filter propagation flows.