About

I'm a systems engineer living in Berlin since 2018. I spend most of my working hours somewhere between the Linux kernel and a Go program misbehaving in production. Outside of that I write here, take apart old mechanical keyboards, and argue politely about database internals on the internet.

This blog is a notebook, not a publication. The TILs are short on purpose. The long posts get edited months later when I learn I was wrong about something. I keep both versions; the originals are linked at the bottom of each post.

Recently added: /projects, /contact, /colophon, /reading, /til, and /changelog. The first two are in the top nav; the others live here and in the footer so the nav stays short. (I split the contact + colophon bits out of this page — they kept growing.)

Work

Ten-plus years of backend / infrastructure engineering — mostly at mid-sized European companies that are too small to name-drop and too large to fit in one paragraph. Currently consulting independently on high-throughput networking and observability problems.

If you're looking for help with eBPF, Go performance work, or pulling apart a stubborn p99 — the contact page has the channels and the ground rules. I read most things eventually. If something's urgent, ping me again, I'm not ignoring you on purpose.

Short timeline

2014first production Go deploy. I was nervous. I was right to be.
2016moved from Kyiv to Amsterdam for a platform role.
2018Berlin. Bicycle. Schnitzel.
2020started this blog. wrote the first long post nobody read.
2022started caring about kernel internals for real.
2024went independent.
nowwriting here, on-call for two clients, learning piano badly.

Things I'll happily nerd out about

  • Tail latency, the actual physics of it, how the p99 lies to you.
  • The Linux scheduler, especially after the EEVDF switch.
  • Postgres internals — why the planner picks the plan it picks.
  • Mechanical keyboards. I have opinions about Cherry browns. Most of them wrong.
  • Coffee, but only as it relates to morning ritual and not to flavor notes.

Things I'll probably push back on

  • "We need a service mesh." (do you, though?)
  • Microservices as a default architecture choice.
  • Anything that involves 12-factor as a religion rather than a checklist.
  • Anyone insisting Rust is the answer when the question is "what should I rewrite next".

Contact

Email is the way. Full details — PGP, Mastodon, reply latency, what works and what doesn't — live on /contact.

My code lives on a private GitHub mirror. If we've worked together I can share repos one-off — ask. The bits I'm willing to defend in public are listed on /projects.

I don't do social DMs and I don't do video calls without a paper-trail first. Email or nothing.


Colophon

Hand-rolled HTML and CSS, no framework, no build step. About 30 kb gzipped per page. The longer version — fonts, hosting, page weight, what's deliberately not here — lives on /colophon.

Note to self (apr 2026): rewrite the build script in Go before it grows a third bash dependency. it's already at two. one more and I'm in trouble.

License

Prose: CC BY 4.0 — quote me freely, attribute me when you do. Code snippets: MIT, unless the post says otherwise.

Last edit of this page: this month, when I split the colophon and contact bits out into their own pages.