High availability with nats-streaming-server (clustering)

I wanted to set up a high available nats-streaming-server cluster, but couldn’t find a “quick” guide on how to do it. In this post I’ll try to write something that would have helped me earlier. First things first, we have 2 kinds of HA setups for nats-str...

PODCAST: Hiring and job interviews

Using PostgreSQL JSONB with Go

PostgreSQL provides two JSON-related data types that you can use — JSON and JSONB. The principal differences are: JSON stores an exact copy of the JSON input. JSONB stores a binary representation of the JSON input. This makes it slower to insert but faster to query. It...

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. But what’s interesting is that Go can be used in places we were not expecting to see it.

Concurrency Trap #2: Incomplete Work

Introduction In my first post on Goroutine Leaks, I mentioned that concurrency is a useful tool but it comes with certain traps that don’t exist in synchronous programs. To continue with this theme, I will introduce a new trap called incomplete work. Incomplete work occurs...

An Overview of Go's Tooling

Occasionally I get asked “why do you like using Go?” And one of the things I often mention is the thoughtful tooling that exists alongside the language as part of the go command. There are some tools that I use everyday — like go fmt and go build — and ot...

Slow down your code with goroutines

Or: How adding goroutines can keep your CPU busy shuffling things around.

Git: check if a folder changed

Often I need to “do X only if files on some folder changed” or whatever. I always need to Google that or find it on old scripts… This is a quick post for me to find on Google when I need it again and think “oh its me!”. Anyway, let’s get into...

Building an engine with the Veritone Engine Toolkit

Building an engine with the Veritone Engine Toolkit