Ben Selby profile picture

Ben Selby

Software Engineer

Open Source, Process, Technical Leadership, Automation, People

Love building distributed teams, writing in Go, building CLI dev tools, engaging with other engineering teams, and learning new things


Use Docker Context to switch between different solutions

Nov 15, 2021 · 4 min read

You may be on the lookout for a replacement to Docker Desktop at the moment. If you are, you may be wanting to trial the different solutions. You’re going to need to know what is involved, and what the different cost models include. This post is going to show you how you can use docker context to run the different systems in parallel. The two solutions this post will cover are minikube and multipass.

Read more ›

Setting up a VS Code Dev Container - minikube

Oct 13, 2021 · 3 min read

This post builds on what we already learnt in Setting up a VS Code Dev Container. It’s more specific goal is to discuss running Dev Containers whilst using minikube as a Docker Desktop replacement on the Mac. There is lots of chatter about the new license for Docker Desktop. The license changes impacts the business I work for. I wanted to know what our options were. Getting minikube as a drop in replacement for Docker Desktop on the Mac, was relatively straight forward.

Read more ›

Getting started with Jenkins: Language Agent

Apr 24, 2021 · 4 min read

This post follows on from the Jenkins series: Getting started with Jenkins Getting started with Jenkins: Agents This post is going to get you running a language specific Jenkins Agent. In the example we are going to follow, we will setup a Jenkins Agent running Go. This means you will be able to run Go builds within your local Jenkins instance. This method can then be extrapolated to other languages.

Read more ›

Using Terratest to test your infrastructure

Apr 18, 2021 · 7 min read

This post is going to get you started with using Terratest to help test your infrastructure changes. Terratest describes itself as: A Go library that provides patterns and helper functions for testing infrastructure, with 1st-class support for Terraform, Packer, Docker, Kubernetes, AWS, GCP, and more. Now that infrastructure is becoming code and configuration, we want to write tests that check that our infrastructure code works as intended. This is where Terratest can help.

Read more ›

Technical Roadmaps and Dev Sustainability

Apr 14, 2021 · 6 min read

At a high level, most engineers are working on product backlogs, in some way, shape, or form. What happens if that product backlog dries up? Or, as a manager or leader, you need to fill a period of uncertainty? This post is going to take you on my journey over the years, and put forward a solution that can be applied to small projects, large projects, and even at an organisational unit level.

Read more ›

Terraform knowledge to get you through the day

Apr 11, 2021 · 12 min read

As part of the “Getting through the day” series, this post is going to provide basic Terraform knowledge. We are going to setup a Terraform project that allows you to manage your repos in GitHub. I didn’t want to assume that you had an AWS, Azure, or Google Cloud account, but a GitHub account seemed more realistic. This post assumes that you have installed Terraform on your system. CLI Now that you have Terraform installed, you should be able to run terraform in your terminal.

Read more ›

Getting started with Jenkins: Agents

Apr 7, 2021 · 4 min read

Following on from Getting started with Jenkins, this post will get a Jenkins Agent up and running your builds. Please make sure you have completed the instructions on the previous post. We will run the Jenkins agents in docker containers, like we have for the controller. We need to adjust the docker run command slightly this time around. But first, we need to define a Docker network. So let’s start with creating the Jenkins network.

Read more ›

Getting started with Jenkins

Apr 3, 2021 · 6 min read

Jenkins is an automation application, that is heavily used for Continuous Integration (CI) and Continuous Deployment/Delivery (CD). This post is going to get Jenkins up and running, on your machine, and configuring a basic job. This can be handy if you are wanting to learn more about Jenkins, without using a hosted solution. It’s useful to be able to test Jenkins configurations in a disposable way. It’s not intended for this post to guide you on running a productionised Jenkins solution.

Read more ›

Shell knowledge to get you through the day

Mar 28, 2021 · 6 min read

Following on from the Docker knowledge to get you through the day, and Git commands to get you through the day posts, this will cover Shell commands. Once again, it aims to get you through the day. First of all, it’s worth noting that there are many shells: bash, sh, zsh etc. For a comprehensive list of shells, and their comparison, head over to Wikipedia. Basic commands Let’s cover off some basics that will hopefully get you on your way.

Read more ›

Setting up a VS Code Dev Container

Mar 21, 2021 · 7 min read

Last week my team was tasked with picking up a project that I had last worked on 4 years ago. The deadline was tight, and we had a week to complete it. It was written in PHP, a language I’d barely written in the last 3 years. Obviously a lot has changed in 4 years (both in the language, setup, and the team I work in). I am the only engineer in my team now who knows PHP.

Read more ›
More ...