
Stefan Mikic
Hello there! 👋 I'm Stefan Mikic, and I'm on a mission to unlock the full potential of data in shaping the future. Data is my veggies 🥕🥦🍅 – healthy, versatile, and sometimes hard to digest, but in the end, it always brings value! 🌱
As a passionate professional in data engineering, analytics, and architecture, I love transforming raw information into actionable insights. Designing and optimizing data architectures is what I thrive on, ensuring they serve as the backbone for informed decision-making. 💻
With a strong foundation in data, I navigate the intricate world of data pipelines and storage solutions, always looking for ways to enhance efficiency and scalability. I know data can sometimes be overwhelming – but don't worry, I'm here to make it digestible! 🚀
The garden
Notes at different stages of growth. Some are seedlings I'm still thinking through; others have grown evergreen.
Automating My VPS Setup with Ansible
How I used Ansible to automate a full VPS setup — Docker, Nginx, SSL, OAuth2 Proxy, Grafana, and a self-hosted GitHub runner — all reproducible from a single command.
Building a Distributed Key-Value Store in C++ (Final)
Wrapping up the series with a Bully algorithm for leader election — the node with the highest ID wins and coordinates all writes.
Building a Distributed Key-Value Store in C++ (Part 4)
Multiple server instances now replicate writes to each other — PUT on node 1 shows up on nodes 2 and 3 seconds later.
Building a Distributed Key-Value Store in C++ (Part 3)
The store gets a TCP server and CLI client — PUT, GET, DEL now work over the network from any terminal.
Building a Distributed Key-Value Store in C++ (Part 2)
Adding an append-only log for crash recovery and Catch2 unit tests — the KV store now survives restarts.
Building a Distributed Key-Value Store in C++ (Part 1)
Starting from scratch on a distributed KV store in C++ — from a basic in-memory store to a planned six-phase roadmap covering persistence, networking, and consensus.
Recently tended
A changelog of the garden, what got planted, pruned, or grown.
Wrapped the series with consensus: nodes elect a leader deterministically and gate all writes behind it.
Added ClusterManager, PeerCommunicator, and fire-and-forget replication across a 3-node cluster.
PUT, GET, and DEL now work over the network from any terminal using a newline-delimited protocol.
Started the series with a bare in-memory store and a six-phase roadmap from local store to fault-tolerant cluster.