Проекты

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 человек).

Python gRPC FastStream PostgreSQL ClickHouse RabbitMQ Redis Docker Kubernetes


Корпоративная SDK

Каждый новый микросервис компании начинался с одного и того же: авторизация, логирование, БД, конфигурация, базовые модели. SDK собирает это в Python-библиотеку: типовой API подключается минимумом кода и используется во всех Python-проектах.

Роль: единственный backend-разработчик.

  • Собрал требования и спроектировал общий слой для трёх продуктов
  • Покрыл библиотеку тестами и документацией

Результат: время разработки типовых фич новых микросервисов сократилось с 2 дней до 2 часов.

Команда: 1 backend-разработчик

Python FastAPI PostgreSQL


Система мониторинга и управления серверами

Система собирает инвентарные сведения, показания сенсоров, журналы и состояние серверов, управляет питанием, подсветкой и прошивками. Основная проблема — медленное железо и нестабильная сеть. Основной контур — монолит, сбор с оборудования вынесен в отдельные сервисы.

Роль: техлид backend-команды.

  • Спроектировал архитектуру под медленное железо и обрывы сети
  • Декомпозировал задачи и вёл код-ревью
  • Разрабатывал backend: инвентарь, сенсоры, шаблоны мониторинга

Команда: 4 backend-разработчика, 3 frontend-разработчика, 1 аналитик, 1 тестировщик, 1 техлид.

Python FastAPI PostgreSQL Vault ClickHouse RabbitMQ Docker


Веб-приложение поддержки процессов обработки персональных данных

Приложение позволяет контролировать персональные данные в каждом процессе компании и проводить аудиты по ФЗ-152 независимо друг от друга. Архитектура мультитенантная: несколько компаний на одной установке.

Роль: техлид backend, проектирование архитектуры.

  • Спроектировал мультитенантную модель и API
  • Декомпозировал задачи, вёл код-ревью, писал backend
  • Сделал микросервис интеграции с сайтом Роскомнадзора для аудитов

Команда: 4 backend-разработчика, 2 frontend-разработчика, 1 аналитик, 1 тестировщик, 1 техлид.

Python FastAPI PostgreSQL Vault MinIO YDB Docker


Система снижает расходы на порожний пробег вагонов: выбирает маршрут с учётом уровня сервиса и спроса, даёт диспетчерам 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 техлид.

Python FastAPI PostgreSQL Oracle Kafka Redis Docker ELK


Спецификатор оборудования

Веб-приложение составляет перечень компонентов оборудования (серверы, СХД и прочее) и конвертирует спецификацию одного бренда в спецификацию другого. Отдельный сервис, монолит.

Роль: единственный backend, проектирование.

  • Собрал требования и декомпозировал задачи
  • Спроектировал монолит и модели спецификаций
  • Написал backend конвертации между брендами

Команда: 1 backend-разработчик, 1 frontend-разработчик, 2 аналитика, 1 тестировщик, 1 техлид.

Python FastAPI MongoDB Docker


Веб-приложение оптимизации смешивания катализаторов

Партии с некондиционным химсоставом на производстве смешивали вручную и теряли сырьё. Приложение считает смесь по составу, массе и приоритетам партий — модифицированная задача о диете Стиглера.

Роль: backend и оптимизатор.

  • Написал оптимизатор на HiGHS и PuLP
  • Собрал backend и фоновые расчёты на Django + Celery
  • Сделал UI на шаблонах и django-bootstrap-modal-forms

Результат: переработка партий с сильно отклоняющимся составом выросла на 20%.

Команда: 1 backend-разработчик, 1 frontend-разработчик, 1 аналитик.

Python Django Dash JavaScript PostgreSQL Celery LDAP Линейное программирование


Система раскроя круглых сеток

Веб-приложение раскладывает круглые каталитические сетки на прямоугольном полотне с учётом ограничений (число резов, размеры) и подбирает параметры полотна так, чтобы отходов было меньше.

Роль: техлид.

  • Собрал требования и спроектировал веб-приложение
  • Разработал алгоритм раскладки
  • Наставлял стажёров

Команда: 2 backend-разработчика, 1 техлид.

Python Django JavaScript PostgreSQL Celery LDAP


Стоматологическая система постановки диагнозов

Модульный монолит: кабинет пациента с записью к врачу, кабинет врача (расписание и анкеты), тестирование (анкеты, анализы) и постановка диагнозов по правилам.

Роль: backend-разработчик.

  • Собрал и формализовал требования
  • Написал бизнес-логику модулей записи, анкет и правил диагноза

Команда: 2 backend-разработчика, 1 frontend-разработчик.

Python Django JavaScript PostgreSQL


Раскрой слитка

Desktop-приложение оптимизирует последовательность операций по изготовлению фильерных питателей из слитков драгметаллов, чтобы меньше уходило в отход. Комбинаторная оптимизация.

Роль: разработчик оптимизатора и интерфейса.

Результат: эффективность раскроя выросла на 15% относительно ручного режима.

Команда: 2 разработчика, 1 аналитик, 1 тестировщик.

Python PyQt SQLite