Broken windows theory: why code quality and simplistic design are non-negotiable

Integration Testing in Go: Part I - Executing Tests with Docker

Introduction “Testing leads to failure, and failure leads to understanding.” - Burt Rutan Burt Rutan is an aerospace engineer who designed Voyager, the first plane to fly around the world without stopping or refueling. Although Rutan was not a software engineer, his words s...

Sneaky Go interface conversion

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.

Golang CQRS, Metrics and AMQP - Watermill v0.3.0 released

54 days of work, 12,909 lines of code, 47 Monsters and 42 KFC Twisters later finally it is Watermill v0.3.0! To keep it short, let’s go through the changes. One important thing: at the end of this post there is a 3 question survey. Please take a moment to fill it out, it wi...

Go driver plugins

Our Software Dependency Problem

Download and run code from strangers on the internet. What could go wrong?

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.

Integration test made easy with testcontainers

There are a lot of information in the title I know, but I am not good enough to make it simple. Back in the days, I tried to make some contribution to OpenZipkin an open source tracing infrastructure in Java.

GitLab CI tips for building custom workflows

This time I’d like to touch on a few more advanced topics related to GitLab CI. The common theme here is implementing custom features within your pipeline. Again, most of the tips are specific to GitLab, but some could be easily applied in other CI systems as well. Running...