Go compiler explained (1) - The parser

Part one of the Go compiler inner workings series
Read more →

Distributed systems chronicles: Key value store (4) - Replicated storage

This blog post discusses how we will go about replicating our kv-store, failure modes, and Raft
Read more →

Distributed systems chronicles: Key value store (3) - Storage layer

Third post of the distributed systems chronicles, creating a storage abstraction, and finishing up a draft version of single node key-value store.
Read more →

Distributed systems chronicles: Key value store (2) - Accepting requests

Second post of the distributed systems chronicles, Now that we have a protocol in place, let’s start accepting some client requests
Read more →

Distributed systems chronicles: Key value store (1) - Architecture and Protocol

The first post of the Distributed systems chronicles series with a description of the architecture and communication protocol of a distributed key-value store
Read more →

Java streams like never before: Part 1

An overview of how the famous Java Streams API works behind the scenes
Read more →

Why I like rust

A tour of the rust language features, and why you should consider it
Read more →

Google compile testing tutorial

how to use the google compiler testing library to test your annotation processors
Read more →

JUnit 5: Injection enabled tests

an introduction on how to enable dependency injection in your JUnit 5 tests
Read more →

Design patterns: Event bus

An introduction to the Event bus design pattern, with implementation details
Read more →