In this post I’m going to be talking about how I use git. That is, what conventions I use, and what style I apply. First, Git is a Distributed Version Control System. A project is… 

When developing software natural, the concept of boundaries arises. A package, library, service, or system needs to communicate information to other packages, libraries, services, systems, and users. The boundary lies between those two entities. The… 

In professional software engineering there’s a common debate on the merits of a University degree in Computer Science. The points of view tend to be that such a degree (or its equivalent) is either an… 

Go provides channels as a way to communicate between two goroutines. In essence a channel is a synchronised queue, where a producer writes to the channel, implicitly using the mutex that is hidden inside it… 

As a software engineer the keyboard is one of the tools I will physically interact with for a large part of my day. Many other professions are also finding themselves interacting with keyboards too. It’s… 

If you’re wanting to share examples of working in a terminal, such as what I will be pasting below, then you will be needing a way to record, and share what happens. There is a… 

For Go development there are a plethora of editors available that someone can use for their daily editor, Go has a wiki page that lists editors and plugins that support Go development. It wasn’t too… 

Testing software, somewhat surprisingly, is a contentious subject. Not whether testing should be done or not, but the right way to go about it. We test to give ourselves confidence, confidence that the software does… 

The weekly edition of Programmer Weekly duly arrived in my email inbox last night. This edition contained a blog article arguing that linter comments that disable linting for parts of a given codebase should be… 

Unit testing code is validity testing. The developer is ensuring that the function being tested deals with the supplied input in an expected way, either producing output, or returning error information, that is considered appropriate.… 

Probably the most confusing part for new Kubernetes users is the fact that it has little to no idea about their favourite containerisation technology. That is, Kubernetes cares not how to build a Docker container,… 

I’ve used GNU/Linux for my primary operating system (on desktops) for roughly 14 years. I used Microsoft Windows products for about 10 years before that, and occasionally since (usually mandated by employment), but not at… 

Recently I wrote a post on using defers, this is a deeper dive into the defer mechanism. As previously explained the idea of defer is to give developers a way to ensure that code is…