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
Junior AI Engineer
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.
Rubles for local currency, person to person. A safer alternative to exchange chats, with a rate you can check.
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.
So people swap in Telegram chats, typing “I’ll swap this much for that much” by hand, with scammers among them.
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
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.
Every task starts as a GitHub issue. Its labels set the model and the effort, using Claude Code’s own values.
A session manager runs the issue watcher and starts one headless Claude Code agent per issue, each in its own git worktree.
Before any code, the agent posts how it understood the issue, with sample screens where relevant.
The agent writes the code and the tests on its own branch and opens a pull request through the existing workflow.
CI runs ruff, mypy, the full pytest suite and a secret scan. Then a person reviews the result.
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.
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.
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.