Проекты
- OSS мониторинга сетевых элементов
- Корпоративная SDK
- Система мониторинга и управления серверами
- Веб-приложение поддержки процессов обработки персональных данных
- Система оптимизации ЖД грузоперевозок
- Спецификатор оборудования
- Веб-приложение оптимизации смешивания катализаторов
- Система раскроя круглых сеток
- Стоматологическая система постановки диагнозов
- Раскрой слитка
OSS мониторинга сетевых элементов
NTS-OSS — система управления телеком-оборудованием: аварии, телеметрия, конфигурации сетевых элементов. Масштаб домена аварий — 20 000 станций и до 5000 событий в секунду. Микросервисы общаются по gRPC и через очереди, снаружи — HTTP/gRPC-шлюз.
Роль: ведущий инженер-программист, техлид.
- Спроектировал сервисы обработки аварий и рефакторил распределённый монолит (чистая архитектура, mypy, ruff, ADR)
- Оптимизировал API: запросы с 2 с до 200 мс (в 8–10 раз)
- Перевёл микросервис подписок с Celery на FastStream: производительность выросла в 80 раз, потребление ресурсов снизилось в 5 раз при нагрузке около 5000 RPS
- Заменил самописный Django API Gateway на gRPC-Gateway: новое API с 2 часов до 2–3 минут
Команда: 3 backend-разработчика, 1 аналитик, 1 тестировщик. Над продуктом работали 3 мини-команды (~25 человек).
Корпоративная SDK
Каждый новый микросервис компании начинался с одного и того же: авторизация, логирование, БД, конфигурация, базовые модели. SDK собирает это в Python-библиотеку: типовой API подключается минимумом кода и используется во всех Python-проектах.
Роль: единственный backend-разработчик.
- Собрал требования и спроектировал общий слой для трёх продуктов
- Покрыл библиотеку тестами и документацией
Результат: время разработки типовых фич новых микросервисов сократилось с 2 дней до 2 часов.
Команда: 1 backend-разработчик
Система мониторинга и управления серверами
Система собирает инвентарные сведения, показания сенсоров, журналы и состояние серверов, управляет питанием, подсветкой и прошивками. Основная проблема — медленное железо и нестабильная сеть. Основной контур — монолит, сбор с оборудования вынесен в отдельные сервисы.
Роль: техлид backend-команды.
- Спроектировал архитектуру под медленное железо и обрывы сети
- Декомпозировал задачи и вёл код-ревью
- Разрабатывал backend: инвентарь, сенсоры, шаблоны мониторинга
Команда: 4 backend-разработчика, 3 frontend-разработчика, 1 аналитик, 1 тестировщик, 1 техлид.
Веб-приложение поддержки процессов обработки персональных данных
Приложение позволяет контролировать персональные данные в каждом процессе компании и проводить аудиты по ФЗ-152 независимо друг от друга. Архитектура мультитенантная: несколько компаний на одной установке.
Роль: техлид backend, проектирование архитектуры.
- Спроектировал мультитенантную модель и API
- Декомпозировал задачи, вёл код-ревью, писал backend
- Сделал микросервис интеграции с сайтом Роскомнадзора для аудитов
Команда: 4 backend-разработчика, 2 frontend-разработчика, 1 аналитик, 1 тестировщик, 1 техлид.
Система оптимизации ЖД грузоперевозок
Система снижает расходы на порожний пробег вагонов: выбирает маршрут с учётом уровня сервиса и спроса, даёт диспетчерам ML-рекомендации. Микросервисная архитектура, события идут через Kafka и Redis.
Роль: Python-разработчик.
- Разрабатывал бизнес-логику на бэкенде
- Сделал микросервис уведомлений (email, Telegram, SMS, шаблоны) — до 10 000 сообщений в сутки, доставка 99.9%
- Вынес логирование в ELK и генерацию API-документации в Confluence (библиотека логов для FastAPI)
- Снизил нагрузку на CPU в обработке Kafka на 25% батчированием
Результат: среднее время поиска инцидентов (MTTR) снизилось с 40 минут до 5.
Команда: 4 backend-разработчика, 1 frontend-разработчик, 1 техлид.
Спецификатор оборудования
Веб-приложение составляет перечень компонентов оборудования (серверы, СХД и прочее) и конвертирует спецификацию одного бренда в спецификацию другого. Отдельный сервис, монолит.
Роль: единственный backend, проектирование.
- Собрал требования и декомпозировал задачи
- Спроектировал монолит и модели спецификаций
- Написал backend конвертации между брендами
Команда: 1 backend-разработчик, 1 frontend-разработчик, 2 аналитика, 1 тестировщик, 1 техлид.
Веб-приложение оптимизации смешивания катализаторов
Партии с некондиционным химсоставом на производстве смешивали вручную и теряли сырьё. Приложение считает смесь по составу, массе и приоритетам партий — модифицированная задача о диете Стиглера.
Роль: backend и оптимизатор.
- Написал оптимизатор на
HiGHSиPuLP - Собрал backend и фоновые расчёты на Django + Celery
- Сделал UI на шаблонах и
django-bootstrap-modal-forms
Результат: переработка партий с сильно отклоняющимся составом выросла на 20%.
Команда: 1 backend-разработчик, 1 frontend-разработчик, 1 аналитик.
Система раскроя круглых сеток
Веб-приложение раскладывает круглые каталитические сетки на прямоугольном полотне с учётом ограничений (число резов, размеры) и подбирает параметры полотна так, чтобы отходов было меньше.
Роль: техлид.
- Собрал требования и спроектировал веб-приложение
- Разработал алгоритм раскладки
- Наставлял стажёров
Команда: 2 backend-разработчика, 1 техлид.
Стоматологическая система постановки диагнозов
Модульный монолит: кабинет пациента с записью к врачу, кабинет врача (расписание и анкеты), тестирование (анкеты, анализы) и постановка диагнозов по правилам.
Роль: backend-разработчик.
- Собрал и формализовал требования
- Написал бизнес-логику модулей записи, анкет и правил диагноза
Команда: 2 backend-разработчика, 1 frontend-разработчик.
Раскрой слитка
Desktop-приложение оптимизирует последовательность операций по изготовлению фильерных питателей из слитков драгметаллов, чтобы меньше уходило в отход. Комбинаторная оптимизация.
Роль: разработчик оптимизатора и интерфейса.
- Реализовал эвристику модифицированной задачи раскроя (код)
- Написал UI и бизнес-логику на PyQt
Результат: эффективность раскроя выросла на 15% относительно ручного режима.
Команда: 2 разработчика, 1 аналитик, 1 тестировщик.