Projects

Flagship

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

Substantial

WCSSkills

Archived 2021-10 → 2023-01, then 2023-11 → 2024-01

A Counter-Strike server mod where players compose individual skills instead of picking a class — built on a trait-based status-effect system adapted from a JRPG's combat rules. Written first in Python, then rewritten from scratch in C++20.

PythonSource.PythonC++20CMakeGoogleTestSQLite C APImetamodnlohmann/json

An async document search service: CSV import with deduplication, paged search, and document read and delete.

FastAPIElasticsearchPostgreSQLSQLAlchemy 2.0asyncpgTyperDocker Composepytest-asyncio

Private repository Case study

Nova3D

Stale 2024-02 → 2025-05

A 3D reinterpretation of Nova Drift, built on a trait-based upgrade system — my second-largest codebase, and the place where I learned what module boundaries buy you.

UnityC#URPVFX GraphUnity LocalizationAddressablesNewtonsoft.JsonR3

Private repository Case study

Production infrastructure

Live 2026-07 → present

The infrastructure for the machine that runs articha.ru, in version control: nginx, Redis, and the systemd units for the site, the API and the Celery worker.

nginxsystemdRedisRaspberry Pi

Private repository Case study

Smaller work

Project Period What it shows
ATON — currency rates site
Submitted
2024-05 171,418 rows loaded with bulk_create; a background updater thread beside Django; one-second anti-spam pacing, with the full refresh measured at 3 h 39 m and documented; interactive Plotly graphs; an honest bug list in the README
ATON — C# Web API
Submitted
2024-05 ASP.NET Core with EF Core and Swagger
ATON — T-SQL tasks
Submitted
2024-05 Transaction isolation levels; grouping by date parts; LAG/LEAD window functions wrapped in a subquery because WHERE cannot touch them; plus an algorithm task solved with a documented six-step method and a complexity estimate
workmate_test — CSV report CLI
Submitted
2026-03 Zero runtime dependencies; prefix-based aggregation; packaged as an installable distribution; pre-commit, flake8, pytest and Coveralls; graceful per-column error reporting
OfferDjango — Bootstrap 5 from Figma
Submitted
2026-02 Django and Bootstrap 5 built from a Figma file; file uploads, drag-and-drop ordering, synced galleries with fullscreen, a Russian-language admin; a README documenting every judgement call
data-analyst-1
Submitted
2026-04 pandas and openpyxl producing an Excel report with conditional formatting; documented assumptions; a conclusion verified against the data rather than assumed
KisPyGenerators2
Complete
2023-12 A metaclass-driven task registry; composable exercises with serialisation; complexity-ranged random generation; a validator driving a candidate generator through send() and throw() and returning a diagnostic; CI across Python 3.7–3.12
KISHelper
Source gone
2024 An aiogram bot with solvers for four task types, each split into parser and solver; SVG parsing; HTML caching; a settings watcher; MkDocs documentation; per-task fixtures with saved pages
KISSolver
Source gone
2025-04 An image → OCR → LaTeX → executable Python pipeline: statements published as rendered images recovered with OCR, parsed as LaTeX, translated into Python and evaluated. Stopped working when the upstream source closed access
ArtichaChromeExtension
Live
2025-03 A Chrome MV3 extension uploading authenticated pages so their content stays readable without re-authenticating; crx packaging; a self-hosted update feed served by the Django app
AA_Voices
Stale
2024–2025 An async scraper pulling a voice-line dataset from a public game-data API, with audio tagging, plus voice-synthesis training scaffolding. 135 commits
translator
Complete
2023-11 Three libraries in one, built during a three-day competition: pivot translation through an intermediate language; an FFmpeg wrapper using stream copy, measured at 431 invocations over 4.11 GB in 28.3 seconds; and a subtitle writer implemented as a generator you send lines into
MNIST8
Complete
2024-11 → 2025-03 A Vitis HLS C++ implementation of a 12,730-parameter network for small neural processors, with a hand-written matrix-multiply kernel, verified in C simulation against the reference model
medical_ai
Complete
2024-02 Asked to build a classifier separating closely related diseases, ran the exploratory analysis first, concluded the data could not support a reliable model, and stopped
DiscordBot
Source gone
2024 Per-user online and in-game time tracking; a SQL schema per feature module; matplotlib charts. 99 commits. Stopped when the platform was blocked in Russia
ReminderBot
Complete
2023-05 A Telegram reminder bot optimised for very fast entry — its one differentiator over a general calendar. A university pair project, and the only collaborative repository here
SomeMagazineBot
Stale
2023-10 A deliberate skill-stretch to learn SQLAlchemy and PyMySQL. Verdict recorded: I prefer the Django ORM
OrangePiDjango
Archived
2023 The predecessor to articha.ru, abandoned because its foundation could not carry what came next — which is why the successor was started clean
VK_community_bot
Stale
2022 A bot controlling my own machine remotely. 36 commits