Software Engineer — async Python, microservices, Kubernetes. I work on the infrastructure layer of backend services: service runtimes, resilient clients, transactional messaging, PostgreSQL partitioning, and the CI that keeps all of it honest.
MSc student in System and Software Engineering at HSE University (BSc in Software Engineering, 2026). Winner of the "I Am a Professional" All-Russian Student Olympiad in Software Engineering (2026, prize-winner in 2025).
Bedrock Python — an open-source ecosystem of Python libraries for the infrastructure layer of backend services. Apache-2.0, published on PyPI, tested against real PostgreSQL, Redis and Kafka.
| Package | What it does |
|---|---|
| servicewright | Microservice runtime for async Python: multiple entrypoints under one Kubernetes lifecycle |
| clientwright | One retry / circuit-breaker / deadline / telemetry core behind the native httpx, aiohttp, requests and urllib3 clients |
| omni-box | Transactional Outbox and Inbox for async Python services |
| pg-partsmith | PostgreSQL partition lifecycle management — a plan you can read before it runs |
| idempotency-kit | Idempotent request handling for async Python applications |
| alembic-gauntlet | pytest toolkit that runs Alembic migrations forward, backward and against your models |
All packages, the layer map and the blog: bedrock-python.github.io · github.com/bedrock-python
- centrifugal/centrifugo #1220 (Go) —
CREATE TABLE IF NOT EXISTS … PARTITION OFis not atomic: when several nodes start at once, the losing node got42P07and aborted the rest of the partition pass. Fixed in the PostgreSQL outbox partitioner; shipped in v6.9.4. - pgmq/pgmq #585 (SQL) — partitioned queues silently overran
premakeand could not recover. Added thepremakeparameter, switchedmsg_idtoGENERATED BY DEFAULT, exposeddefault_partition_lengthinmetrics(), with migration, tests and docs; shipped in v1.13.0.



