init
This commit is contained in:
commit
d295c7f139
1527 files changed
+270726
No files matched your search
@@ -0,0 +1,152 @@
|
||||
# Оценка: 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**
|
||||
Готова обсудить детали в удобное для вас время.
|
||||
|
||||
---
|
||||
|
||||
**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.*
|
||||
Reference in new issue
Block a user