What I'm Thinking

If you are doing any API development, a pretty useful tool can be an API Client. Some place to store and easily call various API endpoints with various payloads for testing.

... Read More

The following is an example of a graceful shutdown pattern I like to use in my Go applications which upon pressing Ctrl+C to quit allows for performing clean-up tasks.

... Read More

My Number One Debugging Rule
18 February 2024

Over the years of working in the software industry I have developed a single rule for myself when trying to debug, figure out why something is broken or doesn’t work. I can’t count the number of times not following my rule has come to bite me and led to countless hours of banging my head against the wall.

... Read More

In the following post we go over and show an example of publishing and using a Go module from a private Git repository.

... Read More

Integration tests are tests which use or depend on some external software like a database, cache layer, or any service. While unit tests validate smaller pieces of software logic, it is always good to also run integration tests in an as-close-as-possible to real environment, and preferably also have them automated. This post will go over a way to easily include and automate the use of external dependencies in your integration tests and CI/CD environment.

... Read More

I put together a simple example and all the boilerplate needed to get started with a gRPC service in Go. The following Git repository includes some of what I consider best practices, useful middleware, observability, and other features.

... Read More

Recent license changes to Docker Desktop meant that large companies would need a license to use it. I spent some time looking for a suitable alternative to Docker Desktop on MacOS, and until recently, that was running and ssh-ing into a Linux Virtual Machine. I stumbled upon the lima and colima projects, with the latter bringing container runtimes on macOS, and this is what I am using going forward. This post will go over installing and using colima to replace Docker Desktop on your MacOS (and Linux) machine.

... Read More

In a previous post I discussed a convenient shell alias for elevating kubectl command privileges. Below is a similar alias to do the same, but for helm commands.

... Read More

This post will go over how to embed the Git commit hash inside a Go binary in order to support a /versionz endpoint. A /versionz could include multiple things, including manually defined version numbers, but another nice to have is the Git commit hash which produced the binary of the running software.

... Read More

I had heard before that Go dominates as the programming language of the cloud and wanted to investigate that claim. In this post I looked at the repositories of all Cloud Native Computing Foundation (CNCF) projects and assembled statistics on the programming languages used.

... Read More