Hi there, I'm Nicholas!

I’m a developer with a passion for cloud platforms, web development and automation!
I use this blog to write about my interests. They’re usually tech-related, but there’s also the odd music and gaming piece too.
2026-07-14 //
2 min read
//
#aws
#cloudflare
Recently, I’ve been exploring Cloudflare’s R2 service, an S3-compatible object store.
At home and work, I use Granted to manage my AWS credentials and sessions. It’s a convenient wrapper for switching between multiple accounts without polluting my local environment.
Given R2 is meant to be a (largely) drop-in replacement for S3, I thought I’d do a quick writeup on what’s needed to use R2 credentials with the AWS CLI.
Read more →
2025-07-12 //
2 min read
//
#ansible
#devops
#tailscale
There’s an oft-quoted phrase in the cloud/DevOps space.
Treat infrastructure as cattle, not pets.
To me, the advice is broad and emblematic for a lot of modern practices. Prefer disposable containers over long-lived hosts. Build infrastructure that scales horizontally to accomodate demand. Design architectures where components can be swapped out on the fly.
I thought I’d recap some recent changes to how I provision and manage this blog - addressing a few places where hostnames were hardcoded for convenience.
Read more →
2025-05-18 //
2 min read
Following on from setting up my blogroll last week, I’ve realised it doesn’t render as a pretty webpage in most web browsers. Serves me right for only testing in Firefox!
Read more →
2025-05-10 //
3 min read
For a while, I’ve provided a list of suggested blog/feeds on my website in a blogroll.
This blogroll takes the form of an OPML file that RSS readers can import. It’s pretty neat, but making it browser-friendly has always been on my wishlist.
So it was pretty cool to stumble across XSLT - a means for transforming XML documents.
Read more →
2023-09-19 //
4 min read
//
#buildkite
#hashicorp-vault
Earlier this year, Buildkite announced support for OpenID Connect tokens. Briefly, a Buildkite agent can request a signed JWT (JSON Web Token) from Buildkite representing details (claims) about its current job. This JWT can then be used to authenticate with systems that accept it.
For Hashicorp Vault, services typically authenticate using the AppRole method with a senstive set of credentials. It’s fine to use this flow on a Buildkite agent to access Vault secrets, but the credentials for this are long-lived.
The new OIDC flow removes to need to manage these long-lived credentials, and also makes it possible to craft fine-grained policies for a Buildkite agent without requiring multiple sets of login credentials!
Read more →