About
I'm a backend engineer based in Athens. For the past few years I've worked on a trans-European public-sector platform: the kind of system where a dropped event isn't a bug you retry, it's a legal incident. That one constraint shapes how I think about everything. Durability first, exactly-once where it genuinely matters, and an audit trail you can defend in front of people who are not engineers.
Day to day that means Java 21 and Spring Boot, Kafka as the event backbone, gRPC between services, Elasticsearch for read models, and OpenShift underneath. The platform serves thirty member states, and 99% of its gRPC calls return in under sixty milliseconds. I care about those numbers because latency here is someone waiting on a decision, not a spinner on a screen.
Lately I've been working out what actually changes when you put a language model in front of systems like these. Not a chatbot bolted onto the side, but tools with typed contracts and hard authorization boundaries: MCP servers, Spring AI, the model calling your existing service layer over a protocol you control. Most of the interesting problems turn out to be old backend problems wearing new clothes.
This site is where I write that down. It's structured as an append-only log: every entry has a permanent offset and nothing is ever deleted. When a piece is superseded it stays put and links forward, the same discipline I'd apply to an event stream.
I'm currently open to senior backend roles in Zurich and Geneva. The fastest way to reach me is by email or on LinkedIn, and here's my CV.