I build for real use, not ideal demos
My goal is not just to make software run once. My goal is to make it hold up when real users, real dependencies, and real pressure are involved.
I work on backend systems, distributed systems, AI-supported workflows, and cloud environments with one goal in mind: when the system is under pressure, it should still work.
If you are hiring for reliability, clarity, and steady execution, that is where I fit best. I show up, understand the system, work well with the team, and help make sure what gets built does not come back later as bugs, surprises, or avoidable production issues.
Curriculum Vitae
Software Engineer - Backend & Distributed Systems
A Python/PyQt desktop platform that turns Git and SonarQube data into AI-driven analytics, personalized coaching, and real-time team-performance dashboards.
An FCA-regulated generative-AI platform for the energy sector, delivering secure, personalized customer-support agents on AWS.
A conversational assistant that lets organizations and banking customers query complex financial data in natural language over a secure backend.
Containerized microservices for the Eurocontrol initiative, enabling secure, real-time interoperability between airports and central European aviation systems.
Platform Migration
End-to-end migration of a distributed corporate platform from OpenStack to a Vagrant-based Kubernetes environment.
KAIS-Data
A self-contained Big Data platform delivering sub-second analytics, interactive visualization, and enterprise-grade monitoring on a private network.
SOA Orchestrator
An orchestration layer between two SOA platforms providing reliable, bi-directional device-data synchronization.
Tenant Manager
A Spring Boot service letting each tenant programmatically provision isolated, high-availability microservice infrastructure.
Nikola Karev - Mathematics and Computer Science (2021)
I am not trying to sound louder than I am. I want this page to make one thing clear: I am a strong backend engineer who helps teams ship solid work.
The engineers I respect most are not the ones who create noise. They are the ones people trust when the system gets messy, when timelines get tight, and when someone needs to notice the weak spot before it becomes a problem.
That is how I try to work. I care about the code I write, but I also care about the wider system, the team around me, and the business or client needs behind the work. I do not want software that only looks fine on the surface. I want it to hold up.
My goal is not just to make software run once. My goal is to make it hold up when real users, real dependencies, and real pressure are involved.
I do not stop at my ticket. I stay alert to weak spots, missing assumptions, and overlooked mistakes that could affect the wider system or the rest of the team.
As systems grow, clarity matters more. Code should be easier to reason about, safer to change, and less likely to surprise people later.
I value calm execution, practical thinking, and systems that stay stable when things get complicated.
These are not random themes. Together they show the kind of work I am comfortable with: serious backend work, real delivery conditions, and systems that need to be trusted.
I have worked on backend systems where reliability, traceability, and operational clarity were part of the job, not optional extras.
I have worked close to backend and workflow concerns in systems that used AI, with a focus on structure, control, and practical value.
I have also worked across backend and infrastructure-adjacent concerns to make delivery more repeatable, clearer, and easier for teams to trust.
Not all of my work is public, but these repositories show how I think: structured systems, practical implementation, and a focus on building things that behave clearly.
I built a multi-agent system with structured workflows, policy-based controls, and traceable outputs. It reflects how I think about complex systems: clear structure, clear rules, clear behavior.
I built an event-driven modulith Java application that clones repositories, creates SonarQube projects, and extracts technical data in a structured flow.
I led the development of an event discovery application with backend logic, authentication, vector search, and AI-assisted retrieval, with visible collaboration across contributors.
I built a distributed microservices system that simulates grid-frequency stabilization under real asynchronous failure conditions. It shows how I design for correctness and reliability using transactional outbox, idempotent consumers, retries with DLQ handling, backpressure, and end-to-end tracing.
On my Substack I think out loud about backend and distributed systems, coupling, architecture, failure modes, and where AI actually fits. Practical writing drawn from real systems, not theory.
How blocking calls quietly couple services together, binding their availability, scaling, and failure into a single unit you never meant to build.
Read on Substack ↗ June 2026Why partitioning by domain beats classic layering when work runs in parallel, shared layers push every feature down the same path and serialize the team.
Read on Substack ↗ June 2026A simple way to map abstraction against stability, so each component stays as abstract as it is stable, and avoids both rigidity and wasted effort.
Read on Substack ↗These support the broader picture: practical engineering experience first, with certifications reinforcing depth in modern backend, AI, and ecosystem-specific tooling.
Alongside engineering work, I have mentored students and developers through structured teaching, hands-on guidance, and practical system thinking.
I focus on helping people understand not just how to write code, but how to think about systems, make better decisions, and avoid common pitfalls early.
Good engineering is not only about writing code. It is also about how you work with people, how you communicate, and whether you help the team catch problems before they spread.
I try to integrate quickly, communicate clearly, and stay useful. I pay attention to what is being built around me, not just to my own tasks. If something looks unclear, risky, or incomplete, I do not assume it will fix itself. I check.
I work best on systems that need clear service logic, reliable behavior, good integration boundaries, and delivery that holds up in real use.
I can work independently and I can take initiative, but I do not build for my own preferences. I work within the constraints of the team, the employer, and the client. My job is to help deliver what is needed, in a way that is stable, practical, and trustworthy.
If that is what you are looking for, reach out directly. I am open to backend and platform-oriented roles where reliability, team strength, and solid engineering matter.