Software and hardware for radio-frequency measurements. I own the web app for controlling instruments and visualizing measurement data. Stack: TypeScript, React, TanStack, shadcn/ui, Storybook, Playwright, WebSocket, C++ and SCPI/HiSLIP.
Designed the frontend architecture around Feature-Sliced Design, simplifying scaling and maintenance.
Implemented client/server interaction over WebSocket and REST for exchanging data with measurement hardware.
Integrated vector network analyzers via C++ backend logic over SCPI/HiSLIP.
Fullstack DeveloperJan 2024 — May 2025
AdHaven — Tomsk
A platform that streamlines collaboration between influencers and advertisers. Stack: TypeScript, React, Next.js, MongoDB, Docker, python-telegram-bot and GitLab CI.
Led a team of 3 developers: planned tasks, ran code reviews, and owned technical delivery.
Shipped 3 projects to production in 9 months, aligning technical decisions with business goals.
Built a Telegram bot for influencer/advertiser interaction — 100+ ad offers processed in the first 3 months.
Frontend DeveloperApr 2023 — Dec 2023
MarPla — Wildberries Analytics
Analytics service for Wildberries sellers. Stack: React, TypeScript, MobX, InversifyJS, Webpack, Jest and Docker.
Rewrote the frontend in 3 months on a new stack: React, TypeScript, MobX, and InversifyJS.
Introduced Dependency Injection into the React app, improving testability and extensibility.
Fixed 50+ bugs, added Jest unit tests for key modules, and mentored 2 interns.
Frontend DeveloperOct 2021 — Apr 2023
Technology Center of Automatization — Turkmenistan
Automation of tax and statistical reporting for companies. Stack: React, Redux, TypeScript, Next.js, MUI, Vite and Docker.
Built a web app for electronic company statistics reporting; automation cut paperwork by 40%.
Created an internal UI kit, speeding up typical interface development by up to 15%.
Led a group of 3 junior developers: taught frontend fundamentals and ran code reviews.
A Telegram gateway for working with OpenClaw agents, built for a small circle of users. Stack: TypeScript, Bun, grammY, Telegram Bot API and systemd.
On first contact, every allowed user automatically gets their own isolated agent, with its own workspace, memory, session history and reminders — no data is shared between users.
The system identifies the type of request and routes the message to the right agent. A reminder a user creates is stored and delivered back to the same Telegram chat at the right moment.
The architecture is split into independent components. All interaction with the OpenClaw runtime goes through a single CLI adapter, so the rest of the system does not depend on how the agents work internally.
The core components are covered by 102 tests across 13 modules, with message routing, user-agent provisioning and the Telegram transport each tested separately.
ARM64 CI Framework2025 — 2026
Bachelor's Thesis — Python / gem5 / Jenkins
A framework that runs ARM64 builds inside a gem5 full-system simulation on ordinary x86_64 CI agents, so cross-architecture builds need neither ARM hardware nor cloud instances. Stack: Python, gem5, Jenkins, Debian, QEMU and Bash.
Boots a full Debian ARM64 guest under gem5 and drives it from Python: the environment is declared in YAML, an orchestrator owns the simulation lifecycle, and artifacts move over SSH.
The guest is split across two disks — an immutable 2 GB base and a 4 GB build overlay mounted into a chroot — so toolchain updates never touch the base image and builds stay reproducible.
Cut cycle time by 40%, from 14.6 to 8.7 minutes, by restoring gem5 checkpoints instead of cold-booting (382 s to 28 s); ccache inside the chroot took another 30–50% off incremental builds.
Shipped as a Jenkins Shared Library, so a pipeline calls one declarative step. A month of operation logged 147 ARM64 builds at a 94.2% success rate.
An interpreter for a small programming language defined by its own context-free grammar: lexical analysis, LL(1) parsing and execution of Reverse Polish Notation. Stack: C++, Make, LL(1), RPN and BNF.
Parses input with a table-driven LL(1) analyser that emits Reverse Polish Notation during the same pass, instead of building a tree and walking it separately.
Executes the generated notation, covering arithmetic, conditionals, while loops and static arrays.
The grammar is formalised up front in BNF with transition and RPN-generation tables, so the parser follows a written specification rather than ad-hoc rules.
Education
M.S. Applied Informatics2026 — 2028
Tomsk State University — Institute of Applied Mathematics and Computer Science
B.S. Applied Informatics2022 — 2026
Tomsk State University — Institute of Applied Mathematics and Computer Science