👋 Welcome! I hope these tools, guides, and Azure resources save you time and help you learn something new - feedback is always welcome on LinkedIn.

Articles

RSS feed

Articles and how-to guides about Azure, Terraform, GitHub, and cloud engineering.

FeaturedAzureDNS

DNS in Azure, Part 3: Azure DNS Private Resolver

Part 3 of the DNS in Azure series: inbound and outbound endpoints, forwarding rulesets, the query evaluation order, the centralized and distributed architectures, and how to log DNS queries without running your own servers.

September 3, 2026 · 14 min read
FeaturedAzureDNS

DNS in Azure, Part 4: Private Link and Private Endpoints

Part 4 of the DNS in Azure series: what a Private Endpoint really is, sub-resources, the approval workflow, routing and NSG behaviour, Private Link Service, and why turning off public network access is a separate job.

September 3, 2026 · 12 min read
FeaturedAzureDNS

DNS in Azure, Part 5: Private Endpoints and Private DNS

Part 5 of the DNS in Azure series: the privatelink CNAME chain, the exact zone name for every service, private DNS zone groups, running zones at scale with Azure Policy, and making Private Endpoints resolve from on-premises.

September 3, 2026 · 9 min read
FeaturedAzureDNS

DNS in Azure, Part 6: Private DNS Fallback to Internet

Part 6 of the DNS in Azure series: why a privatelink zone returns NXDOMAIN for names you do not own, how the NxDomainRedirect resolution policy fixes cross-tenant Private Link, and when you should deliberately leave it off.

September 3, 2026 · 7 min read
FeaturedAzureDNSSecurity

DNS in Azure, Part 7: DNS Security Policies

Part 7 of the DNS in Azure series: DNS resolver policies, traffic rules and domain lists, the Microsoft threat intelligence feed, full query logging in Log Analytics, and a rollout plan that will not take your platform down.

September 3, 2026 · 8 min read
FeaturedAzureDNS

DNS in Azure, Part 8: The Resolution Decision Tree

Part 8 of the DNS in Azure series: an interactive decision tree that takes you from a client asking for a name to the exact Azure architecture that answers it - Azure DNS, private zones, privatelink, forwarding rulesets, or on-premises.

September 3, 2026 · 5 min read
FeaturedAzureDNS

DNS in Azure, Part 2: Private DNS Zones

Part 2 of the DNS in Azure series: how private DNS zones and virtual network links really work, what autoregistration does to your records, the privatelink zones behind Private Endpoints, and how to design zones you will not regret.

September 2, 2026 · 12 min read
FeaturedAzureDNS

DNS in Azure, Part 1: Fundamentals and Azure-Provided Name Resolution

Part 1 of an eight-part series on private DNS in Azure: the vocabulary, the 168.63.129.16 platform IP, where a VM actually gets its resolver from, and why the default internal.cloudapp.net namespace runs out of road.

September 1, 2026 · 11 min read
Documentation

How to Create a New Article

Everything you can use when writing a new article for /articles: frontmatter fields, headings, lists, callouts, code blocks, tables, images, and links.

August 19, 2026 · 2 min read
AzureGitHub

Connect GitHub and Azure for Deployment Using OIDC

Stop storing long-lived Azure credentials in GitHub secrets. Set up OpenID Connect federation so GitHub Actions can authenticate to Azure with short-lived tokens.

August 14, 2026 · 2 min read
AzureGovernance

What Is an Azure Landing Zone?

A practical introduction to Azure landing zones: what they are, why they matter, and the building blocks every platform team should know.

August 10, 2026 · 3 min read
AzureBastion

Connect to an Azure VM Using the Native RDP Client Through Bastion

Step-by-step guide to connecting to an Azure VM with your native RDP client through Azure Bastion's native client support, including how to open the tunnel with the Azure CLI.

March 6, 2026 · 2 min read
Azure

How to Delegate a Domain to Azure DNS

Step-by-step guide to delegating a domain purchased from a third-party registrar (OVH) to Azure DNS, and recreating the DNS records once delegation is complete.

December 16, 2025 · 5 min read
Git

Display Latest Commits with Git Graph

A stylish one-liner to showcase the latest commits from a repository directly in the terminal.

February 26, 2025 · 1 min read
GitHub

GitHub Contribution Workflow

The end-to-end workflow for contributing to a GitHub project: fork, branch, commit, push, pull request, code review, and merge.

February 26, 2025 · 4 min read
Azure

App Service (PHP) Access to Azure SQL Database with Managed Identity

Connect a PHP app running on Azure App Service to Azure SQL Database using a system-assigned managed identity, with no stored username or password.

February 12, 2025 · 1 min read
Azure

Allow ICMP (Ping) on an Azure VM

Azure VMs block ICMP (ping) by default via the Windows Firewall. Here's the firewall rule to allow it, applied through the Azure portal's run command.

January 31, 2025 · 1 min read
Azure

Network Security Perimeter (NSP)

