Обо мне
Я backend-разработчик, специализирующийся на создании и развитии внутренних бизнес-систем.
За время работы мне приходилось заниматься не только разработкой отдельных сервисов, но и проектированием архитектуры систем, модернизацией legacy-решений, построением интеграций между различными платформами и обеспечением стабильной работы критически важных для бизнеса сервисов.
В своей работе я стараюсь смотреть на задачу не только с точки зрения разработки конкретной функциональности, но и с точки зрения долгосрочного развития системы, удобства её поддержки и влияния на бизнес-процессы компании.
Роль в компании
В компании я являлся основным backend-разработчиком и фактически отвечал за развитие backend-направления. В сферу моей ответственности входили:
- ▹ проектирование архитектуры новых сервисов
- ▹ развитие существующих систем
- ▹ проектирование моделей данных и структуры БД
- ▹ разработка REST API
- ▹ проектирование интеграций между сервисами
- ▹ обеспечение производительности и стабильности решений
- ▹ внедрение мониторинга и логирования
- ▹ развитие процессов CI/CD
- ▹ исследование и устранение технических ограничений существующих систем
Большинство архитектурных и технических решений по backend-направлению принимались мной самостоятельно на основании бизнес-требований и технических ограничений проектов.
Масштаб проектов
В разные периоды я отвечал за развитие следующих систем:
Основные направления работы
Архитектура
[ТВОЙ ТЕКСТ]
Интеграции
[ТВОЙ ТЕКСТ]
Производительность
[ТВОЙ ТЕКСТ]
Надёжность
[ТВОЙ ТЕКСТ]
Безопасность
[ТВОЙ ТЕКСТ]
Работа с Legacy
[ТВОЙ ТЕКСТ]
Кейсы
все →CRM Rewrite
Замена критичной для бизнеса 1С-CRM люксового ювелирного бренда на модульный монолит на Django. Самым сложным была не разработка, а нормализация и миграция грязных данных из старой системы.
PHP → Python Migration
Постепенный перенос backend сайта Maxim Demidov с legacy-PHP (аутсорс, без тестов и понятной архитектуры) на Django — без остановки бизнеса, через маршрутизацию на Nginx. Попутно расследовал и устранил регулярные падения прода.
Yandex Metrica Investigation
[Какую проблему с данными/аналитикой расследовал и что выяснил.]
Production Outage Investigation
[Какой инцидент на проде расследовал, как нашёл причину и что предпринял.]
Password Manager
[Какой внутренний менеджер паролей спроектировал/построил и зачем.]
Elasticsearch Optimization
[Что оптимизировал в Elasticsearch и какого прироста добился.]
Взаимодействие с командой
Несмотря на специализацию в backend-разработке, значительная часть моей работы была связана с координацией задач между различными подразделениями компании. Я регулярно взаимодействовал с:
- ▹ участвовал в обсуждении бизнес-требований
- ▹ формировал требования для frontend-разработки
- ▹ проектировал API и контракты интеграций
- ▹ ставил задачи по обмену данными и интеграциям
- ▹ участвовал в выборе технических решений
- ▹ оценивал риски и ограничения предлагаемых изменений
Работа с пользователями
Одной из важных частей моей работы было взаимодействие с сотрудниками компании, ежедневно использующими внутренние системы. При развитии CRM и других сервисов я регулярно собирал обратную связь от менеджеров и пользователей системы. Такой подход позволял:
- ▹ выявлять неудобные сценарии работы
- ▹ находить повторяющиеся ручные операции
- ▹ определять процессы, требующие автоматизации
- ▹ проектировать функциональность с учётом реальных рабочих процессов пользователей
Многие улучшения и новые функции появлялись именно благодаря регулярному общению с людьми, которые работали с системой ежедневно.
Подход к работе
При проектировании решений я стараюсь учитывать не только текущие бизнес-требования, но и дальнейшее развитие системы. Для меня важны:
Поэтому при реализации проектов я уделяю внимание не только бизнес-функциональности, но и качеству архитектуры, мониторингу, логированию, автоматизации и удобству дальнейшей поддержки системы.
Инициативность
Помимо выполнения запланированных задач, я регулярно выступал инициатором технических и инфраструктурных улучшений. Основанием для таких инициатив обычно становились ограничения существующих процессов, риски безопасности, технический долг, повторяющиеся ручные операции и возможности автоматизации.
Принятие решений
В своей работе я стараюсь не ограничиваться ролью исполнителя. Если я вижу проблему или возможность улучшения, то стараюсь:
- 01 Понять корневую причину.
- 02 Оценить влияние на пользователей и бизнес.
- 03 Исследовать возможные варианты решения.
- 04 Выбрать подход с учётом долгосрочных последствий.
- 05 Реализовать и довести решение до рабочего состояния.
Технологии
Backend
Databases
Infrastructure
Monitoring
DevOps