Перейти к содержимому

Эршат Турсунов

Backend-разработчик

Middle Алматы, Казахстан
3 г. 9 мес. опыта 13 навыка

Опыт работы

DevArt

09.2022 — по н.в. 3 г. 9 мес.

Middle fullstack разработчик

Middle Гибрид Алматы

Система класса 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

Навыки

PostgreSQL MySQL JavaScript HTML TypeScript CSS Angular REST API Go templates Lua BPMN Golang Git

Языки

Уйгурский Родной
Английский B1 — Средний
Казахский C1 — Продвинутый
Русский C2 — Владение в совершенстве

Личные данные

Возраст 25 года
Гражданство Казахстан
Ссылка скопирована