Files
career-ops-vbleroy/interview-prep/story-bank.md
T
redlineo d295c7f139
Release Please / release-please (push) Failing after 4m2s
Web CI / web typecheck + build (push) Successful in 3m39s
CodeQL Analysis / Analyze (javascript-typescript) (push) Failing after 1h1m49s
CodeQL Analysis / Analyze (go) (push) Failing after 1h1m49s
init
2026-07-13 10:14:00 +03:00

13 KiB

Story Bank — Романова Валерия

Накопленный банк историй STAR+R, извлечённых из cv.md во время оценок вакансий. Цель — со временем сформировать 5-10 мастер-историй, покрывающих большинство типовых вопросов на собеседовании. Каждая запись указывает, в каких отчётах она использовалась.


1. RBAC-модель авторизации («Здесь ЕКОМ»)

  • S: Не было модели разграничения прав доступа между отделами (логистика не должна видеть заказы других отделов и наоборот).
  • T: Спроектировать и объяснить бэкенд-команде ролевую модель авторизации (RBAC).
  • A: Использовала профильное ИБ-образование, спроектировала роли/группы/права, презентовала и объяснила бэкенд-разработчику принцип работы и отличие от других моделей доступа.
  • R: Внедрено разграничение по отделам в продакшене.
  • Reflection: Нестандартный бэкграунд (информационная безопасность) — реальное конкурентное преимущество для frontend-роли, а не просто интересный факт в резюме. Архитектурная ответственность не всегда пропорциональна годам стажа.
  • Использовано в отчётах: 017 (ЦФТ), 024 (Бизнес Технологии), 025 (ИП Каржева), 026 (Dev Company 23), 027 (Sakura Games), 028 (Selecty), 029 (Bnovo), 030 (Бизнес Технологии, Middle), 033 (МЕДИА ПОТОК)

2. Диагностика бага «Избранное» («Здесь Аптека»)

  • S: Жалобы пользователей на не открывающийся раздел «Избранное» в мобильном приложении.
  • T: Найти причину без готового отчёта от QA, до эскалации.
  • A: Диагностировала: все товары загружались одним запросом; обсудила с бэкенд-разработчиком и реализовала постраничную загрузку.
  • R: Жалобы прекратились.
  • Reflection: Проактивная диагностика продакшн-багов — сигнал ценен для команды с 50+ проектами; находить причину раньше эскалации важнее, чем просто закрывать тикеты.
  • Использовано в отчётах: 017 (ЦФТ), 025 (ИП Каржева), 028 (Selecty), 030 (Бизнес Технологии, Middle), 033 (МЕДИА ПОТОК), 037 (МТС GOODOK)

3. Feature Branching + обучение коллеги (РМК)

  • S: Хаотичные релизы, «зависшие» фичи, отсутствие процесса версионирования.
  • T: Внедрить Git Flow / Feature Branching в GitLab и обучить команду.
  • A: Обучила коллегу с 11-летним стажем работе с системой версионирования, внедрила процесс.
  • R: Команда перешла на стабильные еженедельные релизы, сократилось количество «зависших» фич.
  • Reflection: Мягкие навыки (обучение более опытного коллеги новому инструменту) не менее значимы, чем код — сильный сигнал уверенности в экспертизе независимо от общего стажа.
  • Использовано в отчётах: 017 (ЦФТ), 024 (Бизнес Технологии), 026 (Dev Company 23), 028 (Selecty), 029 (Bnovo), 030 (Бизнес Технологии, Middle), 033 (МЕДИА ПОТОК)

4. Замыкание реактивной переменной (РМК)

  • S: Клавиатура переставала работать после серии действий — сложный баг в legacy-коде.
  • T: Найти причину в глобальном классе биндинга клавиш к действиям.
  • A: Диагностировала: реактивная переменная передавалась в глобальный класс, старые версии не очищались (проблема замыкания).
  • R: Баг исправлен, задокументирован паттерн.
  • Reflection: Важность понимания жизненного цикла реактивных переменных вне компонентной области Vue — глубина понимания реактивности, а не только синтаксиса.
  • Использовано в отчётах: 017 (ЦФТ), 029 (Bnovo)

5. WebSocket-оповещения в реальном времени (РМК)

  • S: Не было видимости, сколько из ~1200 аптек онлайн в реальном времени.
  • T: Внедрить real-time оповещения с отметкой прочтения.
  • A: Реализовала WebSocket-канал (WSS) для оповещений, интерфейс показывает, кто и когда прочитал.
  • R: Видимость статуса ~1200 аптек в реальном времени; около половины читают в первые минуты.
  • Reflection: Реальная система масштаба, близкая к enterprise-требованиям — демонстрирует способность работать с real-time инфраструктурой на нетривиальном масштабе.
  • Использовано в отчётах: 017 (ЦФТ), 028 (Selecty), 029 (Bnovo), 033 (МЕДИА ПОТОК)

