Обязанности и достижения:
Технический стек:
Frontend: Angular 16, RxJS, IndexedDB, SSR.
Backend: Yii2, PHP 8.3, Redis (сессии), RabbitMQ (очереди), MySQL.
Инструменты: Sentry, Docker, Kubernetes (базовое развертывание), Swagger.
Участвовал в нескольких проектах.
Проект: PWA (Angular16)
Основной фронт работ заключался в приемке проекта от подрядчиков, последующем рефакторинге и стабилизации сайта мобильного приложения (Angular 16)
1) Исправление критичных проблем рендеринга:
- Переписал механизм загрузки данных: внедрил Guards и Resolvers, чтобы исключить рендеринг страницы до получения ответа от сервера.
- Устранил рекурсивные вызовы в цепочке RxJS Observables для ускорения загрузки страниц.
2) Работа с ошибками:
- Настроил глобальный Error Interceptor для обработки API-ошибок (400, 401, 403, 500) с перенаправлением на экраны-заглушки/вызовом компонентов в соответствии с figma-макетами (Напр. тостер).
- Интегрировал Sentry для мониторинга проблем.
3) Оптимизация производительности:
- Ввел ленивую загрузку для модулей анкет и LMS.
- Добавил SSR-гидратацию для критичных страниц (напр. формы авторизации).
4) Разработка PWA-версии HRM-системы
- Выделил весь бэкенд из монолитного HRM-приложения (Yii2, см. далее) в отдельный PWA-модуль.
Проект: монолит HRM-система (Yii2 + Vue2).
1) Миграция и инфраструктура:
- Перевод проекта с PHP 7.3 -> 8.3 с полным тестированием обратной совместимости.
- Заменил файловые сессии на Redis (AOF-персистентность), что устранило проблемы при перезапуске контейнеров (CI/CD, падения).
2. Интеграции с внешними сервисами:
2.1. RabbitMQ для асинхронных задач:
- Очереди для обработки данных из iiko (рестораны) и HeadHunter (HR): для объемных задач, происходило деление на чанки и их обработка воркерами.
- Настроил Dead Letter Exchange для повтора неудачных операций.
2.2. Foquz (LMS):
- Разработка отдельного маленького модуля, внедрение RESTful API с проектированием SQL таблиц
- В виду отсутствия вебхука в API, реализовал одностороннюю синхронизацию: Foquz → HRM-система.
3. Работа с данными:
3.1. Оптимизация SQL-запросов:
- Устранение очень многих n+1 проблем через жадную загрузку/переписыванием логики запросов.
- Вывод ненужных хранимых процедур и триггеров в код (Хуки ActiveRecord, прямые SQL-запросы).
- Добавление кэширования в memcached
3.2. Рефакторинг БД:
- Декомпозиция таблиц одного из ключевых, но медленного модуля
- Добавил композитные b-tree индексы для часто используемых выборок.
Документация и процессы
1. Техническая документация:
- Восстановил Confluence: описал архитектуру ключевых модулей API, сценарии использования интеграций.
- Добавил Swagger для 80% эндпоинтов (использовал OpenAPI 3.0).
2. Управление командой:
- Поиски и проведение интервью кандидатов
- Внедрение гибридной методологию (Scrum + Kanban). Фактически, перешли с формата только "дейли", на добавление: спринтов, ретроспектив, roadmap, milestone, демо, ввод SP и продолжение ведение документации со стороны аналитики и тестирования. Запущен ряд процессов по перестройке команды.
Проект: SaaS (Yii2 + React).
- Участие в написании MVP: разработка, аналитика, утверждение с бизнесом и написание.
К сожалению, активное участие было только в течении одного месяца, прежде чем проект был заморожен.