Skip to content
View lubenkov's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report lubenkov

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
lubenkov/README.md
Hi, I'm Egor · C++ / Qt / SFML · TypeScript / NestJS / MySQL · Python / PyTorch

Desktop, backend and machine-learning projects, built end-to-end — from a Russian language model written from scratch to a store API with payments.


🛠 Tech Stack

Languages  C C++ TypeScript JavaScript Python SQL

Backend  NestJS Node.js MySQL Sequelize REST API JWT / OAuth 2.0 Stripe Swagger Jest

Desktop & graphics  Qt 5.12 SFML 2.5 Eigen Arduino

Machine learning & data  PyTorch Hugging Face NumPy pandas SciPy Matplotlib Jupyter Neural Networks

Workflow  Git GitHub Actions ESLint Prettier Visual Studio Linux


🚀 Projects

vinyl_store — REST API for an online vinyl store

NestJS · TypeScript · MySQL · Sequelize · Stripe

A catalog with search, sorting and pagination; sign-in with email or Google; admin and user roles; reviews; payments through Stripe; Discogs import; Telegram notifications; an audit log of everything admins do.

  • 70 unit tests in 15 suites, all green; CI runs lint, format check, tests and build on every push
  • Swagger documents all 17 endpoints at /api

jarvis — GPT-style language model

Python · PyTorch · Hugging Face Datasets · Hugging Face Tokenizers

A ~112M-parameter decoder-only Transformer for Russian, implemented from scratch. The project includes a custom byte-level BPE tokenizer, corpus preparation, pretraining → SFT, resumable AMP/DDP training, KV-cache inference, a console chat and an optional Telegram bot.

MNIST_MLP — handwritten digit recogniser for Windows

C++17 · Qt 5.12 · Eigen · Arduino

You draw a digit on the canvas, a network trained from scratch classifies it, and the result is mirrored onto an Arduino over a serial port.

  • Training on the full 60 000-sample MNIST reaches 98.3% on the 10 000-sample test set

CHESSonQT — chess for two players on one computer

C++ · Qt 5.12

Two players share a keyboard and mouse: five-minute clock for each side, castling, en-passant capture, promotion, sound effects and looping background music.

graphical_snake_sfml — Snake with SFML

C++14 · SFML 2.5.1

Menu, five colour themes, score tracking and an optional self-collision rule; the field wraps at the edges.

  • Fully playable: eating an apple grows the snake and bumps the score; the best result is persisted in Score.txt

console_snake — classic Snake in the console

C++14

My first step from a single long file to proper classes: Snake handles movement, growth and collisions, Map draws the field, Point is a coordinate pair.


🧩 LeetCode

🇷🇺 По-русски

Стек

  • Языки: C, C++, TypeScript, JavaScript, Python, SQL
  • Backend: NestJS, Node.js, MySQL, Sequelize, REST API, JWT / OAuth 2.0, Stripe, Swagger, Jest
  • Desktop и графика: Qt 5.12, SFML 2.5, Eigen, Arduino
  • Машинное обучение и данные: PyTorch, Hugging Face, NumPy, pandas, SciPy, Matplotlib, Jupyter
  • Инструменты: Git, GitHub Actions, ESLint, Prettier, Visual Studio, Linux

Проекты

  • vinyl_store — REST API магазина винила на NestJS: каталог с поиском, сортировкой и пагинацией, вход по email или через Google, роли admin/user, отзывы, оплата через Stripe, импорт из Discogs, уведомления в Telegram, аудит-лог действий администраторов. 70 тестов в 15 сьютах, CI на каждый push; не-админ получает 403, некорректный ввод — 400, whitelist колонок блокирует SQL-инъекцию в сортировке. Swagger описывает все 17 эндпоинтов на /api.
  • jarvis — GPT-подобная авторегрессионная модель для русского языка примерно на 112 млн параметров, написанная с нуля на PyTorch. Собственный byte-level BPE-токенизатор, подготовка корпусов, pretrain → SFT, AMP/DDP, KV-cache, консольный чат и Telegram-бот. Релиз v1.0.0; веса и токенизатор — на Hugging Face.
  • MNIST_MLP — распознавание рукописных цифр на C++17 и Qt: сеть обучается с нуля на полном MNIST (60 000 примеров) и даёт 98.3 % на тесте из 10 000; веса сохраняются в weights.bin, обучение идёт в отдельном потоке, результат уходит на Arduino.
  • CHESSonQT — шахматы для двух игроков за одним компьютером: таймер на пять минут каждой стороне, рокировка, взятие на проходе, превращение пешки, звук и фоновая музыка.
  • graphical_snake_sfml — «Змейка» на SFML: меню, пять цветовых тем, счёт, рекорд в Score.txt; поле замкнуто по краям.
  • console_snake — консольная «Змейка» как учебный проект: классы Snake, Map, Point.

LeetCode — 100+ решённых задач; карточка выше обновляется автоматически, профиль.

Pinned Loading

  1. vinyl_store vinyl_store Public

    REST API for an online vinyl records store — NestJS, MySQL, Sequelize, Stripe

    TypeScript

  2. MNIST_MLP MNIST_MLP Public

    Digit recogniser for Windows, built with C++ and Qt 5.12.12, featuring a neural network trained from scratch on MNIST and serial output to an Arduino.

    C++

  3. jarvis jarvis Public

    GPT-style transformer written from scratch in PyTorch

    Python 5 1