Опыт работы
DevArt
Middle fullstack разработчик
Система класса CRM/ERP, используется в 11 компаниях, дополнительно развёрнуты 2 отдельных портала для заказчиков. В основной базе ~7-8 тыс. активных пользователей, в модулях моей зоны ответственности - несколько тысяч. Отвечал за модули: активы, ремонты, закупки, договоры, бюджет закупа. Участник команды из 3 разработчиков, развивающей бухгалтерский блок. Кратко: Примеры задач и результатов: - Сократил время синхронизации бюджета с 1–2 минут до менее 20 секунд - Снизил обращения по интеграции с 1С с 3–5/мес до 1–2 за 4–5 месяцев - Устранил ручные перезапуски — данные стали доступны сразу - Выполнил миграцию MySQL → PostgreSQL (5 модулей) без остановки пользователей - Реализовал интеграции с государственными сервисами через SOAP (BIP, SmartBridge) - Реализовал интеграции с тремя банками (Halyk Bank, ForteBank, Alatau City Bank) - Доработал шаблон автогенерации страниц - механизм переиспользуется в других модулях без дополнительной разработки - Решил проблему целостности данных в цепочке закупок (требование -> закуп -> исполнение -> покупка -> заказ поставщику): до покупки связь 1:1, после - 1:N. При изменении/удалении строк в заказе поставщику данные пропадали по всей цепочке. Реализовал создание строки-дубликата при формировании заказа - изменения изолированы, основная цепочка не затронута - Интеграция с 1С:Предприятие. Технические детали: Бюджет закупа - скорость и актуальность данных. Проблема: задержки 1-2 мин, расхождения данных, ручные перезапуски. Корневая причина - N+1 проблема: множество обращений к БД внутри циклов при пересчётах. Решение: upsert (ON CONFLICT DO UPDATE), логика пересчётов переведена на пакетную обработку - in-memory словари + batch upsert + CTE + lateral join вместо множества обращений к БД внутри циклов. Синхронизация автоматическая: после upsert система сама отправляет обновлённые данные в модуль бюджета. 6–7 основных таблиц + зависимости из других модулей. Результат: - выполнение сокращено с 1-2 минут до 20 секунд; - данные стали доступны пользователям сразу; - исключены ручные перезапуски; Активы - интеграция с 1С:Предприятие. Проблема: регулярные расхождения, нельзя определить состав полученных пакетов. Решение: изменён подход на регулярный запрос данных за период + внедрено логирование приёма. Результат: - упрощена диагностика; - количество обращений снижено с 3–5 в месяц до 1-2 за 4-5 месяцев; Договоры - изменение процесса без потери истории. Проблема: отказ от этапа «заявка», при этом данные удалить нельзя (согласования, ЭЦП). Решение: адаптация существующей сущности под новую схему без миграции, старые документы выведены из активной работы с сохранением доступа к истории. Результат: переход выполнен без миграции и без остановки пользователей, история сохранена. Закупки - работа со связью 1:N и сохранением неизменяемости. Проблема: изменения поздних документов влияли на уже утверждённые; были случаи восстановления данных вручную. Решение: при создании заказа поставщику в таблицу материалов добавляется строка-дубликат со ссылкой на оригинал - изменения изолированы, основная цепочка не затронута, на фронте дубликаты скрыты. переработаны фильтры и признаки в отчётах. Результат: зафиксирована история; пользователи не видят дубли; корректно формируются данные для бюджета. В документах - от единиц до сотен строк. Миграция MySQL -> PostgreSQL: Переписаны запросы под диалект PG, устранены несовместимости. Использовал возможности PostgreSQL отсутствующие в MySQL: upsert (ON CONFLICT), работа с JSON; Поддержка продакшена - оптимизация SQL-запросов; - разработка печатных форм; - разбор и исправление инцидентов связанных с обращениями пользователей; - внедрение доработок для уже существующих модулей.
- Сократил время синхронизации бюджета с 1–2 минут до менее 20 секунд
- Снизил обращения по интеграции с 1С с 3–5/мес до 1–2 за 4–5 месяцев
- Устранил ручные перезапуски — данные стали доступны сразу
- Выполнил миграцию MySQL → PostgreSQL (5 модулей) без остановки пользователей
- Реализовал интеграции с государственными сервисами через SOAP (BIP, SmartBridge)
- Реализовал интеграции с тремя банками (Halyk Bank, ForteBank, Alatau City Bank)
- Доработал шаблон автогенерации страниц - механизм переиспользуется в других модулях без дополнительной разработки
- Решил проблему целостности данных в цепочке закупок: реализовал создание строки-дубликата при формировании заказа
- Интеграция с 1С:Предприятие
Образование
Satbayev university
— 2022Кибербезопасность, обработка и хранение информации, Информационные системы
БакалаврОжидаемая зарплата
800 000 KZT