Browse our archives by topic…
Blog
Browse our blogs activity over the years…
Bye bye Azure Functions, Hello Azure Container Apps: Conclusions
In the sixth and final post we draw our conclusions about migrating an application from Azure Functions to Azure Container Apps.
The OpenChain specification explained
When implementing OpenChain, understanding the specification will help guide your organisation to having processes in place to review and manage open-source software
What are the risks with open-source software?
The key risks associated with open-source software, from whether you use it minimally, to using it throughout all your systems.
What is OpenChain?
With much of the modern world is built upon software, organisations need to understand and manage the legal and security risks associated with open-source software.
An Overview of the Corvus.Retry Library
Corvus.Retry is an open source repository that provides functionality for building policies and strategies for handling transient faults. This post provides a spotlight on the repository.
How to sign your git commits
Signing git commits proves that you are the author of the code you are pushing up to GitHub, and helps protect the integrity of your software supply chain.
An Overview of the Corvus.Globbing Library
Corvus.Globbing is an .NET open source library that provides high performance, zero allocation functionality for working with globs.
Retrospecting on my first year at endjin
Liam joined endjin as part of the Software Engineering Apprenticeship 2021 cohort. In this post he looks back on his fist year and uses the post to introspect and look ahead to his second year.
In Defence of Squash Commits
Squash commits collapse noisy Git history into a single coherent change, preserving review context while keeping main's log clean. Here's why we adopted them.
An Overview of the Corvus.Extensions Library
Corvus.Extensions is an open source repository that provides a collection of useful helper extension methods to .NET types. This post provides a spotlight on the repository.
Adventures in Dapr: Episode 4 - Containerising with Visual Studio
Explore Dapr for cloud migration & simplify containerized dev inner-loop using Visual Studio with the Dapr Traffic Control sample application.
Azure Functions to Container Apps Part 5: Migrating test environment
The fifth in a series of posts talking about how and why we migrated an application from Azure Functions to Azure Container Apps
Big Data LDN: highlights and how to survive your first data conference
Highlights from Big Data LDN 2022, covering Data Mesh debates, data quality and creation vs extraction, modern data stack terminology, women in data talks, and tips for surviving your first in-person conference.
High Performance UriTemplate resolution with low-allocation C#
Learn how to use high-performance code constructs like ReadOnlySpan<T> to parse and create UriTemplates for C# developers.
Customizing Lake Databases in Azure Synapse Analytics
Explore Custom Objects in Lake Databases for user-friendly column names, calculated columns, and pre-defined queries in Azure Synapse Analytics.
Creating a semantic model with Synapse Database Templates
Explore Azure Synapse Analytics Database Templates and learn to create semantic models in this 2nd blog of the series.
My first year as an Apprentice Engineer
Eli joined endjin as part of the Software Engineering Apprenticeship 2021 cohort. In this post she reflects on her first year.
Azure Functions to Container Apps Part 4: Authentication & CORS issues
The fourth post migrating an app from Azure Functions to Azure Container Apps we examine the challenges around authentication and CORS
What is a Lake Database in Azure Synapse Analytics?
Explore Lake Databases in Azure Synapse Analytics: analyze Dataverse data, share Spark tables, and design models with Database Templates.
EVALUATEANDLOG in DAX
DAX has never had real debugging capability until EVALUATEANDLOG. This hidden function prints intermediate values from any DAX expression, letting you see exactly how your measures are evaluated.
Insight Discovery Part 6: Defining business requirements for data
Capture actionable insights through workshops, build a delivery backlog, and learn why cloud analytics success ultimately comes down to people, not technology.
Putting total cost of ownership (TCO) into action
Total cost of ownership can be used a various stages in the lifecycle of a digital asset to support data driven decisions.
What are Synapse Database Templates and why use them?
Database Templates let you define structure over your data lake so it behaves more like a relational system. In this series we test whether they can serve as a useful contract between upstream data engineers and downstream consumers.
5 lessons learnt from using Power Automate
Power Automate flows get unwieldy fast: default step names obscure intent, repeated logic piles up, and single-environment setups block proper ALM. Five practical lessons for keeping flows maintainable.
Azure Functions to Container Apps Part 3: Build & first big problem
The third in a series of posts talking about how and why we migrated an application from Azure Functions to Azure Container Apps