Files
career-ops-vbleroy/output/cv-valeriya-romanova-arcsinus.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

462 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:+79509066162">+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 (Telegram)</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-разработчик (Middle) с продакшн-опытом на <strong>Vue 3</strong> (Composition API, TypeScript, Pinia, Vue Router). Разработала с нуля фронтенд внутренней системы управления заказами и логистикой для сети из ~1200 точек: компонентная архитектура, ролевая модель авторизации (RBAC) для ~20 пользователей в офисе, unit-тесты на Vitest, сборка на Vite. Параллельно веду legacy Vue 3-проект и мобильное приложение на Flutter — комфортно переключаюсь между несколькими продуктами одновременно. Активно использую AI-инструменты разработки (Claude Code, Cursor) в рабочем процессе. Быстро адаптируюсь к новым фреймворкам и командным процессам.</div>
</div>
<!-- CORE COMPETENCIES -->
<div class="section">
<div class="section-title">Ключевые компетенции</div>
<div class="competencies-grid">
<span class="competency-tag">Vue 3 / Composition API</span>
<span class="competency-tag">Pinia</span>
<span class="competency-tag">Vue Router</span>
<span class="competency-tag">TypeScript</span>
<span class="competency-tag">Vite</span>
<span class="competency-tag">Vitest</span>
<span class="competency-tag">REST API</span>
<span class="competency-tag">Git / Code Review</span>
<span class="competency-tag">AI-инструменты разработки</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 аптек по всей России · Удалённо</div>
<ul>
<li>Разработала с нуля фронтенд внутренней системы управления заказами и логистикой («Здесь ЕКОМ») на <strong>Vue 3, Composition API, TypeScript, Pinia, Vue Router</strong>: график курьеров с drag-and-drop (vue-cal), список заказов с фильтрацией по 9 параметрам.</li>
<li>Спроектировала ролевую модель авторизации (RBAC) для ~20 пользователей в офисе с разграничением между отделами — самостоятельно объяснила бэкенд-команде принцип работы модели, опираясь на профильное ИБ-образование.</li>
<li>Внедрила unit-тесты на <strong>Vitest</strong> и <strong>Storybook</strong> для компонентов ЕКОМ, покрывая позитивные и негативные сценарии.</li>
<li>Параллельно веду legacy-проект «РМК» на <strong>Vue 3</strong>, раскатанный на 1200 точках: внедрила WebSocket-оповещения в реальном времени, Playwright E2E-тесты, Feature Branching в Git — команда перешла на стабильные еженедельные релизы.</li>
<li>Веду мобильное приложение «Здесь Аптека» на <strong>Flutter</strong> (Android/iOS): более 20 исправленных багов, портирование двух приложений с Android на iOS.</li>
<li>В команде без штатного дизайнера самостоятельно беру на себя UI/UX-задачи (редизайн, app-иконки).</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>Реализовала frontend-часть программно-вычислительного комплекса по контролю максимальной приземной концентрации загрязняющих веществ в атмосфере на <strong>Vue.js</strong>.</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">«Здесь ЕКОМ» — система управления заказами и логистикой<span class="project-badge">Vue 3 / TypeScript</span></span>
<div class="project-desc">Frontend разработан с нуля для внутренней команды ~20 пользователей: RBAC-авторизация, drag-and-drop календарь курьеров, фильтрация заказов по 9 параметрам, unit-тесты (Vitest).</div>
<div class="project-tech">Vue 3, Composition API, TypeScript, Pinia, Vue Router, Vite, Vitest, Storybook</div>
</div>
<div class="project">
<span class="project-title">Хакатон TulaHack.Digital &lt;Web &amp; Mobile&gt;<span class="project-badge">Май 2024</span></span>
<div class="project-desc">Мобильное веб-приложение «Книга рецептов» с фильтрацией по имеющимся в холодильнике ингредиентам и личным кабинетом для подсчёта потреблённых за день калорий.</div>
<div class="project-tech">Vue 3, Ionic Capacitor, Express, Node.js, MongoDB</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>
</div>
<!-- SKILLS -->
<div class="section">
<div class="section-title">Навыки</div>
<div class="skills-grid">
<span class="skill-item"><span class="skill-category">Frontend:</span> Vue 3, Composition API, Vue Router, Pinia, Vue 2 (базово), Tailwind CSS, TanStack Table</span>
<span class="skill-item"><span class="skill-category">Языки программирования:</span> JavaScript, TypeScript, HTML5/CSS3, Dart</span>
<span class="skill-item"><span class="skill-category">Сборка и тулинг:</span> Vite, npm, ESLint, Prettier</span>
<span class="skill-item"><span class="skill-category">Тестирование:</span> Vitest, 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">Mobile:</span> Flutter, BLoC, Clean Architecture, Firebase Cloud Messaging</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> RBAC-проектирование, Feature Branching (Git Flow)</span>
<span class="skill-item"><span class="skill-category">Быстро осваиваю:</span> Nuxt, GraphQL, React, AI-инструменты разработки</span>
<span class="skill-item"><span class="skill-category">Языки:</span> Русский (родной), Английский (B1)</span>
</div>
</div>
</div>
</body>
</html>