Русский — родной · английский — A2, читаю техническую документацию
RU / EN
Оформление
В штат или по договору услуг — на выбор работодателя
Открыт
Шесть лет пишу серверную часть для сервисов, где ошибка стоит денег: биллинг, платёжные интеграции, лимиты и распределение средств, разграничение прав доступа. Беру задачу целиком — от схемы базы и REST API до деплоя, мониторинга и настройки сервера.
Отдельная специализация — интеграции с внешними финансовыми API, включая криптобиржи, и Telegram-боты с Mini Apps.
Расчёт и списание, финансовые лимиты, распределение средств между участниками, история операций. Проектирую так, чтобы баланс сходился и операцию можно было объяснить постфактум.
Платёжные провайдеры и криптобиржи: подпись запросов, лимиты частоты, повторы, сверка расхождений. Отдельно закладываю поведение на случай, когда внешний сервис отвечает не так, как обещал в документации.
REST / JSON API · вебхуки · криптобиржи
03
Боты Telegram и MAX, Mini Apps
Полный цикл: бот, веб-приложение внутри мессенджера, авторизация через initData, платежи и админка. Боты для Telegram и MAX могут работать на одном бэкенде с общими подписками. Подходит там, где нужен продукт без отдельного мобильного приложения.
Разворачиваю и держу сервис сам: Linux, Docker, окружения, деплой, мониторинг работоспособности, масштабирование. Плюс код-ревью и наставничество для младших разработчиков.
Docker · Ubuntu · Nginx · Cloudflare
05
Тесты и приёмка
Логику, где ошибка стоит денег — расчёты, списания, обработку ответов внешних API, — закрываю автотестами: PHPUnit и Pest на бэкенде, Jest или Vitest в Node-части. Перед релизом прогоняю сценарии руками: автотест ловит регрессию, ручная приёмка — то, чего не было в задаче.
PHPUnit · Pest · Jest / Vitest · ручная приёмка
06
Интеграция LLM в продукт
Подключаю языковые модели как обычный внешний сервис: потоковые ответы, обработка таймаутов и отказов, повторы, ограничение расходов, кеширование одинаковых запросов. Стоимость запроса считаю до того, как она станет строкой в счёте.
Единственный разработчик · полный цикл · 1,5–2 месяца до продакшена
Задача
У заказчика — независимого инвестиционного советника из реестра ЦБ РФ — продажа клубных подписок и приём оплат велись вручную. Требовалось автоматизировать продажу и продление подписок, регулярные списания и доставку аналитики клиентам — с соблюдением 54-ФЗ.
Что сделал
Экосистема из трёх частей на общем бэкенде: админ-панель, Telegram-бот и бот для MAX. Две платёжные интеграции с рекуррентными списаниями и обработкой вебхуков. Идемпотентность по external_id провайдера — двойные списания и дубли подписок исключены на уровне модели. Фискализация по 54-ФЗ, полный жизненный цикл подписки и разграничение доступа к платному контенту.
Результат
Заказчик больше не участвует в приёме платежей — продажа и продление подписок идут без ручных операций. Бот для MAX добавлен, когда часть аудитории ушла из Telegram: канал доставки не потеряли.
~6 000подписчиков
~3 млн ₽оборот в месяц
2платёжных провайдера
PHP · Laravel · PostgreSQL · Vue 3 · Telegram Bot API · MAX API · CloudPayments · Rocketr
Единственный backend-разработчик в команде из четырёх · проектирование архитектуры вместе с лидом
Задача
Автоматизировать фьючерсную торговлю на бирже Bybit: три отдельных бота под разные категории пользователей и веб-кабинет с графиками.
Что сделал
Спроектировал и реализовал всю серверную архитектуру: интеграция с торговым API Bybit и REST API для фронтенда. Автоматическое выставление stop-loss и take-profit при достижении заданной цены. Слой рыночных данных: котировки поставлял отдельный Python-сервис через Redis, на своей стороне — дедупликация запросов с кешированием ответов, чтобы не обращаться наружу повторно за уже полученными данными. Отдельно — API для построения графиков во фронтенде. Торговую логику закрывал автотестами, перед выкаткой прогонял сценарии руками.
Результат
Проект закрыт — продукт не нашёл своего места на рынке. Серверная часть была собрана целиком и работала: боты, автоматика стопов и тейков, рыночные данные, API кабинета.
Оборудование распределено по разным сервисам и пулам. Простой отдельной машины замечали случайно — были случаи, когда устройство не работало неделями. Требовалось видеть состояние всего парка и узнавать о сбое сразу.
Что сделал
Сбор телеметрии по API нескольких сервисов и пулов — до 10 000 устройств с опросом раз в минуту. Двухуровневое хранение: оперативные метрики в Redis, суточные агрегаты в PostgreSQL — минутный опрос парка такого размера не раздувает базу. Контроль uptime, температуры и просадок производительности с настраиваемыми порогами, уведомления в Telegram и на email.
Результат
Простой машины виден через 3 минуты вместо недель. По каждому устройству — история метрик за весь период наблюдения.
Один из двух разработчиков · свои модули вёл самостоятельно — от постановки до продакшена
Задача
Расширить платформу инструментами текстового и конкурентного анализа. Аналоги у конкурентных сервисов существовали, но заметно уступали по возможностям.
Что сделал
Три инструмента с нуля: анализ релевантности, анализ текста, анализ конкурентов. Сбор поисковой выдачи через API Яндекса и Google — до 30 конкурентов на запрос, пакетная обработка списков ключевых фраз. Собственная реализация TF-IDF: облака словосочетаний страницы и конкурентов, плотность фраз, зональное сравнение и готовые рекомендации. Тяжёлые расчёты — в фоновых очередях, со статусом и процентом выполнения в реальном времени; результаты сжимаются при записи в базу и распаковываются на отдаче.
Результат
Полный анализ по запросу занимает 1–5 минут. Инструменты работают в продакшене по сей день и входят в основной функционал платформы.
3инструмента с нуля
30конкурентов на запрос
1–5 минполный анализ
PHP · Laravel · очереди · API Яндекс / Google · jQuery
Собственный продукт · в продакшене · разработка, инфраструктура и продвижение — на мне
Что это
Онлайн-дневник силовых тренировок. Быстрая запись подходов прямо в зале, нагрузка по сорока мышцам на анатомической схеме, контроль восстановления между тренировками, замеры тела отдельно по сторонам, готовые программы с автоматической прогрессией и режим тренера — ведение подопечных и их программ.
Где работает
В браузере и как Telegram Mini App — чтобы вести тренировку с телефона, не выходя из мессенджера.
Статус
В продакшене, открыт для пользователей. Сейчас занимаюсь SEO и привлечением трафика.
Fullstack-разработчик · полный цикл, от модели данных до продакшена
Сервисы, где ошибка стоит денег: приём платежей и подписки, интеграции с биржами и платёжными провайдерами, обработка больших объёмов данных, телеметрия оборудования. Работал и в одиночку от постановки до запуска, и в команде — как единственный backend-разработчик рядом с лидом, фронтендом и тестировщиком.
Проектирование архитектуры и модели данных с нуля; REST / JSON API для фронтенда и внешних потребителей.
Платежи и подписки: рекуррентные списания, идемпотентная обработка вебхуков, фискализация по 54-ФЗ, разграничение доступа к платному контенту.
Интеграции с внешними API: платёжные провайдеры, криптобиржи, поисковые системы, API оборудования — с учётом лимитов частоты, повторов и отказов внешнего сервиса.
Фоновая обработка: очереди, длительные задачи со статусом выполнения, кеширование и дедупликация запросов, двухуровневое хранение метрик.
Авторизация, роли и права доступа (RBAC), сложная фильтрация и агрегация данных.
Telegram-боты и Mini Apps, боты для MAX, интеграция языковых моделей в продукт.
Тесты: PHPUnit и Pest на бэкенде, Jest / Vitest в Node-части; логика платежей и расчётов уходит в продакшен с автотестами, перед релизом — ручной прогон сценариев.
Работа с legacy: разбор чужого кода, восстановление и расширение функционала, ревью кода.
Инфраструктура: Linux, Docker, Nginx, Cloudflare, деплой и мониторинг.
Backend-разработчик (PHP/Laravel, Node.js) · команда из 8 человек · наставник четырёх junior-разработчиков
Аутсорс-разработка программного обеспечения по государственным заказам. Детали проектов не раскрываются по NDA.
Отвечал за серверную часть веб-приложений на TypeScript, Node.js и Laravel, закрывал и клиентские задачи.
Наставничество над четырьмя junior-разработчиками: разбор задач и решений, код-ревью, помощь при затруднениях.
Тестирование и приёмка функционала под требования заказчика.
Регламентированная среда госзаказа: фиксированные требования, формальная приёмка, повышенные требования к качеству и срокам.
Состав команды: тимлид · два фронтенд-разработчика · я · четыре junior-разработчика
Февраль 2020 — Июнь 2020
4 месяца
Учебный центр для детей · Томск
Преподаватель веб-разработки · группы школьников · обучение на Moodle
До диплома и первой работы в коммерческой разработке вёл курс веб-разработки для школьников: HTML, CSS, JavaScript и основы работы с сервером. Занятия и домашние задания шли через Moodle — и под неё же я писал плагины на PHP, когда штатных возможностей платформы не хватало.
Вёл группы по 10–12 человек: программа курса, материалы, разбор домашних работ, итоговые проекты учеников.
Плагин проверки вёрстки (тип сдачи задания). Ученик отправлял HTML и CSS прямо в задание, плагин рендерил превью, сверял результат с эталонным макетом и прогонял валидатор разметки. Ребёнок сразу видел конкретный разбор — «картинка без alt», «незакрытый тег», «блок уехал вправо», — а не ждал следующего занятия. Типовые ошибки уходили ещё до того, как работа попадала ко мне.
Плагин отчётов по группе. Сводка прогресса для преподавателя: кто на какой теме, сколько попыток ушло на задание, где группа застревает массово — значит, тему надо переобъяснить. Раз в неделю отчёт по ученику уходил родителям на почту, что закрыло постоянные вопросы «как он там занимается» и помогло вовремя вытаскивать отстающих.
Сопровождение собственных плагинов при обновлениях Moodle, настройка курсов, ролей и прав доступа в системе.
Стек: PHP · Moodle API · MySQL · HTML / CSS / JavaScript
Ищу работу fullstack-разработчиком на удалёнке. Готов оформляться в штат или по договору услуг — второе для компании обычно проще, потому что это обычный подряд.
Если у вас есть задача про деньги, интеграции или сервис, который нужно собрать целиком, — напишите, разберём на созвоне за двадцать минут.