Skip to content

Andrii Kalmus — Senior Software Developer and AI Agent Engineer

Andrii Kalmus is a senior software developer and AI agent engineer based in Bulgaria, working remotely across European and North American hours. I've spent over a decade shipping production software, much of it at iGMS, a Canadian B2B SaaS: full-stack work across a JavaScript/TypeScript/React front end and a PHP/Laravel back end, architecture and design, feature development, and the root-cause debugging that keeps a long-lived, integration-heavy codebase running. I architect the systems and direct AI to build much of the implementation, then verify it is correct. That experience is also what lets me catch when the AI is wrong and fix what it breaks.

At iGMS

I joined when iGMS had one or two engineers and have worked on the product ever since. It runs across over 130 countries, on a long-lived, integration-heavy codebase where any change has to account for years of accumulated decisions. I hold three concurrent roles:

  • Senior Full-Stack Developer — JavaScript/TypeScript/React, PHP/Laravel, and the third-party platform API integration layer, plus architecture changes across the core product.
  • Tier 3 Support Team Lead — diagnosing and personally resolving long-running production bugs that need historical codebase context, and leading the team flat with direct cross-functional communication. I have mentored junior engineers to mid-level.
  • Technical Product Owner — triaging bug-fix and tech-debt work by customer-impact signal, and bringing the support team's view of recurring problems into engineering planning.

Directing and verifying AI

At iGMS I designed and built the AI orchestration the engineering team uses every day: a multi-agent code-review skill with parallel reviewers and a supervisor that synthesizes their findings, a multi-stage ticket-investigation skill that runs parallel investigation and merges the results, and a QA test-plan generator. Producing usable output is the easy part; the hard part is catching when it's wrong, so across all of them I run LLM-as-judge validation that flags a prompt or model change quietly breaking the output before it ships.

I also maintain the AI-agents microservice that drafts and auto-sends host-guest messages in production, an OpenAI-API-backed Laravel service. Making its function calling reliable meant JSON-schema-constrained output, per-provider validation, application-layer trace logging, and human-gated review of those traces.

bigcats.org.ua

bigcats.org.ua is my own project: a wildlife-news site, live since 2022, that I've run on a multi-agent pipeline I designed intuitively, before "agentic" was the standard word. I direct several models across multiple providers, each matched to the stage it fits: some alternate on species classification and region tagging, another translates to Ukrainian, another applies edits, one is reserved for the deepest escalation tier, and a quality-loop analyzer is bounded so it cannot run away on cost. The translation-quality loop doubles as a multi-model eval, and publishing stays human-gated.

The retrieval side is news-search at its core: I rebuilt it around Google News RSS and GDELT, following NewsCatcher's own engineering guides, with fallbacks through OpenRouter and Nebius so no single vendor outage breaks the daily run. A custom system I wrote, not IFTTT, fans each Telegram post out to X, Bluesky, and Friendica, splitting long posts into platform-native threads and tracking replies across them. All of it is inspectable: the site is github.com/Abysim/bigcats, the pipeline github.com/Abysim/api.

Tools I work with

  • Languages & frameworks: PHP, Laravel, JavaScript, TypeScript, React, SQL.
  • Backend & data: REST and third-party API integration, MySQL, Redis, Elasticsearch, ZeroMQ, WebSockets, async webhooks.
  • Infrastructure & observability: AWS, Docker, Datadog, ClickHouse, log-driven production debugging.
  • Engineering practices: SOLID, DRY, YAGNI, root-cause analysis, and evolving long-lived codebases in place.
  • AI & agents: multi-agent LLM pipelines, function calling, tool use, MCP, Claude Code, GitHub Copilot, LLM-as-judge and multi-model eval, RAG, prompt engineering; Claude, GPT, Gemini, Qwen.

Elsewhere

My full CV covers earlier roles at Intelligentum and InfoRegion. I write on my professional blog and on Medium; my code is on GitHub, my work history on LinkedIn. I'm drawn to multi-agent systems, news-search and retrieval pipelines, and conservation work where an engineer has to orchestrate and verify AI. The contacts page is the way to reach me.

Essential cookies are always on. Cookies for analytics and comments are used only with your consent. Learn more