Files
redlineo 9fdd27bb11
CodeQL Analysis / Analyze (javascript-typescript) (push) Failing after 20s
Release Please / release-please (push) Failing after 20s
CodeQL Analysis / Analyze (go) (push) Failing after 30s
add vk, add AI, add pet project, add new vacancies
2026-07-14 11:40:07 +03:00

27 KiB
Raw Permalink Blame History

Оценка: Ozon — Frontend-разработчик (ERP и учётные системы)

Дата: 2026-07-06 URL: https://ozon.tech/vacancies/cd28fe61-26c7-4a28-9d26-aafcde3fc189-frontend-razrabotchik-razrabotka-pol-zovatel-skikh-interfeisov/ Архетип: Frontend Developer (Vue.js) — primary Балл: 4.2/5 Legitimacy: Высокая уверенность PDF: output/cv-romanova-valeriya-ozon-erp-2026-07-06.pdf


A) Резюме роли

Параметр Значение
Архетип Frontend Developer (Vue.js) — прямое совпадение с primary-архетипом кандидата
Domain Enterprise / ERP и учётные системы (ЭДО, работа с контрагентами, зарплатные расчёты складов)
Function Build — разработка интерфейсов + прототипирование UX + участие в проектировании API
Seniority Middle (заявлено в JD)
Формат работы Офис / удалённая работа / гибрид — Москва, СПб, Иннополис, Новосибирск, Алматы, Астана. Удалёнка указана явно → не попадает под жёсткое ограничение по локации
Размер команды Не указан (команда «ERP и учётные системы»)
Оформление Не указано в JD — предположительно ТК РФ (стандарт для Ozon), требует уточнения на собеседовании
TL;DR Крепкая Middle-позиция на Vue 3/TS в высоконагруженной команде ERP Ozon (200K RPS чтение, 8K RPS запись) с удалённым форматом работы — сильное совпадение по стеку; главный риск — формальный порог «3+ года JS» при фактическом опыте кандидата около 2 лет.

B) Совпадение с CV

Требование JD Совпадение с CV
Опыт разработки на JavaScript от 3-х лет Нояб. 2024 — наст. время (Здравсервис, Frontend/Flutter, ~1.5 года) + март–дек. 2022 (ТулГУ, заказная разработка на Vue.js, 10 мес.) = совокупно ~2 года практики. Пробел (см. ниже)
Экспертное знание JavaScript/TypeScript/HTML/CSS/Git «Vue 3, Composition API, TypeScript, Pinia... Vite, ESLint, Prettier... Git, GitLab» (Навыки, cv.md)
Опыт разработки на Vue (NuxtJS) 2/3 «Vue 3, Composition API, Vue Router, Pinia, Vue 2 (базово)» — коммерческий опыт на Vue 3 в проекте «Здесь ЕКОМ» (разработан с нуля). Nuxt не использовался коммерчески — пробел
Понимание принципов UX «UI/UX: самостоятельное проектирование интерфейсов и редизайн ... в компании без штатного дизайнера» — редизайн кнопки «Избранное», редизайн блока информации о заказе
Клиент-серверная архитектура, опыт работы с API «REST API, WebSocket/WSS»; «Внедрила WebSocket для оповещений в реальном времени» (РМК); проектирование RBAC во взаимодействии с бэкенд-командой (ЕКОМ)
Умение писать простой, структурированный, читаемый код Feature Branching (Git Flow) внедрён в команде; Vitest unit-тесты, Storybook
Понимание классических алгоритмов и структур данных Не отражено явно в CV — пробел
Опыт работы в команде «менторство, кросс-командное взаимодействие (логистика, бэкенд, техподдержка, отдел работы с клиентами)»; обучила коллегу с 11-летним стажем работе с Git
Плюс: Figma Не указано в CV — пробел (частично закрывается опытом самостоятельного UI/UX-редизайна)
Плюс: GitLab, Docker, Nginx, WebSockets GitLab — да; Docker — в разделе «Быстро осваиваю» (не коммерческий опыт); WebSockets — да, коммерческий опыт (РМК)
Плюс: оптимизация Performance Явно не отражена, но косвенно — оптимизация загрузки «Избранное» (постраничная загрузка вместо одного тяжёлого запроса)
Плюс: тесты (CodeceptJS/Playwright/Jest) Playwright E2E внедрён на РМК; Vitest — юнит-тесты компонентов Vue

