Independent engineer · Belgrade, Serbia

Senior Java/Kotlin engineer for production AI

I build MCP integrations and AI agent workflows with human approval, audit trails and safeguards against duplicate actions.

10+ years
Java and Kotlin backend engineering
2 open-source projects
Apache-2.0
Remote B2B
Belgrade · CET/CEST

Selected work

Open source · Kotlin · Apache-2.0

Telegram MCP Server

tolboy/telegram-mcp-tdlib

AI assistants can work with real Telegram accounts through a read-only profile by default. Operators can enable write tools, require approval for sensitive actions and use idempotency keys to guard against duplicate sends.

126 MCP tools · Listed in the official MCP Registry

Technical details

What it does

  • TDLib (via tdlight-java) gives agents access to real user accounts and Telegram features beyond the Bot API.
  • Write and quota-consuming tools stay hidden from the model until the operator enables them.
  • MCP elicitation or a single-use loopback page collects human approval outside the model's turn.
  • With an idempotency key, a retry can recover a stored send receipt. Unconfirmed sends are reported as unknown and never silently resent.

How it ships

  • STDIO for desktop clients and Streamable HTTP for managed deployments, with API-key or OAuth resource-server auth.
  • Isolated multi-account sessions with scoped API keys.
  • Runtime-inclusive bundles for Windows, Linux and macOS (no JDK needed), plus GHCR container images, an SBOM and signed digests.
  • Listed in the official MCP Registry. Prometheus metrics and structured logs included.

Kotlin · Spring Boot 4 · MCP Java SDK · TDLib · Docker · GitHub Actions

Private product · Kotlin · since 2025

Berloga-AI

architect & sole developer

I took this local-first AI workflow platform from prototype to an installable Windows product. Its Telegram tools surface potential leads, draft replies and track follow-ups.

9.6–85 s → 1.0–1.8 s per chat turn in single-user profiling.

Berloga sales pipeline showing contact stages, follow-up deadlines and the conversation behind a selected lead
Review follow-ups and trace a lead to its source conversation Open full size

Screenshots use fictional Telegram conversations.

Technical details

Highlights

  • Every external action passes through policy, human approval, dispatch and audit. Compare-and-set claims and idempotency keys enforce at-most-once dispatch.
  • Local models classify signals and escalate when needed. Private data stays local, and a cost pre-check can fall back to the local model.
  • Moving the blocking tool catalogue refresh into the background shortened chat response times. The refresh coalesces snapshots and recomputes embeddings only for changed tools.

Also inside

  • Hybrid RAG (dense + sparse) on PostgreSQL + pgvector behind a server-side authorisation filter.
  • MCP connectors run as separate Docker services. The Telegram connector became the open-source Telegram MCP Server.
  • CI quality gates include Testcontainers suites, a safety evaluation corpus and a routing-regression gate.
Time per chat turn · single-user profiling
Before
9.6–85 s
After
1.0–1.8 s

Breakdown of one 9.6 s turn before the change

Tool catalogue sync
8.6 s
Response writer
1.0 s

From OpenTelemetry profiling in July 2026.

Berloga lead intelligence view showing selected Telegram groups, scored leads and reply drafts
Find buying signals in selected Telegram groups and review reply drafts Open full size

Kotlin · Spring Boot 4 · WebFlux · Spring AI · Ollama · PostgreSQL + pgvector · OpenTelemetry

How I can help

I connect AI workflows to existing systems and build software your engineers can maintain.

MCP servers & AI integrations

Let your AI assistants and agents use your real systems safely.

  • Custom MCP servers for internal APIs, databases and SaaS tools
  • Read-only defaults, scoped credentials and approval for writes
  • Packaging for desktop clients and managed deployments

Governed agent workflows

Automate multi-step work without losing control of side effects or spend.

  • Deterministic orchestration around LLM steps
  • Human-in-the-loop gates, idempotent dispatch and audit trails
  • Cost bounds, tracing and evaluation gates in CI

JVM backend engineering

