Writing testable Go code

When I say “testable code”, what I mean is code that can be easily programmatically verified. We can say that code is testable when we don’t have to change the code itself when we’re adding a unit test to it.

Writing REST API Client in Go

API clients are very helpful when you’re shipping your REST APIs to the public. And Go makes it easy, for you as a developer, as well as for your users, thanks to its idiomatic design and type system.

Mounting Google Cloud Storage bucket to Kubernetes Pod

You may ask why doing this if we can use PersistentVolume? Though there may be multiple scenarios when mounting GCS bucket to you Kubernetes Pod is a good option:

Google Home Action to manage your Kubernetes cluster

I always wanted to find a good use case of Google Home to make some DevOps tasks funnier. For example voice deployments, system metrics, etc. Since I use Kubernetes a lot, I thought it would be fun to control it via voice commands.

Rate Limiting HTTP Requests in Go based on IP address

If you are running HTTP server and want to rate limit requests to the endpoints, you can use well-maintained tools such as github.com/didip/tollbooth. But if you’re building something very simple, it’s not that hard to implement it on your own.

Building Desktop App in Go using Wails

This post is a text version of packagemain #6: Building Desktop App in Go using Wails video. As we all know, Go is mostly used to build APIs, web backends, CLI tools.

Database Migrations with Go and Kubernetes

Applications with database layer mostly need to execute database migration as part of its deployment process. Usually, running migrations is the first step when deploying the application.

Google Cloud Functions in Go

Earlier this month Google Cloud Functions team finally announced beta support of Go, the runtime uses Go 1.11, which includes go modules as we know.

Ultimate ClickHouse Helm Chart

Seems like ClickHouse is experiencing growth in industries like IoT, Web Analytics, AdTech, Log Management, because of its robustness with big amounts of data. IMO it’s a great tool but missing developer community support.

Table driven tests in Go

In practice-go we often use table driven testing to be able to test all function scenarios. For example the FindAnagrams() function returns us a list of anagrams found in the dictionary for given input.