Пробелы и стратегия закрытия:

  1. «3+ года JS» — мягкий блокер (количественный, но не жёсткий фильтр уровня Middle в целом). Стратегия: не спорить с цифрой напрямую, а показать плотность и объём ownership — три продукта одновременно (веб с нуля, legacy-проект, мобильное приложение), проектирование RBAC, менторство разработчика с 11-летним стажем. Это поведение уровня выше формального стажа.
  2. Nuxt — nice-to-have. Кандидат владеет Vue 3 core на продакшн-уровне и указывает Nuxt в «быстро осваиваю» — честно сказать: коммерческого опыта с Nuxt нет, но архитектурные принципы (SSR, роутинг, конвенции) осваиваются быстро при глубоком знании Vue 3.
  3. Алгоритмы и структуры данных — риск на техническом интервью, а не блокер резюме. Стратегия: точечная подготовка к типовым задачам перед этапом.
  4. Figma — nice-to-have. Закрывается через рассказ о самостоятельном UI/UX-проектировании (кнопка «Избранное», компоновка блока заказа, app-иконки) — дизайнерский вкус без инструмента Figma специально не терялся.
  5. Performance optimization — nice-to-have. Использовать кейс с постраничной загрузкой «Избранное» как пример реальной оптимизации отклика интерфейса.

C) Уровень и стратегия

  1. Уровень в JD: Middle. Естественный уровень кандидата для этого архетипа: переходный Junior+/Middle — по формальному стажу (~2 года) ближе к Junior+, но по объёму ответственности (продукт с нуля, RBAC-дизайн, менторство сеньора) — на уровне Middle.
  2. План «продать Middle без обмана»: делать акцент не на годах, а на фразах ownership — «разработала фронтенд ЕКОМ с нуля», «спроектировала и объяснила бэкенд-команде ролевую модель авторизации», «обучила коллегу с 11-летним стажем работе с системой версионирования — команда перешла на стабильные еженедельные релизы». Эти формулировки продают уровень ответственности, а не мнимый стаж.
  3. План «если понизят уровень»: если предложат Junior+ по деньгам — принять только при условии пересмотра через 3-6 месяцев с чёткими критериями роста (закрытие пробелов по Nuxt/Docker/perf), зафиксированными письменно.

D) Компенсация и спрос

Источник Данные
Рыночная вилка Middle Vue-разработчик, Москва 180 000 – 380 000 ₽ gross (общий разброс по нескольким источникам); TypeScript добавляет +12-18% к зарплате, тестирование/CI/CD/Docker — ещё +15-22% к медиане
Ozon Tech — уровень оплаты Компания оценивается как конкурентная по рынку; для Senior база от 550 000 ₽, суммарный доход с бонусами может превышать 12 млн ₽/год — сигнал, что Middle-вилка внутри Ozon также выше медианы рынка
Отзывы сотрудников (Хабр Карьера, Dream Job) В основном положительные: интересные задачи, отсутствие микроменеджмента, высоконагруженные системы, гибрид/полная удалёнка сохраняются для большинства ИТ-команд. Есть критика: «хорошее место для старта карьеры, но сложно развиваться дальше»
Бенефиты (из JD) ДМС со стоматологией + льготная страховка для близких, страхование от несчастных случаев, полис для выезжающих за рубеж, психолог, корпоративные курсы (Ozon Универ), спортивные клубы, льготная жилищная программа, оплата участия в конференциях

Gross vs Net: в JD зарплата не указана явно. Если ориентироваться на рыночную вилку Middle Vue в Москве (180 000–380 000 ₽ gross), net ≈ gross × 0.87 → ~157 000–330 000 ₽ на руки — существенно выше минимума кандидата (100 000 ₽ на руки) и выше цели (100 000–120 000+ ₽). Комп-дименсия оценивается высоко.

Оформление: не указано в JD, требует уточнения на собеседовании (ожидание — ТК РФ, стандарт для крупных ИТ-компаний вроде Ozon).

E) План персонализации

# Раздел Текущее состояние Предлагаемое изменение Почему
1 Summary Общее описание Vue3+Flutter опыта Добавить акцент на «клиент-серверная архитектура», «API design», «структурированный код» — точные формулировки JD ATS-совпадение + человеческое чтение за 6 секунд
2 Компетенции Общий список навыков Вынести в грид: TypeScript, Vue 3 (Composition API), REST API, WebSocket, RBAC/авторизация, Git/GitLab, Vitest/Playwright, UI/UX-редизайн Прямое зеркалирование JD-требований
3 Опыт — ЕКОМ Стандартный порядок буллетов Поднять наверх RBAC-дизайн и работу с API/бэкендом (это прямое совпадение с «участвовать в проектировании API») Самый сильный релевантный proof point первым
4 Опыт — РМК Буллеты в исходном порядке Поднять наверх внедрение Playwright E2E и код-ревью/рефакторинг (закрытие бага с замыканием) Совпадает с «поддержка и развитие существующей кодовой базы»
5 Skills Nuxt/Docker в общем списке Явно пометить как «быстро осваиваю» рядом с Vue 3/TS, а не прятать Честность + видимость готовности закрыть Nuxt-пробел

