Компетенции разработчика
По первому образованию я психолог, по 27-летнему опыту — разработчик и руководитель веб-проектов: от рукописных домашних страничек 1999 года до сайтов на Laravel с админками и базами данных.
Здесь описан только технический стек. Уровни отмечены честно, без приукрашивания:
- Уверенно — делала много раз, воспроизвожу самостоятельно;
- С поддержкой — делала в команде или под контролем старшего товарища, результат был положительным;
- Изучаю — зона роста, осваиваю сейчас, глубокой автономности пока не заявляю.
Вёрстка и фронтенд
Уверенно
- семантичный HTML5: структура документа, заголовки, списки, таблицы, ссылки, изображения, мета-теги, микроразметка Schema.org (Service, Article, Person);
- Bootstrap 5 self-host: сетки, navbar, collapse, cards, flexbox, утилиты; сборка по схеме «компонент Bootstrap → компонент раздела → страница»;
- CSS Custom Properties (переменные) в :root для централизованного управления палитрой и отступами; единый источник правды —
_frontend/style.css, сборка черезyarn build; - самохост шрифтов и графики: @font-face (woff + ttf, font-display: swap), inline-SVG иконки (чёткость на Retina, управление цветом через CSS), фавикон SVG + PNG-версии;
- vanilla JS (ES5, совместимо с Webpack 2): IntersectionObserver с threshold: 0 для плавного появления блоков, якорная прокрутка с учётом высоты sticky header, закрытие мобильного меню, активация скриптов в AJAX-блоках;
- CSS scroll-snap для каруселей вместо Swiper/Slick; полноширинные блоки через
width: 100vw; margin-left: calc(50% - 50vw); - Open Graph: статичная
og:imageс абсолютным https-URL, явныеog:image:widthиog:image:height; - предотвращение CLS: явные
widthиheightна всех<img>и иконках;scroll-margin-topдля якорей под sticky header.
С поддержкой
- сложные адаптивные сценарии — по справочнику, с визуальной проверкой каждого шага;
- прототипирование сразу в HTML: HTML-муляж (один
index.htmlсо всеми блоками) для визуальной проверки до заливки на сервер; - визуальный QA после рефакторинга: точечная правка отступов и цветов после смены классов BS3 → BS5.
Изучаю
- глубокую спецификацию CSS и сложные адаптивные сценарии без справочника.
Архитектура, ТЗ, прототипирование
Уверенно
- проектирование сайтов от данных и контента, а не от визуала: цель → контент → таблицы и поля → прототип → вёрстка;
- эволюция по уровням сложности: чистая статика → генератор (Jekyll) → PHP с инклудами и AJAX → Jekyll + Webpack + CI/CD;
- карта смыслов как основа архитектуры лендинга;
- ТЗ дизайнеру (с учётом принципов UX/UI) и программисту; ТЗ на базы данных с прототипами таблиц;
- декомпозиция проекта в задачи: в Figma и в таблицах, со скриншотами, до последней кнопки;
- ADR (Architecture Decision Record): фиксация архитектурных решений, например отказ от гибрида BS3+BS5 в пользу полной миграции на Bootstrap 5 + Vanilla JS (Путь Б);
- макеты брифов и сводные таблицы готовности проектов по этапам.
С поддержкой
- дизайн в Figma — на уровне постановки задач и ревью результата;
- проектирование от визуала (в дополнение к привычному проектированию от информации).
Генераторы, серверная логика, автоматизация
Уверенно
- Jekyll 4.2.2: YAML-фронтматтер, лейауты, инклуды, условный рендеринг, теги, перелинковка, хлебные крошки, Liquid-шаблоны;
- Node.js скрипты для автоматизации: парсинг YAML-фронтматтера через
js-yaml@4.1.0, генерация индекса тегов (build-tag-index.js), утилита чтения постов (yb.js) с обработкой BOM и кириллицы; - Webpack 2.5.1: сборка
_frontend/вpublic/bundle.cssиpublic/bundle.js(минимизация bundle с 100+ КБ до 7.3 КБ); - PHP 7.4+ для уровней 3–4: инклуды с защитой от прямого доступа (
APP_ACCESS), свой обработчик форм с honeypot + валидация + логирование в файл + отправка черезmail(), без БД и Composer; - AJAX-подгрузка блоков через
fetch()+IntersectionObserver, с пересозданием тегов<script>внутри вставленного HTML; - Disqus как публичная лента + своя форма как основной канал обратной связи;
- тесты валидации контента на mocha + should + cheerio: проверка заголовков, тегов, изображений, обязательных полей, лимитов постов на тег.
С поддержкой
- SQL-базы: ТЗ на таблицы, создание таблиц с полями и связями, прикручивание к админке; часть ошибок выцеживала сама;
- логика «таблица появляется, когда контента становится больше одного» — проектирование данных под рост проекта.
Изучаю
- уверенный бэкенд-кодинг: серверная логика, очереди, фреймворки — пока делегирую или делаю в паре с программистом; для текущих задач уровня 1–5 этого не требуется.
Процессы разработки, Git, CI/CD, QA
Уверенно
- Git: атомарные коммиты, слияния, разрешение конфликтов, чтение логов сборки, распознавание типов ошибок, обнуление истории при переносе проекта;
- GitLab CE на собственном VPS (Ubuntu 22.04): установка с нуля, регистрация shell runner под личным пользователем, теги раннеров под разные проекты (
smoothness,yagaya); - CI/CD через
.gitlab-ci.yml: стадииbuild → deploy → test, деплой только из веткиmain, раскладка_site/черезrsync --delete; - ведение задач: Taiga, Asana, Basecamp, чек-листы; движение по статусам «новое → в работе → можно проверять → на ветку → на мастер → на бой» без откатов назад;
- релиз-менеджмент в тестировании: верхняя точка цепочки QA, проверка задач перед выкаткой;
- инструкции: пишу и редактирую сама, обучаю команду работать по ним;
- аккаунтинг и ведение до пяти проектов одновременно, включая общение с клиентами;
- обучение сотрудников тому, что ещё недавно осваивала сама: вёрстка, дизайн, анимация, основы программирования.
С поддержкой
- локальная среда на Windows: RubyInstaller 2.7.6 + DevKit, nvm-windows + Node 12, yarn, Bundler; файл
force-utf8.rb+ переменнаяRUBYOPTдля обхода проблем кодировки; - настройка сервера (nginx, certbot, DNS) — по инструкции из 10 шагов, разово.
Изучаю
- быстрое чтение чужого кода: где работал разработчик вижу, ошибку в простом выцеживаю при погружении — скорость ещё нарабатываю.
SEO, аналитика, контентный конвейер
Уверенно
- техническое SEO: мета-теги, заголовочная структура,
robots.txt,sitemap.xml, хлебные крошки с<nav aria-label="breadcrumb">, перелинковка; - Яндекс.Метрика (счётчик 93243638) и Google Analytics: сбор и анализ статистики посещаемости, A/B-тесты, работы по улучшению юзабилити;
- контентный конвейер: Word (смыслы) → Notepad++ → автозамена → вёрстка; макросы Word для пакетных операций и вставки разделителей
<article>перед заголовками; - дайджесты: коды серий во фронтматтере, логика и ТЗ скрипта сборки — код писал программист, логика, приёмка и вычитка мои (435 ссылок в выпуске, собранных не руками);
- трёхшаговая сборка Jekyll-проекта:
node ./bin/build-tag-index.js→yarn build→bundle exec jekyll build; - JSON-описания тегов (
_data/tagsdesc.json) с короткой и развёрнутой версией для каждой из тематик.
Инструменты
- Уверенно: VS Code, Notepad++, Git (GitHub Desktop, GitLab CE), Taiga, Axure, Figma (просмотр и декомпозиция), Canva (графика для сайтов), Word (макросы и автозамена), Jekyll 4.2.2, Node 12 (nvm-windows), yarn, Webpack 2.5.1, Ruby 2.7.6 (RubyInstaller + DevKit), mocha + cheerio для тестов;
- С поддержкой: nginx, certbot, shell runner на Ubuntu 22.04 — по инструкции, разово;
- Осознанно не использую: Docker, Vagrant, jQuery, Bootstrap 3, Composer, MySQL, фреймворки (React, Vue, Angular) — для текущих задач уровня 1–5 это избыточно.
Зоны роста
- кодинг: PHP и JavaScript на уровне мелких задач и заучивания синтаксиса; путь «от „могу объяснить программисту логику" к собственному коду» прохожу сейчас;
- локальный
wdm-гем для ускорения наблюдения за файлами на Windows (сейчас Jekyll опрашивает файлы вместо событий); - доводка лейаутов до стандарта BS5/Cards/Flexbox — по запросу, партиями;
pushStateдля AJAX-блоков: прямые ссылки на блоки и кнопка «назад» в истории браузера;- сложные адаптивные сценарии и спецификация CSS — пока со справочником, с постепенным переходом к автономности.
Я не программист по образованию и осваиваю всё в бою, на лету. Мне нужно понять задачу с третьего раза, зато дальше навык встаёт в руки и воспроизводится.
Факты вместо прилагательных
- продающий лендинг на 39 блоков — 4 дня от идеи до запуска в производство: карта смыслов, прототип, декомпозиция, ТЗ на дизайн и анимацию;
- ТЗ на базу данных из 16 таблиц с прототипами и последующим созданием таблиц и прикручиванием к админке;
- до пяти проектов в аккаунтинге одновременно плюс ведение, декомпозиция и разработка инструкций;
- 16 веб-проектов в портфолио за 1999–2026 годы: чистый HTML, PHP и CMS, генераторы с Git и CI, Laravel с админкой Nova;
- собственный GitLab CE на VPS: установка с нуля, shell runner под личным пользователем, CI/CD для smoothness.ru и personal-myth.ru;
- миграция JS-стека (Путь Б): полный отказ от jQuery и Bootstrap 3, замена
zoom.jsнаzoom-vanilla.js,gajus.Contentsнаtoc-vanilla.js;bundle.jsс 100+ КБ до 7.3 КБ; - исправление парсинга YAML: замена устаревшего
yfmнаjs-yaml@4.1.0с обработкой BOM, что позволило корректно считывать кириллические теги в массивах; - умение разгребать не только с нуля, но и чужой хаос: «мне в кайф конструировать новое, разбираясь в том, что создали до меня».
Резюме одной строкой, как я сама его сформулировала: могу полностью выстроить работу над коммерческими веб-проектами и доводить их до сдачи клиенту при условии, что в команде есть хороший девопс.
Подробнее о том, как я учусь и ошибаюсь, — в дневнике о разработке веб-сайтов и IT-проектов.