Валерий Шарлай
Full Stack Developer / Tech Lead
КВТ (ТехЭлектро) • Odoo ERP
За 4+ года работы над проектом внёс значительный вклад в развитие ERP-системы на базе Odoo: оптимизация производительности, разработка бизнес-логики (склад, продажи, закупки, доставка), автоматизация процессов разработки и организация работы команды.
Путь развития
От первых задач до технического лидерства
Старт на проекте
Погружение в Odoo 13, изучение архитектуры. Первые задачи по складу, закупкам и продажам.
Развитие бизнес-логики
Контракты в SO/PO, маршруты склада, визарды массовых операций, работа с ГТД и межкомпанийными цепочками.
Оптимизация и стабилизация
Глубокий профайлинг и оптимизация SQL/ORM. Ускорение критичных операций в 3-1300 раз. OCA модули.
Tech Lead и DevOps
Организация процессов разработки, регламенты, автоматизация релизов, безопасность стендов, менторинг команды.
Завершение и передача
Карточки доставки, цепочки документов, нагрузочное тестирование. Подведение итогов и документирование.
Направления работы
Основные области, в которых велась разработка
no_epic
Транспорт
Производительность
Dev
Склад
Закупки
Оптимизация производительности ERP
Масштабные улучшения скорости и стабильности Odoo
Комплексная работа по анализу и устранению узких мест производительности в крупной Odoo ERP системе. Основной фокус: SQL, ORM, права доступа, compute-методы, массовые операции и UI.
Ключевые результаты:
- Устранены блокировки БД при массовых операциях
- Сокращено время критичных операций в 2–1300 раз
- Оптимизированы десятки core и кастомных compute методов
- Внедрена системная работа с профайлингом и метриками
- Снижена нагрузка на PostgreSQL и Odoo workers
Глубокий SQL и ORM анализ
Explain Analyze, pg_stat_statements, индексы, materialized view, auto_join, parse и where_calc
Оптимизация бизнес-критичных процессов
КП, СКЗ, ОЛ, инвойсы, резервация, упаковка, импорты, отчеты
Работа с правами доступа
Сокращение доменов, кэширование ir.rule, пропуски проверок в безопасных местах
Профайлинг и метрики
py-spy, speedscope, кастомные метрики, логирование SQL и HTTP
Закупки и маршрут Контейнер (Odoo кастомизация)
Багфиксы, синхронизации межкомпани, ГТД, даты, производственные разрезы
Поддержка и развитие закупочного контура и маршрута "Контейнер": исправление блокирующих ошибок, выравнивание данных в цепочках документов (PO, SO, IN/OUT/INT/RCPT, счета), улучшение UX-сообщений и рефакторинг легаси логики ГТД/партий.
Ключевые результаты:
- Закрыл блокирующие кейсы в закупках: запрет создания ЗЦП при незаполненных статьях ДДС через все точки входа (включая визарды из списков), улучшил тексты ошибок и детализацию (до 10 строк, с кодом товара)
- Реализовал/доработал межкомпани-логику для распреда: поле РСК в ЗЦП, проброс в связанное КП и автоподстановка склада по выбранному РСК
- Привел к консистентности плановые даты: синхронизация arrival_point_date контейнера, date_planned в ЗЦП и scheduled_date/commitment_date в связанных документах, уменьшил лишние вызовы обновления дат
- Исправил разделение ГТД между компаниями ВЭД в одном контейнере (разные ГТД не перетирают друг друга), добавил нужные синхронизации в связаных документах
- Стабилизировал проведение контейнера при частичной приемке: корректировка IN ВЭД в меньшую сторону больше не ломает подтверждение контейнера
- Реализовал проброс признака "Для производства" и разделение INT на два требования (обычные запасы vs запасы для производства), устранил дубли линий и ошибки связей move_dest_ids
- Исправил цену и плановую дату для добавленных после подтверждения позиций: цена из прайслиста ВЭД, корректная логика дат отгрузки и цепочка значений дальше по маршруту
- Ввел поля начала/окончания приемки и синхронизацию с контейнером, сделал автозаполнение по триггерам и убрал некорректные проверки
- Сделал крупный рефакторинг ГТД: единая настройка необходимости проверки по типу записи, разделение проверок партии и ГТД, исправление кейсов разных стран в одном документе, оптимизация и подготовка к миграциям
- Расширил визард установки ГТД и контроль расхождений с маркировками (ЧЗ), добавил права "Менеджер ГТД" и проверки формата/структуры кода
Сквозная синхронизация по цепочке документов
PO/SO/пикинги/счета держат согласованные даты, ГТД и доп.поля; изменения распространяются предсказуемо и без перетираний.
Надежные валидации и UX-ошибки
Проверки вынесены в правильные точки входа (кнопки, визарды, проведение), сообщения понятные и масштабируются на множественные документы.
Рефакторинг легаси функционала ГТД
Логика, копившаяся годами, приведена к единому правилу через настройки, ускорена и подготовлена к дальнейшему отказу от партийного якоря.
Безопасность и защита стендов Odoo
Контроль debug режима, защита БД и управление доступами
Комплекс работ по усилению безопасности Odoo: ограничение debug режима, защита стендов от удаления БД, централизованное управление пользователями и правами доступа.
Ключевые результаты:
- Полностью закрыта возможность включения debug режима для обычных пользователей
- Исключено случайное удаление баз данных на стендах
- Введена единая схема пользователей и прав доступа для команд и внешних систем
- Повышена прозрачность и контроль доступа в multi-company окружении
Защита Debug режима
Реализован контроль debug через группы доступа и сессии, включая кейсы до логина пользователя.
Защита стендов
Отключено удаление БД через UI и добавлены защитные проверки на уровне логики.
Управление пользователями
Автоматизировано создание и обновление пользователей с разными уровнями доступа.
Организация и автоматизация процессов разработки
Регламенты, флоу задач и управление командой Odoo
Проект по выстраиванию и стандартизации процессов разработки, управления задачами и командой. Включает проектирование флоу задач, регламентов, обучение разработчиков и административное сопровождение крупных Odoo проектов.
Ключевые результаты:
- Разработан и внедрен единый флоу жизненного цикла задач
- Созданы и актуализированы регламенты разработки и код-стандарты
- Снижено число ошибок из-за некорректной постановки задач
- Повышена прозрачность статусов и ответственности
- Организовано обучение и онбординг разработчиков
Флоу задач
Проектирование статусов от идеи до релиза с четкими ответственными ролями
Регламенты
Единые правила нейминга, кодинга, ревью, тестирования и документации
Управление командой
Оценка квалификации, онбординг, дежурства и организация спринтов
Системные настройки Odoo
Гибкая конфигурация прав, полей и поведения системы
Разработка и модернизация системных механизмов Odoo для администрирования, точности данных, прав доступа и отключения лишнего функционала без кастомного кода.
Ключевые результаты:
- Единый механизм настройки разрядности Float-полей
- Гибкая настройка прав редактирования полей через интерфейс
- Введение типов документов и доменов без кода
- Оптимизация связей компаний и контактов
- Безопасное отключение website и portal
Настройки числовых полей
Реализована универсальная настройка округления Float-полей с учетом ограничений базы и исключением Monetary.
Типы документов
Добавлена модель типов документов с возможностью настройки доменов справочников в UI.
Управление доступами
Редактируемость полей настраивается через интерфейс для групп пользователей.
Контроль HTTP доступа
Отдельный модуль для блокировки website и portal без удаления зависимостей.
Склад: доработки склада и логистики
Stock Picking, Quantities, маршруты отбора, СКЗ/RTN, приемка и инвентаризация
Разработка и отладка складных доработок в Odoo: расчеты остатков и очередей, маршруты комплектации, визарды массовых операций, интеграция процессов СКЗ/RTN/IN/OUT, исправление UI/представлений и усиление валидаций.
Ключевые результаты:
- Сделал отображение требований IN в карточке товара и корректный расчет pending/free-to-use остатков с учетом межкомпанийности
- Исправил логику заполнения пункта назначения/грузополучателя для RTN/OUT и сценарии формирования СКЗ
- Реализовал массовое изменение planned date для RTN через визард с валидациями статусов и правами по типу компании
- Внедрил управляемую сортировку линий (move_line) на типах операций и доработал триггеры применения сортировки
- Улучшил алгоритм «змейки» и маршрута отбора (PICK) по топологии склада с обработкой некорректных/пустых баркодов
- Доработал уведомления по отрицательным квантам, расширив диагностические данные (партия/идентификаторы)
- Исправил отображение движения продукта в инвентаризации и конфликт view в визарде маркировки
- Прорабатывал и дебажил сложные приемочные сценарии по коробам в ПЛ (сканирование, backorder, статусы, запреты редактирования)
Корректный расчет доступности товара
Добавлен учет pending_qty и формула free_to_use_quantity = free_qty - pending_qty (с учетом резервов и межкомпанийного контекста).
Визард массового изменения scheduled_date для RTN
Действие в listview: календарь, запрет дат раньше текущей, проверка статусов (Ожидание/Готово), обновление связанных документов (в т.ч. draft СКЗ).
Управление сортировкой линий на типе операции
Поле-настройка на picking.type, применение сортировки move_line при переходе в Готово или по кнопке, с учетом ограничений интеграций (ТСД).
Маршрут отбора по топологии склада
Алгоритм сортировки по рядам/местам/ячейкам из barcode, учет четности количества рядов, вывод неопознанных локаций в конец.
Блокировки критичных проводок по маршрутам
Запрет проводки OUT из СКЗ по маршруту Беседы при наличии заявок на ТУ, чтобы не ломать цепочку RTN.
Парк: методы доставки и цепочки документов
Переработка логики доставки, транзитных маршрутов и автотестов
Комплексная переработка логики методов доставки в Odoo: отвязывание и перепривязка карточек доставки, корректная работа транзитных маршрутов, восстановление целостности цепочек документов, оптимизация статусов ТУ и визуализация связей.
Ключевые результаты:
- Реализована безопасная смена карточек доставки без потери истории отгрузок
- Исправлена логика цепочек документов для прямых и транзитных маршрутов
- Восстановлена корректная работа заявок на ТУ и их статусов
- Добавлены автотесты для сложных маршрутов и кейсов
- Снижено количество блокирующих ошибок при проведении документов
Цепочки доставки
Новая модель цепочек с корректным пробросом связей между RTN, TR-CL, ТУ, ОЛ и контейнерами.
Визуализация и визарды
Визард отвязывания карточек и графическое отображение цепочек документов для анализа.
Автотесты
Набор автотестов для транзитных маршрутов, backorder и повторного проведения.
Odoo: Продажи и КП
Фичи, визарды, фиксы и валидации для sale.order
Разработка и поддержка блока продаж: улучшение UX в КП/ЗЦП, новые визарды, проверки дат, исправление критичных сценариев распределения, рефакторинг и стабилизация через тесты.
Ключевые результаты:
- Закрыл 6 задач в модуле Продажи (КП/SO), включая новые визарды и багфиксы
- Убрал ограничения по типам компаний для кнопки Delivery Dates и подчистил логику фильтров/вьюх
- Добавил поиск по полному названию продукта в визарде + возможность скрывать поля
- Починил ручное распределение в визарде (фиксация значений, навигация, обработка пустых значений как 0)
- Внедрил проверки дат отгрузки/доставки + подсветку полей при ошибках на клиенте
- Сделал визард прогнозных поставок/отгрузок с доменами, группировками, фильтрацией складов и расчетами количеств
- Провел рефакторинг, тестирование, перезапуск тестов, резолв конфликтов и мелкие правки по MR
Delivery Dates без ограничений по типу компании
Кнопка доступна для разных типов компаний; упрощены вьюхи и удалены лишние методы, поправлены фильтры и UX пустых списков.
Визард прогнозных поставок и отгрузок
Отображение приходов/отгрузок по складам с сортировками, доменами и группировками; кнопка в строке товара КП открывает сводные таблицы.
Клиентские ошибки с подсветкой полей
Новый тип уведомлений для некорректных дат, похожий на стандартные ошибки Odoo, с подсветкой проблемных полей (переиспользуемая штука).
Улучшение визарда добавления продукта
Поле полного названия, быстрый поиск по нему и возможность скрывать поля через меню.
Фиксы формы распределения
Исправлена передача введенных количеств, баги навигации по позициям, и кейсы с очисткой значения (автоподстановка 0).
TechElectro: улучшения процессов продаж, закупок и склада в Odoo
Контракты (SO/PO), возвраты, ТУ, маршруты склада, производственные связи
Выполнял задачи по доработке бизнес-логики Odoo для контуров продаж, закупок и склада: автоподстановка и валидация договоров, ограничения по закрытым/удаляемым договорам, устранение ошибок цепочек перемещений, настройка и стабилизация создания заявок на транспортные услуги, а также ускорение визардов и вычислений по возвратам и спискам.
Ключевые результаты:
- Внедрена корректная логика выбора договора по умолчанию для SO/PO (базовый, затем валидный по датам, затем первый доступный)
- Добавлены предупреждения о невалидных датах договора и сохранена проверка даты окончания с граничными условиями
- Оптимизирован домен и расчеты для contract_id, устранены лишние двойные onchange-триггеры, упорядочены поля формы для автозаполнения сверху вниз
- Исправлен кейс с адресом доставки: приоритет активного адреса из договора, затем из партнера, затем из дочерних контактов по условиям задачи
- Стабилизирована логика закрытых договоров: исключение из выбора, запрет сделать закрытый договор базовым, авто-сброс базовости при закрытии
- Запрещено удаление договора, если он участвует в документах, добавлены более точные сообщения и исправлены кейсы зеркальных договоров при копировании
- Устранена причина создания лишней заявки ТУ при возврате из PACK (ограничение подтверждения только INT вместо INT+OUT в одном из участков логики)
- Переработаны условия автосоздания ТУ: вынесены настройки на уровень типов операций с явным режимом автосоздания
- Ускорено открытие списка/группировки по возвратам: на стенде снижение времени открытия примерно с 15s до 5s
- Сильно ускорено создание возвратного требования из визарда: примерно в 14-16 раз на типовых наборах
- Пофикшен маршрут перемещений между ЮЛ при группировке нескольких RTN: устранена ошибка Expected singleton
- Починен проброс запланированной даты по цепочке требований (INT, RTN, PICK, PACK, OUT, IN) и вынесена логика определения поля даты для распространения
- Добавлены/адаптированы кнопки навигации между документами (MO -> SO, перемещения -> PO) и устранены проблемы зависимостей/манифеста
- Обновлена работа с партией/серийником: возвращена логика lot_name до проведения и запись в lot_id при done, с учетом отличий маршрутов
Контракты в SO/PO: дефолт, домен, предупреждения
Автовыбор договора по правилам при смене партнера, проверка валидности периодов относительно date_order, предупреждения вместо навязчивых блокирующих окон, оптимизация домена и запросов.
Транспортные услуги: управляемое автосоздание
Убраны хрупкие условия автосоздания ТУ из кнопок/статусов, добавлена настройка в типах операций по аналогии с фичами типа 'требуется упаковка', расширены проверки и тесты.
Производительность: возвраты и read_group
Профилирование и рефакторинг вычислений (_compute_rtn_qty, web_read_group, action_open_return_wizard), кэширование и сокращение повторных операций, ускорение визарда и создания возвратов.
Маршруты склада и межкомпани цепочки
Исправления цепочек PICK-PACK-OUT-INT/IN, корректный перенос планируемых дат, устранение ошибок при группировке требований и проведении.
Оптимизация разработки и Dev-инструменты
Автоматизация, производительность, контроль качества
Комплексная оптимизация процессов разработки: автоматизация релизов и push, восстановление БД, профайлинг, нагрузочное тестирование и инструменты контроля код ревью. Цель — снизить ошибки, ускорить цикл задач и повысить стабильность среды.
Ключевые результаты:
- Существенное сокращение времени релизов и push операций
- Минимизация человеческих ошибок в Git и Jira
- Централизованный сбор и анализ профайлинга
- Автоматическое нагрузочное тестирование с метриками
- Повышение прозрачности и скорости код ревью
Автоматизация релизов и push
Скрипты для Gitflow проектов с проверками конфликтов, зависимостей, корректности веток и сообщений.
Профайлинг и анализ производительности
Сбор профайлов со всех nomad клиентов и автоматический топ тяжелых методов.
Восстановление и перенос БД
Полностью автоматизированный restore БД с проверками и снижением ошибок.
Нагрузочное тестирование
Модуль с метриками Prometheus/Grafana для отслеживания деградации производительности во времени.
Контроль код ревью
Инструмент анализа задержек ревью для сокращения жизненного цикла задач.
Помощь и консультации
Стабилизация, оптимизация и внедрение Odoo решений
Поддержка и развитие Odoo 13: анализ инцидентов, восстановление логики импорта, оптимизация производительности, внедрение OCA модулей, стабилизация кронов и маркетплейс интеграций.
Ключевые результаты:
- Восстановлена проверка дублей документов при импорте УПД
- Ускорено массовое создание КП и автоматические действия
- Добавлены и протестированы десятки OCA модулей
- Снижено количество критических ошибок на проде
- Стабилизированы кроны и автоматические действия маркетплейсов
Импорт и данные
Исправление логики Generic Import, пропуск readonly и compute полей, предотвращение лишних перерасчетов
Производительность
Глубокий профайлинг, оптимизация inverse, onchange, related и legacy кода
OCA экосистема
Интеграция OCA stock, purchase, workflow модулей с сохранением истории и зависимостей
Инфраструктура
Отладка деплоев, Nomad, cron, логи, opensearch, удаленная отладка стендов
Ключевые проекты
Основные разработанные системы и модули
Оптимизация производительности
Глубокий SQL/ORM анализ, устранение блокировок БД. Ускорение КП, СКЗ, инвойсов, резерваций в 2–1300 раз.
Склад и логистика
Расчёт остатков, маршруты комплектации, визарды массовых операций, СКЗ/RTN, приёмка и инвентаризация.
Закупки и контейнеры
Маршрут Контейнер, межкомпанийные цепочки PO/SO, синхронизация дат, ГТД и партии.
Карточки доставки
Перепривязка доставки по цепочкам документов, транзит и прямая доставка, визуализация цепочек.
Автоматизация разработки
Скрипты релизов и push, восстановление БД, профайлинг, нагрузочное тестирование, контроль код ревью.
Организация процессов
Регламенты разработки, флоу задач, онбординг, обучение команды. 30+ регламентов, 50+ воркшопов.
Технологический стек
Технологии и инструменты, с которыми работал на проекте
Технический стек
Технологии и инструменты, используемые в работе
Вклад в команду
Развитие команды и передача знаний
Code Review
Проверка кода коллег, рекомендации по улучшению, соблюдение стандартов
Комментарии CR
Детальные комментарии в merge requests с объяснениями и примерами
Помощь коллегам
Консультации, совместная отладка, помощь в решении сложных кейсов
Регламенты
Регламенты разработки, код-стандарты, инструкции по процессам
Статистика разработки
Данные за период 2021-09-24 — 2026-01-24
Полный список задач
378 выполненных задач, сгруппированных по 30 направлениям