Топ 5 изменений hh.ru/LinkedIn: заголовок профиля → «Frontend-разработчик Vue 3 / TypeScript»; добавить ключевые слова «клиент-серверная архитектура», «API», «WebSocket», «код-ревью»; в шапке резюме упомянуть готовность к удалёнке и офису в Москве (без переезда); указать желаемую зарплату в диапазоне 150 000–200 000 ₽ на руки, чтобы не занижать себя относительно рынка; добавить раздел «Проекты» с ЕКОМ как flagship-кейсом.

F) План собеседований

# Требование JD История STAR+R S T A R Reflection
1 Проектирование API, взаимодействие с бэкендом RBAC для ЕКОМ В ЕКОМ не было разграничения доступа между отделами Спроектировать ролевую модель авторизации Использовала профильное ИБ-образование, самостоятельно спроектировала модель ролей, объяснила бэкенд-разработчику принцип и отличие от других моделей доступа Логистика и заказы теперь корректно разграничены между отделами Поняла, что образование в ИБ даёт редкое для frontend-разработчика преимущество в разговоре с бэкендом на одном языке
2 Поддержка/развитие legacy кодовой базы, код-ревью Баг с замыканием на РМК Реактивная переменная передавалась в глобальный класс работы с клавиатурой, старые переменные не очищались Найти причину зависания клавиатуры Отследила цепочку передачи реактивной переменной в глобальный класс, локализовала утечку Клавиатура перестала «залипать», баг закрыт В следующий раз буду сразу проверять жизненный цикл реактивных переменных при передаче в нереактивные классы
3 Разработка инструментов для внутренних пользователей Список заказов с 9 фильтрами Логисты и техподдержка пользовались неудобными таблицами 1С Заменить их удобным интерфейсом с фильтрацией Спроектировала и реализовала интерфейс с фильтрацией по 9 параметрам Интерфейсом пользуются логисты, клиентский отдел, техподдержка и разработчики Осознала ценность UX-исследования: разные роли фильтруют по разным параметрам, это надо было учесть с самого начала
4 Понимание UX Редизайн кнопки «Избранное» и блока информации о заказе Нет дизайнера в компании, элементы неудобны Сделать интерфейс компактнее и удобнее для нажатия Самостоятельно спроектировала и внедрила изменения Кнопка стала крупнее и удобнее, блок информации — компактнее Поняла, что UX-решения нужно тестировать на реальных пользователях до релиза, а не полагаться только на интуицию
5 Тестируемый код (Playwright/Jest) Внедрение Playwright E2E на РМК Отсутствие автотестов на legacy-проекте Внедрить E2E-покрытие Настроила Playwright, начала покрывать критичные сценарии (позитивные и негативные) Проект на этапе внедрения устойчивого E2E-покрытия В следующий раз буду внедрять тесты параллельно с фичами, а не догонять legacy
6 Работа в команде Обучение коллеги с 11-летним стажем Git Flow Команда не использовала Feature Branching, релизы были нестабильными Обучить процессу версионирования Внедрила Feature Branching в GitLab, лично обучила коллегу Команда перешла на стабильные еженедельные релизы, сократилось число «зависших» фич Менторство сработало лучше через практику на реальных задачах, а не через документацию
7 Клиент-серверная архитектура, WebSocket Real-time оповещения на РМК Не было видимости, сколько аптек онлайн Внедрить оповещения в реальном времени Реализовала WebSocket-канал с индикацией прочтения Видно ~1200 аптек онлайн, около половины читают оповещение в первые минуты В следующий раз добавлю метрики задержки доставки с самого начала, а не постфактум

Рекомендуемый кейс для показа: график курьеров на vue-cal (drag-and-drop) — законченный продуктовый кейс «от ручного SQL до самостоятельного управления отделом логистики», хорошо иллюстрирует ownership уровня Middle.

