Dyce, full-stack разработчик

Делаю продукты от сервера до интерфейса.

Python, TypeScript, Kotlin и Linux. Мои проекты каждый день работают у живых людей.

нажми, чтобы перетасовать

Главный проект

Mitray

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

  • 160+платящих пользователей
  • Сотнизарегистрировались в боте
Сеть
РУ-мост прикрывает заграничные узлы, часть локаций идёт через CDN. Подбирал транспорт и TLS-отпечатки, чтобы всё работало на мобильном интернете с ограничениями.
Бэкенд и биллинг
Telegram-бот на Python (форк bedolaga): тарифы, оплаты, подписки. Свои доработки оформлены идемпотентными патчами с бэкапом. PostgreSQL, Redis, Docker.
Интерфейсы
Веб-кабинет на React и TypeScript с полностью своим дизайном. Набор из 126 анимированных эмодзи и баннеры для бота.
Расширение
Браузерное расширение с таймером сессии и раздельной маршрутизацией. Прошло модерацию Chrome Web Store и Firefox Add-ons.
Эксплуатация
Мониторинг, сквозные пробы и разбор жалоб своими скриптами. Когда у хостера заблокировали IP Telegram, увёл бота через xray-сайдкар.
Расширение Mitray: таймер сессии
Баннеры Telegram-бота Mitray

В проде у заказчика

Бот заявок для КГУ

Дипломный проект, который внедрён в Костромском государственном университете. Сломалась розетка или течёт кран: сканируешь QR на двери аудитории, выбираешь, что случилось, и заявка сама уходит нужному мастеру.

  1. QR на двериБот сразу знает корпус, этаж и аудиторию
  2. АвтоназначениеЗаявка уходит электрику, сантехнику или айтишнику
  3. Веб-панельВсе заявки, справочники и печать наклеек в одном месте

Node.js / Express / PostgreSQL / MAX Bot API / EJS

Код на GitHub
Веб-панель: список заявок с фильтрами
Печать QR-наклеек для аудиторий
Панель заявок на телефоне

Самое интересное: диплинк MAX с параметром start срабатывает только при первом запуске бота, и повторный скан открывал старый чат с чужой аудиторией. Перевёл наклейки на мини-приложение, оно получает код при каждом открытии.

Ещё проекты

Python / OpenCV / Vision LLM

Сырой прототип

Размеры на фото украшений

Сделал на производственной практике. Наносит габариты на студийные фото колец в стиле каталога SOKOLOV. Модель зрения только находит элементы, а линии и числа рисует код поверх исходных пикселей.

Код на GitHub
MitrayMusic: главная страница с подборками

Tauri / React / TS / Kotlin / Python

MitrayMusic

Плеер для Windows и Android: стриминг YouTube Music, персональная волна, синхронный текст. Обе оболочки открывают один фронт, логика живёт в общем сайдкаре, так что синхронизировать нечего.

Код на GitHub

Kotlin / Wear OS / Compose

Сырой прототип

HomeWatch

Умный дом Яндекса на Galaxy Watch: устройства по комнатам, яркость, температура, режимы и сценарии. Вход в аккаунт по QR-коду прямо на часах.

Код на GitHub

Как я работаю

  1. Сначала архитектура, потом код. Прежде чем писать, решаю, где будет жить логика. В плеере она в общем ядре, а оболочки для Windows и Android только открывают один и тот же интерфейс, поэтому любая фича пишется один раз.
  2. Проверяю, как система ломается. Утечку трафика в расширении под Firefox нашёл, специально роняя шлюз четырьмя способами. А разметчик украшений не дорисовывает размер, которого не видно на фото, а честно просит другой ракурс.
  3. Аккуратно с продом и чужим кодом. На Mitray платящие люди: любая правка идёт с бэкапом и планом отката, а выводы я делаю по логам и базе. Доработки форка бота оформлены патчами, чтобы спокойно подтягивать обновления из апстрима.

Стек

Языки

Python, TypeScript, Kotlin, Bash, SQL

Бэкенд

aiogram, PostgreSQL, Redis, Docker, Caddy, nginx

Фронтенд

React, Vite, Zustand, Tauri, CSS motion

Сеть и инфраструктура

Linux, xray, CDN, TLS, SSH automation

Мобайл

Jetpack Compose, Wear OS, WebView

ИИ и автоматизация

OpenAI API, Claude API, OpenCV, Playwright

Ищу команду, где нужно делать и доводить до прода.

Открыт к full-stack, бэкенд и инфраструктурным ролям. Быстрее всего отвечаю в Telegram.

@Dyce_e