An overview of Azure Network Security Perimeter: the pain points it solves for PaaS resource access control, how it compares to existing patterns, and its current limitations.

January 31, 2025 · 2 min read
Azure

Restrict Web App Access with Entra ID Authentication

How to restrict access to an Azure Web App to specific users or security groups using Microsoft Entra ID, instead of allowing every user in the tenant.

December 17, 2024 · 1 min read
Azure

Terraform vs Bicep, the Match

A side-by-side comparison of Terraform and Bicep across language, state management, learning curve, cost, and more, based on hands-on experience with both.

December 6, 2024 · 3 min read
GitHub

Display GitHub Secrets for Debug

A quick method to print a GitHub Actions secret for debugging purposes, spaced out so it can't be read directly from the log.

December 2, 2024 · 1 min read
Azure

Remove Old Azure Resources Based on Tags

Automate the cleanup of temporary Azure resources using a Time-To-Live tag, plus a script to auto-tag untagged resources with their creator.

November 13, 2024 · 2 min read
Azure

Search Azure Policy Aliases and Send Output to an Interactive Table

A PowerShell script that lets you interactively search Azure Policy aliases by namespace using Out-GridView.

November 13, 2024 · 1 min read
Azure

Azure REST APIs, Versions, and Lifecycle

How Azure REST API versions work, how to find them with PowerShell, and why the api-version parameter matters.

November 6, 2024 · 1 min read
Azure

Call Azure API with PowerShell

How to call an Azure REST API directly from PowerShell: get an access token, build the request headers, and invoke the endpoint.

November 6, 2024 · 1 min read
Azure

RBAC Delete Role Assignments with 'Identity Not Found'

Why Azure keeps RBAC role assignments for deleted users, groups, or service principals, and a PowerShell script to clean them up.

November 6, 2024 · 1 min read
Azure

Don't Build Your Cloud Home on Shaky Foundations

Why cloud governance and security foundations - landing zones, management groups, policies, RBAC, naming, tagging, and networking - must come before any real workload.

November 6, 2024 · 2 min read
Azure

KQL Query Collection

A growing collection of Kusto Query Language (KQL) queries for Azure Resource Graph, covering AKS, disks, networking, policies, RBAC, subscriptions, and tags.

November 6, 2024 · 1 min read
Azure

Azure Subscription Switcher

A PowerShell script to quickly switch between Azure subscriptions by index, with an optional Out-GridView interface.

November 5, 2024 · 1 min read
Tools

Draw.io VS Code Extension: A Must-Have for Your Diagrams

Discover the benefits of integrating Draw.io with VS Code for seamless diagram creation.

November 5, 2024 · 1 min read
Tools

Cyber Attacks Live Maps

A curated list of free live dashboards that visualize cyber attacks happening around the world in real time.

November 3, 2024 · 1 min read
Hugo

How to Host Your Hugo Website on GitHub Pages

Step-by-step guide to publishing a local Hugo website to GitHub Pages, including the deployment pipeline and how to sync content updates.

November 3, 2024 · 1 min read
Hugo

From WordPress to Hugo Website

Why I migrated this site from WordPress to Hugo, and the trade-offs between the two platforms.

October 16, 2024 · 4 min read
GitHub

How to Embed a GitHub Script in an Article

How I keep long PowerShell scripts in a dedicated GitHub repository and embed them directly as code blocks instead of duplicating the code across posts.

October 16, 2024 · 1 min read
Azure

Terraform and Entra ID Authentication

How to disable storage account key-based authentication and use Entra ID authentication for the Terraform azurerm remote backend.

September 11, 2024 · 1 min read
Azure

Optimize and Reduce Costs in Azure

Practical tips to control and reduce your Azure spending: VM sizing, autoshutdown, reservations, hybrid benefit, storage tiers, tagging, and more.

September 11, 2024 · 7 min read
AzureTools

Set Up Your First Terraform Environment on Windows

Step-by-step guide to setting up your first Terraform environment on Windows: install the CLI, configure a remote state backend in Azure Storage, and run your first plan and apply.

September 11, 2024 · 1 min read
Git

Git Basics

The fundamental Git commands every beginner should know: configuration, cloning, branching, committing, and logs.

February 28, 2024 · 1 min read
GitHub

GitHub Branch Naming Convention

A practical branch naming convention for GitHub projects: standard format, common prefixes, best practices, and special branches.

February 26, 2024 · 1 min read
GitHub

GitHub Commit Naming Convention

A practical commit message convention for GitHub projects, based on Conventional Commits: format, common types, and writing clear messages.

February 26, 2024 · 1 min read

About these articles

Practical write-ups from real Azure, GitHub, and DevOps work: the configuration that was not obvious, the error message with no useful search result, and the procedure worth writing down before it is forgotten.

What you will find

How to browse

Use the category and tag filters to narrow the list, or the search box to look across every title and summary at once. Each article is self-contained, with the commands and configuration in copyable blocks. An RSS feed is available if you would rather be notified when something new is published.