CODE · 2020 →
From markup to backend
Markup, frontend, full-stack, then three years of server-side development in Java and Kotlin. These days the code is written by AI agents while I set the direction and hold the quality bar. I read and edit their code myself — otherwise a review comes down to taking the agent's word for it.
2 065
contributions February — September 2026 · 159 active days
The graph starts in February: before that I was at Samokat, and the code went into a corporate GitLab rather than here. The densest month is July with 514 contributions: that is Shotra.
EMPLOYED · 2021 — 2025
On teams
Four companies between 2021 and 2025, from building interfaces to server-side development in Java and Kotlin. All of it other people's codebases, other people's processes and code review — the part you cannot learn on your own projects.
-
Samokat — backend engineer
January 2023 — December 2025 · 3 years · Moscow
A grocery chain and online shop. I wrote and maintained server-side applications in Java and Kotlin — business logic, REST APIs, integrations with external systems. A separate part of the job was PIM, the catalogue system behind the marketplace: hundreds of thousands of products with their own attributes, categories and relations. A boxed 2013 system that supported nothing newer than Java 8 and could fall over at a sudden movement. Rewriting was not an option; extending it without knocking anything down was.
Java 8 · Java · Kotlin · PIM · PostgreSQL · Kafka · Docker · GitLab CI
-
SberLogistics — full-stack engineer
April 2022 — January 2023 · 10 months · Moscow
Freight, logistics, warehousing and foreign trade. I built interfaces in React, a Telegram bot in Node.js and services in Java with Spring Boot — the whole vertical from the button down to the database. I formalised and algorithmised requirements, advised systems analysts, refactored and optimised code.
React · Node.js · TypeScript · Java · Spring Boot · Telegraf · Git
-
Expertec IBS — frontend engineer
November 2021 — April 2022 · 6 months · Moscow
Projects for oil and gas. I built the base interface components and the user-facing part from a blank page rather than extending somebody else's work.
HTML · CSS · Sass · JavaScript · React · TypeScript · Git · Jira
-
Apark — frontend engineer
June 2021 — October 2021 · 5 months · Moscow
A platform for freight, logistics and foreign trade. Responsive cross-browser markup and platform features. The first place where I wrote frontend in production rather than out of a textbook.
HTML · CSS · Sass · JavaScript · React · Redux · Webpack · Git · Figma
Stack
Java · Kotlin · Spring Boot · PostgreSQL · Kafka · Docker · GitLab CI · Node.js · TypeScript · React · Redux · Vue / Nuxt · REST API · Git
MY OWN PROJECTS · 2021 → 2026
For the love of it
I write constantly and mostly for myself: over twenty repositories of my own, the public part on GitHub. The ones below are the interesting ones. Almost all of them grew out of a problem of my own that was easier to close with code than to put up with.
-
☎️ AI Calls
A voice agent that rings a person itself and settles the matter in conversation. By voice rather than text, which is a different kind of engineering.
-
🎬 Story to Film
Turns a written story into a short film: the script goes to a model, the frames to Luma.
-
📊 tg-monitor
Measures my channel: reach, reactions per emoji, top commenters, best time to publish. Jana runs on it.
-
📈 Metrics
One metrics service for all my bots, on FastAPI. Once there are many bots, counting each separately stops working.
-
🧾 fns-receipts
Reads my receipts out of the tax service app and builds analytics from them. Where the money goes, with nothing typed in by hand.
-
🏦 ReceiptConnector
Pulls payments from exchanges, banks and payment systems into one bot. They share no common format, so every source is parsed separately.
-
📑 Registry deduplicator
Finds duplicates in payment documents. A dull job there is no way out of by hand.
-
🔁 tg-inst-sync
Carries posts from a Telegram channel over to Instagram. I refuse to write the same thing twice.
-
🎧 sense_of_music
Breaks a music profile down from a playlist: genre shares, tempo range, charts. Data from Spotify, Yandex Music and getsongbpm.
-
🍕 Pizza Choice
Choosing pizza for a group: the model reads the menu off a photo, everyone scores. A veto counts as zero and knocks an option out if half the group used one.
-
💬 stickerbuddy
Explains Russian stickers in English, with the context of the conversation. Half the meaning of a sticker is when it was sent.
-
🌯 Shaurmania
A whole café single-handed: brand identity, shop interface, markup and order intake through the Telegram API.
-
🛂 DTV Copilot
Walks you through the four stages of a Thai DTV visa application. Written while I was going through it myself.
-
🧮 Mum's bookkeeping
Computes average headcount for a small company. Written for my mother so she would stop adding it up by hand.
-
✨ Upgrade My CV
Turns any CV into an interactive page. The irony being that I am building my own by hand.
-
🏛 burokrat
A game about bureaucracy: one office after another. With purchases in Telegram Stars.
-
🏥 MedSave
Personal medical records with documents parsed by a model: test results and discharge notes assemble into a history.
-
📰 Good News
Collects regional news from Tver. From Chiang Mai you only see your home town through a feed.
-
💰 openai_usage_tracker
Counts what I spend on models, packaged separately. When you pay for tokens yourself, you want to see the bill.
-
🔤 hangman
Hangman with one shared word of the day for everybody. You can set words for each other; attempts and records are tracked.
-
👕 taobao adviser
Works out size and fit for clothes on Taobao: oversized, baggy, tight. The size charts there lie in their own particular way.
-
🗝 homies_quest
A flat-sized quest for a group: challenges, finding objects, riddles. Each one gives a letter, and the letters spell a word.
-
🗡 aizen_soske_bot
Answers in the voice of a character from Bleach — his manner, his sarcasm, and the «-kun» forms of address.
-
🍎 food analyzer
From a photograph it works out whether it is a face or food, and analyses it accordingly.