Senior hands on the Java and Kotlin services your AI features depend on.

  • Spring Boot services, REST/OpenAPI, Kafka, SOAP integration
  • Breaking monoliths into services, with PostgreSQL done properly
  • RAG pipelines on PostgreSQL + pgvector

Architecture & AI-readiness review

A clear, written opinion before you commit budget.

  • Where an LLM adds value in your system, and where it adds risk
  • Review of an existing agent or RAG design: failure modes, security, cost
  • A prioritised plan your team can carry out with or without me

How we can work together

Fixed-scope project
A defined deliverable, such as an MCP server, an integration or a review, with agreed acceptance criteria.
Contract / embedded
Remote work inside your team on your roadmap, in your repositories and rituals.
Advisory retainer
Regular design reviews and a second pair of eyes on AI-related decisions.

How an AI workflow runs

The model proposes an action. The controller checks policy, obtains approval when required and records what happened. I trace each step so teams can diagnose failures and understand latency and cost.

Example workflow
  1. SignalA message, webhook or document starts the workflow.
  2. PolicyThe controller sets permissions and cost limits.
  3. ModelA local or hosted model proposes an action.
  4. Human approvalA person reviews the proposal when policy requires it.
  5. DispatchSupported operations use idempotency keys to prevent duplicate actions on retry.
  6. AuditThe outcome and supporting evidence are recorded.
An example of keeping permissions, retries and audit outside the model.

Selected experience

I’ve built backend systems for telecom, enterprise content management and software integration. My current work applies that experience to model integration, evaluation and observability.

  1. — present

    Senior Backend Engineer (Java/Kotlin/AI)

    Berloga-AI · Freelance

    Architect and sole developer of Berloga-AI and AI Overseer, and maintainer of the open-source Telegram MCP server.

  2. —

    Senior Software Developer

    RZD International

    Built Java 21 and Spring Boot 3 services for a sports-events app and an online-store integration. Automated daily HR data synchronisation over SOAP and Kafka, and built an offboarding flow that removed Keycloak roles and ended active sessions.

  3. —

    Senior Software Developer

    Nexign · telecom billing

    Moved parts of a customer-management monolith into independently deployable and scalable services. Used Apache Camel to orchestrate service provisioning across billing, order management and network systems.

  4. —

    Software Developer

    Korus Consulting · enterprise content management

    ECM solutions on Alfresco. Optimised Lucene-based search, cutting search time by 40% and adding Russian-language morphology.

Toolbox

Languages & runtime
Java (up to 25), Kotlin, Kotlin coroutines
Frameworks
Spring Boot, WebFlux, Spring AI, Spring Security, Hibernate
AI engineering
MCP (Java SDK), tool calling, RAG, model routing, eval gates, Ollama, Claude / GPT / Grok APIs
Data & messaging
PostgreSQL, pgvector, Flyway, Liquibase, Kafka, RabbitMQ
Integration
REST / OpenAPI, SOAP, Apache Camel, Apache CXF, Alfresco ECM
Delivery & ops
Docker, Kubernetes, GitHub Actions, Testcontainers, OpenTelemetry, Prometheus, Grafana

Frequently asked questions

Do you train or fine-tune models?

No. I integrate and operate models in production code: retrieval, orchestration, tool access, permissions, idempotent side effects, evaluation, cost and latency. If your project needs model training, I'll tell you early and help you find the right person.

Which timezones and languages do you work in?

I work remotely on Belgrade time (UTC+1 in winter, UTC+2 in summer). I speak English at B1+ level and can discuss technical work on calls and in writing. Russian is my native language.

How do contracts and invoicing work?

I take on remote B2B contracts and consulting engagements. Get in touch to discuss scope, rates, contract terms and invoicing.

Can I see your code first?

Yes, and I'd encourage it. Both telegram-mcp-tdlib and ai-overseer are public, with their CI, release history and documentation.

Let’s talk about your project

Tell me what you’re building, which systems it needs to connect to and what must work reliably.