What I'm Thinking
T.T.T. by Piet Hein
7 July 2024
Bruno: New API Client You Should Try
5 April 2024
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
Graceful Shutdown Pattern in Go
16 March 2024
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.
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
Publishing and Using Private Go Modules
19 August 2023
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 with External Dependencies in Go
25 March 2023
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
gRPC Go Example and Boilerplate
12 February 2023
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
Replacing Docker Desktop with Colima
27 November 2022
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.
Helm impersonations with kubie
16 October 2022
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.
Embedding Git commit hash in a Go binary
3 September 2022
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.