Browse our archives by topic…
Editions
.NET Development
View all (287)Bye bye Azure Functions, Hello Azure Container Apps: Migrating from Azure Functions 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
C# Lambda Discards
C# has gradually been adding support for discards. This article explores how this evolution has led to some surprises.
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
Analytics
View all (109)Insight Discovery (part 4) – Data projects should have a backlog
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 3) – Defining Actionable Insights
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.
How to enable data teams with the design assets required 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.
Apprenticeship
View all (51)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.
My first six months as an apprentice software engineer at endjin
Jessica joined endjin as part of the Software Engineering Apprenticeship 2021 cohort. In this post, Jessica reflects on her first 6 months.
My first 6 months as an apprentice at endjin
Liam joined endjin as part of the Software Engineering Apprenticeship 2021 cohort. In this post he reflects on his first six months and looks to the future.
Architecture
View all (59)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.
Computer Networking Essentials for Developers: the Web - Part 2
We're constantly using computer networks and the internet, especially as developers. The Web is the most important application on the Internet; this is the second of two posts aiming to explain the basics of the Web.
Adventures in Dapr: Episode 2 - Azure Key Vault
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 adding Azure Key Vault integration for its secrets management.
Azure
View all (161)Insight Discovery (part 4) – Data projects should have a backlog
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.
Bye bye Azure Functions, Hello Azure Container Apps: Migrating from Azure Functions 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
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.
Azure Synapse Analytics
View all (20)Sharing access to synchronized Shared Metadata Model objects in Azure Synapse Analytics
The "Shared Metadata Model" is a powerful feature within Synapse Analytics that synchronizes Spark database objects with SQL Serverless. This article describes how to give non-admin users access to these synchronized objects in a least-privileged manner.
What is the Shared Metadata Model in Azure Synapse Analytics, and why should I use it?
A lesser known feature of Azure Synapse is the "Shared Metadata Model". Synapse has the capability to automatically synchronize tables created via Synapse Spark with objects you can query via the usual SQL Serverless endpoint, without any additional configuration. This article brings attention to this capability, highlighting the benefits and tradeoffs vs rolling your own SQL Serverless VIEWs.
Managing schemas in Azure Synapse SQL Serverless
SQL Serverless in Azure Synapse provides a structured way to query your data on-demand directly from your data lake. This consumption-based, flexible approach to data warehousing provides a compelling alternative to the traditional star-schema or RDBMS, but comes with it's own set of new challenges. This post explores some of the considerations around managing schemas in a serverless world, including an approach for ensuring that your data and schema remain in sync.
Big Compute
View all (27)Azure Synapse Analytics: How serverless is replacing the data warehouse
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
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.
Does Azure Synapse Analytics spell the end for Azure Databricks?
Have you or are you about to invest in Azure Databricks? If so, the new Spark offering in Azure Synapse Analytics is likely to have grabbed your attention and rightly so. Why is Microsoft putting yet another Spark offering on the table and what does it mean for you?
Big Data
View all (73)Insight Discovery (part 4) – Data projects should have a backlog
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 3) – Defining Actionable Insights
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 2) – successful data projects start by forgetting about the data
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.
Culture
View all (119)My first six months as an apprentice software engineer at endjin
Jessica joined endjin as part of the Software Engineering Apprenticeship 2021 cohort. In this post, Jessica reflects on her first 6 months.
My first 6 months as an apprentice at endjin
Liam joined endjin as part of the Software Engineering Apprenticeship 2021 cohort. In this post he reflects on his first six months and looks to the future.
My first six months as an Apprentice Engineer
Eli joined endjin as part of the Software Engineering Apprenticeship 2021 cohort. In this post she reflects on her first six months.
DevOps
View all (23)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
Publishing individual scripts to the PowerShell Gallery can be an effective way to share pervasive functionality without the overhead of maintaining a full-blown PowerShell module. In this post we'll look at how we can take a function that is already published as part of a module and also make it available as a standalone script, without having to maintain two versions of the code.
Using Azure CLI Authentication within Local Containers
Have the recent changes to Azure CLI on Windows broken your dev inner loop when working with containerised applications that need access to Azure resources? If so, this post provides a workaround that will unblock you without having to be stuck on an old version of the Azure CLI.
Engineering Practices
View all (121)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
Publishing individual scripts to the PowerShell Gallery can be an effective way to share pervasive functionality without the overhead of maintaining a full-blown PowerShell module. In this post we'll look at how we can take a function that is already published as part of a module and also make it available as a standalone script, without having to maintain two versions of the code.
Using Azure CLI Authentication within Local Containers
Have the recent changes to Azure CLI on Windows broken your dev inner loop when working with containerised applications that need access to Azure resources? If so, this post provides a workaround that will unblock you without having to be stuck on an old version of the Azure CLI.
Innovation
View all (31)How to Monetize APIs with Azure API Management
Monetizing your APIs is a complex challenge; creating your business, revenue, & pricing model, then translating into a technical implementation requires significant investment. Working with the Azure API Management team we provide guidance, videos and code to help accelerate your journey.
Do robots dream of counting sheep?
Some of my thoughts inspired whilst helping out on the farm over the weekend. What is the future of work given the increasing presence of machines in our day to day lives? In which situations can AI deliver greatest value? How can we ease the stress of digital transformation on people who are impacted by it?
Azure Synapse Analytics: How serverless is replacing the data warehouse
Serverless data architectures enable leaner data insights and operations. How do you reap the rewards while avoiding the potential pitfalls?
Internet of Things
View all (15)Do robots dream of counting sheep?
Some of my thoughts inspired whilst helping out on the farm over the weekend. What is the future of work given the increasing presence of machines in our day to day lives? In which situations can AI deliver greatest value? How can we ease the stress of digital transformation on people who are impacted by it?
How to use SQL Notebooks to access Azure Synapse SQL Pools & SQL on demand
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.
ArrayPool vs MemoryPool—minimizing allocations in AIS.NET
Tracking down unexpected allocations in a high-performance .NET parsing library.
Machine Learning
View all (30)SQLbits 2022 - The Best Bits
This is a summary of the sessions I attended at SQLbits 2022 in London, which is Europe's largest expert led data conference.
Do robots dream of counting sheep?
Some of my thoughts inspired whilst helping out on the farm over the weekend. What is the future of work given the increasing presence of machines in our day to day lives? In which situations can AI deliver greatest value? How can we ease the stress of digital transformation on people who are impacted by it?
Learning from Covid-19
Summary of key themes from the Doing Data Together conference hosted virtually by The Scotsman newspaper and Edinburgh University in November 2020. The conference agenda was pivoted to focus on the use of data to help tackle the Covid-19 pandemic. It provided a fascinating insight into the lessons learned.
Open Source
View all (53)Installing Mattermost using the Azure CNAB Quickstart Library
Get started with Mattermost on Azure using the Mattermost on AKS quickstart from the Azure CNAB Quickstart Library.
How to use Axios interceptors to poll for long running API calls
Many API frameworks implement an async HTTP API pattern to address the problem of coordinating the state of long-running operations with external clients. This post looks at how we can use Axios interceptors to simplify and centralise the UI logic required to work with this API pattern.
ArrayPool vs MemoryPool—minimizing allocations in AIS.NET
Tracking down unexpected allocations in a high-performance .NET parsing library.
Power BI
View all (60)How to enable data teams with the design assets required 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!
Performance Optimisation Tools for Power BI
Performance tuning is an important aspect of Power BI report development. This blog post highlights useful analyzer tools you can utilise to optimise the performance of your Power BI reports.
Security and Compliance
View all (22)Flex Your DevSecOps Muscles With Bicep (and get started with our cheat sheet)
Bicep provides a significant improvement in tooling for organisations seeking to deploy infrastructure as code on Microsoft Azure.
How to fix the "You need permission to access workspace..." error in Azure Synapse Analytics
Data Engineers/Developers want to get access to Azure Synapse Analytics as quickly as possible to start designing and creating their data solutions. Being denied access to Synapse Studio can be frustrating and slows matters down. This article will address the "You need permission to access workspace..." error, discuss what causes it, and describe how to fix it.
How to use the Azure CLI to manage access to Synapse Studio
Azure Synapse Analytics developers need to be assigned a role within Synapse Studio in order to access the GUI. The Azure CLI provides one way of programmatically achieving this, which can be done by any Owner or Contributor of the Azure Synapse Analytics resource.
Startups
View all (15)How to Monetize APIs with Azure API Management
Monetizing your APIs is a complex challenge; creating your business, revenue, & pricing model, then translating into a technical implementation requires significant investment. Working with the Azure API Management team we provide guidance, videos and code to help accelerate your journey.
10 ways working with Microsoft helped endjin grow since 2010
Microsoft recently shot a video interviewing endjin co-founder, Howard van Rooijen, and Director of Engineering, James Broome, about how Microsoft has helped endjin grow over the past decade. This posts the top 10 ways in which Microsoft helped - from providing access to valuable software and services, to opening up sales channels, to helping to navigate the minefield of UK Financial Services regulations around cloud adoption.
What makes a successful FinTech start-up?
In this post we discuss the characteristics of a great FinTech startup, and the importance of the API Economy to innovation in Financial Services.
Strategy
View all (59)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.
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.
SQLbits 2022 - The Best Bits
This is a summary of the sessions I attended at SQLbits 2022 in London, which is Europe's largest expert led data conference.
UX
View all (18)How to enable data teams with the design assets required 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.
How to dynamically switch between measures in Power BI visuals with Field Parameters
Field Parameters allow users to dynamically change the measure being analysed within a report. This blog post will explore how to use the new Field Parameters feature to dynamically switch between measures in a visua.
How to Create Custom Buttons in Power BI
In this post we will talk through a step-by-step guide for how to design and build custom buttons in Power BI. We'll start with the basic foundations of shape and form, to applying icons, states, and actions with the view to extending your brand collateral across your report design and UI.
Visualisation
View all (11)How to enable data teams with the design assets required 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.
How to dynamically switch between measures in Power BI visuals with Field Parameters
Field Parameters allow users to dynamically change the measure being analysed within a report. This blog post will explore how to use the new Field Parameters feature to dynamically switch between measures in a visua.
How to Create Custom Buttons in Power BI
In this post we will talk through a step-by-step guide for how to design and build custom buttons in Power BI. We'll start with the basic foundations of shape and form, to applying icons, states, and actions with the view to extending your brand collateral across your report design and UI.