GET /people/_doc/dragutin
Dragutin
Marjanović
I build distributed backends and the search infrastructure underneath them —
in Scala, on ZIO, with types doing the arguing.
- Role
- Engineering lead & hands-on backend engineer
- Base
- Novi Sad, Serbia · 45.25° N
- Depth
- Elasticsearch & OpenSearch, streaming, type-safe APIs
Track record
-
574
merged pull requests, open source and product, since March 2016.
-
122
commits to zio-elasticsearch — the most of any human contributor.
-
10
years shipping backends, from university labs to production search at scale.
-
4
libraries in the ZIO ecosystem I've contributed to upstream, plus ZIO core itself.
Selected work
-
01
zio-elasticsearch
A type-safe, streaming-friendly Elasticsearch client for ZIO. I've been its lead human contributor since 2022 — DSL design, streaming executors, release engineering.
ScalaZIO65★
-
02
ZIO ecosystem
Merged contributions to zio-redis, zio-telemetry, zio-config and ZIO core: protocol work, tracing, and the unglamorous correctness fixes that keep libraries trustworthy.
ScalaUpstream
-
03
scountries & scurl-detector
Two small Scala libraries with a clear job each — ISO 3166 country data, and URL extraction from messy text. Small surface, no surprises, still in use.
Scala39★
-
04
QualityGate
Runs accessibility checks against a pull request's deployed preview, reports back in GitHub, and fails the check when a server-authoritative budget is exceeded. Current build.
TypeScriptCI2026
-
05
Product engineering
Hundreds of merged changes across private product codebases — APIs, ingestion pipelines, catalog systems — plus leading the engineers building them.
Private
How I work
i
Make illegal states unrepresentable.
Types are the cheapest tests you will ever write. If the compiler can rule a bug out, it should — before a pager ever has the chance to.
ii
Distributed means assume failure.
Networks partition, nodes lie, clocks drift. Systems I build state their failure modes out loud instead of discovering them at 3am.
iii
Legible beats clever.
The best abstraction is the one the next engineer understands without asking. I optimise for the team that inherits the code.