Software Engineering

Writing good code is hard. This tag includes posts about concepts and best practices in Software Engineering.

Custom Go import paths

by

Most Go import paths start with github.com. Wouldn’t it be cool if you could use your own domain name there?

Running containers from go tests

by

Sometimes, we need external services for our tests in order to test the integration. Traditionally, these are run somewhere on the Internet. What if we were to run them dynamically in a container?

Go Patterns: Retries

by

When working on microservices or any network-related code retries are a must. Go has a few neat features that help with creating an easy-to-use retry library.

Go Patterns: Pipelines

by

Sometimes, when reviewing code, you come across a huge spaghetti of sadness. You’d love to refactor it, but it is just a list of steps that need to be executed in order.

Go Patterns: Elegant Parallel Queues

by

Processing items in a queue in parallel is one of the trickier subjects in programming. You don’t want to overload your systems, but you also want to maximize speed. Go has some unique tools to deal with it.

Go Patterns: Embedding Static Files

by

Go creates a single, statically linked binary. This makes it extremely easy to distribute applications. How do we add static resources, such as text files, images, and the likes, to our application without losing that advantage?

Go Patterns: Object-Oriented Programming

by

On the surface, Go doesn’t look like an object-oriented language. However, if we look deeper, OOP is not only possible, but an effective way to organize code.

20,000 lines under the Go-cean

by

Last year I wrote two blog posts about the programming language Go. This is the follow-up after having written over 20,000 lines of Go code.

TCP connections can break silently

by

Are you thinking of using Microservices? Here’s something you may not know: TCP connections can break entirely silently.