Better Dockerfiles

There are things we all know we should do but quite often don't bother with. Using multi-stage Dockerfiles to reduce the size of images is one of them; not running containers as root is another.

Earlier on this week, my team ran a hack day around standardising our golden path for deploying applications to our internal Kubernetes clusters. As part of this we were going to create a boiler plate repo that a development squad could fork and replace with their own application. We needed a mock application that could sit in place, and so naturally we wrote one with Golang.


February in Review

Review of February 2021. The first of (potentially) many month in review posts

Self-reflection is a really healthy activity. A few blogs I follow do some sort of status update every month (Pawlean, Drew DeVault, Simon Ser) and so I thought I would give it a try, instead of just1 random adhoc tweets. If you are reading this blog post months into the future, and it’s the only one of its kind, then you know exactly how this experiment went.

  1. These will continue, don’t worry 


Injecting Golang variables at build time

Sometimes you want variables to be baked in to your application, but not present in source control. This is one such method in Golang

Just a quick one to share something useful I learnt about injecting variable values at build time in Golang. The usecase for this was adding a Slack webhook URL to a GUI application without either shipping the webhook URL in the code, or expecting the end user to set an ENV VAR with the webhook URL in it.


I'm Writing an RPG

Tabletop roleplaying games are immense fun. Having looked at a number of Old School Revival/Renaissance RPGs, I decided to write my own with a distinctly noir feel

I’ve played D&D for a number of years, starting with 3E. More recently I have been looking at the different Old School-style RPG offerings, including quite a few from independent writers. Following on from this, I decided to write my own which I have decided to call Grace. It was very nearly called Built for Vice, and I’m so glad I went with Grace in the end.


What's in a Job Title?

Depending on which system at $dayjob you check, I have one of a few different job titles. I might be a “DevOps [sic]1 Engineer”, a “Platform Engineer”, or a “Senior Ops Engineer”, or something else I am yet to discover.

  1. I am happy to have the DevOps vs. devops argument with anyone that will entertain me, but the point is you’re probably wrong


Writing a personal whois API

Making use of Golang, Lambda, and API Gateway

A while back I wrote a whois API to contain some basic information about me. It was written in Node.JS, and had different JSON responses based on the path you requested (e.g. /name, /job, etc.). The code is here if you are interested in how the first iteration of this project worked. It was hosted on an intentionally-unnamed SaaS provider that just wasn’t up to scratch.


Learning C

My latest quest on the adventure of becoming truly t-shaped

I was going to come up with a witty title for this blog post, but my brain is fried from everything that’s been injected into it.


Containers Homework

Every day is a school day. Why do the bare minimum when doing something different is so much fun?

At work, we have several “working groups” centred around specific technologies we use. The purpose of these is to have a way for us lowly engineers to have input into our “tech menu” that we work with. There are several software-engineering-focused groups (JVM, Nodejs, etc.) but so far only one that relates to operations in a broad sense: the container working group.