Backend engineer. I mostly work on the systems behind AI products: services, queues, data pipelines, and the plumbing that makes LLM features behave predictably in production.
A DAG-based orchestration platform for enterprises. Think n8n, but built to go deep into specific verticals rather than wide. The orchestrator sits at the center, and vertical AI products, enterprise integrations (like SharePoint) and data features such as natural-language querying over databases plug into it as nodes and workflows. Governance and FinOps are first-class: who can run what, against which data, and what it costs. I've also worked on a builder that turns a plain-language description into a valid workflow graph, which is mostly a validation problem wearing an AI costume.
Document ingestion for RAG. Object storage, virus scanning, parsing, chunking, embeddings, Qdrant. The interesting problems are the boring ones: retries, partial failures, re-indexing, and knowing when retrieval quality has quietly degraded.
Multi-tenant platform services. NestJS microservices with RabbitMQ, PostgreSQL, MongoDB and Redis. Hierarchical RBAC, tenant isolation, and agent tool permissions. A lot of the work is drawing service boundaries that still make sense a year later.
Agent orchestration. Planning and execution loops, tool calling, structured outputs, context management. I'm mainly interested in the question of what it takes for an agent to be reliable enough that people stop babysitting it.
TypeScript, Node.js, NestJS, Python PostgreSQL, MongoDB, Redis, Qdrant RabbitMQ, Docker, Nginx, Linux AWS, GCP, Cloudflare, GitHub Actions LangChain, LangGraph Some React and Next.js when needed
- AKS (Azure Kubernetes Service): running and operating workloads on managed Kubernetes
- Azure AI Foundry: building, deploying and evaluating models and agents on Azure
- Distributed systems and database internals, properly this time
- LLM evaluation methods that hold up beyond a handful of test cases
I'd rather understand what's happening underneath a framework than treat it as a black box. I try to write code that the next person (usually future me) can read without a guided tour, and I'm still learning a lot from the engineers around me.
Before backend work I spent time on robotics, embedded systems and computer vision. Most of what carried over is a habit of asking how things fail.
Always happy to talk about backend architecture, RAG, or getting agents to work outside a demo.



