Files
career-ops-vbleroy/output/cv-romanova-valeriya-kaspersky-kes.html
T
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

473 lines
16 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Романова Валерия Вячеславовна — CV</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-variant-ligatures: none;
font-feature-settings: "liga" 0, "clig" 0, "dlig" 0;
}
html {
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
body {
font-family: 'Liberation Sans', 'Helvetica Neue', Arial, 'DejaVu Sans', sans-serif;
font-size: 11px;
line-height: 1.5;
color: #1a1a2e;
background: #ffffff;
padding: 0;
margin: 0;
font-variant-ligatures: none;
font-feature-settings: "liga" 0, "clig" 0, "dlig" 0;
}
.page {
width: 100%;
max-width: 210mm;
margin: 0 auto;
padding: 2px 0;
}
.header {
margin-bottom: 20px;
}
.header h1 {
font-family: 'Liberation Sans', 'Helvetica Neue', Arial, 'DejaVu Sans', sans-serif;
font-size: 28px;
font-weight: 700;
color: #1a1a2e;
letter-spacing: -0.02em;
margin-bottom: 6px;
line-height: 1.1;
}
.header-gradient {
height: 2px;
background: linear-gradient(to right, hsl(187, 74%, 32%), hsl(270, 70%, 45%));
border-radius: 1px;
margin-bottom: 10px;
}
.contact-row {
display: flex;
flex-wrap: wrap;
gap: 8px 14px;
font-family: 'Liberation Sans', 'Helvetica Neue', Arial, 'DejaVu Sans', sans-serif;
font-size: 10.5px;
line-height: 1.4;
color: #555;
}
.contact-row a {
color: #555;
text-decoration: none;
}
.contact-row .separator {
color: #ccc;
}
.section {
margin-bottom: 18px;
}
.section-title {
font-family: 'Liberation Sans', 'Helvetica Neue', Arial, 'DejaVu Sans', sans-serif;
font-size: 12px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.06em;
color: hsl(187, 74%, 32%);
border-bottom: 1.5px solid #e2e2e2;
padding-bottom: 4px;
margin-bottom: 10px;
line-height: 1.2;
}
.summary-text {
font-size: 11px;
line-height: 1.7;
color: #2f2f2f;
}
a {
white-space: nowrap;
}
.competencies-grid {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.competency-tag {
font-family: 'Liberation Sans', 'Helvetica Neue', Arial, 'DejaVu Sans', sans-serif;
font-size: 10px;
font-weight: 500;
color: hsl(187, 74%, 28%);
background: hsl(187, 40%, 95%);
padding: 4px 10px;
border-radius: 3px;
border: 1px solid hsl(187, 40%, 88%);
}
.job {
margin-bottom: 14px;
}
.job-header {
display: flex;
justify-content: space-between;
align-items: baseline;
gap: 12px;
margin-bottom: 4px;
}
.job-company {
font-family: 'Liberation Sans', 'Helvetica Neue', Arial, 'DejaVu Sans', sans-serif;
font-size: 12.5px;
font-weight: 600;
color: hsl(270, 70%, 45%);
}
.job-period {
font-size: 10.5px;
color: #777;
white-space: nowrap;
}
.job-role {
font-size: 11px;
font-weight: 600;
color: #333;
margin-bottom: 6px;
}
.job-location {
font-size: 10px;
color: #888;
}
.job ul {
padding-left: 18px;
margin-top: 6px;
}
.job li {
font-size: 10.5px;
line-height: 1.6;
color: #333;
margin-bottom: 4px;
}
.job li strong {
font-weight: 600;
}
.project {
margin-bottom: 12px;
}
.project-title {
font-family: 'Liberation Sans', 'Helvetica Neue', Arial, 'DejaVu Sans', sans-serif;
font-size: 11.5px;
font-weight: 600;
color: hsl(270, 70%, 45%);
}
.project-badge {
font-size: 9px;
font-weight: 500;
color: hsl(187, 74%, 32%);
background: hsl(187, 40%, 95%);
padding: 1px 6px;
border-radius: 2px;
margin-left: 6px;
}
.project-desc {
font-size: 10.5px;
color: #444;
margin-top: 3px;
line-height: 1.55;
}
.project-tech {
font-size: 9.5px;
color: #888;
margin-top: 3px;
}
.edu-item {
margin-bottom: 8px;
}
.edu-header {
display: flex;
justify-content: space-between;
align-items: baseline;
gap: 12px;
}
.edu-title {
font-weight: 600;
font-size: 11px;
color: #333;
}
.edu-org {
color: hsl(270, 70%, 45%);
font-weight: 500;
}
.edu-year {
font-size: 10px;
color: #777;
white-space: nowrap;
}
.edu-desc {
font-size: 10px;
color: #666;
margin-top: 2px;
line-height: 1.5;
}
.cert-table {
display: table;
width: 100%;
}
.cert-item {
display: table-row;
}
.cert-item > * {
display: table-cell;
vertical-align: baseline;
padding-bottom: 6px;
}
.cert-title {
font-size: 10.5px;
font-weight: 500;
color: #333;
}
.cert-org {
color: hsl(270, 70%, 45%);
white-space: nowrap;
}
.cert-year {
font-size: 10px;
color: #777;
white-space: nowrap;
text-align: right;
width: 44px;
}
.skills-grid {
display: flex;
flex-wrap: wrap;
gap: 6px 14px;
}
.skill-item {
font-size: 10.5px;
color: #444;
}
.skill-category {
font-weight: 600;
color: #333;
font-size: 10.5px;
}
@media print {
body {
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
.page {
padding: 0 0.18in 0 0;
}
}
.header,
.edu-item,
.cert-item,
.competency-tag,
.skill-item {
break-inside: avoid;
page-break-inside: avoid;
}
.section-title,
.job-company,
.job-role,
.project-title {
break-after: avoid;
page-break-after: avoid;
}
</style>
</head>
<body>
<div class="page">
<!-- HEADER -->
<div class="header">
<h1>Романова Валерия Вячеславовна</h1>
<div class="header-gradient"></div>
<div class="contact-row">
<a href="tel:+7 (950) 906-61-62">+7 (950) 906-61-62</a>
<span class="separator">|</span>
<a href="mailto:vbleroy@yandex.ru">vbleroy@yandex.ru</a>
<span class="separator">|</span>
<a href="https://t.me/vbleroy">@vbleroy</a>
<span class="separator">|</span>
<a href="https://vk.com/vbleroy">VK</a>
<span class="separator">|</span>
<span>Тула, Россия (удалённо, вся Россия)</span>
</div>
</div>
<!-- PROFESSIONAL SUMMARY -->
<div class="section">
<div class="section-title">О себе</div>
<div class="summary-text">Frontend/Fullstack-разработчик (Middle) с продакшн-опытом на Vue 3 (Composition API, TypeScript) и практическим опытом Node.js/Express (хакатон, учебный проект). С ноября 2024 года разработала с нуля фронтенд внутренней enterprise-системы для сети из ~1200 точек по России, включая проектирование клиент-серверного взаимодействия и ролевой модели авторизации (RBAC). Компонентное и реактивное мышление переносится между фреймворками — доказала это быстрым самостоятельным освоением Flutter с нуля до продакшена. Покрываю критичные сценарии unit- и e2e-тестами (Vitest, Playwright). Образование в информационной безопасности пригодилось на практике при проектировании модели доступа и авторизации.</div>
</div>
<!-- CORE COMPETENCIES -->
<div class="section">
<div class="section-title">Ключевые компетенции</div>
<div class="competencies-grid">
<span class="competency-tag">JavaScript / TypeScript</span>
<span class="competency-tag">Vue 3 (компонентный подход)</span>
<span class="competency-tag">Node.js / Express</span>
<span class="competency-tag">Git / GitLab / CI/CD</span>
<span class="competency-tag">Vitest (аналог Jest)</span>
<span class="competency-tag">RBAC / модели авторизации</span>
<span class="competency-tag">REST API &amp; WebSocket</span>
<span class="competency-tag">Английский B1 (документация)</span>
</div>
</div>
<!-- WORK EXPERIENCE -->
<div class="section">
<div class="section-title">Опыт работы</div>
<div class="job">
<div class="job-header">
<span class="job-company">Здравсервис, ООО</span>
<span class="job-period">Ноябрь 2024 — настоящее время</span>
</div>
<div class="job-role">Frontend / Flutter-разработчик</div>
<div class="job-location">Аптечная сеть, ~1200 точек по России · команда фронтенда — 4 человека</div>
<ul>
<li>Разработала с нуля фронтенд enterprise-системы управления заказами, курьерами и логистикой «Здесь ЕКОМ»: компонентная архитектура на Vue 3, Composition API, TypeScript.</li>
<li>Спроектировала ролевую модель авторизации (RBAC) с разграничением между отделами — самостоятельно спроектировала и объяснила бэкенд-команде принцип работы модели, опираясь на профильное ИБ-образование.</li>
<li>Внедрила Vitest — прямой концептуальный аналог Jest/Jasmine — для unit-тестов компонентов, и Playwright для e2e-тестирования на legacy-проекте «РМК», покрывая позитивные и негативные сценарии.</li>
<li>Внедрила WebSocket для интеграции клиент-сервер и оповещений в реальном времени между внутренними системами.</li>
<li>Внедрила Feature Branching в Git (GitLab) и обучила коллегу с 11-летним стажем работе с CI/CD-процессом — команда перешла на стабильные еженедельные релизы.</li>
<li>Спроектировала интерфейс списка заказов с фильтрацией по 9 параметрам для ~1200 точек, заменивший неудобные таблицы 1С — используется 4 отделами ежедневно.</li>
</ul>
</div>
<div class="job">
<div class="job-header">
<span class="job-company">Тульский государственный университет</span>
<span class="job-period">Март 2022 — Декабрь 2022</span>
</div>
<div class="job-role">Разработчик (учебная/заказная разработка)</div>
<div class="job-location">Заказная разработка для НИЦ «БиоХимТех» при ТулГУ</div>
<ul>
<li>Реализовала фронтенд-часть программно-вычислительного комплекса на Vue.js.</li>
<li>Работала с серверной частью на <strong>Node.js</strong>.</li>
</ul>
</div>
</div>
<!-- PROJECTS -->
<div class="section">
<div class="section-title">Проекты</div>
<div class="project">
<span class="project-title">Хакатон TulaHack.Digital — «Книга рецептов»<span class="project-badge">Vue 3 / Express / Node.js / MongoDB</span></span>
<div class="project-desc">Fullstack-прототип за ограниченное время хакатона: backend на Express/MongoDB + frontend на Vue 3/Ionic Capacitor. Фильтрация рецептов по имеющимся ингредиентам, личный кабинет с подсчётом калорий.</div>
<div class="project-tech">Vue 3, Ionic Capacitor, Express, Node.js, MongoDB</div>
</div>
<div class="project">
<span class="project-title">«Здесь ЕКОМ» — enterprise-система управления заказами и логистикой<span class="project-badge">Vue 3 / TypeScript</span></span>
<div class="project-desc">Frontend разработан с нуля для сети из ~1200 точек: RBAC-авторизация, интеграция клиент-сервер через WebSocket, фильтрация заказов по 9 параметрам.</div>
<div class="project-tech">Vue 3, Composition API, TypeScript, WebSocket, Vite, Vitest</div>
</div>
<div class="project">
<span class="project-title">«РМК» (касса/первостольник) — legacy-проект<span class="project-badge">Vue 3 / CI/CD</span></span>
<div class="project-desc">Внедрила Playwright e2e-тесты, Feature Branching в Git, стабилизировала релизный цикл до еженедельного.</div>
<div class="project-tech">Vue 3, WebSocket (WSS), Playwright, Git/GitLab CI/CD</div>
</div>
</div>
<!-- EDUCATION -->
<div class="section">
<div class="section-title">Образование</div>
<div class="edu-item">
<div class="edu-header">
<span class="edu-title">Специалист по защите информации — Информационная безопасность автоматизированных систем</span>
<span class="edu-year">2024</span>
</div>
<div class="edu-org">Тульский государственный университет (ТулГУ), Институт прикладной математики и компьютерных наук</div>
<div class="edu-desc">Профильное образование в ИБ применено на коммерческом проекте — проектирование ролевой модели авторизации (RBAC) в «Здесь ЕКОМ».</div>
</div>
</div>
<!-- CERTIFICATIONS -->
<div class="section">
<div class="section-title">Дополнительное образование</div>
<div class="cert-table">
<div class="cert-item">
<span class="cert-title">Разработчик мобильных и веб-приложений</span>
<span class="cert-org">Цифровая кафедра ТулГУ</span>
<span class="cert-year">2024</span>
</div>
<div class="cert-item">
<span class="cert-title">Volga Summer Camp</span>
<span class="cert-org">МИСИС и ЯрГУ им. П.Г. Демидова</span>
<span class="cert-year">2021</span>
</div>
</div>
</div>
<!-- SKILLS -->
<div class="section">
<div class="section-title">Навыки</div>
<div class="skills-grid">
<span class="skill-item"><span class="skill-category">Языки программирования:</span> JavaScript, TypeScript, Dart</span>
<span class="skill-item"><span class="skill-category">Frontend:</span> Vue 3, Composition API, Vue Router, Pinia, Tailwind CSS</span>
<span class="skill-item"><span class="skill-category">Backend:</span> Node.js, Express, MongoDB (проектная практика)</span>
<span class="skill-item"><span class="skill-category">Тестирование:</span> Vitest (аналог Jest/Jasmine), Storybook, Playwright (e2e)</span>
<span class="skill-item"><span class="skill-category">Сеть:</span> REST API, WebSocket/WSS</span>
<span class="skill-item"><span class="skill-category">Инструменты:</span> Vite, Git, GitLab, CI/CD, ESLint, Prettier</span>
<span class="skill-item"><span class="skill-category">Безопасность:</span> RBAC-проектирование, модели авторизации и разграничения доступа</span>
<span class="skill-item"><span class="skill-category">Языки:</span> Русский (родной), Английский (B1 — чтение технической документации)</span>
</div>
</div>
</div>
</body>
</html>