smikic.com
Stefan Mikic
// data architecture · analytics · leadership

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.

seedlingbuddingevergreen
budding
Jun 2026

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.

#ansible#devops#docker
note
evergreen
Jun 2025

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.

#cpp#distributed-systems
note
evergreen
Jun 2025

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.

#cpp#distributed-systems
note
evergreen
May 2025

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.

#cpp#distributed-systems
note
evergreen
May 2025

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.

#cpp#distributed-systems
note
evergreen
May 2025

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.

#cpp#distributed-systems
note

Recently tended

A changelog of the garden, what got planted, pruned, or grown.

Jun 25, 2025Planted: KV Store Final — Bully algorithm leader electionengineering

Wrapped the series with consensus: nodes elect a leader deterministically and gate all writes behind it.

Jun 08, 2025Planted: KV Store Part 4 — multi-node replicationengineering

Added ClusterManager, PeerCommunicator, and fire-and-forget replication across a 3-node cluster.

May 31, 2025Planted: KV Store Part 3 — TCP server and CLI clientengineering

PUT, GET, and DEL now work over the network from any terminal using a newline-delimited protocol.

May 24, 2025Planted: Building a Distributed KV Store in C++ (Part 1)engineering

Started the series with a bare in-memory store and a six-phase roadmap from local store to fault-tolerant cluster.