Connor Mulholland

Infrastructure & Cloud Platforms Specialist · Adelaide, Australia

These are write-ups, documentation and examples of things I have built and run. Including the architecture and the decisions I made in the setup. I have also included problems that showed up once the services and infrastructure was running. This site is intended to be an appendix to my resume to showcase some of my personal work setting up and configuring cloud platforms and cloud infrastructure.

Projects

This site - Azure Static Web Apps

This is a static site hosted in Azure as a Static Web App. It is deployed and updated from a Git repository on every push, with no web server to maintain. I have included the documentation here because the deployment process is the interesting part, not the HTML.

Azure Static Web Apps · GitHub Actions

Getting the build step to stop fighting a site that doesn't need building.

URL shortener - Azure Container Apps

A small Python application that uses the FastAPI service that was originally built in a local Docker container and ported into Azure. It has multi-architecture image builds, a managed Postgres backend, and database credentials pulled from an Azure Key Vault at runtime using a managed identity rather than stored anywhere in the image or the repo.

FastAPI · SQLAlchemy · Alembic · GitHub Actions · GHCR · Azure Container Apps · Azure Key Vault · Docker

Covers isolating a container that exited on startup, and how role assignment latency turned out to be the cause rather than the image.

Infrastructure as code for the above project

This project is a rebuilding of the shortener's Azure footprint in Terraform so the environment can be torn down and recreated rather than clicked together once and never touched again. It covers provider configuratiion, resource naming, and recovering the infrastructure state after a partial/failed apply.

Terraform · azurerm provider

What to do when an apply fails halfway and the state file no longer matches what's actually deployed.

Homelab - Self-hosted service stack

A small set of services running on a Raspberry Pi for family use. It includes a reverse proxy, internal DNS server with ad filtering, a wiki, a LAN-only mail server, and file sharing. All running in Docker containers so they are rebuildable from configuration rather than memory. Also includes a backup script running nightly as a CRON job to an external USB.

Docker Compose · Caddy · Pi-hole · Unbound · BookStack · MariaDB

Includes the restore rehearsal that failed, and why the database port had to stay unchanged even after remapping the published ports.

VPN - Remote homelab access without port forwarding

This project was to setup a VPN service running on my Raspberry Pi so my internal services could be reached from outside the house without exposing anything to the public internet. Using a mesh VPN with subnet routing and split DNS, so internal hostnames resolve correctly from a laptop on someone elses network.

Tailscale · split DNS · Linux networking

Why subnet routes are opt-in on Linux and silently ignored everywhere else, and how a throughput problem was traced to offload settings.

Identity and mail for a custom domain

This was a project of mine to setup my own Microsoft 365 tenant with my existing Azure/Entra ID subscription, with the intention to set it up for use with my family internally for collaboration. The process included custom domain verification, shared mailboxes, and hardware security key enrolment for my global admin accounts.

Entra ID · Exchange Online · DKIM · DMARC · FIDO2

Staged DMARC rollout from monitoring through to enforcement without silently dropping legitimate mail.

Background

I currently work as a cloud platforms support analyst doing administration for Microsoft 365, Google Workspace, Azure, Google Cloud, AWS, and several other cloud applications. In my spare time I often work on personal projects such as the ones on this site to expand my skillset.

Working with

Cloud
Azure — Container Apps, Static Web Apps, Key Vault, managed identity, PostgreSQL Flexible Server
Infrastructure
Docker, Docker Compose, Terraform, Linux, GitHub Actions
Languages
Python, Bash, SQL, PowerShell, CLI for Azure, AWS, GCP
Networking
DNS, TLS, reverse proxies, VPN, SMTP

Certifications

Microsoft 365 Certified: Fundamentals

Microsoft

AZ-900 | Azure Fundamentals

Microsoft

MOS-310 | Microsoft 365 Specialist: Microsoft Excel

Microsoft

MOS-210 | Microsoft 365 Specialist: Microsoft Powerpoint

Microsoft

MOS-110 | Microsoft 365 Specialist: Microsoft Word

Microsoft

TS-101 | IT Specialist: Networking

Pearson VUE

TS-102 | IT Specialist - Network Security

Pearson VUE

TS-103 | IT Specialist - Device Configuration and Management

Pearson VUE