Open to offers

Artem Gevorkyan

Python backend engineer — Django, Celery, FastAPI, Redis, PostgreSQL. I build products and run them in production.

I designed, built and operate articha.ru — a Django service with 11 apps, payments, an OpenAPI surface, a published PyPI client and a Chrome extension — self-hosted on a Raspberry Pi, 733 commits and counting.

  • Moscow region, Russia
  • Russian — native
  • English — conversational, fluent technical reading and writing
Portrait of Artem Gevorkyan

By the numbers

50
Registered accounts
every account arrives through OAuth — there is no password registration path
58
Projects created
383
Documents rendered
96
Fast conversions
120
Files stored
39
Public and private repositories
2,790
Commits across them
1
Packages published to PyPI
7
Languages shipped in

Flagship projects

All projects

articha.ru

Live 2025-02 → present

A public utilities platform where people upload markdown projects and render them into standards-compliant Word documents in the browser — plus a document compressor, a payment system and a companion Chrome extension. It is the product side of a document engine I also wrote.

Python 3.12Django 6django-allauthFastAPICeleryRedisPostgreSQLpsycopg3uWSGIBootstrap 5htmxCodeMirrorPlotlyCloudflare APInginxsystemdi18n

articha.ru Private repository Case study

Markdown Gost

Live 2025-01 → present

A Markdown → .docx converter producing documents that conform to ГОСТ, the Russian state standard for academic and technical documentation. It removes the entire manual formatting burden of writing a thesis or a technical report in Word.

Python 3.12+python-docxmarkolxmlsympylatex2mathmlXSLTGraphvizPillowhatchling

articha.ru Private repository Case study

MGost

Live 2025-10 → present

The local companion to the cloud converter. init, sync and render give you a git-friendly project on disk that stays in step with the server and downloads the rendered document.

Python 3.13typerhttpxPydanticaiofilesaiopathrichpytest + asyncio/xdist/respxhatchlingMIT

How I work

I ship the whole vertical.

One idea became six artifacts: a document engine, a product that hosts it, a typed public API inside that product, a published command-line client, a browser extension, and the version-controlled infrastructure it all runs on — with deploy alerting wired into my own monitoring. Most of what I build ends up with a complete product surface rather than a repository.

Every project started as my own problem — and I checked before building.

I could not format documents to the Russian state standard, so I surveyed what existed, found nothing that fit and several projects too stale to build on, and only then wrote my own. I then wrote an 88-page thesis with it before offering it to anyone else. The generator-exercise tool exists because I was tutoring students on generators. The scraper and the browser extension exist because a course put its pages behind authentication. Nothing here is a tutorial project.

I teach the thing I build.

Over 120 verified task check-offs for other students, a paid exam briefing for thirty-five people, and one-to-one tutoring through an entire course — then I automated my own teaching domain with three tools built for it. Explaining send() and throw() to a room and then building a generator that produces graded exercises on the same topic is the same skill pointed in two directions.

I can tell when a design has stopped paying for itself.

A Django site rebuilt from scratch when its foundation could not carry the next feature. A game-server plugin rewritten from Python into C++20 when the platform changed. An exercise generator rebuilt around a task registry. A thesis architecture generalised into a standalone one. An engine migration out to Godot and back. Each restart followed a specific change in constraints, and each successor shipped further than the thing it replaced.

I document decisions, not just usage.

A design document written before implementation. A test suite with a scenario table enumerating thirteen sync cases and the HTTP verbs each should produce. A README that records every judgement call and every deviation from the brief. Several of them record deferred decisions and open questions explicitly rather than pretending completeness.

I know when to stop.

Asked to build a classifier separating two closely related diseases, I ran the exploratory analysis first, concluded the data could not support a reliable model, and said so instead of shipping one. A negative result delivered early is worth more than a classifier nobody should trust.

Small independent pieces plus a coordinator.

Traits composing into skills in a game-server plugin. Nineteen assembly definitions with enforced compile-time boundaries in a Unity project. Twenty-five independent macro modules in a document engine. Independent competency networks weighted at runtime in a thesis. An engine split from its client — twice, in unrelated domains. The same instinct across game modding, document rendering and machine learning. If there is one thing to know about how I build, it is this.

Contacts