Microsoft 365 Certified: Fundamentals
Microsoft
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.
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.
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.
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.
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.
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.
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.
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.
Microsoft
Microsoft
Microsoft
Microsoft
Microsoft
Pearson VUE
Pearson VUE
Pearson VUE