Junior AI Engineer

Aleksandr
Balaev

I build software with AI agents and make sure it works. Most recently I co-built Personal Exchange Bot, a Telegram service that helps Russians living abroad exchange rubles for local currency, person to person. It has been in production since October.

Based in Nitra, Slovakia. Open to roles in Bratislava or remote.

Portrait of Aleksandr Balaev

Personal Exchange Bot

Rubles for local currency, person to person. A safer alternative to exchange chats, with a rate you can check.

Banks won’t take rubles

Since the 2022 sanctions, most banks and exchange offices in Europe no longer exchange rubles. Yet many Russians live abroad and need local money, like Czech koruna.

Chats are full of scammers

So people swap in Telegram chats, typing “I’ll swap this much for that much” by hand, with scammers among them.

Changers push the rate

Money changers in those chats inflate the rate and set the trend for everyone else.

The bot turns this into a clear process: structured offers, rates to compare, checked accounts and ratings.

A simplified walkthrough: create an offer, get responses, agree on a place, exchange and rate. The bot never holds money.

4,808

automated tests, run on every pull request

173

screens in the bot

327

pull requests merged, each through CI and review

2

days from the spec to a working first version

Agents write the code.
I own the result.

On Personal Exchange Bot every change runs through the same loop: one GitHub issue, one coding agent, one fresh session. People stay in the loop through the issue thread.

  1. Open an issue

    Every task starts as a GitHub issue. Its labels set the model and the effort, using Claude Code’s own values.

  2. Start an agent

    A session manager runs the issue watcher and starts one headless Claude Code agent per issue, each in its own git worktree.

  3. Confirm the task

    Before any code, the agent posts how it understood the issue, with sample screens where relevant.

  4. Build

    The agent writes the code and the tests on its own branch and opens a pull request through the existing workflow.

  5. Verify

    CI runs ruff, mypy, the full pytest suite and a secret scan. Then a person reviews the result.

  6. Hand off

    The agent leaves a handoff for the next session. Agents talk through issue comments, in plain language anyone can read.

A simplified example of one issue going through the loop.

1 : 1

One issue, one agent. Each works in its own git worktree, on its own branch, from a fresh session.

2

agents at a time. Other issues wait in a queue, and no issue ever gets two agents.

Opus, xhigh

the default model and effort when an issue has no labels.

Labels set the power

model:haikumodel:sonnetmodel:opus

effort:loweffort:mediumeffort:higheffort:xhigheffort:max

0

shared secrets. One setup script, and everyone signs in with their own GitHub and Claude accounts.

Hi, I’m Alex.

I live in Nitra, Slovakia, and study English at Constantine the Philosopher University. I came into tech through testing: I’m an ISTQB-certified tester and test web and mobile apps for real clients on uTest.

Now I’m focused on AI engineering: building real products with AI agents, and making sure what they ship actually works.

Experience

QA Crowdtester (freelance)

  • Exploratory and functional testing of web and mobile apps for real clients
  • Reproducible bug reports with clear steps and expected results
  • Logs and HTTP traffic analysed in Fiddler and Charles Proxy

Gaming Club Administrator

  • Technical support for customers
  • Maintenance of gaming workstations and software
  • Technical setup for CS:GO and Dota 2 tournaments

Education

Constantine the Philosopher University in Nitra

Faculty of Arts

  • Advanced English communication
  • Text analysis
  • Research
  • Public speaking

Skills

AI engineering
Claude Code, agentic engineering, AI agent orchestration, tooling and handoff for agent sessions
Shipped with
Python, aiogram 3, FastAPI, PostgreSQL, SQLAlchemy
Quality
pytest, Hypothesis, ruff, mypy, gitleaks, exploratory and functional testing, bug reporting, Fiddler, Charles Proxy, Jira
Learning now
  • Python
  • SQL
  • API testing

Languages

English
Upper-intermediate (B2)
Russian
Native
Slovak
Full understanding, speaking at B1

Certificates

GitHub Foundations

Exam GH-900.

In preparation

Let’s talk.

I’m looking for a junior role in AI engineering, in Bratislava or remote. The bot’s code is private, so I’m happy to walk you through it on a call.