Welcome to where I document some of the things I’ve done. This is a collection of references for myself. Mostly things that were annoying to figure out and deserve a doc, or things I find myself writing up frequently in other contexts. It’s a lot easier to link directly to a detailed explanation than to write a thousand code review comments.
colby.gg
- Common Go Footguns: Appending to slices #2
Jan 18, 2026
-
5 min read
This post is a followup to Common Go Footguns: Appending to slices, where I demonstrated that appending to a slice can be a surprising source of impactful performance problems. While this post focuses on Go specifics, much of the methodology and thought process involved in this post applies to most performance related work.
We know that pre-allocating our slices is good. But, what if you don’t know how many items you need to append to your slice? What if you’re appending during an expensive
O(n³)algorithm? Most engineers I’ve worked with would really resist doingO(n³)work just to know the size of a slice to pre-allocate. It seems quite wasteful. In the past I’ve conceded here. - Refactoring: Preventing a copy-pasta nightmare
Aug 25, 2025
-
9 min readAn example of how I go about extracting generic usable functionality from existing code
- Resume as code
Aug 19, 2025
-
2 min readTreating my resume with the same respect I give my code.
- Common Go Footguns: Debug Logging
Jul 28, 2025
-
3 min readThis is the third post in a series on common go footguns about how debug logging can have surprising performance impacts
- Home Assistant: Generating Dashboard Graphs From Sensors
Jul 27, 2025
-
3 min readGenerating a dashboard full of graphs from all sensors with given attributes
- Home Network TLS Certificates
Jan 5, 2025
-
5 min readHow I managed certs for all the things in my home network
- Securing simple web services behind caddy with SSO
Dec 7, 2024
-
3 min readAdding SSO with OIDC to simple webapps proxied by Caddy
- Common Go Footguns: Appending to slices
Aug 25, 2024
-
3 min readThis is the second post in a series on common Go footguns. This post demonstrates the performance impacts of appending a known number of elements to a slice without doing any pre-allocation. This is one of the most common and easily fixed performance issues I see in pull requests on a regular basis.
- Common Go Footguns: Interface Nility
Aug 24, 2024
-
3 min readDescribing the common footgun of checking an interface for nil
- Excluding Generated Mocks From Coverage
May 29, 2024
-
1 min readSome projects make rather heavy use of gomock for testing, and I’ve noticed the command that I had been using to run all tests and generate coverage included the mocks in coverage and brought the numbers down.