Backend & machine-learning engineer · Cluj-Napoca, Romania · open to internships and junior roles

Cezar Tocaciu

I build complete systems on my own, and I keep track of which parts of them I can actually trust.

Selected work

Eight systems, and what pins each one

Each entry says what stands behind it, and the colour says who did the checking. Proven and validated mean a machine did — a test suite that fails when the behaviour breaks, or an out-of-sample run built to kill the result. Merged means a person did: a maintainer reviewed the work and took it. In use means the world did. In progress means nobody has yet: it is still being built.

  1. kira-mcpOct 2026 · Open source · MIT · on PyPI and the MCP RegistryMCP server that lets any AI assistant search Romanian rentals live, in every town3,181 localities, from cities down to communesPython · MCP Python SDK · requests · BeautifulSoupProven73 tests, 10 of them against the live sites · CI on Linux and Windows · weekly live check
  2. backtest-coronerOct 2026 · Open source · MIT · Claude Code plugin and npx skillsAgent skill and CLI that audits a trading backtest before money touches it~99 strategy families falsified to write the rulesPython · Agent Skills · Claude Code plugins · GitHub ActionsTestedunit tests · CI on Python 3.10 and 3.13 · triggered end to end in Claude Code
  3. Kira2026 · Personal project · public, source-availableRental aggregator for Romania, with the filters the listing sites don't have5 source sites behind one scraper contractPython 3.12 · FastAPI · SQLAlchemy 2.0 · APSchedulerProven~70 backend tests · ruff, tsc --strict and ESLint clean
  4. Escape With Your FriendsAug 2026 — now · Personal project · in progress, Steam release plannedFour-player co-op survival game in Unity — I direct and playtest, coding agents write the C#136 pull requests merged in five weeks, from an empty repoUnity 6 · C# · FishNet · SteamworksIn progressplayable end to end · ~70 headless test harnesses · Steam release planned
  5. TradingBot2025 — 2026 · Personal project · code private, write-up publicOpening-range breakout on US30, filtered by a calibrated ML model~3,000 labelled trades, 67 causal features eachPython · XGBoost · LightGBM · scikit-learnValidatedwalk-forward across 5 expanding windows · bootstrapped lift over baseline
  6. Unlost in TranslationJul — Aug 2026 · Open-source contribution · project by Radu MariasOpen-source AI translator by Radu Marias — I contribute the architecture work1 shared module now feeding Android, Wear and the browserKotlin · Kotlin Multiplatform · Compose Multiplatform · Kotlin/WasmMerged138 of 142 commits · 20+ pull requests reviewed and merged by the maintainer
  7. RankUpJul — Aug 2026 · Personal project · publicChrome extension that parses CS2 demos in the browser to map opponents' positions0 servers — every demo is parsed client-sideReact 19 · TypeScript · Vite · TailwindProven400+ Vitest tests · typecheck clean · a test that fails on any unused permission
  8. ShowerConfig2025 · Client work · code private, write-up publicDesktop configurator that turns a shower-cabin sale into a priced PDF quote7 cabin models, each with its own hardware recipeJava · Swing · MySQL · PDF exportIn userunning daily at the manufacturer it was built for

Judgement

What I threw out

The decisions I would want to be asked about.

  1. A 63% win rate

    TradingBot

    A one-to-one variant of the trade filter beat the shipped configuration on the number everyone looks at first. Its bootstrapped confidence interval for expectancy included zero, and one walk-forward fold came out negative. The two-to-one setup, with the worse win rate, held its edge in every fold. The prettier number lost.

  2. A model for the hard part

    Kira

    Reading heating and parking out of messy Romanian ad text is the part of the rental aggregator worth training a model on. It runs on regex instead: auditable when a listing comes out wrong, free per listing, and it works offline. The more impressive choice was the worse one.

  3. A distance for every listing

    kira-mcp

    Agencies often leave a listing's map pin on the city centre, so a flat across town shows up as five minutes from everything. Guessing a location for every ad would make the results look complete. Instead the neighbourhood named in the title overrides the pin, and an ad that still cannot be placed is listed last with no distance at all. A gap the user can see beats a number that is wrong.

  4. Unreal Engine 5

    Escape With Your Friends

    It was the engine everyone expected, and it lost on a property nobody puts in a comparison table: its Blueprints and assets are binary. In a project where coding agents write the code from a terminal, binary files are a blind spot the size of half the game. Unity keeps scenes and data as text, so every change is a diff someone can read and review.

  5. Generated serializers

    Unlost in Translation

    The compiler plugin that writes serialization code for you would not cooperate with Compose Multiplatform on WebAssembly. Writing those serializers by hand was the dull way through, and it was what unblocked the browser build entirely.

Stack

What I reach for

Graded the same way the projects are, because a list that claims everything claims nothing.

First choiceReach for these without thinking, and can take them apart in an interview.
  • Python
  • FastAPI
  • SQLAlchemy
  • pytest
  • pandas
  • NumPy
  • scikit-learn
  • XGBoost
  • SQL
  • regex
  • web scraping
  • Git
Used on real workShipped something with each of these, and would need to look things up.
  • Java
  • Swing
  • MySQL
  • SQLite
  • TypeScript
  • React
  • Tailwind
  • C++
  • MetaTrader 5 API
  • CustomTkinter
  • LightGBM
  • Optuna
  • MCP servers
Built with, still learningReal work in them — the translation app next to its maintainer, the game with coding agents. I can explain how those projects are built; I would not call it fluency.
  • Kotlin
  • Kotlin Multiplatform
  • Compose Multiplatform
  • Ktor
  • Unity
  • C#
  • FishNet
How I workAgents write a lot of the code. Review, tests, and being explicit about what has not been checked are what make that defensible.
  • Claude Code
  • agent skills & hooks
  • code review
  • tests as the gate

About

Cluj-Napoca, fourth-year computer science

Computer science at the Technical University of Cluj-Napoca, now in my fourth year. Most of what I know came from finishing things: a rental aggregator that reads facts out of badly written Romanian ad text, a trading filter that had to survive its own validation before I would run it, a translation app I helped restructure until it also ran in a browser, and a four-player game where the agents write the code and my job is to decide whether it is any fun.

The work is mostly Python, backend-shaped: data pipelines, typed APIs, model training that is honest about what it does not know. I write the tests first when the answer matters, and I write down which parts are still unproven when it does not.

A lot of the typing is done by coding agents now. That changes what the job is, not whether it has to be right — I decide what gets built, set up how the agent works, then stand between what it produces and the main branch: reading the diffs, writing the tests that have to pass, and keeping a written record of what has never actually run. The habits on this page came from needing to trust code I did not type line by line.

Education
BSc Computer Science
Technical University of Cluj-Napoca
Oct 2023 — present
Languages
Romanian — Native
English — Fluent
Based in
Cluj-Napoca, Romania

Contact

Looking for a backend or ML internship, and reading every message.

cezartocaciu233@gmail.com