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


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 ›

How useful are code coverage reports?

Nov 5, 2022 · 5 min read

This post is going to talk about code coverage reports from unit tests. However, to provide some context first, I’m going to reminisce about 2010. A story Back in 2010, I was working for Plusnet, an ISP in the UK (Referral link). The engineering team were still getting to grips with unit testing our code. What we saw time and time again was many tests being written, high coverage reports, and management was happy.

Read more ›

Use Keyhole to understand slow queries in MongoDB

Nov 2, 2022 · 2 min read

Slow queries are a part of life. This post will show you how to use Keyhole to turn your MongoDB logs into a spreadsheet you can use to understand where to focus your efforts. Keyhole First of all, get Keyhole up and running. Please follow their instructions on how to do this. I was able to do the following, but things change, so check out their docs for more relevant information.

Read more ›

Debugging Python with a virtual environment in VSCode

Oct 30, 2022 · 2 min read

My current job is mainly Python, so there was a steep learning curve. I have done some Python previously, but mainly for writing Sublime Text plugins back in the day. Over the last few months, I’ve set up my VSCode environment on my work machine. Last night I was wanting to do something on a different machine. I could not remember how to debug Python code inside a virtual environment within VSCode!

Read more ›

Upgrading to Next.js 13

Oct 28, 2022 · 3 min read

Next.js 13 was released this week. I’ve not had much time to work with Netlify or Next.js recently. So this was a nice opportunity to play around again for an hour. The upgrade command I wasn’t lucky enough to just run the headline upgrade command that the above blog post suggests. recipes on  upgrade-to-next-13 via ⬡ v16.14.2 at 19:30:07 ❯ npm i next@latest react@latest react-dom@latest eslint-config-next@latest npm ERR! code ERESOLVE npm ERR!

Read more ›

Mongo shell commands to get you through the day

May 1, 2022 · 6 min read

I recently started a new job. The data store is MongoDB, which I have barely used before. This post aims to document what I’ve learnt to get me through the day. Please feel free to tweet me if there are discrepancies. The first thing that I became aware of, is that there are/were two cli tools: The legacy mongo shell, which was deprecated in MongoDB v5.0. The new, and active, mongosh shell, which replaced mongo.

Read more ›

Define a contract between autonomous teams

Mar 1, 2022 · 6 min read

So you have a bunch of autonomous engineering teams that are allowed to work in their own way. Fantastic. However, maybe you want to provide centralised support or build tooling that exposes things in a certain way. For example, maybe you want to build a department wide Open API documentation site for engineering teams and partners. You don’t want to enforce anything on the teams, such as making them all create specific folders in their repo.

Read more ›

Multi-cursor support in Obsidian

Feb 3, 2022 · 2 min read

This post brings together two of my favourite things: Note taking, and multiple cursors. I remember the first time an engineer introduced me to Sublime Text. The main thing he would bang on about was multiple cursors. I was very quickly sold. It’s pure magic and speeds up so many things. I instantly switched from Eclipse PDT to Sublime Text. I’ve always liked writing notes, but always struggled with various tools.

Read more ›

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