Избранные работы

Создано и
выпущено

Настоящие продукты, настоящие пользователи, настоящие ограничения. Не учебные примеры.

01
В продакшене · развёрнут на Render

benchFlow

ИТ-аутстаффинговой компании нужно решать, кого поставить на какой запрос клиента — быстро и никого не перегружая. Сделанное правильно, это задача о назначениях, а не CRUD-форма.

The benchFlow dashboard listing open client requests with their skills, dates and budgets
Роль
Соло — от домена до деплоя
Масштаб
649 тестов · 21 этап
Статус
В продакшене, с CI/CD

Самое сложное. Матчер. Жадный алгоритм оставил клиента без специалиста ради экономии 47 — локально оптимально, глобально неверно. Венгерский алгоритм закрывает все запросы, и он сверен с полным перебором на 200 случайных сценариях: нельзя выпускать алгоритм, который не можешь доказать.

Python 3.13Django 5.2DRFPostgreSQL RedisCeleryDockerGitHub Actions pytestmypy
benchFlow proposing a specialist for a client request, with every rejected candidate showing the exact reason
The Django admin, rethemed to match The auto-generated OpenAPI documentation
02
В продакшене

Lolo Cosmetics

Настоящий бьюти-бренд продавал через скриншоты в WhatsApp — без каталога, без учёта остатков, без возможности расти. Я собрал всё целиком, от базы до интерфейса.

Lolo Cosmetics storefront
Роль
Соло — от базы до UI
Масштаб
267 товаров · 91 коммит
Статус
Обслуживает клиентов

Самое сложное. Row-Level Security. Когда данные — это чей-то реальный бизнес, утечка это не баг-репорт, а его средства к существованию.

React 18TypeScriptViteTailwind RTL SupabasePostgreSQLRLSEdge FunctionsCloudflare
Lolo admin analytics — 2,568 visits, 459 on the peak day Lolo admin panel home
03
Практика · Эксперт Чойс СиАйЭс

Система посещаемости

Посещаемость жила на бумаге и в Excel. Один администратор тратил 3–5 часов, сводя всё вручную — каждый раз. Я построил backend, на котором держится остальное.

Swagger API docs
Роль
Backend admin API
Доступ
3 роли · JWT · bcrypt
Статус
Смержено, с документацией

Самое сложное. Поиск конфликтов расписания — проверка пересечения интервалов, чтобы преподаватель или группа никогда не оказались заняты дважды. Это потребовало больше размышлений, чем все CRUD-эндпоинты вместе взятые.

PythonFastAPISQLAlchemyPydantic JWTbcryptSQLiteSwagger
Conflict detection JWT authentication
04
Развёрнут · доступен

AI Knowledge

Full-stack сайт об искусственном интеллекте — написан с нуля на PHP, без единого фреймворка.

AI Knowledge website
Авторизация
PHP-сессии, вручную
Админка
CRUD · 4 сущности
Статус
Работает на хостинге

Чему научило. Когда пишешь аутентификацию руками, понимаешь, что именно делает за тебя фреймворк — и зачем он вообще нужен. Абстракцию ценишь только после того, как построил её сам.

PHPMySQLJavaScriptSessions
Admin panel: page management with full CRUD Admin panel: review moderation
05
Выпущено · с установщиком

My Notes

Десктопное приложение для Windows на Python — не веб-страница в обёртке. Скачиваешь, устанавливаешь, запускаешь.

My Notes source
Платформа
Windows · автономно
Языки
AR · EN · RU + RTL
Релизы
4 опубликовано

Самое сложное. Выпустить его. PyInstaller, установщик Inno Setup и чистый запуск на машине без Python. Программа не готова, когда код работает — она готова, когда её может установить незнакомый человек.

PythonPyWebViewSQLitePyInstallerInno Setup
Working at night
06
Основы · второй язык

Java Labs

Пять лабораторных: ООП, логирование log4j2, регулярные выражения, разбор XML через SAX/DOM и работа с MySQL по JDBC.

Java labs in IntelliJ
Работы
5 · по нарастающей
Фокус
ООП и дизайн классов
Логирование
log4j2, а не print

Зачем это нужно. Java заставляет быть точным — типы объявлены, интерфейсы это контракты, дизайн классов продумывается заранее. Те же идеи в статически типизированном языке сделали меня более осознанным Python-разработчиком.

Javalog4j2JDBCSAX/DOMRegExMySQL
Handwritten lab structure notes
07
Python · SQL

Анализ данных

Три проекта на реальных данных, а не на учебных — мировая статистика COVID-19, выручка супермаркета и SQL-аналитика магазина.

Dataset
Строк
350 085 · 255 локаций
Период
2020 – 2023
Результат
Графики и выводы

Что осталось со мной. Реальные данные грязные. Анализ — лёгкая половина, работа в том, чтобы данным можно было доверять. Проверяй рано: эта привычка перешла прямо в мой backend.

PythonPandasMatplotlibSeabornJupyterSQL
The Online Store Analytics README: the three tables it queries, the three questions asked of them, and the answers — laptops the highest revenue at $1,700, and Moscow the most active customers
Как я мыслю

Жизненный цикл
запроса

У каждой моей системы один и тот же костяк. Запрос либо отклоняется сразу с понятной причиной, либо получает ответ — но никогда не падает.

01КлиентHTTP + Bearer-токен
02Аутентификация и ролиJWT · bcrypt · 401 / 403
03Валидациясхемы Pydantic · 422
04Бизнес-логикаправила · поиск конфликтов
05База данныхPostgreSQL · транзакции
06Ответ200 OK · типизированный JSON