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


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 ›

Books 2023

Jan 1, 2023 · 3 min read

So, the numbers are in for 2022, and I read substantially less than the 20 books I set out to read. I did really well in Quarter 1, and then it fell to pieces after that. I traded fiction for technical books, and it all just fizzled out. So this year, I’m aiming to read 10 books. Books Engineering Management for the Rest of Us Sarah Drasner I am a big fan of management books like this.

Read more ›

Introduction to APIs

Nov 14, 2022 · 8 min read

I’ve written this post to help some of my colleagues, who traditionally don’t work with APIs to understand some foundations. They are designers, product managers etc. If you’ve used APIs before, this post is probably not for you ;-). An “Application Programming Interface” (API) allows two software systems to communicate in an agreed manner, set out by open specifications. We are going to focus on basic concepts to allow us to be able to communicate effectively about APIs, in an engineering product team.

Read more ›
More ...