No-ops платформа
3 года 2 месяцаПлатформа для автоматизации и централизованного управления инфраструктурой, используемая DevOps-инженерами для создания, настройки и сопровождения виртуальных ресурсов внутри компании и во внешних проектах. Система поддерживает работу с различными гипервизорами и облачными платформами, включая VMware, oVirt и Yandex Cloud, позволяет создавать виртуальные машины и объединять их в группы. В платформе также настраиваются и запускаются пайплайны автоматизации, а также обеспечивается мониторинг внутренних процессов и состояния инфраструктуры. Основная задача системы - сократить объем ручных операций DevOps-инженеров, стандартизировать работу с инфраструктурой и централизовать управление процессами развертывания и сопровождения. Система интеграции крупного сервиса доставки еды с партнерами-ресторанами, обеспечивающая двусторонний обмен данными между платформой и внутренними системами заведений. Система получает от партнеров данные о меню, доступности блюд и ценах, преобразует их в необходимый формат и синхронизирует с платформой доставки еды, а в обратную сторону передает оформленные заказы в системы партнеров для дальнейшей обработки. Для каждого партнера реализуются механизмы приема, трансформации и передачи данных с учетом его протоколов и контрактов, а архитектура системы позволяет масштабировать количество подключенных интеграций. В рамках проекта также развиваются Python-микросервисы для поэтапной миграции функциональности с PHP-монолита, внутренняя админ-панель для КАМов и технической поддержки, а также решения для повышения стабильности и доступности сервиса.
- Роль
- Backend Developer, Team Lead, зам. начальника отдела
- Состав команды
- от 5 до ~20 человек в зависимости от этапа (Backend Developers, QA, PM, Project Manager, Techsupport)
Что реализовывал
Разработка и интеграция бизнес-логики
- Реализовал модуль обработки конфигурационного файла, на основе которого формировалась основная схема работы приложения.
- Реализовал интерфейс приложения и интеграцию с основной бизнес-логикой.
Архитектура данных и обработка событий
- Спроектировал и внедрил отказоустойчивую обработку фоновых задач и событий на базе PostgreSQL pg_advisory_lock, обеспечив корректную работу при конкурентном выполнении.
- Спроектировал общую структуру данных приложения, включая основные сущности и связи между ними.
Инфраструктурные и архитектурные решения
- Разработал единый шаблон организации роутов FastAPI с разделением по функциональным областям.
- Реализовал Makefile для автоматизации развертывания приложения без Docker и выполнения основных операций проекта.
- Спроектировал структуру проекта с разделением по доменным и функциональным областям.
- Реализовал механизм создания тестовой БД для каждого прогона тестов с использованием одной сессии и независимым состоянием каждого теста.
Архитектура и микросервисы
- Спроектировал и реализовал с нуля интеграцию с партнером по контракту крупного сервиса доставки еды: механизмы передачи заказов и получения данных.
- Создал инфраструктурный микросервис-образец, ставший основой для разработки остальных сервисов командой.
- Разработал механизм бесшовной миграции данных по меню с PHP-монолита на Python-микросервисы.
- Организовал переход зоны партнерских интеграций с legacy-монолита на микросервисную архитектуру.
- Проработал архитектуру массового переноса около 2000 мелких и 3–5 крупных партнеров при объединении крупного сервиса доставки еды и другого сервиса доставки.
Управление командами и проектами
- Управлял двумя командами одновременно: распределял задачи, контролировал delivery, привлекал ресурсы смежных команд и обеспечивал приоритет проектов.
- Руководил разработкой механизма переключения партнеров при интеграции с другого сервиса доставки.
- Координировал кросс-командные проекты длительностью от квартала: проработка архитектуры, декомпозиция, приоритизация и контроль реализации.
- Проводил 1-to-1, занимался развитием и мотивацией сотрудников, участвовал в найме, увольнении и адаптации новых разработчиков.
- Совмещал управление командой с онбордингом и наставничеством стажеров в условиях жестких сроков.
Процессы разработки
- Внедрил систему приоритизации партнерских задач с обязательным техническим исследованием и финансовым обоснованием перед разработкой.
- Внедрил регулярную переоценку проектов и остановку неприбыльных направлений.
- Выстроил взаимодействие разработки и техподдержки: классификация типовых проблем, техническая документация и регулярный обмен опытом.
- Организовал процессы разработки на стыке Scrum и Kanban: управление спринтами и эпиками, декомпозиция и приоритизация задач.
- Усилил контроль качества релизов, тестирования и эксплуатационной готовности.
Надежность и инженерные практики
- Развил observability сервисов: Prometheus, Grafana, логирование, распределенная трассировка, технические и продуктовые метрики.
- Внедрил алерты на критические проблемы и контроль аптайма сервисов.
- Организовал автоматизацию тестирования и повышение качества эксплуатационных проверок.
- Внедрил стандарты разработки, двойное кросс-код-ревью, практики рефакторинга и управления техническим долгом.
- Обеспечил backward compatibility через версионирование контрактов, идемпотентность сервисов и контроль целостности данных.
- Стек технологий
- Python
- FastAPI
- PostgreSQL
- JavaScript
- Vue
- CSS
- HTML
- Go
- Kafka
- Celery
- PHP
- RabbitMQ
- Redis
- Symphony
- корпоративный трекер задач
- Grafana
- Prometheus
Внутренняя административная панель для работы с партнерами
5 месяцевВнутренняя административная панель для сотрудников, работающих с партнерами крупного сервиса доставки еды: КАМов, продакт-менеджеров и специалистов технической поддержки. Система предоставляет единый интерфейс для работы с партнерскими данными и выполнения типовых операционных задач, постепенно заменяя соответствующую функциональность устаревшей монолитной админки. Основная задача проекта - ускорить онбординг новых сотрудников и повысить эффективность ежедневной работы с партнерскими данными.
- Роль
- Team Lead
- Состав команды
- Team Lead, 4 Backend Developers, 2 QA Engineers
Что реализовывал
Архитектура и разработка
- Спроектировал стратегию перехода со старой админки на новую, включая миграцию пользователей и функциональности.
- Провел продуктовое исследование и сформировал требования к новой админке на основе проблем и потребностей пользователей.
Координация и управление
- Руководил реализацией крупного эпика: декомпозировал и распределял задачи, контролировал выполнение и сроки.
- Координировал работу смежных команд, привлекая необходимые ресурсы разработки и QA.
- Организовал переход пользователей на новую админку: подготовил обучение и обеспечил адаптацию техподдержки, продактов и KAM к новому интерфейсу.
- Стек технологий
- Python
- PostgreSQL
- Redis
- PHP
- Symphony
Платформа по работе с контентом для редакторов и журналистов
1 год 1 месяцПлатформа управления контентом для редакторов и журналистов, предназначенная для централизованной подготовки, редактирования и публикации материалов на нескольких сайтах. Система позволяет одновременно управлять публикациями на разных площадках, синхронизировать изменения в статьях и упрощать работу редакционных команд с единым контентом. Отдельным функциональным блоком реализован биллинг, рассчитывающий начисления в зависимости от количества показов рекламы внутри опубликованных новостей. Платформа объединяет процессы создания и распространения контента с учетом рекламной монетизации и используется как единая рабочая среда для редакторов и журналистов.
- Роль
- Backend Developer
- Состав команды
- Team Lead, 4 Backend Developers
Что реализовывал
Исследовательская деятельность
- Адаптировал Laravel для работы с Cycle ORM вместо штатного ORM-фреймворка.
- Адаптировал внутренние пакеты Cycle ORM, включая spatie/laravel-activitylog, spatie/laravel-query-builder, mpociot/versionable и другие.
Рефакторинг и оптимизация
- Провел рефакторинг существующей структуры базы данных и связанных с ней компонентов.
- Оптимизировал запросы к БД, сократив среднее время выполнения с ~1 секунды до ~50 мс.
- Адаптировал Swoole для использования в Laravel и работы с сокетами.
Интеграция и синхронизация данных
- Спроектировал и реализовал механизм синхронизации данных между внутренними продуктами компании.
- Разработал API и интеграции с различными CMS, обеспечив обмен и синхронизацию данных между системами.
Биллинг
- Спроектировал архитектуру и полностью реализовал механизм биллинга компании.
- Стек технологий
- PHP
- Laravel
- Cycle ORM
- spatie
- swoolee
Платформа по работе с инфлюенсерами
7 месяцевПлатформа для организации рекламных кампаний, связывающая блогеров и инфлюенсеров с рекламодателями и заказчиками. Система позволяет заказчикам находить подходящих авторов по тематике, охватам и характеристикам аудитории, формировать брифы и управлять процессом размещения рекламных интеграций. Для инфлюенсеров предусмотрен личный кабинет с историей сотрудничества, статистикой по кампаниям и инструментами взаимодействия с заказчиками. Платформа объединяет поиск исполнителей, постановку рекламных задач, коммуникацию и контроль выполнения кампаний в едином рабочем процессе.
- Роль
- Fullstack Developer
- Состав команды
- 1 Fullstack Developer
Что реализовывал
Проектирование и разработка платформы
- Спроектировал и разработал с нуля backend-часть платформы для взаимодействия рекламодателей и создателей контента.
- Реализовал API для управления рекламными кампаниями, брифами, профилями участников и статусами выполнения интеграций.
- Спроектировал и реализовал асинхронную обработку фоновых операций на базе Celery.
- Разработал пользовательский интерфейс платформы на Vue.js, включая личные кабинеты рекламодателей и инфлюенсеров.
- Реализовал функциональность поиска и подбора блогеров по нишам, охватам и показателям аудитории.
- Реализовал инструменты управления рекламными кампаниями, отслеживания их статусов и истории сотрудничества.
- Стек технологий
- Python
- Django
- Celery
- Redis
- PostgreSQL
Платформа по работе с ASIC
8 месяцевПлатформа для централизованного управления парком ASIC-майнеров - специализированного оборудования для добычи биткойна, используемая администраторами для автоматизации его настройки и мониторинга. Система ведет учет оборудования, позволяет удаленно изменять параметры майнеров и централизованно контролировать их состояние без необходимости настраивать каждое устройство отдельно. Платформа собирает телеметрию, включая хешрейт, температуру и статус подключения, и предоставляет информацию о состоянии оборудования в едином интерфейсе. При сбоях и снижении производительности система формирует оповещения, что позволяет оперативно выявлять проблемы и сокращать время реакции на неисправности.
- Роль
- Fullstack Developer
- Состав команды
- 1 Fullstack Developer
Что реализовывал
Проектирование и разработка системы
- Спроектировал и разработал с нуля платформу для централизованного управления парком ASIC-майнеров.
- Реализовал API для управления оборудованием, его параметрами, состояниями и эксплуатационными данными.
- Разработал асинхронную обработку фоновых операций на базе Celery для работы с большим количеством устройств.
- Реализовал сбор и обработку телеметрии майнеров: хешрейт, температура, статус подключения и другие эксплуатационные показатели.
- Реализовал механизм удаленной настройки параметров оборудования и централизованного управления парком устройств.
- Разработал систему мониторинга состояния майнеров и оповещения о сбоях и снижении производительности.
- Разработал пользовательский интерфейс платформы на Vue.js для управления оборудованием и просмотра его состояния.
- Стек технологий
- Python
- Django
- Celery
- Redis
- PostgreSQL
Платформа виртуального сотового оператора
1 год 1 месяцПлатформа виртуального сотового оператора (MVNO), обеспечивающая основные процессы обслуживания абонентов: биллинг, тарификацию звонков, SMS и интернет-трафика, взаимодействие с оборудованием оператора-донора и работу личного кабинета. Система обрабатывает данные об услугах и потреблении абонентов, рассчитывает стоимость оказанных услуг и обеспечивает передачу необходимой информации между внутренними компонентами и инфраструктурой оператора-донора. Проект находился в состоянии значительного технического долга: использовалась устаревшая версия фреймворка, присутствовали циклические зависимости, медленный процесс развертывания и проблемы с производительностью ключевых операций. В рамках дальнейшей разработки требовалось одновременно поддерживать существующую функциональность и постепенно повышать производительность, стабильность и сопровождаемость платформы.
- Роль
- Fullstack Developer
- Состав команды
- 1 Fullstack Developer
Что реализовывал
Модернизация и рефакторинг
- Модернизировал legacy-проект: выполнил миграцию с Django 0.9.8 на Django 1.12 с адаптацией существующей бизнес-логики.
- Устранил циклические зависимости и провел рефакторинг ключевых компонентов кодовой базы.
- Провел ревизию и адаптацию бизнес-логики биллинга и тарификации в рамках миграции на новую версию фреймворка.
- Оптимизация производительности
- Оптимизировал работу с базой данных и формирование отчетов, сократив время выполнения с 4–5 секунд до 300–400 мс.
- Оптимизировал пользовательские сценарии и навигацию, сократив среднее количество действий для доступа к функциям с 7–8 до 2–4 кликов.
- Настроил Nginx как reverse proxy и сервер статических ресурсов, дополнительно сократив время ответа приложения.
Инфраструктура и DevOps
- Автоматизировал развертывание проекта с использованием Fabric, сократив подготовку нового сервера с недели до 2–3 часов.
- Внедрил Continuous Integration с использованием Fabric, Docker и сопутствующих инструментов.
- Обеспечивал эксплуатацию и техническую поддержку инфраструктуры проекта на 6 серверах.
- Стек технологий
- Python
- Django
- Celery
- Redis
- PostgreSQL
- Linux
- Nginx
Маркетплейс-агрегатор товарных предложений
2 года 2 месяцаМаркетплейс-агрегатор, объединяющий товарные предложения с различных сайтов-источников и предоставляющий пользователям возможность сравнивать доступные товары и цены. Основу системы составляет автоматизированный сбор данных с внешних площадок с помощью веб-парсинга, включая информацию о товарах, их характеристиках и стоимости. Полученные данные регулярно обновляются для поддержания актуальности каталога и ценовых предложений. Платформа также включает механизмы обработки и синхронизации собранных данных, обеспечивающие стабильную работу каталога при изменении информации на сайтах-источниках.
- Роль
- Ruby Developer
- Состав команды
- 3 Ruby Developer
Что реализовывал
Парсинг и агрегация данных
- Спроектировал и разработал собственный микрофреймворк для создания, запуска и отладки веб-пауков.
- Разработал набор веб-пауков для автоматизированного сбора данных о товарах и ценах с внешних площадок.
- Реализовал механизм регулярного обновления каталога на основе данных, полученных из внешних источников.
- Разработал механизм matching товаров между различными источниками для объединения предложений и устранения дублей в каталоге.
Backend-разработка
- Разрабатывал backend маркетплейса на Ruby on Rails, реализуя основные бизнес-сущности и API для работы с каталогом.
- Разработал административную панель для управления каталогом и мониторинга состояния парсеров.
- Реализовал поиск и фильтрацию товаров по категориям, ценам и источникам.
- Настроил фоновые задачи для запуска парсеров и регулярного обновления данных по расписанию.
Инфраструктура
- Обеспечивал эксплуатацию и техническую поддержку инфраструктуры проекта на 2 серверах.
- Стек технологий
- Ruby on Rails
- PostgreSQL/MySQL
Логистическая платформа
1 год 7 месяцевЛогистическая платформа для автоматизации управления доставками, используемая для формирования и распределения заказов, построения маршрутов, учета складских остатков и отслеживания статусов доставки в реальном времени. Система объединяет ключевые процессы логистики в едином контуре, обеспечивая взаимодействие между заказами, складом и доставкой. Проект был унаследован в состоянии существенного технического долга: в кодовой базе присутствовали циклические зависимости, использовалась самописная ORM, а процессы разработки не были формализованы. В рамках поддержки и развития платформы требовалось одновременно обеспечивать стабильную работу существующей системы и постепенно улучшать ее архитектуру и процессы разработки.
- Роль
- C# Developer
- Состав команды
- 1 Team lead, 2 C# Developer
Что реализовывал
Рефакторинг и модернизация
- Провел рефакторинг архитектуры legacy-проекта: заменил циклические зависимости и синглтоны на Dependency Injection.
- Выполнил миграцию с самописной ORM на Entity Framework 6, адаптировав существующую бизнес-логику платформы.
Инженерные практики
- Разработал и внедрил стандарты разработки и единые требования к качеству кода.
- Выстроил процесс разработки с учетом задач, обязательным код-ревью и Continuous Integration.
- Внедрил практики TDD для повышения качества и стабильности разрабатываемого функционала.
- Стек технологий
- C#
- ASP.NET MVC
- Entity Framework
Модуль электронного документооборота
1 год 9 месяцевМодуль электронного документооборота для компании-заказчика, предназначенный для автоматизации создания, согласования, подписания и хранения внутренних документов. Система переводила процессы, ранее выполнявшиеся с использованием бумажного документооборота, в единый цифровой процесс с настраиваемой цепочкой согласования и контролем статусов документов. Все документы хранились в единой системе с сохранением истории изменений и прохождения этапов согласования. Решение позволяло сократить время обработки документов, повысить прозрачность внутренних процессов и исключить значительную часть ручных операций.
- Роль
- C# Developer
- Состав команды
- 1 C# Developer
Что реализовывал
Разработка модуля документооборота
- Спроектировал и реализовал маршрутизацию документов по цепочке согласования с настраиваемыми этапами и ответственными лицами.
- Реализовал систему статусов документов - от черновика до архива - с сохранением истории изменений и переходов между статусами.
Архитектура и рефакторинг
- Спроектировал расширяемую архитектуру модуля с возможностью добавления новых типов документов и маршрутов согласования.
- Провел рефакторинг существующей кодовой базы для унификации подходов между проектами.