👋 Hi!

I’m a software engineer specializing in server applications and system-level software development, but sometimes I venture into the front end world too. Quite often I find myself taking a deep dive into a topic that tickles my brain.

When I’m not coding I like spending time outdoors, such as cycling, climbing. We are writing this blog together with my partner Sanja.

You can find most of my work on GitHub.

Custom Go import paths


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


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?

Trojan Source Detector


A few hours ago the Trojan Source exploit went out of embargo, and we already have a tool to check your source code for it.

Getting into digital electronics


Hardware. For a software engineer. What could possibly go wrong?

Our first ever CTF was challenging fun

by &

During the last two days we participated in our first ever security CTF, and it was awesome.

Go Patterns: Retries


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.

gotestfmt: go test output for humans


Reading the go test output can be quite tiresome, especially when multiple tests are running in parallel. While IDEs make our lives easier, CI systems don’t have that advantage. Let’s fix that!

Go Patterns: Pipelines


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


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.