All Stories

Load Balancing iPerf3 Servers

Recently I had to set up a TCP load balancer for iperf3 server to allow simultaneous tests from multiple iperf3 clients. iperf3 is a tool to measure network performance, and...

Go Omitempty Gotcha!

This post is about the experience we had with the omitempty JSON tag while constructing JSON in Golang. omitempty ignores the null value of datatypes. This could cause problems when...

SQLite Database Schema Migration Using Golang

SQLite is a nifty choice for client side database applications. It is serverless, works with easily accessible cross-platform database files, and does not need any installation. However, occasionally, there may...

The Pitfall of Using PostgreSQL Advisory Locks with Go's DB Connection Pool

We have a problem! Imagine for a moment that you have a microservice written in the Go Programming Language that is deployed on more than one instance for reliabilty and...

Finding Network Routing Path in Golang

This post shares our experience on finding a way to determine the network interfaces on a Linux Machine that provides the route to a particular remote machine. The use case...

Optimising Time Window Queries with Postgres Timestamp Range Data Types

This post explains how we were able to improve a database query performance by replacing two individual timestamptz columns with single Postgres’s tstzrange range column.