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


Running Ubuntu on a MacBook Pro

May 26, 2024 · 4 min read

Note: This post is a work in progress, and mainly for my notes. It’s current as of May 2024!. I had a ten year old MacBook Pro lying around not really doing anything. It wasn’t doing very well with the macOS either, so decided to run Ubuntu on it. Ubuntu was my main development environment from about 2008 until about 2011, and I miss it. However, as a life long Mac user, the keyboard shortcuts and combinations are too much muscle memory for me to try and move away from.

Read more ›

Stop tracking changes to certain files in Git

May 4, 2024 · 2 min read

If you’ve used git before, you’re probably aware of the .gitignore file. This is what the manual has to say: A gitignore file specifies intentionally untracked files that Git should ignore. This file is usually tracked in your Git repo, so every contributor ignores the same files. Interestingly, you can also have a global ignore file in your home directory too ~/.gitignore. I have a global ignore file for ignoring basic IDE files.

Read more ›

Working with Zed for a week

Jan 30, 2024 · 4 min read

I took Zed for a spin this week, and this post covers what I noticed whilst using it as my day-to-day editor. I love it, and I'm probably going to stay with it (but I miss a debugger). This is what Zed is: Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter. It’s also open source. Projects worked on: These are the projects I managed to work on this week with Zed:

Read more ›

Show your working out

Jan 22, 2024 · 3 min read

Does anyone remember what your Maths teacher used to say? Show your working out! I mean, I bet they said more than that, but this is what I remembered. I think we used to get marked down if you just provided the answer. You got more marks when you showed how you derived your answer. This post is a plea for software engineers to do the same when answering technical questions, or debugging an issue in group communication channels.

Read more ›

A case for using a Makefile in your project

Jan 16, 2024 · 5 min read

This post is going to present a case for using a Makefile in your project. This will be the top-level task runner for your project. You can use make to run all of your project tasks such as building, linting, testing, and deploying your project. It doesn’t matter what language your project is written in. What is a Makefile? Make gets its knowledge of how to build your program from a file called the makefile, which lists each of the non-source files and how to compute it from other files.

Read more ›

Automating the startup of a dev workflow

Jan 2, 2024 · 3 min read

Hopefully, this is the first of many small posts showing how I automate my workflow. Back around 2008, I had a mentor/buddy for my new job. Rys. He was a wonderful, knowledgeable, and supportive buddy who always seemed to be one step ahead. One day he noticed that I came into the office each day, opened the terminal, and created x amount of tabs, which I then named (So I knew what each terminal was there for, e.

Read more ›

Naming Slack huddles

Dec 22, 2023 · 2 min read

I’m pair programming more and more nowadays. One thing that features heavily in pair programming is a Slack huddle. My main recommendation is to name the Slack huddle. Slack is a very useful tool to use when pair programming. For me, it’s simply the ability to draw on each others screen. Trying to describe the many buttons, areas of an IDE, or where to change a line of code is painful.

Read more ›

Mephisto and dev containers

Aug 6, 2023 · 4 min read

I’m currently looking into what Mephisto can do. Mephisto describes itself as Mephisto was designed from the ground up to work with different “crowd providers”. You can use Amazon Mechanical Turk, an internal platform for your organization, or something else. Additionally, launch your tasks on Heroku, EC2, etc. So I wanted to check it out and run it locally to see for myself. I started with the 10-minute Quickstart guide but hit issues with the installation of dependencies.

Read more ›

Setting up k9s skins for different Kubernetes clusters

Mar 31, 2023 · 2 min read

This post is going to show you how to define different skins for k9s, so you can quickly see which environment you’re working on. k9s is a terminal application that allows you to manage your Kubernetes clusters. So if you’re managing your production cluster, for example, you probably want to take extra care of what you’re doing. Every time I jump onto a production database for nearly two decades, I have set the background to red.

Read more ›

Creating custom metrics from a trace in Datadog

Mar 7, 2023 · 2 min read

Recently, I wanted to create a monitor from a trace in Datadog. When creating an APM monitor, you can specify the service, and the resource, but nothing else. This didn’t cater for what I wanted to do. So this post is going to show you how you can create a custom metric, and then use that in your monitor. Once logged into Datadog, you want to navigate to APM and then Setup & Configuration.

Read more ›
More ...