Вопросы-ловушки:

  • «У вас всего около 2 лет опыта, а мы ищем 3+» → Честно: «Коммерческого опыта — около полутора лет, плюс проектная разработка на Vue во время учёбы. За это время я вела 3 продукта параллельно и спроектировала RBAC самостоятельно — предлагаю оценить по объёму ответственности, а не только по годам».
  • «Работали ли вы с нагрузкой уровня 200K RPS?» → Честно: «Нет, наибольший масштаб — ~1200 аптек в реальном времени через WebSocket. Готова обсудить, как переносятся принципы масштабирования, и быстро учусь».

G) Легитимность вакансии

Сигналы свежести: Дата публикации не показана явно, но контрол отклика активен («Откликнуться» доступна) — вакансия принимает отклики.

Качество описания: Высокое. Указаны конкретные метрики нагрузки (200K RPS на чтение, 8K RPS на запись), названа конкретная команда (ERP и учётные системы, ЭДО), перечислен конкретный стек (TypeScript, Vue/Nuxt 2/3), уровень указан явно (Middle), требования реалистичны и разграничены на «важно» и «плюсом». Раздел про бенефиты подробный и специфичный для Ozon (Ozon Универ, Route 256, льготная жилищная программа) — не generic-шаблон. Соотношение конкретики к воде — высокое.

Компания: Ozon Tech — крупный, хорошо известный работодатель, дополнительный WebSearch по репутации найма не потребовался (нет тревожных сигналов ни в JD, ни в общих отзывах, найденных при исследовании компенсации).

Вывод: Высокая уверенность.


Извлечённые ключевые слова

TypeScript, Vue 3, Nuxt.js, JavaScript, HTML5/CSS3, Git, UX, API, клиент-серверная архитектура, структурированный код, алгоритмы и структуры данных, Figma, GitLab, Docker, WebSockets, оптимизация Performance, Playwright, Jest, CodeceptJS, код-ревью, рефакторинг, ERP, электронный документооборот, прототипирование


Cover Letter Draft

Draft generated at evaluation time. Complete via /career-ops cover ozon-erp to fill in angles, confirm research, and generate the PDF. Gaps flagged below — address them during the cover flow.


Opening (placeholder — refine with your "why this role" angle) Команда ERP и учётные системы Ozon Tech обрабатывает миллионы документов ЭДО и расчёты зарплат для складов в реальном времени — задача такого масштаба на Vue 3/TypeScript напрямую пересекается с моим опытом построения внутренних систем с нуля.

Profile introduction Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia) и Flutter. С ноября 2024 года разработала с нуля фронтенд внутренней системы управления заказами и логистикой (ЕКОМ) для аптечной сети из ~1200 точек, а также подключилась к legacy-проекту кассы (РМК). Профильное образование в информационной безопасности дало нестандартный для frontend-разработчика опыт — самостоятельно спроектировала и объяснила бэкенд-команде ролевую модель авторизации (RBAC).

Key achievements (selected from cv.md — exact wording preserved)

  • Спроектировала ролевую модель авторизации (RBAC) с разграничением между отделами (например, логистика не видит заказы, и наоборот) — объясняла бэкенд-разработчику принцип работы и отличие от других моделей доступа.
  • Интерфейс списка заказов с фильтрацией по 9 параметрам для отслеживания проблемных заказов — заменил неудобные таблицы 1С; используется логистами, отделом работы с клиентами, техподдержкой и разработчиками.
  • Внедрила WebSocket для оповещений в реальном времени — впервые в компании видно, сколько аптек онлайн прямо сейчас, интерфейс показывает, кто и когда прочитал оповещение.
  • Внедрила Feature Branching в Git (GitLab), обучила коллегу с 11-летним стажем работе с системой версионирования — команда перешла на стабильные еженедельные релизы.

Problems I will solve (placeholder — requires company research + your input)

To be completed: какие конкретные проблемы команды ERP и учётные системы вы бы решали в первую очередь (масштабирование ЭДО, оптимизация UX внутренних инструментов и т.д.)?

Closing Буду рада обсудить вакансию. На связи в будни (13:00-14:00, после 18:00) и в выходные — предлагаю сначала согласовать удобное время созвона в Telegram (@vbleroy) или VK (vk.com/vbleroy).


Gaps flagged:

  • Формальный порог «3+ года JS» — фактический стаж кандидата около 2 лет (закрывается объёмом ответственности, не годами).
  • Nuxt.js — нет коммерческого опыта (только Vue 3 core).

JD keywords to mirror (extracted for ATS + human read) TypeScript, Vue 3, Nuxt, клиент-серверная архитектура, API, структурированный код, WebSocket, код-ревью, рефакторинг, UX, ERP, электронный документооборот


Run /career-ops cover ozon-erp to complete angles, confirm company research, and generate the PDF.