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


The last few years

Jan 10, 2022 · 14 min read

It’s nice to reflect on what you’ve achieved over a certain period of time. I switched roles within the same business in 2018. I went from managing and coding in a software engineering team I built from scratch, to an Individual Contributor role in a few other engineering teams. This post aims to show at a high level what I’ve been working on during this time. It’s just about in chronological order (from memory!

Read more ›

Books 2022

Jan 3, 2022 · 2 min read

Reading is good for you. It keeps the mind occupied. In 2019, I made a real effort to read as much as I could, and it was a good year. Certainly better than 2020, and 2021 at least. So this year, my aim is to read 20 books, which is 10 more than in 2019, and about 20 more than last year! I’ll keep this post up to date throughout the year.

Read more ›

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 ›
More ...