6. График курьеров на vue-cal («Здесь ЕКОМ»)

  • S: Расписание курьеров вносилось вручную SQL-запросами разработчиков по заявке логистики.
  • T: Спроектировать интерфейс drag-and-drop на базе календаря vue-cal.
  • A: Реализовала календарь с управлением состоянием через Pinia.
  • R: Отдел логистики полностью самостоятельно управляет графиком без участия разработчиков.
  • Reflection: Автоматизация процесса, снимающая нагрузку с целой команды (а не только с одного пользователя) — показатель мышления в масштабе системы, а не отдельной фичи.
  • Использовано в отчётах: 026 (Dev Company 23), 030 (Бизнес Технологии, Middle), 033 (МЕДИА ПОТОК)

7. Список заказов с фильтрацией по 9 параметрам («Здесь ЕКОМ»)

  • S: Неудобные таблицы 1С не позволяли эффективно отслеживать проблемные заказы.
  • T: Спроектировать и реализовать интерфейс с множественной фильтрацией.
  • A: Реализовала фильтрацию по 9 параметрам, заменив legacy-инструмент.
  • R: Интерфейсом пользуются логисты, отдел работы с клиентами, техподдержка и разработчики.
  • Reflection: Сложность бизнес-логики измеряется не только объёмом кода, но и числом отделов, которые полагаются на результат.
  • Использовано в отчётах: 026 (Dev Company 23), 029 (Bnovo), 030 (Бизнес Технологии, Middle)

8. UI/UX-инициатива без дизайнера («Здесь Аптека»)

  • S: Не было выделенного дизайнера в компании, интерфейс кнопки «Избранное» и блока информации о заказе были неудобными.
  • T: Взять на себя проектирование интерфейса.
  • A: Самостоятельно спроектировала и внедрила редизайн (крупнее кнопка, компактнее блок информации).
  • R: Улучшенная эргономика интерфейса.
  • Reflection: Готовность закрывать пробел роли (дизайн) — сигнал проактивности, полезный для команд без штатного дизайнера.
  • Использовано в отчётах: 017 (ЦФТ), 028 (Selecty), 030 (Бизнес Технологии, Middle), 037 (МТС GOODOK)

9. Хакатон TulaHack.Digital — «Книга рецептов»

  • S: Нужно было за ограниченное время сделать полноценное fullstack-приложение с фильтрацией и личным кабинетом.
  • T: Реализовать frontend (Vue 3, Ionic Capacitor) и backend (Express, Node.js, MongoDB) в сжатые сроки.
  • A: Построила fullstack-приложение с нуля в команде на хакатоне.
  • R: Работающий прототип с фильтрацией по ингредиентам и подсчётом калорий.
  • Reflection: Понимает базовый fullstack-цикл, но осознаёт разницу между хакатон-прототипом и production-fullstack-системой с реальной нагрузкой.
  • Использовано в отчётах: 027 (Sakura Games), 033 (МЕДИА ПОТОК)

10. Проект НИЦ «БиоХимТех» при ТулГУ

  • S: Нужен был программно-вычислительный комплекс с фронтендом и серверной частью для контроля концентрации загрязняющих веществ.
  • T: Реализовать фронтенд на Vue.js и часть серверной логики на Node.js.
  • A: Проработала оба слоя приложения в течение 10 месяцев заказной разработки.
  • R: Сдан рабочий комплекс.
  • Reflection: Ранний опыт показал интерес к полному циклу разработки, который затем сфокусировался на frontend в коммерческой работе.
  • Использовано в отчётах: 027 (Sakura Games)

11. Портирование Android → iOS («Здесь Сотрудник», «Здесь Чат»)

  • S: Два внутренних приложения изначально разрабатывались только под Android.
  • T: Адаптировать оба приложения под iOS и довести до релиза в App Store.
  • A: Перепривязала токены Firebase push-уведомлений на iOS и Android, собрала iOS-сборки, спроектировала app-иконки для обоих приложений, отправила на проверку в App Store.
  • R: Оба приложения успешно прошли ревью и вышли в App Store.
  • Reflection: Полный цикл кросс-платформенного релиза (не только код, но и процесс ревью платформы) — операционная зрелость, редко доверяемая разработчику с коротким формальным стажем.
  • Использовано в отчётах: 037 (МТС GOODOK)