👋 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.

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.

Go Patterns: Embedding Static Files


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


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.